Code

From trunk
authorTed Gould <ted@canonical.com>
Mon, 27 Oct 2008 18:03:09 +0000 (13:03 -0500)
committerTed Gould <ted@canonical.com>
Mon, 27 Oct 2008 18:03:09 +0000 (13:03 -0500)
313 files changed:
AUTHORS
inkscape.pod
po/POTFILES.in
po/ko.po
po/pl.po
po/ru.po
share/extensions/dimension.py
share/extensions/draw_from_triangle.inx [new file with mode: 0644]
share/extensions/draw_from_triangle.py [new file with mode: 0644]
share/extensions/dxf_outlines.py
share/extensions/polyhedron_3d.inx
share/extensions/polyhedron_3d.py
share/extensions/render_barcode.inx
share/extensions/simplestyle.py
share/icons/icons.svg
src/Makefile_insert
src/arc-context.cpp
src/attributes-test.h
src/attributes.cpp
src/attributes.h
src/box3d-context.cpp
src/box3d-side.cpp
src/box3d.cpp
src/color-profile.cpp
src/common-context.cpp
src/conn-avoid-ref.cpp
src/connector-context.cpp
src/connector-context.h
src/context-fns.cpp
src/debug/gdk-event-latency-tracker.cpp
src/desktop-events.cpp
src/desktop-handles.h
src/desktop-style.cpp
src/desktop-style.h
src/desktop.cpp
src/desktop.h
src/dialogs/clonetiler.cpp
src/dialogs/dialog-events.cpp
src/dialogs/export.cpp
src/dialogs/fill-style.cpp
src/dialogs/find.cpp
src/dialogs/iconpreview.cpp
src/dialogs/input.cpp
src/dialogs/item-properties.cpp
src/dialogs/layers-panel.cpp
src/dialogs/stroke-style.cpp
src/dialogs/swatches.cpp
src/dialogs/swatches.h
src/dialogs/text-edit.cpp
src/dialogs/tiledialog.cpp
src/dialogs/xml-tree.cpp
src/display/bezier-utils-test.cpp
src/display/bezier-utils-test.h
src/display/bezier-utils.cpp
src/display/canvas-arena.h
src/display/canvas-axonomgrid.cpp
src/display/canvas-grid.cpp
src/display/canvas-grid.h
src/display/canvas-text.cpp
src/display/canvas-text.h
src/display/nr-arena-glyphs.cpp
src/display/nr-arena-glyphs.h
src/display/nr-arena-image.cpp
src/display/nr-arena-item.cpp
src/display/nr-arena-shape.cpp
src/display/nr-arena-shape.h
src/display/nr-filter-gaussian.cpp
src/display/nr-filter-slot.cpp
src/display/nr-filter-slot.h
src/display/nr-filter-types.h
src/display/nr-filter.cpp
src/display/nr-filter.h
src/display/nr-svgfonts.cpp
src/display/sp-canvas.cpp
src/display/sp-canvas.h
src/display/sp-ctrlquadr.cpp
src/document.cpp
src/draw-anchor.cpp
src/draw-anchor.h
src/draw-context.cpp
src/dropper-context.cpp
src/dyna-draw-context.cpp
src/eraser-context.cpp
src/event-context.cpp
src/event-context.h
src/extension/error-file.cpp
src/extension/implementation/script.cpp
src/extension/init.cpp
src/extension/internal/bluredge.cpp
src/extension/internal/cairo-ps-out.cpp
src/extension/internal/cairo-renderer-pdf-out.cpp
src/extension/internal/cairo-renderer.cpp
src/extension/internal/gdkpixbuf-input.cpp
src/extension/internal/pdfinput/svg-builder.cpp
src/extension/param/bool.cpp
src/extension/param/color.cpp
src/extension/param/color.h
src/extension/param/description.cpp
src/extension/param/enum.cpp
src/extension/param/float.cpp
src/extension/param/int.cpp
src/extension/param/notebook.cpp
src/extension/param/parameter.cpp
src/extension/param/parameter.h
src/extension/param/radiobutton.cpp
src/extension/param/string.cpp
src/file.cpp
src/flood-context.cpp
src/fontsize-expansion.cpp [deleted file]
src/fontsize-expansion.h [deleted file]
src/gradient-chemistry.cpp
src/gradient-context.cpp
src/gradient-drag.cpp
src/graphlayout/graphlayout.cpp
src/guide-snapper.cpp
src/helper/png-write.cpp
src/inkscape.cpp
src/inkscape.h
src/inkview.cpp
src/interface.cpp
src/io/sys.cpp
src/knot-holder-entity.cpp
src/knot.cpp
src/layer-manager.cpp
src/line-snapper.cpp
src/line-snapper.h
src/live_effects/effect.cpp
src/live_effects/effect.h
src/live_effects/lpe-bendpath.cpp
src/live_effects/lpe-bendpath.h
src/live_effects/lpe-curvestitch.cpp
src/live_effects/lpe-envelope.cpp
src/live_effects/lpe-envelope.h
src/live_effects/lpe-knot.cpp
src/live_effects/lpe-patternalongpath.cpp
src/live_effects/lpe-patternalongpath.h
src/live_effects/lpe-sketch.cpp
src/live_effects/lpe-sketch.h
src/live_effects/lpe-vonkoch.cpp
src/live_effects/lpe-vonkoch.h
src/live_effects/lpegroupbbox.cpp
src/live_effects/lpeobject-reference.cpp
src/lpe-tool-context.cpp
src/main.cpp
src/marker.cpp
src/marker.h
src/menus-skeleton.h
src/node-context.cpp
src/nodepath.cpp
src/nodepath.h
src/object-edit.cpp
src/object-snapper.cpp
src/object-snapper.h
src/path-chemistry.cpp
src/path-chemistry.h
src/pen-context.cpp
src/pencil-context.cpp
src/pencil-context.h
src/preferences-skeleton.h
src/preferences.cpp
src/preferences.h
src/prefs-utils.cpp [deleted file]
src/prefs-utils.h [deleted file]
src/rect-context.cpp
src/selcue.cpp
src/select-context.cpp
src/selection-chemistry.cpp
src/selection.cpp
src/selection.h
src/seltrans.cpp
src/shape-editor.cpp
src/snap-preferences.cpp [new file with mode: 0644]
src/snap-preferences.h [new file with mode: 0644]
src/snap.cpp
src/snap.h
src/snapper.cpp
src/snapper.h
src/sp-ellipse.cpp
src/sp-flowtext.cpp
src/sp-flowtext.h
src/sp-guide.cpp
src/sp-guide.h
src/sp-image.cpp
src/sp-item-group.cpp
src/sp-item-notify-moveto.cpp
src/sp-item-rm-unsatisfied-cns.cpp
src/sp-item-update-cns.cpp
src/sp-item.cpp
src/sp-item.h
src/sp-lpe-item.cpp
src/sp-namedview.cpp
src/sp-offset.cpp
src/sp-offset.h
src/sp-path.cpp
src/sp-rect.cpp
src/sp-shape.cpp
src/sp-spiral.cpp
src/sp-star.cpp
src/sp-text.cpp
src/sp-use-reference.cpp
src/sp-use.cpp
src/spiral-context.cpp
src/splivarot.cpp
src/star-context.cpp
src/style.cpp
src/style.h
src/svg-view.cpp
src/svg/css-ostringstream.cpp
src/svg/path-string.cpp
src/svg/stringstream.cpp
src/svg/svg-affine.cpp
src/svg/svg-color-test.h
src/svg/svg-color.cpp
src/svg/svg-path-geom-test.h
src/text-context.cpp
src/text-context.h
src/text-editing.cpp
src/tools-switch.cpp
src/tweak-context.cpp
src/ui/clipboard.cpp
src/ui/context-menu.cpp
src/ui/dialog/aboutbox.cpp
src/ui/dialog/aboutbox.h
src/ui/dialog/align-and-distribute.cpp
src/ui/dialog/align-and-distribute.h
src/ui/dialog/behavior.h
src/ui/dialog/dialog-manager.cpp
src/ui/dialog/dialog-manager.h
src/ui/dialog/dialog.cpp
src/ui/dialog/dialog.h
src/ui/dialog/dock-behavior.cpp
src/ui/dialog/dock-behavior.h
src/ui/dialog/document-metadata.cpp
src/ui/dialog/document-metadata.h
src/ui/dialog/document-properties.cpp
src/ui/dialog/document-properties.h
src/ui/dialog/extension-editor.cpp
src/ui/dialog/extension-editor.h
src/ui/dialog/filedialog.cpp
src/ui/dialog/filedialog.h
src/ui/dialog/filedialogimpl-gtkmm.cpp
src/ui/dialog/filedialogimpl-gtkmm.h
src/ui/dialog/filedialogimpl-win32.cpp
src/ui/dialog/filedialogimpl-win32.h
src/ui/dialog/fill-and-stroke.cpp
src/ui/dialog/fill-and-stroke.h
src/ui/dialog/filter-effects-dialog.cpp
src/ui/dialog/filter-effects-dialog.h
src/ui/dialog/find.cpp
src/ui/dialog/find.h
src/ui/dialog/floating-behavior.cpp
src/ui/dialog/floating-behavior.h
src/ui/dialog/inkscape-preferences.cpp
src/ui/dialog/inkscape-preferences.h
src/ui/dialog/input.cpp
src/ui/dialog/input.h
src/ui/dialog/livepatheffect-editor.cpp
src/ui/dialog/livepatheffect-editor.h
src/ui/dialog/memory.cpp
src/ui/dialog/memory.h
src/ui/dialog/messages.cpp
src/ui/dialog/messages.h
src/ui/dialog/ocaldialogs.cpp
src/ui/dialog/ocaldialogs.h
src/ui/dialog/panel-dialog.h
src/ui/dialog/print.cpp
src/ui/dialog/print.h
src/ui/dialog/scriptdialog.cpp
src/ui/dialog/scriptdialog.h
src/ui/dialog/session-player.cpp
src/ui/dialog/session-player.h
src/ui/dialog/svg-fonts-dialog.cpp
src/ui/dialog/svg-fonts-dialog.h
src/ui/dialog/tracedialog.cpp
src/ui/dialog/tracedialog.h
src/ui/dialog/transformation.cpp
src/ui/dialog/transformation.h
src/ui/dialog/undo-history.cpp
src/ui/dialog/undo-history.h
src/ui/dialog/whiteboard-connect.cpp
src/ui/dialog/whiteboard-connect.h
src/ui/dialog/whiteboard-sharewithchat.cpp
src/ui/dialog/whiteboard-sharewithchat.h
src/ui/dialog/whiteboard-sharewithuser.cpp
src/ui/dialog/whiteboard-sharewithuser.h
src/ui/view/edit-widget.cpp
src/ui/widget/dock-item.cpp
src/ui/widget/dock.cpp
src/ui/widget/dock.h
src/ui/widget/panel.cpp
src/ui/widget/panel.h
src/ui/widget/preferences-widget.cpp
src/ui/widget/preferences-widget.h
src/ui/widget/registered-widget.cpp
src/ui/widget/style-swatch.cpp
src/ui/widget/style-swatch.h
src/vanishing-point.cpp
src/verbs.cpp
src/widgets/dash-selector.cpp
src/widgets/dash-selector.h
src/widgets/desktop-widget.cpp
src/widgets/gradient-toolbar.cpp
src/widgets/gradient-vector.cpp
src/widgets/icon.cpp
src/widgets/select-toolbar.cpp
src/widgets/sp-color-icc-selector.cpp
src/widgets/sp-color-notebook.cpp
src/widgets/toolbox.cpp
src/widgets/toolbox.h
src/xml/node-observer.h
src/xml/repr-io.cpp
src/zoom-context.cpp
utf8-to-roff

diff --git a/AUTHORS b/AUTHORS
index 724ec295ecbda51fa8163ca61dd24c2d5b31b55d..ea8fdbea6f2f610b27e8b32a361745bf2f149bde 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -7,6 +7,7 @@ John Bintz
 Arpad Biro
 Nicholas Bishop
 Joshua L. Blocher
+Henrik Bohre
 Boldewyn
 Daniel Borgmann
 Bastien Bouclet
@@ -37,6 +38,7 @@ Tim Dwyer
 Maxim V. Dziumanenko
 Johan Engelen
 Miklos Erdelyi
+Ulf Erikson
 Noé Falzon
 Frank Felfe
 Andrew Fitzsimon
@@ -53,11 +55,13 @@ Bryce Harrington
 Dale Harvey
 Carl Hetherington
 Jos Hirth
+Thomas Holder
 Joel Holdsworth
 Alan Horkan
 Karl Ove Hufthammer
 Richard Hughes
 Nathan Hurst
+inductiveload
 Thomas Ingham
 Jean-Olivier Irisson
 Bob Jamison
@@ -66,6 +70,8 @@ Lynn Kerby
 Niko Kiirala
 James Kilfiger
 Jason Kivlighn
+Adrian Knoth
+Krzysztof Kosiński
 Petr Kovar
 Raph Levien
 Diederik van Lierop
index 5870d99cd5690e6a9d4e1599ce6a6fe9ecb24b87..a1e56cf9d0c4cc7954f9517510cdfcba944462d1 100644 (file)
@@ -34,11 +34,11 @@ options:
     -A, --export-pdf=FILENAME
 
     -T, --export-text-to-path
-    -B, --export-bbox-page 
-    -F, --export-embed-fonts
 
     -l, --export-plain-svg=FILENAME             
 
+    -p, --print=PRINTER
+
     -I, --query-id=ID     
     -X, --query-x
     -Y, --query-y
@@ -52,7 +52,7 @@ options:
         --verb=VERB-ID
         --select=OBJECT-ID
 
-    -p, --print=PRINTER
+        --shell
 
     -g, --with-gui                    
     -z, --without-gui                 
@@ -65,10 +65,11 @@ options:
 
 B<Inkscape> is a GUI editor for B<Scalable Vector Graphics (SVG)> format
 drawing files, with capabilities similar to B<Adobe Illustrator>,
-B<CorelDraw>, B<Visio>, etc. Inkscape features include versatile
+B<CorelDraw>, B<Xara Xtreme>, etc. Inkscape features include versatile
 shapes, bezier paths, freehand drawing, multi-line text, text on path,
 alpha blending, arbitrary affine transforms, gradient and pattern fills, node
-editing, SVG-to-PNG export, grouping, layers, live clones, and more.  The interface is
+editing, many export and import formats including PNG and PDF, grouping, 
+layers, live clones, and a lot more.  The interface is
 designed to be comfortable and efficient for skilled users, while
 remaining conformant to B<GNOME> standards so that users familiar with
 other GNOME applications can learn its interface rapidly.
@@ -106,15 +107,20 @@ is the lower-left corner.
 
 =item B<-C>, B<--export-area-canvas>
 
-In PNG and PDF export, exported area is the entire canvas (page). Usually this is the default, so you
-don't need to specify this unless you are using --export-id to export a specific object.
+In PNG, PDF, PS, and EPS export, exported area is the canvas (page). This is the default
+for PNG, PDF, and PS, so you don't need to specify this unless you are using --export-id 
+to export a specific object. In EPS, however, this is not the default; moreover, for EPS, 
+the specification of the format does not allow its bounding box to extend beyond its content. 
+This means that when --export-area-canvas is used with EPS export, the canvas bounding box 
+will be trimmed inwards to the bounding box of the content if it is smaller.
 
 =item B<-D>, B<--export-area-drawing>
 
-In PNG and PDF export, exported area is the entire drawing (not canvas), i.e. the bounding box
-of all objects of the document. With this option, the exported image will
-display just the visible objects of the document without margins or cropping. For PNG, can be
-used in combination wtih --export-use-hints.
+In PNG, PDF, PS, and EPS export, exported area is the drawing (not canvas), i.e. the bounding box
+of all objects of the document (or of the exported object if --export-id is used). 
+With this option, the exported image will
+display all the visible objects of the document without margins or cropping. This is the default
+export area for EPS. For PNG, it can be used in combination wtih --export-use-hints.
 
 =item B<--export-area-snap>
 
@@ -158,10 +164,10 @@ This value overrides the --export-dpi setting (or the DPI hint if used with --ex
 
 =item B<-i> I<ID>, B<--export-id>=I<ID>
 
-For PNG and PDF export, the id attribute value of the object that you want 
-to export from the document.  By
+For PNG, PS, EPS, and PDF export, the id attribute value of the object that you want 
+to export from the document; all other objects are not exported.  By
 default the exported area is the bounding box of the object; you can override this using
---export-area, --export-area-canvas, or --export-area-drawing.
+--export-area (PNG only) or --export-area-canvas.
 
 =item B<-j>, B<--export-id-only>
 
@@ -242,38 +248,26 @@ then the value of 255 (full opacity) will be used.
 
 =item B<-P> I<FILENAME>, B<--export-ps>=I<FILENAME>
 
-Export document(s) to PostScript format. Note that PostScript does not support transparency, so any transparency in the original SVG will be lost. This option can be used together with --export-bbox-page and --export-text-to-path.
+Export document(s) to PostScript format. Note that PostScript does not support transparency, so any transparent objects in the original SVG will be automatically rasterized. Used fonts are subset and embedded. The default export area is canvas; you can set it to drawing by --export-area-drawing. You can 
+specify --export-id to export a single object (all other are hidden); in that case 
+export area is that object's bounding box, but can be set to canvas by --export-area-canvas.
 
 =item B<-E> I<FILENAME>, B<--export-eps>=I<FILENAME>
 
-Export document(s) to Encapsulated PostScript format. Note that PostScript does not support transparency, so any transparency in the original SVG will be lost. This option can be used together with --export-bbox-page and --export-text-to-path.
+Export document(s) to Encapsulated PostScript format. Note that PostScript does not support transparency, so any transparent objects in the original SVG will be automatically rasterized. Used fonts are subset and embedded. The default export area is drawing; you can set it to canvas, however see --export-area-canvas for applicable limitation. You can specify --export-id to export a single object (all other are hidden).
 
 =item B<-A> I<FILENAME>, B<--export-pdf>=I<FILENAME>
 
-Export document(s) to PDF 1.4 format. This format preserves the 
-transparency in the original SVG (though not all PDF viewers 
-can display it yet). This option can be used together with 
---export-text-to-path (currently this is required, because 
-exporting text as text is not yet supported). 
-
-By default, the entire document
-is exported and the page size of the PDF is that of the SVG document. You can 
-specify --export-id to export a single object (with PDF page the size 
-of that object's bounding box) and --export-area-drawing to make the 
-exported PDF page show the entire drawing (by default the SVG page).
+Export document(s) to PDF format. This format preserves the 
+transparency in the original SVG. Used fonts are subset and embedded. 
+The default export area is canvas; you can set it to drawing by --export-area-drawing. You can 
+specify --export-id to export a single object (all other are hidden); in that case 
+export area is that object's bounding box, but can be set to canvas by --export-area-canvas.
 
 =item B<-T>, B<--export-text-to-path>
 
 Convert text objects to paths on export, where applicable (currently works for PS, EPS, and PDF export).
 
-=item B<-B>, B<--export-bbox-page>
-
-Export files with the bounding box set to the page size, where applicable (currently works for PS and EPS export).
-
-=item B<-F>, B<--export-embed-fonts>
-
-Embed fonts used in the document into exported PS/EPS file. Note: only Type 1 fonts can be embedded, not TrueType.
-
 =item B<-I>, B<--query-id>
 
 Set the ID of the object whose dimensions are queried. If not set, query options will 
@@ -300,6 +294,17 @@ Query the height of of the drawing or, if specified, of the object with --query-
 Prints a comma delimited listing of all objects in the SVG document with
 IDs defined, along with their x, y, width, and height values.
 
+=item B<--shell>
+
+With this parameter, Inkscape will enter an interactive command line shell mode. In this
+mode, you type in commands at the prompt and Inkscape executes them, without you having
+to run a new copy of Inkscape for each command. This feature is mostly useful for
+scripting and server uses: it adds no new capabilities but allows you to improve the
+speed and memory requirements of any script that repeatedly calls Inkscape to perform
+command line tasks (such as export or conversions). Each command in shell mode must be a
+complete valid Inkscape command line but without the Inkscape program name, for example
+"file.svg --export-pdf=file.pdf".
+
 =item B<--vacuum-defs>
 
 Remove all unused items from the <lt>defs<gt> section of the SVG file.  If this
@@ -313,9 +318,8 @@ This is assumed for -p, -e, -l, and --vacuum-defs options.
 
 =item B<--g-fatal-warnings>
 
-Part of the standard GTK option that are recognized.  This forces any GTK
-warnings to cause Inkscape to abort.  This option is listed because it gets
-used for debugging.
+This standard GTK option forces any warnings, usually harmless, to cause Inkscape to
+abort (useful for debugging).
 
 =item B<--usage>
 
@@ -325,57 +329,17 @@ Display a brief usage message.
 
 =head1 CONFIGURATION
 
-The preferences.xml configuration file located in ~/.inkscape/ is used
-to customize the application settings for the user.  
-
-=over 8
-
-=item B<interface> 
-
-The B<interface> element(s) of the config file is used to set parameters
-related to the GUI interface, such as the open/closed status of various
-GUI elements, etc. 
-
-=item B<group id="documents">
-
-The documents group is used for containing the recent files list.  Each
-document is listed with its uri (path) and name indicated.
+The main configuration file is located in ~/.config/Inkscape/preferences.xml; it stores
+a variety of customization settings that you can change in Inkscape (mostly in the
+Inkscape Preferences dialog).  Also in the subdirectories there, you can place your own:
 
-=item B<group id="template">
+B<$HOME>/.config/Inkscape/extensions/ - extension effects.
 
-The template group is used for storing parameters related to blank
-documents. 
+B<$HOME>/.config/Inkscape/icons/ - icons.
 
-=item B<group id="tools">
+B<$HOME>/.config/Inkscape/keys/ - keyboard maps.
 
-The tools group is used for storing the user style preferences for
-different event contexts (i.e., shapes, freehand or calligraphic stroke
-properties, etc.).
-
-=item B<group id="palette">
-
-The palette group allows setting of dash styles.  This allows you to
-define the stroke lengths for different kinds of dashes.
-
-=item B<group id="dialogs">
-
-The dialogs group allows persisting the position and width of each of
-the dialogs in the application, so that they'll start up in the last
-place the user had them at the next time the app is run.
-
-=item B<group id="printing">
-
-The printing group is for storing different printer settings.  Each
-setting is identified with an id.  Properties include I<bitmap>
-(true/false), I<resolution>, and I<destination>.
-
-=item B<group id="options">
-
-The options group allows persisting various user selected options
-including I<nudgedistance>, I<rotationstep>, I<cursortolerance>, and
-I<dragtolerance>. 
-
-=back
+B<$HOME>/.config/Inkscape/templates/ - new file templates.
 
 =head1 DIAGNOSTICS
 
@@ -459,17 +423,6 @@ the matching icon name.  (For example, to load the "fill_none" icon from
 a file, the bounding box seen for SVG id "fill_none" is rendered as the
 icon, whether it comes from I<fill_none.svg> or I<icons.svg>.)
 
-=head1 FILES
-
-B<$HOME>/.inkscape/preferences.xml - The user's preference settings. 
-
-B<$HOME>/.inkscape/extensions/ - Directory with user's extension effects.
-
-B<$HOME>/.inkscape/icons/ - Directory with user's icons.
-
-B<$HOME>/.inkscape/keys/ - Directory with user's keyboard maps.
-
-B<$HOME>/.inkscape/templates/ - Directory with user's new file templates.
 
 
 =head1 OTHER INFO
@@ -510,7 +463,7 @@ L<http://www.w3.org/TR/DOM-Level-2-Core/>
 To learn Inkscape's GUI operation, read the tutorials in Help > Tutorials.
 
 Apart from SVG, Inkscape can import (File > Import) most bitmap formats 
-(PNG, BMP, JPG, XPM, GIF, etc.), plain text (requires Perl), PDF, 
+(PNG, BMP, JPG, XPM, GIF, etc.), plain text (requires Perl), PS and EPS (requires Ghostscript), PDF 
 and AI format (AI version 9.0 or newer). 
 
 Inkscape exports 32-bit PNG images (File > Export) as well as AI, PS, EPS, PDF, DXF, 
@@ -595,7 +548,7 @@ making Open Source more visually stimulating to larger audiences.
 
 =head1 COPYRIGHT AND LICENSE
 
-B<Copyright (C)> 1999-2007 by Authors.  
+B<Copyright (C)> 1999-2008 by Authors.  
 
 B<Inkscape> is free software; you can redistribute it and/or modify it
 under the terms of the GPL.  
index 9df2bb1f6a271b59c055054d30fc6bf9603045e6..30a5d28277ce4f191e942cfb320732f416195543 100644 (file)
@@ -372,6 +372,7 @@ share/extensions/svg_and_media_zip_output.py
 [type: gettext/xml] share/extensions/dia.inx
 [type: gettext/xml] share/extensions/dimension.inx
 [type: gettext/xml] share/extensions/dots.inx
+[type: gettext/xml] share/extensions/draw_from_triangle.inx
 [type: gettext/xml] share/extensions/dxf_input.inx
 [type: gettext/xml] share/extensions/dxf_outlines.inx
 [type: gettext/xml] share/extensions/dxf_output.inx
index 10295211779fa5e2f79b022527c2be48689c7062..15ebc3f97ad1f95a630822e23fc83685ffd20868 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -2,78 +2,74 @@
 # This file is distributed under the same license as the Inkscape package.
 # Copyright (C) 2006 Free Software Foundation, Inc.
 # Kitae Kim <bluetux@gmail.com>, 2006.
-#
+# Jin-Hwan Jeong <yongdoria@gmail.com>, 2008
+
 msgid ""
 msgstr ""
-"Project-Id-Version: inkscape\n"
-"Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2008-06-12 21:31+0100\n"
-"PO-Revision-Date: 2006-11-05 17:52+0100\n"
-"Last-Translator: Kitae <bluetux@gmail.com>\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: Jin-Hwan Jeong <yongdoria@gmail.com>\n"
 "Language-Team:  <linuxaz@azerimal.net>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n>1);\n"
+
+msgid "Hide all except selected"
+msgstr "선택한 것을 제외하고 전체 숨기기"
 
 #: ../inkscape.desktop.in.h:1
 msgid "Create and edit Scalable Vector Graphics images"
-msgstr "SVG(크기 조정 가능한 벡터 그래픽) 이미지  생성"
+msgstr "SVG 이미지  생성 및 편집"
 
 #: ../inkscape.desktop.in.h:2
-#, fuzzy
 msgid "Inkscape Vector Graphics Editor"
-msgstr "SVG 벡터 일러스터 잉크스케이프"
+msgstr "Inkscape 벡터 그래픽 편집기"
 
 #: ../src/arc-context.cpp:338
-msgid ""
-"<b>Ctrl</b>: make circle or integer-ratio ellipse, snap arc/segment angle"
+msgid "<b>Ctrl</b>: make circle or integer-ratio ellipse, snap arc/segment angle"
 msgstr "<b>Ctrl</b>: 원이나 타원을 만들고, 원호의 각도 조절"
 
-#: ../src/arc-context.cpp:339 ../src/rect-context.cpp:383
+#: ../src/arc-context.cpp:339
+#: ../src/rect-context.cpp:383
 msgid "<b>Shift</b>: draw around the starting point"
-msgstr ""
+msgstr "<b>Shift</b>: 시작점 주변 그리기"
 
 #: ../src/arc-context.cpp:485
 #, c-format
-msgid ""
-"<b>Ellipse</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> "
-"to draw around the starting point"
-msgstr ""
+msgid "<b>Ellipse</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> to draw around the starting point"
+msgstr "<b>타원</b>: %s &#215; %s (비율 고정 %d:%d);  <b>Shift</b> 시작점 주변 그리기"
 
 #: ../src/arc-context.cpp:487
 #, c-format
-msgid ""
-"<b>Ellipse</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-"
-"ratio ellipse; with <b>Shift</b> to draw around the starting point"
-msgstr ""
+msgid "<b>Ellipse</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-ratio ellipse; with <b>Shift</b> to draw around the starting point"
+msgstr "<b>타원</b>: %s &#215; %s; <b>Ctrl</b> 사각형 또는 정수비 타원을 생성; <b>Shift</b> 시작점 주변 그리기"
 
 #: ../src/arc-context.cpp:506
-#, fuzzy
 msgid "Create ellipse"
-msgstr "중심선"
-
-#: ../src/box3d-context.cpp:448 ../src/box3d-context.cpp:455
-#: ../src/box3d-context.cpp:462 ../src/box3d-context.cpp:469
-#: ../src/box3d-context.cpp:476 ../src/box3d-context.cpp:483
-#, fuzzy
+msgstr "타원 생성"
+
+#: ../src/box3d-context.cpp:448
+#: ../src/box3d-context.cpp:455
+#: ../src/box3d-context.cpp:462
+#: ../src/box3d-context.cpp:469
+#: ../src/box3d-context.cpp:476
+#: ../src/box3d-context.cpp:483
 msgid "Change perspective (angle of PLs)"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì\9b\90ê·¼ ë³\80ê²½ (ì\9b\90ê·¼ì\84  ê°\81ë\8f\84)"
 
 #. status text
 #: ../src/box3d-context.cpp:638
 msgid "<b>3D Box</b>; with <b>Shift</b> to extrude along the Z axis"
-msgstr ""
+msgstr "<b>3D 상자</b>; <b>Shift</b> Z축을 따라 밀어내기"
 
 #: ../src/box3d-context.cpp:662
-#, fuzzy
 msgid "Create 3D box"
-msgstr "중심선"
+msgstr "3D 상자 생성"
 
 #: ../src/box3d.cpp:315
-#, fuzzy
 msgid "<b>3D Box</b>"
-msgstr "<b>L:</b>"
+msgstr "<b>3D 상자</b>"
 
 #: ../src/connector-context.cpp:522
 msgid "Creating new connector"
@@ -81,18 +77,16 @@ msgstr "새 연결자 생성"
 
 #: ../src/connector-context.cpp:751
 msgid "Connector endpoint drag cancelled."
-msgstr ""
+msgstr "연결자 끝점 끌기 취소."
 
 #: ../src/connector-context.cpp:799
-#, fuzzy
 msgid "Reroute connector"
-msgstr "ì\83\88 ì\97°ê²°ì\9e\90 ì\83\9dì\84±"
+msgstr "ì\97°ê²°ì\9e\90 ë\8b¤ì\8b\9c ë£¨í\8a¸ ì \95í\95¨"
 
 #. Flush pending updates
 #: ../src/connector-context.cpp:963
-#, fuzzy
 msgid "Create connector"
-msgstr "ì\83\88 ì\97°ê²°ì\9e\90 ì\83\9dì\84±"
+msgstr "연결자 생성"
 
 #: ../src/connector-context.cpp:987
 msgid "Finishing connector"
@@ -104,27 +98,31 @@ msgstr "<b>연결점</b>: 클릭하거나 드래그 하여 새로운 연결점
 
 #: ../src/connector-context.cpp:1203
 msgid "<b>Connector endpoint</b>: drag to reroute or connect to new shapes"
-msgstr ""
+msgstr "연결점 끝점: 루트를 재설정하거나 또는 새 모양으로 연결"
 
 #: ../src/connector-context.cpp:1314
 msgid "Select <b>at least one non-connector object</b>."
-msgstr ""
+msgstr "최소 한 개의 비-연결 객체 선택."
 
-#: ../src/connector-context.cpp:1319 ../src/widgets/toolbox.cpp:5554
+#: ../src/connector-context.cpp:1319
+#: ../src/widgets/toolbox.cpp:5554
 msgid "Make connectors avoid selected objects"
-msgstr ""
+msgstr "연결자가 선택객체를 피함"
 
-#: ../src/connector-context.cpp:1320 ../src/widgets/toolbox.cpp:5564
+#: ../src/connector-context.cpp:1320
+#: ../src/widgets/toolbox.cpp:5564
 msgid "Make connectors ignore selected objects"
-msgstr ""
+msgstr "연결자가 선택객체를 무시"
 
-#: ../src/context-fns.cpp:37 ../src/context-fns.cpp:66
+#: ../src/context-fns.cpp:37
+#: ../src/context-fns.cpp:66
 msgid "<b>Current layer is hidden</b>. Unhide it to be able to draw on it."
-msgstr ""
+msgstr "현재 레이어 숨겼음. 그릴 수 있도록 하기 위하여 보이기"
 
-#: ../src/context-fns.cpp:43 ../src/context-fns.cpp:72
+#: ../src/context-fns.cpp:43
+#: ../src/context-fns.cpp:72
 msgid "<b>Current layer is locked</b>. Unlock it to be able to draw on it."
-msgstr ""
+msgstr "현재 레이어 잠김. 그릴 수 있도록 하기 위하여 잠김 해제"
 
 #: ../src/desktop.cpp:782
 msgid "No previous zoom."
@@ -135,25 +133,23 @@ msgid "No next zoom."
 msgstr "다음 확대/축소 없음."
 
 #: ../src/desktop-events.cpp:175
-#, fuzzy
 msgid "Create guide"
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì\95\88ë\82´ì\84  ì\83\9dì\84±"
 
-#: ../src/desktop-events.cpp:221 ../src/desktop-events.cpp:275
+#: ../src/desktop-events.cpp:221
+#: ../src/desktop-events.cpp:275
 #: ../src/dialogs/guidelinedialog.cpp:127
-#, fuzzy
 msgid "Delete guide"
-msgstr "노드 삭제"
+msgstr "안내선 삭제"
 
 #: ../src/desktop-events.cpp:269
-#, fuzzy
 msgid "Move guide"
-msgstr "노드를 아래도"
+msgstr "안내선 이동"
 
 #: ../src/desktop-events.cpp:290
-#, fuzzy, c-format
+#, c-format
 msgid "<b>Guideline</b>: %s"
-msgstr "가이드 라인"
+msgstr "<b>안내선</b>: %s"
 
 #: ../src/dialogs/clonetiler.cpp:168
 msgid "<small>Nothing selected.</small>"
@@ -166,58 +162,52 @@ msgstr "<small>최소 하나 이상의 물체 선택됨.</small>"
 #: ../src/dialogs/clonetiler.cpp:181
 #, c-format
 msgid "<small>Object has <b>%d</b> tiled clones.</small>"
-msgstr ""
+msgstr "<small>객체가<b>%d</b>타일 복제본을 가짐</small>"
 
 #: ../src/dialogs/clonetiler.cpp:186
 msgid "<small>Object has no tiled clones.</small>"
-msgstr ""
+msgstr "<small>객체가 타일 복제본이 없음.</small>"
 
 #: ../src/dialogs/clonetiler.cpp:984
 msgid "Select <b>one object</b> whose tiled clones to unclump."
-msgstr ""
+msgstr "흩트리기 위하여 타일 복제본 중 한 객체를 선택"
 
 #: ../src/dialogs/clonetiler.cpp:1006
 msgid "Unclump tiled clones"
-msgstr ""
+msgstr "타일 복제본을 흩트림"
 
 #: ../src/dialogs/clonetiler.cpp:1036
 msgid "Select <b>one object</b> whose tiled clones to remove."
-msgstr ""
+msgstr "제거하기 위하여 타일 복제본의 한 객체를 선택"
 
 #: ../src/dialogs/clonetiler.cpp:1059
-#, fuzzy
 msgid "Delete tiled clones"
-msgstr "선택부분 지우기"
+msgstr "타일 복제본 삭제"
 
-#: ../src/dialogs/clonetiler.cpp:1105 ../src/selection-chemistry.cpp:1818
+#: ../src/dialogs/clonetiler.cpp:1105
+#: ../src/selection-chemistry.cpp:1818
 msgid "Select an <b>object</b> to clone."
 msgstr "클론으로 만들 <b>객체</b>를 선택"
 
 #: ../src/dialogs/clonetiler.cpp:1111
-msgid ""
-"If you want to clone several objects, <b>group</b> them and <b>clone the "
-"group</b>."
-msgstr ""
-"만약에 여러 객체의 복사본을 만들고 싶다면, 그 객체들을 <b>그룹</b> 으로 묶고"
-"그 <b>그룹의 복사본</b>을 만드세요."
+msgid "If you want to clone several objects, <b>group</b> them and <b>clone the group</b>."
+msgstr "만약에 여러 객체의 복사본을 만들고 싶다면, 그 객체들을 <b>그룹</b> 으로 묶고그 <b>그룹의 복사본</b>을 만드세요."
 
 #: ../src/dialogs/clonetiler.cpp:1120
-#, fuzzy
 msgid "<small>Creating tiled clones...</small>"
-msgstr "<small>선택된 것이 없음.</small>"
+msgstr "<small>타일 복제본 생성 중...</small>"
 
 #: ../src/dialogs/clonetiler.cpp:1527
-#, fuzzy
 msgid "Create tiled clones"
-msgstr "중심선"
+msgstr "타일 복제본 생성"
 
 #: ../src/dialogs/clonetiler.cpp:1710
 msgid "<small>Per row:</small>"
-msgstr ""
+msgstr "<small>줄 당:</small>"
 
 #: ../src/dialogs/clonetiler.cpp:1723
 msgid "<small>Per column:</small>"
-msgstr ""
+msgstr "<small>열 당:</small>"
 
 #: ../src/dialogs/clonetiler.cpp:1731
 msgid "<small>Randomize:</small>"
@@ -225,7 +215,7 @@ msgstr "<small>임의추출:</small>"
 
 #: ../src/dialogs/clonetiler.cpp:1885
 msgid "_Symmetry"
-msgstr ""
+msgstr "대칭(_S)"
 
 #. TRANSLATORS: For the following 17 symmetry groups, see
 #. * http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples);
@@ -234,12 +224,12 @@ msgstr ""
 #.
 #: ../src/dialogs/clonetiler.cpp:1893
 msgid "Select one of the 17 symmetry groups for the tiling"
-msgstr ""
+msgstr "타일을 위하여 17 대칭 그룹의 한 개를 선택"
 
 #. TRANSLATORS: "translation" means "shift" / "displacement" here.
 #: ../src/dialogs/clonetiler.cpp:1904
 msgid "<b>P1</b>: simple translation"
-msgstr "<b>P1</b>: 간단한 번역"
+msgstr "<b>P1</b>: 간단한 이동"
 
 #: ../src/dialogs/clonetiler.cpp:1905
 msgid "<b>P2</b>: 180&#176; rotation"
@@ -293,11 +283,11 @@ msgstr "<b>P3</b>: 120&#176; 회전"
 
 #: ../src/dialogs/clonetiler.cpp:1919
 msgid "<b>P31M</b>: reflection + 120&#176; rotation, dense"
-msgstr "<b>P31M</b>: 반사 + 120&#176; 회전, 진한"
+msgstr "<b>P31M</b>: 반사 + 120&#176; 회전, 밀집"
 
 #: ../src/dialogs/clonetiler.cpp:1920
 msgid "<b>P3M1</b>: reflection + 120&#176; rotation, sparse"
-msgstr "<b>P31M</b>: ë°\98ì\82¬ + 120&#176; í\9a\8cì \84, ì\98\85ì\9d\80"
+msgstr "<b>P31M</b>: ë°\98ì\82¬ + 120&#176; í\9a\8cì \84, ì\98\85ì\9d\8c"
 
 #: ../src/dialogs/clonetiler.cpp:1921
 msgid "<b>P6</b>: 60&#176; rotation"
@@ -309,131 +299,132 @@ msgstr "<b>P6M</b>: 반사 +60&#176; 회전"
 
 #: ../src/dialogs/clonetiler.cpp:1950
 msgid "S_hift"
-msgstr "Shift(_h)"
+msgstr "이동(_H)"
 
 #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount
 #: ../src/dialogs/clonetiler.cpp:1960
 #, no-c-format
 msgid "<b>Shift X:</b>"
-msgstr "<b>Shift·X:</b>"
+msgstr "<b>이동 X:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:1968
 #, no-c-format
 msgid "Horizontal shift per row (in % of tile width)"
-msgstr ""
+msgstr "줄 당 수평 이동  (타일 폭  %)"
 
 #: ../src/dialogs/clonetiler.cpp:1976
 #, no-c-format
 msgid "Horizontal shift per column (in % of tile width)"
-msgstr ""
+msgstr "열 당 수평 이동  (타일 폭  %)"
 
 #: ../src/dialogs/clonetiler.cpp:1983
 msgid "Randomize the horizontal shift by this percentage"
-msgstr ""
+msgstr "이 백분율에 의해 수평 이동을 무작위함"
 
 #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount
 #: ../src/dialogs/clonetiler.cpp:1993
 #, no-c-format
 msgid "<b>Shift Y:</b>"
-msgstr "<b>Shift·Y:</b>"
+msgstr "<b>이동 Y:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:2001
 #, no-c-format
 msgid "Vertical shift per row (in % of tile height)"
-msgstr ""
+msgstr "줄 당 수평 이동( 타일 높이 %)"
 
 #: ../src/dialogs/clonetiler.cpp:2009
 #, no-c-format
 msgid "Vertical shift per column (in % of tile height)"
-msgstr ""
+msgstr "열 당 수직 이동( 타일 높이 %)"
 
 #: ../src/dialogs/clonetiler.cpp:2016
 msgid "Randomize the vertical shift by this percentage"
-msgstr ""
+msgstr "이 백분율에 의해 수직 이동을 무작위"
 
-#: ../src/dialogs/clonetiler.cpp:2024 ../src/dialogs/clonetiler.cpp:2172
+#: ../src/dialogs/clonetiler.cpp:2024
+#: ../src/dialogs/clonetiler.cpp:2172
 msgid "<b>Exponent:</b>"
-msgstr ""
+msgstr "<b>지수:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:2031
 msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)"
-msgstr ""
+msgstr "줄 간격이 고르게 확대 (<1) 또는 축소 (>1)"
 
 #: ../src/dialogs/clonetiler.cpp:2038
 msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)"
-msgstr ""
+msgstr "열 간격이 고르게 확대 (<1) 또는 축소 (>1)"
 
 #. TRANSLATORS: "Alternate" is a verb here
-#: ../src/dialogs/clonetiler.cpp:2046 ../src/dialogs/clonetiler.cpp:2216
-#: ../src/dialogs/clonetiler.cpp:2293 ../src/dialogs/clonetiler.cpp:2369
-#: ../src/dialogs/clonetiler.cpp:2418 ../src/dialogs/clonetiler.cpp:2549
+#: ../src/dialogs/clonetiler.cpp:2046
+#: ../src/dialogs/clonetiler.cpp:2216
+#: ../src/dialogs/clonetiler.cpp:2293
+#: ../src/dialogs/clonetiler.cpp:2369
+#: ../src/dialogs/clonetiler.cpp:2418
+#: ../src/dialogs/clonetiler.cpp:2549
 msgid "<small>Alternate:</small>"
-msgstr ""
+msgstr "<small>대체:</small>"
 
 #: ../src/dialogs/clonetiler.cpp:2052
 msgid "Alternate the sign of shifts for each row"
-msgstr ""
+msgstr "각 줄에서 이동 표시 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2057
 msgid "Alternate the sign of shifts for each column"
-msgstr ""
+msgstr "각 열에서 이동 표시 변경"
 
 #. TRANSLATORS: "Cumulate" is a verb here
-#: ../src/dialogs/clonetiler.cpp:2064 ../src/dialogs/clonetiler.cpp:2234
+#: ../src/dialogs/clonetiler.cpp:2064
+#: ../src/dialogs/clonetiler.cpp:2234
 #: ../src/dialogs/clonetiler.cpp:2311
-#, fuzzy
 msgid "<small>Cumulate:</small>"
-msgstr "<small>ì\9e\84ì\9d\98ì¶\94ì¶\9c:</small>"
+msgstr "<small>ì\8c\93ì\95\84ì\98¬ë¦¼:</small>"
 
 #: ../src/dialogs/clonetiler.cpp:2070
-#, fuzzy
 msgid "Cumulate the shifts for each row"
-msgstr "이 각도로 각각의 줄에서 타일을 회전"
+msgstr "각 줄의 이동 축적"
 
 #: ../src/dialogs/clonetiler.cpp:2075
-#, fuzzy
 msgid "Cumulate the shifts for each column"
-msgstr "이 각도로 각각의 열에서 타일을 회전"
+msgstr "각 열의 이동 축적"
 
 #. TRANSLATORS: "Cumulate" is a verb here
 #: ../src/dialogs/clonetiler.cpp:2082
-#, fuzzy
 msgid "<small>Exclude tile:</small>"
-msgstr "<small>임의추출:</small>"
+msgstr "<small>타일 제외:</small>"
 
 #: ../src/dialogs/clonetiler.cpp:2088
 msgid "Exclude tile height in shift"
-msgstr ""
+msgstr "이동에서 타일 높이 제외"
 
 #: ../src/dialogs/clonetiler.cpp:2093
 msgid "Exclude tile width in shift"
-msgstr ""
+msgstr "이동에서 타일 폭 제외"
 
 #: ../src/dialogs/clonetiler.cpp:2102
 msgid "Sc_ale"
-msgstr "확대/축소(_a)"
+msgstr "비율(_A)"
 
 #: ../src/dialogs/clonetiler.cpp:2110
 msgid "<b>Scale X:</b>"
-msgstr "<b>스케일 X:</b>"
+msgstr "<b>비율 X:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:2118
 #, no-c-format
 msgid "Horizontal scale per row (in % of tile width)"
-msgstr ""
+msgstr "줄 당 수평 비율(파일 폭 %)"
 
 #: ../src/dialogs/clonetiler.cpp:2126
 #, no-c-format
 msgid "Horizontal scale per column (in % of tile width)"
-msgstr ""
+msgstr "열 당 수평 비율( 타일 폭 %)"
 
 #: ../src/dialogs/clonetiler.cpp:2133
 msgid "Randomize the horizontal scale by this percentage"
-msgstr ""
+msgstr "이 백분율에 으하여 수평 비율을 임의화"
 
 #: ../src/dialogs/clonetiler.cpp:2141
 msgid "<b>Scale Y:</b>"
-msgstr "<b>스케일 Y:</b>"
+msgstr "<b>비율 Y:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:2149
 #, no-c-format
@@ -451,39 +442,36 @@ msgstr "이 퍼센트에 의한 수직 스케일 임의 추출"
 
 #: ../src/dialogs/clonetiler.cpp:2179
 msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)"
-msgstr ""
+msgstr "줄 비율이 균일한지 확대 (<1) 또는 축소(>1)"
 
 #: ../src/dialogs/clonetiler.cpp:2186
 msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)"
-msgstr ""
+msgstr "열 비율이 균일한지 확대 (<1) 또는 축소(>1)"
 
 #: ../src/dialogs/clonetiler.cpp:2194
-#, fuzzy
 msgid "<b>Base:</b>"
-msgstr "<b>H:</b>"
+msgstr "<b>기본:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2201 ../src/dialogs/clonetiler.cpp:2208
-msgid ""
-"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"
-msgstr ""
+#: ../src/dialogs/clonetiler.cpp:2201
+#: ../src/dialogs/clonetiler.cpp:2208
+msgid "Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"
+msgstr "로그 나선의 기본: 미사용(0), 확대(<1) 또는 축소(>1)"
 
 #: ../src/dialogs/clonetiler.cpp:2222
 msgid "Alternate the sign of scales for each row"
-msgstr ""
+msgstr "각 줄에 대한 비율 표시를 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2227
 msgid "Alternate the sign of scales for each column"
-msgstr ""
+msgstr "각 열에 대한 비율 표시를 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2240
-#, fuzzy
 msgid "Cumulate the scales for each row"
-msgstr "이 각도로 각각의 줄에서 타일을 회전"
+msgstr "각 줄의 비율 축적"
 
 #: ../src/dialogs/clonetiler.cpp:2245
-#, fuzzy
 msgid "Cumulate the scales for each column"
-msgstr "이 각도로 각각의 열에서 타일을 회전"
+msgstr "각 열의 비율 축적"
 
 #: ../src/dialogs/clonetiler.cpp:2254
 msgid "_Rotation"
@@ -516,53 +504,44 @@ msgid "Alternate the rotation direction for each column"
 msgstr "각 열 마다 다른 방향의 회전"
 
 #: ../src/dialogs/clonetiler.cpp:2317
-#, fuzzy
 msgid "Cumulate the rotation for each row"
-msgstr "각 줄마다 다른 방향의 회전"
+msgstr "각 줄의 회전 축적"
 
 #: ../src/dialogs/clonetiler.cpp:2322
-#, fuzzy
 msgid "Cumulate the rotation for each column"
-msgstr "각 열 마다 다른 방향의 회전"
+msgstr "각 열의 회전 축적"
 
 #: ../src/dialogs/clonetiler.cpp:2331
-#, fuzzy
 msgid "_Blur & opacity"
-msgstr "주 투명도"
+msgstr "흐림 & 불투명도(_B)"
 
 #: ../src/dialogs/clonetiler.cpp:2340
-#, fuzzy
 msgid "<b>Blur:</b>"
-msgstr "<b>L:</b>"
+msgstr "<b>흐림:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:2347
-#, fuzzy
 msgid "Blur tiles by this percentage for each row"
-msgstr "이 퍼센트에 따라 각열에 불투명도 감소"
+msgstr "각 줄에 대하여 이 백분율로 타일 흐림"
 
 #: ../src/dialogs/clonetiler.cpp:2354
-#, fuzzy
 msgid "Blur tiles by this percentage for each column"
-msgstr "이 퍼센트에 따라 각줄에 불투명도 감소"
+msgstr "각 열에 대하여 이 백분율로 타일 흐림"
 
 #: ../src/dialogs/clonetiler.cpp:2361
-#, fuzzy
 msgid "Randomize the tile blur by this percentage"
-msgstr "이 퍼센트에 의한 타일의 색조 임의 추출"
+msgstr "이 백분율로 흐림을 임의화"
 
 #: ../src/dialogs/clonetiler.cpp:2375
-#, fuzzy
 msgid "Alternate the sign of blur change for each row"
-msgstr "각 줄마다 다른 방향의 회전"
+msgstr "각 줄의 흐림 변경 표시를 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2380
-#, fuzzy
 msgid "Alternate the sign of blur change for each column"
-msgstr "각 열 마다 다른 방향의 회전"
+msgstr "각 열의 흐림 변경 표시를 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2389
 msgid "<b>Fade out:</b>"
-msgstr ""
+msgstr "<b>점차 흐려짐:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:2396
 msgid "Decrease tile opacity by this percentage for each row"
@@ -574,37 +553,35 @@ msgstr "이 퍼센트에 따라 각줄에 불투명도 감소"
 
 #: ../src/dialogs/clonetiler.cpp:2410
 msgid "Randomize the tile opacity by this percentage"
-msgstr "이 퍼센트에 따라 타일의 불투명도 임의 추출"
+msgstr "백분율로 불투명도 랜덤화"
 
 #: ../src/dialogs/clonetiler.cpp:2424
 msgid "Alternate the sign of opacity change for each row"
-msgstr ""
+msgstr "각 줄에 대한 불투명도 변경 표시를 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2429
 msgid "Alternate the sign of opacity change for each column"
-msgstr ""
+msgstr "각 열에 대한 불투명도 변경 표시를 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2437
 msgid "Co_lor"
-msgstr "색(_l)"
+msgstr "색(_l)"
 
 #: ../src/dialogs/clonetiler.cpp:2442
 msgid "Initial color: "
-msgstr "ì\9d¸ì\8b\9dë\90\9c ì\83\89: "
+msgstr "ì´\88기 ì\83\89ì\83\81: "
 
 #: ../src/dialogs/clonetiler.cpp:2446
 msgid "Initial color of tiled clones"
-msgstr ""
+msgstr "타일 복제물의 초기 색상"
 
 #: ../src/dialogs/clonetiler.cpp:2446
-msgid ""
-"Initial color for clones (works only if the original has unset fill or "
-"stroke)"
+msgid "Initial color for clones (works only if the original has unset fill or stroke)"
 msgstr ""
 
 #: ../src/dialogs/clonetiler.cpp:2461
 msgid "<b>H:</b>"
-msgstr "<b>H:</b>"
+msgstr "<b>색조:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:2468
 msgid "Change the tile hue by this percentage for each row"
@@ -620,63 +597,62 @@ msgstr "이 퍼센트에 의한 타일의 색조 임의 추출"
 
 #: ../src/dialogs/clonetiler.cpp:2491
 msgid "<b>S:</b>"
-msgstr "<b>S:</b>"
+msgstr "<b>채도:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:2498
 msgid "Change the color saturation by this percentage for each row"
-msgstr "색채도를 각 줄의 퍼센트를 조절해서 수정"
+msgstr "각 줄을 위한 백분율에 의한 색상 채도 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2505
 msgid "Change the color saturation by this percentage for each column"
-msgstr "색채도를 각 열의 퍼센트를 조절해서 수정"
+msgstr "각 단을 위한 백분율에 의한 색상 채도 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2512
 msgid "Randomize the color saturation by this percentage"
-msgstr "이 퍼센트에 의한 불특정 색채도 설정"
+msgstr "백분율에 의한 색상 채도 랜덤화"
 
 #: ../src/dialogs/clonetiler.cpp:2520
 msgid "<b>L:</b>"
-msgstr "<b>L:</b>"
+msgstr "<b>명도:</b>"
 
 #: ../src/dialogs/clonetiler.cpp:2527
 msgid "Change the color lightness by this percentage for each row"
-msgstr "색 명도를 각줄의 퍼센트를 조절해서 수정"
+msgstr "각 줄을 위한 백분율에 의한 색상 명도 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2534
 msgid "Change the color lightness by this percentage for each column"
-msgstr "색 명도를 각열의 퍼센트를 조절해서 수정"
+msgstr "각 단을 위한 백분율에 의한 색상 명도 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2541
 msgid "Randomize the color lightness by this percentage"
-msgstr "이 퍼센트에 의한 불특정 색명도 설정"
+msgstr "백분율에 의한 색상 명도 랜덤화"
 
 #: ../src/dialogs/clonetiler.cpp:2555
 msgid "Alternate the sign of color changes for each row"
-msgstr ""
+msgstr "각 줄에 대한 색상 변화 표시를 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2560
 msgid "Alternate the sign of color changes for each column"
-msgstr ""
+msgstr "각 열에 대한 색상 변화 표시를 변경"
 
 #: ../src/dialogs/clonetiler.cpp:2568
 msgid "_Trace"
-msgstr "모양기(_T)"
+msgstr "모양 따오기(_T)"
 
 #: ../src/dialogs/clonetiler.cpp:2575
 msgid "Trace the drawing under the tiles"
-msgstr "타일 아래있는 그림 따오기"
+msgstr "타일 아래 그림 따오기"
 
 #: ../src/dialogs/clonetiler.cpp:2579
-msgid ""
-"For each clone, pick a value from the drawing in that clone's location and "
-"apply it to the clone"
+msgid "For each clone, pick a value from the drawing in that clone's location and apply it to the clone"
 msgstr ""
 
 #: ../src/dialogs/clonetiler.cpp:2593
 msgid "1. Pick from the drawing:"
-msgstr "1. ê·¸ë¦¼ì\9d\84 ì\84 í\83\9dí\95\98ì\84¸ì\9a\94:"
+msgstr "1. ê·¸ë¦¼ì\97\90ì\84\9c ì\84 í\83\9d:"
 
-#: ../src/dialogs/clonetiler.cpp:2604 ../src/dialogs/clonetiler.cpp:2751
+#: ../src/dialogs/clonetiler.cpp:2604
+#: ../src/dialogs/clonetiler.cpp:2751
 #: ../src/extension/internal/bitmap/colorize.cpp:51
 #: ../share/extensions/color_brighter.inx.h:2
 #: ../share/extensions/color_custom.inx.h:2
@@ -697,13 +673,14 @@ msgstr "1. 그림을 선택하세요:"
 #: ../share/extensions/color_replace.inx.h:2
 #: ../share/extensions/color_rgbbarrel.inx.h:1
 msgid "Color"
-msgstr "색"
+msgstr "색"
 
 #: ../src/dialogs/clonetiler.cpp:2605
 msgid "Pick the visible color and opacity"
-msgstr "색과 투명도 선택 "
+msgstr "볼 수 있는 색상과 불투명도 선택 "
 
-#: ../src/dialogs/clonetiler.cpp:2612 ../src/dialogs/clonetiler.cpp:2761
+#: ../src/dialogs/clonetiler.cpp:2612
+#: ../src/dialogs/clonetiler.cpp:2761
 #: ../src/extension/internal/bitmap/opacity.cpp:37
 #: ../src/extension/internal/bitmap/opacity.cpp:39
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2241
@@ -713,11 +690,11 @@ msgstr "불투명도"
 
 #: ../src/dialogs/clonetiler.cpp:2613
 msgid "Pick the total accumulated opacity"
-msgstr ""
+msgstr "전체 축적된 불투명도 조정"
 
 #: ../src/dialogs/clonetiler.cpp:2620
 msgid "R"
-msgstr "R"
+msgstr "빨강"
 
 #: ../src/dialogs/clonetiler.cpp:2621
 msgid "Pick the Red component of the color"
@@ -725,69 +702,69 @@ msgstr "빨간색  설정을 선택하세요"
 
 #: ../src/dialogs/clonetiler.cpp:2628
 msgid "G"
-msgstr "G"
+msgstr "녹색"
 
 #: ../src/dialogs/clonetiler.cpp:2629
 msgid "Pick the Green component of the color"
-msgstr "녹색 설정을 선택하세요"
+msgstr "색상 녹색 요소 선택"
 
 #: ../src/dialogs/clonetiler.cpp:2636
 msgid "B"
-msgstr "B"
+msgstr "파랑"
 
 #: ../src/dialogs/clonetiler.cpp:2637
 msgid "Pick the Blue component of the color"
-msgstr "파랑색 설정을 선택하세요"
+msgstr "색상 파랑 요소 선택"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
 #: ../src/dialogs/clonetiler.cpp:2646
 msgid "clonetiler|H"
-msgstr ""
+msgstr "복제타일러|색조"
 
 #: ../src/dialogs/clonetiler.cpp:2647
 msgid "Pick the hue of the color"
-msgstr "ì\83\89ì\9d\98 ì\83\89ì\83\81 ë¥¼ 선택"
+msgstr "ì\83\89ì\83\81 ì\83\89ì¡° 선택"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
 #: ../src/dialogs/clonetiler.cpp:2656
 msgid "clonetiler|S"
-msgstr ""
+msgstr "복제타일러|채도"
 
 #: ../src/dialogs/clonetiler.cpp:2657
 msgid "Pick the saturation of the color"
-msgstr "ì\83\89ì\97\90 ë\94°ë¥¸ 채도 선택"
+msgstr "ì\83\89ì\83\81 채도 선택"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
 #: ../src/dialogs/clonetiler.cpp:2666
 msgid "clonetiler|L"
-msgstr ""
+msgstr "복제타일러|명도"
 
 #: ../src/dialogs/clonetiler.cpp:2667
 msgid "Pick the lightness of the color"
-msgstr "ì\83\89ì\9d\98 ë°\9d기를 ì\84 í\83\9dí\95\98ì\84¸ì\9a\94"
+msgstr "ì\83\89ì\83\81 ëª\85ë\8f\84 ì\84 í\83\9d"
 
 #: ../src/dialogs/clonetiler.cpp:2677
 msgid "2. Tweak the picked value:"
-msgstr ""
+msgstr "2. 조정 값을 조정:"
 
 #: ../src/dialogs/clonetiler.cpp:2687
 msgid "Gamma-correct:"
-msgstr "감사 수정:"
+msgstr "감마-보정:"
 
 #: ../src/dialogs/clonetiler.cpp:2692
 msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)"
-msgstr ""
+msgstr "선택값을 위쪽으로 (>0) 또는 아래쪽으로(<0)으로 중간 범위를 이동"
 
 #: ../src/dialogs/clonetiler.cpp:2699
 msgid "Randomize:"
-msgstr "램덤:"
+msgstr "임의 추출:"
 
 #: ../src/dialogs/clonetiler.cpp:2704
 msgid "Randomize the picked value by this percentage"
-msgstr "이 퍼센트에 따른 선택된 값 임의 추출"
+msgstr "백분율에 따른 선택 값 임의 추출"
 
 #: ../src/dialogs/clonetiler.cpp:2711
 msgid "Invert:"
@@ -795,20 +772,18 @@ msgstr "반대:"
 
 #: ../src/dialogs/clonetiler.cpp:2715
 msgid "Invert the picked value"
-msgstr "ì\84 í\83\9dë\90\9c ê°\92 ë\92¤ì§\91기:"
+msgstr "ì\84 í\83\9dë\90\9c ê°\92 ë°\98ë\8c\80ë¡\9c:"
 
 #: ../src/dialogs/clonetiler.cpp:2721
 msgid "3. Apply the value to the clones':"
-msgstr "3. ë³µì\82¬본에 이 값을 적용"
+msgstr "3. ë³µì \9c본에 이 값을 적용"
 
 #: ../src/dialogs/clonetiler.cpp:2731
 msgid "Presence"
-msgstr ""
+msgstr "있음"
 
 #: ../src/dialogs/clonetiler.cpp:2734
-msgid ""
-"Each clone is created with the probability determined by the picked value in "
-"that point"
+msgid "Each clone is created with the probability determined by the picked value in that point"
 msgstr ""
 
 #: ../src/dialogs/clonetiler.cpp:2741
@@ -821,9 +796,7 @@ msgid "Each clone's size is determined by the picked value in that point"
 msgstr ""
 
 #: ../src/dialogs/clonetiler.cpp:2754
-msgid ""
-"Each clone is painted by the picked color (the original must have unset fill "
-"or stroke)"
+msgid "Each clone is painted by the picked color (the original must have unset fill or stroke)"
 msgstr ""
 
 #: ../src/dialogs/clonetiler.cpp:2764
@@ -832,19 +805,19 @@ msgstr ""
 
 #: ../src/dialogs/clonetiler.cpp:2791
 msgid "How many rows in the tiling"
-msgstr "타일로 할 줄 숫자는"
+msgstr "타일에서 얼마나 많은 줄을"
 
 #: ../src/dialogs/clonetiler.cpp:2811
 msgid "How many columns in the tiling"
-msgstr "타일로 할 열숫자는."
+msgstr "타일에서 얼마나 많은 단을"
 
 #: ../src/dialogs/clonetiler.cpp:2841
 msgid "Width of the rectangle to be filled"
-msgstr "ì±\84ì\9a¸ 사각형 폭"
+msgstr "ì±\84ì\9b\80 사각형 폭"
 
 #: ../src/dialogs/clonetiler.cpp:2866
 msgid "Height of the rectangle to be filled"
-msgstr "ì±\84ì\9a´ 사각형 높이"
+msgstr "ì±\84ì\9b\80 사각형 높이"
 
 #: ../src/dialogs/clonetiler.cpp:2881
 msgid "Rows, columns: "
@@ -852,7 +825,7 @@ msgstr "줄, 열: "
 
 #: ../src/dialogs/clonetiler.cpp:2882
 msgid "Create the specified number of rows and columns"
-msgstr "ì \95ì\9d\98ë\90\9c ì\88«ì\9e\90ì\9d\98 ì\97´ê³¼ ì¤\84ì\9d\84 생성"
+msgstr "ì \95ì\9d\98ë\90\9c ì¤\84ê³¼ ì\97´ ê°¯ì\88\98를 생성"
 
 #: ../src/dialogs/clonetiler.cpp:2891
 msgid "Width, height: "
@@ -860,16 +833,14 @@ msgstr "폭, 높이: "
 
 #: ../src/dialogs/clonetiler.cpp:2892
 msgid "Fill the specified width and height with the tiling"
-msgstr "타일된 정의된 높이와 넓이를 채움"
+msgstr "타일의지정 높이와 폭을 채움"
 
 #: ../src/dialogs/clonetiler.cpp:2908
 msgid "Use saved size and position of the tile"
-msgstr "í\83\80ì\9d¼ì\8b\9c ì \80ì\9e¥ë\90\9c 크기와 위치 이용"
+msgstr "í\83\80ì\9d¼ì\9d\98 ì \80ì\9e¥ 크기와 위치 이용"
 
 #: ../src/dialogs/clonetiler.cpp:2911
-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"
+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/dialogs/clonetiler.cpp:2935
@@ -887,7 +858,7 @@ msgstr ""
 #. So unclumping is the process of spreading a number of objects out more evenly.
 #: ../src/dialogs/clonetiler.cpp:2952
 msgid " _Unclump "
-msgstr ""
+msgstr " _Unclump "
 
 #: ../src/dialogs/clonetiler.cpp:2953
 msgid "Spread out clones to reduce clumping; can be applied repeatedly"
@@ -895,7 +866,7 @@ msgstr ""
 
 #: ../src/dialogs/clonetiler.cpp:2959
 msgid " Re_move "
-msgstr " 삭제(_m) "
+msgstr " 삭제(_M) "
 
 #: ../src/dialogs/clonetiler.cpp:2960
 msgid "Remove existing tiled clones of the selected object (siblings only)"
@@ -903,13 +874,11 @@ msgstr ""
 
 #: ../src/dialogs/clonetiler.cpp:2976
 msgid " R_eset "
-msgstr " 리셋(_e) "
+msgstr "초기화(_E) "
 
 #. TRANSLATORS: "change" is a noun here
 #: ../src/dialogs/clonetiler.cpp:2978
-msgid ""
-"Reset all shifts, scales, rotates, opacity and color changes in the dialog "
-"to zero"
+msgid "Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero"
 msgstr ""
 
 #: ../src/dialogs/debugdialog.cpp:135
@@ -917,50 +886,59 @@ msgid "Messages"
 msgstr "메세지"
 
 #. ## Add a menu for clear()
-#: ../src/dialogs/debugdialog.cpp:141 ../src/menus-skeleton.h:16
-#: ../src/ui/dialog/messages.cpp:54 ../src/ui/dialog/scriptdialog.cpp:208
+#: ../src/dialogs/debugdialog.cpp:141
+#: ../src/menus-skeleton.h:16
+#: ../src/ui/dialog/messages.cpp:54
+#: ../src/ui/dialog/scriptdialog.cpp:208
 msgid "_File"
 msgstr "파일(_F)"
 
 #. TRANSLATORS: "Clear" is a verb here
-#: ../src/dialogs/debugdialog.cpp:142 ../src/dialogs/find.cpp:753
-#: ../src/ui/dialog/find.cpp:85 ../src/ui/dialog/messages.cpp:55
+#: ../src/dialogs/debugdialog.cpp:142
+#: ../src/dialogs/find.cpp:753
+#: ../src/ui/dialog/find.cpp:85
+#: ../src/ui/dialog/messages.cpp:55
 #: ../src/ui/dialog/scriptdialog.cpp:209
 msgid "_Clear"
-msgstr "ì²­ì\86\8c(_C)"
+msgstr "ì \9cê±°(_C)"
 
-#: ../src/dialogs/debugdialog.cpp:144 ../src/ui/dialog/messages.cpp:57
+#: ../src/dialogs/debugdialog.cpp:144
+#: ../src/ui/dialog/messages.cpp:57
 msgid "Capture log messages"
 msgstr "로그 메세지 저장"
 
-#: ../src/dialogs/debugdialog.cpp:146 ../src/ui/dialog/messages.cpp:59
+#: ../src/dialogs/debugdialog.cpp:146
+#: ../src/ui/dialog/messages.cpp:59
 msgid "Release log messages"
-msgstr "로그 메세지 ë\82´ë³´ë\84¤ê¸°"
+msgstr "로그 메세지 ì \9cê±°"
 
 #: ../src/dialogs/eek-color-def.cpp:56
 #: ../src/widgets/gradient-selector.cpp:162
 msgid "none"
 msgstr "없음"
 
-#: ../src/dialogs/export.cpp:143 ../src/verbs.cpp:2532
+#: ../src/dialogs/export.cpp:143
+#: ../src/verbs.cpp:2532
 msgid "_Page"
 msgstr "페이지(_P)"
 
-#: ../src/dialogs/export.cpp:143 ../src/verbs.cpp:2536
+#: ../src/dialogs/export.cpp:143
+#: ../src/verbs.cpp:2536
 msgid "_Drawing"
-msgstr "그리기(_D)"
+msgstr "그림(_D)"
 
-#: ../src/dialogs/export.cpp:143 ../src/verbs.cpp:2538
+#: ../src/dialogs/export.cpp:143
+#: ../src/verbs.cpp:2538
 msgid "_Selection"
 msgstr "선택(_S)"
 
 #: ../src/dialogs/export.cpp:143
 msgid "_Custom"
-msgstr "개인적(_C)"
+msgstr "사용자(_C)"
 
 #: ../src/dialogs/export.cpp:267
 msgid "<big><b>Export area</b></big>"
-msgstr "<big><b>출력 영역</b></big>"
+msgstr "<big><b>내보내기 구간</b></big>"
 
 #: ../src/dialogs/export.cpp:281
 msgid "Units:"
@@ -975,10 +953,13 @@ msgid "x_1:"
 msgstr "x_1:"
 
 #. Stroke width
-#: ../src/dialogs/export.cpp:319 ../src/dialogs/object-attributes.cpp:60
+#: ../src/dialogs/export.cpp:319
+#: ../src/dialogs/object-attributes.cpp:60
 #: ../src/dialogs/object-attributes.cpp:68
-#: ../src/dialogs/stroke-style.cpp:1090 ../src/widgets/toolbox.cpp:3241
-#: ../src/widgets/toolbox.cpp:3645 ../src/widgets/toolbox.cpp:4318
+#: ../src/dialogs/stroke-style.cpp:1090
+#: ../src/widgets/toolbox.cpp:3241
+#: ../src/widgets/toolbox.cpp:3645
+#: ../src/widgets/toolbox.cpp:4318
 msgid "Width:"
 msgstr "폭:"
 
@@ -990,7 +971,8 @@ msgstr "_y0:"
 msgid "y_1:"
 msgstr "y_1:"
 
-#: ../src/dialogs/export.cpp:335 ../src/dialogs/export.cpp:495
+#: ../src/dialogs/export.cpp:335
+#: ../src/dialogs/export.cpp:495
 #: ../src/dialogs/object-attributes.cpp:61
 #: ../src/dialogs/object-attributes.cpp:69
 msgid "Height:"
@@ -1000,19 +982,22 @@ msgstr "높이:"
 msgid "<big><b>Bitmap size</b></big>"
 msgstr "<big><b>비트맵 크기</b></big>"
 
-#: ../src/dialogs/export.cpp:479 ../src/ui/widget/page-sizer.cpp:191
+#: ../src/dialogs/export.cpp:479
+#: ../src/ui/widget/page-sizer.cpp:191
 msgid "_Width:"
 msgstr "폭(_W):"
 
-#: ../src/dialogs/export.cpp:479 ../src/dialogs/export.cpp:495
+#: ../src/dialogs/export.cpp:479
+#: ../src/dialogs/export.cpp:495
 msgid "pixels at"
-msgstr "í\94½ì\85\80"
+msgstr "í\99\94ì\86\8c"
 
 #: ../src/dialogs/export.cpp:489
 msgid "dp_i"
-msgstr "dp_i"
+msgstr "DPI(_I)"
 
-#: ../src/dialogs/export.cpp:508 ../src/ui/dialog/inkscape-preferences.cpp:673
+#: ../src/dialogs/export.cpp:508
+#: ../src/ui/dialog/inkscape-preferences.cpp:673
 msgid "dpi"
 msgstr "dpi"
 
@@ -1023,362 +1008,392 @@ msgstr "<big><b>파일이름(_F)</b></big>"
 
 #: ../src/dialogs/export.cpp:590
 msgid "_Browse..."
-msgstr "브라우즈(B)..."
+msgstr "찾기(B)..."
 
 #: ../src/dialogs/export.cpp:619
-#, fuzzy
 msgid "Batch export all selected objects"
-msgstr "ì\84 í\83\9dë\90\80 ê°\9dì²´ì\9d\98 ë³µì\82¬ë³¸ ë§\8cë\93¤기"
+msgstr "ì \84ì²´ ì\84 í\83\9d ê°\9dì²´ ì\9d¼ê´\84 ë\82´ë³´ë\82´기"
 
 #: ../src/dialogs/export.cpp:623
-msgid ""
-"Export each selected object into its own PNG file, using export hints if any "
-"(caution, overwrites without asking!)"
+msgid "Export each selected object into its own PNG file, using export hints if any (caution, overwrites without asking!)"
 msgstr ""
 
-#: ../src/dialogs/export.cpp:631
-#, fuzzy
-msgid "Hide all except selected"
-msgstr "선택 상태 보존"
-
 #: ../src/dialogs/export.cpp:635
 msgid "In the exported image, hide all objects except those that are selected"
 msgstr ""
 
 #: ../src/dialogs/export.cpp:652
 msgid "_Export"
-msgstr "출력(_E):"
+msgstr "내보내기(_E):"
 
 #: ../src/dialogs/export.cpp:656
 msgid "Export the bitmap file with these settings"
 msgstr "이 설정 상태로 비트맵 파일 생성"
 
 #: ../src/dialogs/export.cpp:682
-#, fuzzy, c-format
+#, c-format
 msgid "Batch export %d selected object"
-msgid_plural "Batch export %d selected objects"
-msgstr[0] "선택됀 객체의 복사본 만들기"
-msgstr[1] "선택됀 객체의 복사본 만들기"
+msgstr "%d 선택 객체 일괄작업 내보내기"
 
 #: ../src/dialogs/export.cpp:1014
 msgid "Export in progress"
 msgstr "생성 중"
 
 #: ../src/dialogs/export.cpp:1084
-#, fuzzy, c-format
+#, c-format
 msgid "Exporting %d files"
-msgstr "생성중·%s·(%d·x·%d)"
+msgstr "%d 파일 내보내는 중"
 
-#: ../src/dialogs/export.cpp:1124 ../src/dialogs/export.cpp:1196
+#: ../src/dialogs/export.cpp:1124
+#: ../src/dialogs/export.cpp:1196
 #, c-format
 msgid "Could not export to filename %s.\n"
-msgstr "%s 파일명으로 생성을 할수 없습니다.\n"
+msgstr "%s 파일명으로 생성할 수 없습니다.\n"
 
 #: ../src/dialogs/export.cpp:1152
 msgid "You have to enter a filename"
-msgstr "파일이름을 적어야만 합니다."
+msgstr "파일명 입력(필수)"
 
 #: ../src/dialogs/export.cpp:1157
 msgid "The chosen area to be exported is invalid"
-msgstr "생성을 위해 선택된 지역이 잘못됨"
+msgstr "내보내기 위해 선택된 지역이 잘못됨"
 
 #: ../src/dialogs/export.cpp:1166
 #, c-format
 msgid "Directory %s does not exist or is not a directory.\n"
-msgstr "%s 디렉토리가 존제하지 않거나 디렉토리가 아닙니다.\n"
+msgstr "%s 폴더존제하지 않거나 폴더아닙니다.\n"
 
 #: ../src/dialogs/export.cpp:1182
-#, fuzzy, c-format
+#, c-format
 msgid "Exporting %s (%lu x %lu)"
-msgstr "생성중·%s·(%d·x·%d)"
+msgstr "%s (%lu x %lu) 내보내는 중"
 
 #: ../src/dialogs/export.cpp:1303
 msgid "Select a filename for exporting"
-msgstr "새로 생성을 위한 파일명을 선택하세요."
+msgstr "내보내기 위한 파일명 선택"
 
 #: ../src/dialogs/fill-style.cpp:283
 msgid "Change fill rule"
-msgstr ""
+msgstr "채움 규칙 변경"
 
-#: ../src/dialogs/fill-style.cpp:323 ../src/dialogs/fill-style.cpp:397
-#, fuzzy
+#: ../src/dialogs/fill-style.cpp:323
+#: ../src/dialogs/fill-style.cpp:397
 msgid "Set fill color"
-msgstr "ì\82½ì\9e\85í\95  í\8c\8cì\9d¼ ì\84 í\83\9d"
+msgstr "ì±\84ì\9b\80 ì\83\89ì\83\81 ì\84¤ì \95"
 
-#: ../src/dialogs/fill-style.cpp:385 ../src/ui/widget/selected-style.cpp:255
+#: ../src/dialogs/fill-style.cpp:385
+#: ../src/ui/widget/selected-style.cpp:255
 #: ../src/ui/widget/selected-style.cpp:479
 msgid "Remove fill"
 msgstr "채움 제거"
 
 #: ../src/dialogs/fill-style.cpp:466
-#, fuzzy
 msgid "Set gradient on fill"
-msgstr "ì\9e\84ì\9d\98ì\9d\98 ë\85¸ë\93\9c ê´\80리"
+msgstr "ì±\84ì\9b\80ì\97\90ì\84\9c ê·¸ë\9d¼ë\94\94ì\96¸í\8a¸ ì\84¤ì \95"
 
 #: ../src/dialogs/fill-style.cpp:513
-#, fuzzy
 msgid "Set pattern on fill"
-msgstr "반복 무늬 채움"
+msgstr "채움 패턴 설정"
 
 #. TRANSLATORS COMMENT: unset is a verb here
-#: ../src/dialogs/fill-style.cpp:528 ../src/ui/widget/selected-style.cpp:193
+#: ../src/dialogs/fill-style.cpp:528
+#: ../src/ui/widget/selected-style.cpp:193
 #: ../src/ui/widget/selected-style.cpp:251
 #: ../src/ui/widget/selected-style.cpp:497
 #: ../src/ui/widget/style-swatch.cpp:335
 msgid "Unset fill"
-msgstr ""
+msgstr "채움 설정 안함"
 
 #. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed
-#: ../src/dialogs/find.cpp:372 ../src/ui/dialog/find.cpp:436
-#, fuzzy, c-format
+#: ../src/dialogs/find.cpp:372
+#: ../src/ui/dialog/find.cpp:436
 msgid "<b>%d</b> object found (out of <b>%d</b>), %s match."
-msgid_plural "<b>%d</b> objects found (out of <b>%d</b>), %s match."
-msgstr[0] "<b>%d</b> 객체 찾음(<b>%d</b> 제외), %s 가 일치."
-msgstr[1] "<b>%d</b> 객체 찾음(<b>%d</b> 제외), %s 가 일치."
+msgstr "<b>%d</b> 객체 찾음 (<b>%d</b>에서), %s 일치."
 
-#: ../src/dialogs/find.cpp:375 ../src/ui/dialog/find.cpp:439
+#: ../src/dialogs/find.cpp:375
+#: ../src/ui/dialog/find.cpp:439
 msgid "exact"
-msgstr "ì \95í\99\95í\95\9c"
+msgstr "ì \95í\99\95í\9e\88"
 
-#: ../src/dialogs/find.cpp:375 ../src/ui/dialog/find.cpp:439
+#: ../src/dialogs/find.cpp:375
+#: ../src/ui/dialog/find.cpp:439
 msgid "partial"
-msgstr "부분적"
+msgstr "부분적"
 
-#: ../src/dialogs/find.cpp:382 ../src/ui/dialog/find.cpp:446
+#: ../src/dialogs/find.cpp:382
+#: ../src/ui/dialog/find.cpp:446
 msgid "No objects found"
-msgstr "어떤 객체도 발견되지 않음"
+msgstr "객체를 찾을 수 없음"
 
 #: ../src/dialogs/find.cpp:540
 msgid "T_ype: "
-msgstr "형태(_y): "
+msgstr "형태(_Y): "
 
-#: ../src/dialogs/find.cpp:547 ../src/ui/dialog/find.cpp:70
+#: ../src/dialogs/find.cpp:547
+#: ../src/ui/dialog/find.cpp:70
 msgid "Search in all object types"
-msgstr "모ë\93  ê°\9dì²´ í\98\95í\83\9c ì°¾ê¸°"
+msgstr "ì \84ì²´ ê°\9dì²´ í\98\95í\83\9cì\97\90ì\84\9c ì°¾ê¸°"
 
-#: ../src/dialogs/find.cpp:547 ../src/ui/dialog/find.cpp:70
+#: ../src/dialogs/find.cpp:547
+#: ../src/ui/dialog/find.cpp:70
 msgid "All types"
-msgstr "모든 형태"
+msgstr "전체 형태"
 
-#: ../src/dialogs/find.cpp:558 ../src/ui/dialog/find.cpp:71
+#: ../src/dialogs/find.cpp:558
+#: ../src/ui/dialog/find.cpp:71
 msgid "Search all shapes"
-msgstr "모든 모양 찾기"
+msgstr "전체 모양 찾기"
 
-#: ../src/dialogs/find.cpp:558 ../src/ui/dialog/find.cpp:71
+#: ../src/dialogs/find.cpp:558
+#: ../src/ui/dialog/find.cpp:71
 msgid "All shapes"
-msgstr "모든 모양"
+msgstr "전체 모양"
 
-#: ../src/dialogs/find.cpp:575 ../src/ui/dialog/find.cpp:72
+#: ../src/dialogs/find.cpp:575
+#: ../src/ui/dialog/find.cpp:72
 msgid "Search rectangles"
 msgstr "사각형 찾기"
 
-#: ../src/dialogs/find.cpp:575 ../src/ui/dialog/find.cpp:72
+#: ../src/dialogs/find.cpp:575
+#: ../src/ui/dialog/find.cpp:72
 msgid "Rectangles"
 msgstr "사각형"
 
-#: ../src/dialogs/find.cpp:580 ../src/ui/dialog/find.cpp:73
+#: ../src/dialogs/find.cpp:580
+#: ../src/ui/dialog/find.cpp:73
 msgid "Search ellipses, arcs, circles"
 msgstr "타원, 호, 원 찾기"
 
-#: ../src/dialogs/find.cpp:580 ../src/ui/dialog/find.cpp:73
+#: ../src/dialogs/find.cpp:580
+#: ../src/ui/dialog/find.cpp:73
 msgid "Ellipses"
 msgstr "타원"
 
-#: ../src/dialogs/find.cpp:585 ../src/ui/dialog/find.cpp:74
+#: ../src/dialogs/find.cpp:585
+#: ../src/ui/dialog/find.cpp:74
 msgid "Search stars and polygons"
-msgstr "별모양, ì\98¤ê°\81í\98\95 ì°¾ê¸°"
+msgstr "별모양, ë\8b¤ê°\81í\98\95 ì°¾ê¸°"
 
-#: ../src/dialogs/find.cpp:585 ../src/ui/dialog/find.cpp:74
+#: ../src/dialogs/find.cpp:585
+#: ../src/ui/dialog/find.cpp:74
 msgid "Stars"
 msgstr "별"
 
-#: ../src/dialogs/find.cpp:590 ../src/ui/dialog/find.cpp:75
+#: ../src/dialogs/find.cpp:590
+#: ../src/ui/dialog/find.cpp:75
 msgid "Search spirals"
 msgstr "나선형 찾기"
 
-#: ../src/dialogs/find.cpp:590 ../src/ui/dialog/find.cpp:75
+#: ../src/dialogs/find.cpp:590
+#: ../src/ui/dialog/find.cpp:75
 msgid "Spirals"
 msgstr "나선형"
 
 #. TRANSLATORS: polyline is a set of connected straight line segments
 #. http://www.w3.org/TR/SVG11/shapes.html#PolylineElement
-#: ../src/dialogs/find.cpp:603 ../src/ui/dialog/find.cpp:76
+#: ../src/dialogs/find.cpp:603
+#: ../src/ui/dialog/find.cpp:76
 msgid "Search paths, lines, polylines"
 msgstr "곡선, 직선, 폴리라인 찾기"
 
-#: ../src/dialogs/find.cpp:603 ../src/ui/dialog/find.cpp:76
+#: ../src/dialogs/find.cpp:603
+#: ../src/ui/dialog/find.cpp:76
 msgid "Paths"
 msgstr "경로"
 
-#: ../src/dialogs/find.cpp:608 ../src/ui/dialog/find.cpp:77
+#: ../src/dialogs/find.cpp:608
+#: ../src/ui/dialog/find.cpp:77
 msgid "Search text objects"
-msgstr "글자 객체 찾기"
+msgstr "문자열 객체 찾기"
 
-#: ../src/dialogs/find.cpp:608 ../src/ui/dialog/find.cpp:77
+#: ../src/dialogs/find.cpp:608
+#: ../src/ui/dialog/find.cpp:77
 msgid "Texts"
-msgstr "문자"
+msgstr "문자"
 
-#: ../src/dialogs/find.cpp:613 ../src/ui/dialog/find.cpp:78
+#: ../src/dialogs/find.cpp:613
+#: ../src/ui/dialog/find.cpp:78
 msgid "Search groups"
 msgstr "그룹 찾기"
 
-#: ../src/dialogs/find.cpp:613 ../src/ui/dialog/find.cpp:78
+#: ../src/dialogs/find.cpp:613
+#: ../src/ui/dialog/find.cpp:78
 msgid "Groups"
 msgstr "그룹"
 
-#: ../src/dialogs/find.cpp:618 ../src/ui/dialog/find.cpp:81
+#: ../src/dialogs/find.cpp:618
+#: ../src/ui/dialog/find.cpp:81
 msgid "Search clones"
-msgstr "복제객체 찾기"
+msgstr "복제 찾기"
 
 #. TRANSLATORS: Translate the word "Clones" only. A noun indicating type of object to find
-#: ../src/dialogs/find.cpp:620 ../src/ui/dialog/find.cpp:81
-#, fuzzy
+#: ../src/dialogs/find.cpp:620
+#: ../src/ui/dialog/find.cpp:81
 msgid "find|Clones"
-msgstr "복사 객체"
+msgstr "찾기|복제본"
 
-#: ../src/dialogs/find.cpp:625 ../src/ui/dialog/find.cpp:82
+#: ../src/dialogs/find.cpp:625
+#: ../src/ui/dialog/find.cpp:82
 msgid "Search images"
 msgstr "이미지 찾기"
 
-#: ../src/dialogs/find.cpp:625 ../src/ui/dialog/find.cpp:82
+#: ../src/dialogs/find.cpp:625
+#: ../src/ui/dialog/find.cpp:82
 #: ../share/extensions/embedimage.inx.h:3
 #: ../share/extensions/extractimage.inx.h:2
 msgid "Images"
 msgstr "이미지"
 
-#: ../src/dialogs/find.cpp:630 ../src/ui/dialog/find.cpp:83
+#: ../src/dialogs/find.cpp:630
+#: ../src/ui/dialog/find.cpp:83
 msgid "Search offset objects"
-msgstr "떨어진(offset) 객체 찾지"
+msgstr "옵셋 객체 찾기"
 
-#: ../src/dialogs/find.cpp:630 ../src/ui/dialog/find.cpp:83
+#: ../src/dialogs/find.cpp:630
+#: ../src/ui/dialog/find.cpp:83
 msgid "Offsets"
 msgstr "옵셋"
 
-#: ../src/dialogs/find.cpp:694 ../src/ui/dialog/find.cpp:61
+#: ../src/dialogs/find.cpp:694
+#: ../src/ui/dialog/find.cpp:61
 msgid "_Text: "
-msgstr "텍스트(_T):"
+msgstr "문자열(_T):"
 
-#: ../src/dialogs/find.cpp:694 ../src/ui/dialog/find.cpp:61
+#: ../src/dialogs/find.cpp:694
+#: ../src/ui/dialog/find.cpp:61
 msgid "Find objects by their text content (exact or partial match)"
-msgstr "텍스트 내용으로 객체 찾기 (전체 또는 부분 일치)"
+msgstr "문자열 내용으로 객체 찾기 (전체 또는 부분 일치)"
 
-#: ../src/dialogs/find.cpp:695 ../src/ui/dialog/find.cpp:62
+#: ../src/dialogs/find.cpp:695
+#: ../src/ui/dialog/find.cpp:62
 msgid "_ID: "
 msgstr "ID(_I): "
 
-#: ../src/dialogs/find.cpp:695 ../src/ui/dialog/find.cpp:62
+#: ../src/dialogs/find.cpp:695
+#: ../src/ui/dialog/find.cpp:62
 msgid "Find objects by the value of the id attribute (exact or partial match)"
 msgstr "id 속성 값으로 객체 찾기 (전체 또는 일부 일치)"
 
-#: ../src/dialogs/find.cpp:696 ../src/ui/dialog/find.cpp:63
+#: ../src/dialogs/find.cpp:696
+#: ../src/ui/dialog/find.cpp:63
 msgid "_Style: "
 msgstr "스타일(_S): "
 
-#: ../src/dialogs/find.cpp:696 ../src/ui/dialog/find.cpp:63
-msgid ""
-"Find objects by the value of the style attribute (exact or partial match)"
-msgstr ""
+#: ../src/dialogs/find.cpp:696
+#: ../src/ui/dialog/find.cpp:63
+msgid "Find objects by the value of the style attribute (exact or partial match)"
+msgstr "스타일 속성 값에 의하여 객체 찾기(정확히 또는 부분적 일치)"
 
-#: ../src/dialogs/find.cpp:697 ../src/ui/dialog/find.cpp:64
+#: ../src/dialogs/find.cpp:697
+#: ../src/ui/dialog/find.cpp:64
 msgid "_Attribute: "
-msgstr "성(_A): "
+msgstr "성(_A): "
 
-#: ../src/dialogs/find.cpp:697 ../src/ui/dialog/find.cpp:64
+#: ../src/dialogs/find.cpp:697
+#: ../src/ui/dialog/find.cpp:64
 msgid "Find objects by the name of an attribute (exact or partial match)"
-msgstr "ì\96´ë\96¤ í\8a¹ì\84± ì\9d´ë¦\84ì\9d\84 ê°\80ì§\80ê³  ì\9e\88ë\8a\94 ê°\9d체를 ì°¾ê¸° (ì \84ì²´ ë\98\90ë\8a\94 ì\9d¼ë¶\80 일치)"
+msgstr "ì\86\8dì\84±ëª\85ì\97\90 ì\9d\98í\95\9c ê°\9dì²´ ì°¾ê¸° (ì\99\84ì \84 ì\9d¼ì¹\98 ë\98\90ë\8a\94 ë¶\80ë¶\84 일치)"
 
-#: ../src/dialogs/find.cpp:711 ../src/ui/dialog/find.cpp:65
+#: ../src/dialogs/find.cpp:711
+#: ../src/ui/dialog/find.cpp:65
 msgid "Search in s_election"
-msgstr "선택된 부분에서 찾기(_e)"
+msgstr "선택에서 찾기(_E)"
 
-#: ../src/dialogs/find.cpp:715 ../src/ui/dialog/find.cpp:65
+#: ../src/dialogs/find.cpp:715
+#: ../src/ui/dialog/find.cpp:65
 msgid "Limit search to the current selection"
 msgstr "현재 선택된 부분에 한해서만 찾기"
 
-#: ../src/dialogs/find.cpp:720 ../src/ui/dialog/find.cpp:66
+#: ../src/dialogs/find.cpp:720
+#: ../src/ui/dialog/find.cpp:66
 msgid "Search in current _layer"
-msgstr "현재 레이어에서만 찾기(_l)"
+msgstr "현재 레이어만 찾기(_L)"
 
-#: ../src/dialogs/find.cpp:724 ../src/ui/dialog/find.cpp:66
+#: ../src/dialogs/find.cpp:724
+#: ../src/ui/dialog/find.cpp:66
 msgid "Limit search to the current layer"
-msgstr "현재 레이어에서 만 찾기"
+msgstr "찾기에서 현재 레이어로 제한"
 
-#: ../src/dialogs/find.cpp:729 ../src/ui/dialog/find.cpp:67
+#: ../src/dialogs/find.cpp:729
+#: ../src/ui/dialog/find.cpp:67
 msgid "Include _hidden"
-msgstr "숨김 포함(_h)"
+msgstr "숨김 포함(_H)"
 
-#: ../src/dialogs/find.cpp:733 ../src/ui/dialog/find.cpp:67
+#: ../src/dialogs/find.cpp:733
+#: ../src/ui/dialog/find.cpp:67
 msgid "Include hidden objects in search"
-msgstr "ì\88¨ê²¨ì§\84 ê°\9d체를 í\8f¬í\95¨í\95´ ì°¾ê¸°"
+msgstr "찾기ì\97\90ì\84\9c ì\88¨ê¸´ ê°\9dì²´ í\8f¬í\95¨"
 
-#: ../src/dialogs/find.cpp:738 ../src/ui/dialog/find.cpp:68
+#: ../src/dialogs/find.cpp:738
+#: ../src/ui/dialog/find.cpp:68
 msgid "Include l_ocked"
-msgstr "잠김 개체포함"
+msgstr "잠김 개체포함(_O)"
 
-#: ../src/dialogs/find.cpp:742 ../src/ui/dialog/find.cpp:68
+#: ../src/dialogs/find.cpp:742
+#: ../src/ui/dialog/find.cpp:68
 msgid "Include locked objects in search"
-msgstr "ì\9e ê¸´ ê°\9dì²´ í\8f¬í\95¨í\95´ì\84\9c ì°¾ê¸°"
+msgstr "찾기ì\97\90ì\84\9c ì\9e ê¸´ ê°\9dì²´ í\8f¬í\95¨"
 
-#: ../src/dialogs/find.cpp:753 ../src/ui/dialog/find.cpp:85
+#: ../src/dialogs/find.cpp:753
+#: ../src/ui/dialog/find.cpp:85
 msgid "Clear values"
 msgstr "값 지우기"
 
-#: ../src/dialogs/find.cpp:754 ../src/ui/dialog/find.cpp:86
+#: ../src/dialogs/find.cpp:754
+#: ../src/ui/dialog/find.cpp:86
 msgid "_Find"
 msgstr "찾기(_F)"
 
-#: ../src/dialogs/find.cpp:754 ../src/ui/dialog/find.cpp:86
+#: ../src/dialogs/find.cpp:754
+#: ../src/ui/dialog/find.cpp:86
 msgid "Select objects matching all of the fields you filled in"
-msgstr "조건에 채워진 모든것이 일치하는 객체 찾기"
+msgstr "조건에 모든것이 일치하는 객체 선택"
 
 #: ../src/dialogs/guidelinedialog.cpp:44
-#, fuzzy
 msgid "Unit:"
 msgstr "단위:"
 
 #: ../src/dialogs/guidelinedialog.cpp:45
 #: ../src/dialogs/object-attributes.cpp:58
-#: ../src/dialogs/object-attributes.cpp:66 ../src/widgets/toolbox.cpp:1248
+#: ../src/dialogs/object-attributes.cpp:66
+#: ../src/widgets/toolbox.cpp:1248
 msgid "X:"
-msgstr "X:"
+msgstr "X 위치:"
 
 #: ../src/dialogs/guidelinedialog.cpp:46
 #: ../src/dialogs/object-attributes.cpp:59
-#: ../src/dialogs/object-attributes.cpp:67 ../src/widgets/toolbox.cpp:1266
+#: ../src/dialogs/object-attributes.cpp:67
+#: ../src/widgets/toolbox.cpp:1266
 msgid "Y:"
-msgstr "Y:"
+msgstr "Y 위치:"
 
 #: ../src/dialogs/guidelinedialog.cpp:47
 msgid "Angle (degrees):"
-msgstr ""
+msgstr "각도 (도):"
 
 #: ../src/dialogs/guidelinedialog.cpp:48
-#, fuzzy
 msgid "Rela_tive change"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì\83\81ë\8c\80ì \81 ë³\80ê²½(_T)"
 
 #: ../src/dialogs/guidelinedialog.cpp:48
 msgid "Move and/or rotate the guide relative to current settings"
-msgstr ""
+msgstr "현재 설정과 관련하여 안내선 이동 또는 회전"
 
 #: ../src/dialogs/guidelinedialog.cpp:114
-#, fuzzy
 msgid "Set guide properties"
-msgstr "ì\9cë ¥ 설정"
+msgstr "ì\95\88ë\82´ì\84  ì\86\8dì\84± 설정"
 
 #: ../src/dialogs/guidelinedialog.cpp:153
 msgid "Guideline"
-msgstr "가이드 라인"
+msgstr "안내선"
 
 #: ../src/dialogs/guidelinedialog.cpp:241
-#, fuzzy, c-format
 msgid "Guideline ID: %s"
-msgstr "가이드 라인"
+msgstr "안내선 ID: %s"
 
 #: ../src/dialogs/guidelinedialog.cpp:247
-#, fuzzy, c-format
 msgid "Current: %s"
-msgstr "%s 파일명으로 생성을 할수 없습니다.\n"
+msgstr "현재: %s"
 
 #: ../src/dialogs/iconpreview.cpp:139
 #, c-format
@@ -1394,11 +1409,14 @@ msgstr "선택"
 
 #: ../src/dialogs/iconpreview.cpp:189
 msgid "Selection only or whole document"
-msgstr "일부반 선택하거나 전체 문서 선택"
+msgstr "선택만 또는 전체 문서"
+
+msgid "_Refresh"
+msgstr "다시 읽기(_R)"
 
 #: ../src/dialogs/iconpreview.cpp:197
 msgid "Refresh the icons"
-msgstr "아이콘  읽기"
+msgstr "아이콘 다시 읽기"
 
 #. Create the label for the object id
 #: ../src/dialogs/item-properties.cpp:120
@@ -1406,15 +1424,15 @@ msgstr "아이콘 재 읽기"
 #: ../src/dialogs/item-properties.cpp:413
 #: ../src/dialogs/item-properties.cpp:420
 msgid "_Id"
-msgstr "_Id"
+msgstr "_ID"
 
 #: ../src/dialogs/item-properties.cpp:129
-msgid ""
-"The id= attribute (only letters, digits, and the characters .-_: allowed)"
-msgstr ""
+msgid "The id= attribute (only letters, digits, and the characters .-_: allowed)"
+msgstr "ID= 속성(문자만, 숫자, -_ 허용)"
 
 #. Button for setting the object's id, label, title and description.
-#: ../src/dialogs/item-properties.cpp:143 ../src/verbs.cpp:2401
+#: ../src/dialogs/item-properties.cpp:143
+#: ../src/verbs.cpp:2401
 #: ../src/verbs.cpp:2407
 msgid "_Set"
 msgstr "설정(_S)"
@@ -1422,19 +1440,21 @@ msgstr "설정(_S)"
 #. Create the label for the object label
 #: ../src/dialogs/item-properties.cpp:152
 msgid "_Label"
-msgstr "_Label"
+msgstr "라벨(_L)l"
 
 #: ../src/dialogs/item-properties.cpp:161
 msgid "A freeform label for the object"
-msgstr "객체를 위한 자유 형식의 래밸"
+msgstr "객체를 위한 자유양식 레벨"
 
 #. Create the label for the object title
-#: ../src/dialogs/item-properties.cpp:173 ../src/dialogs/rdf.cpp:238
+#: ../src/dialogs/item-properties.cpp:173
+#: ../src/dialogs/rdf.cpp:238
 msgid "Title"
 msgstr "제목"
 
 #. Create the frame for the object description
-#: ../src/dialogs/item-properties.cpp:190 ../src/dialogs/rdf.cpp:282
+#: ../src/dialogs/item-properties.cpp:190
+#: ../src/dialogs/rdf.cpp:282
 #: ../src/ui/widget/page-sizer.cpp:200
 msgid "Description"
 msgstr "설명"
@@ -1446,7 +1466,7 @@ msgstr "숨기기(_H)"
 
 #: ../src/dialogs/item-properties.cpp:219
 msgid "Check to make the object invisible"
-msgstr "객체를 보이지 않게 설정 선택"
+msgstr "객체를 안보이게 하기 위하여 체크"
 
 #. Lock
 #. TRANSLATORS: "Lock" is a verb here
@@ -1456,32 +1476,28 @@ msgstr "잠금(_o)"
 
 #: ../src/dialogs/item-properties.cpp:229
 msgid "Check to make the object insensitive (not selectable by mouse)"
-msgstr ""
+msgstr "객체를 둔감하게 만들기 위하여 체크(마우스에 의한 선택할 수 있는 것이 아님)"
 
 #: ../src/dialogs/item-properties.cpp:305
 #: ../src/dialogs/item-properties.cpp:312
 msgid "Ref"
-msgstr ""
+msgstr "Ref"
 
 #: ../src/dialogs/item-properties.cpp:372
-#, fuzzy
 msgid "Lock object"
-msgstr "잠겨진 객체 무시"
+msgstr "객체 잠금"
 
 #: ../src/dialogs/item-properties.cpp:372
-#, fuzzy
 msgid "Unlock object"
-msgstr "ì\9e ê²¨ì§\84 ê°\9dì²´ ë¬´ì\8b\9c"
+msgstr "ê°\9dì²´ ì\9e ê¸\88 í\95´ì \9c"
 
 #: ../src/dialogs/item-properties.cpp:391
-#, fuzzy
 msgid "Hide object"
-msgstr "ê°\90춰ì§\84 ê°\9dì²´ ë¬´ì\8b\9c"
+msgstr "ê°\9dì²´ ì\88¨ê¸°ê¸°"
 
 #: ../src/dialogs/item-properties.cpp:391
-#, fuzzy
 msgid "Unhide object"
-msgstr "ê°\90춰ì§\84 ê°\9dì²´ ë¬´ì\8b\9c"
+msgstr "ê°\9dì²´ ë³´ì\9d´ê¸°"
 
 #: ../src/dialogs/item-properties.cpp:415
 msgid "Id invalid! "
@@ -1492,45 +1508,40 @@ msgid "Id exists! "
 msgstr "ID 존재함!."
 
 #: ../src/dialogs/item-properties.cpp:424
-#, fuzzy
 msgid "Set object ID"
-msgstr "ê¸\80ì\9e\90 ê°\9dì²´ ì°¾ê¸°"
+msgstr "ê°\9dì²´ ID ì\84¤ì \95"
 
 #: ../src/dialogs/item-properties.cpp:439
-#, fuzzy
 msgid "Set object label"
-msgstr "불이기 종류(_S)"
+msgstr "객체 라벨 설정"
 
 #: ../src/dialogs/item-properties.cpp:450
-#, fuzzy
 msgid "Set object title"
-msgstr "불이기 종류(_S)"
+msgstr "객체 제목 설정"
 
 #: ../src/dialogs/item-properties.cpp:465
-#, fuzzy
 msgid "Set object description"
-msgstr "  설명: "
+msgstr "객체 설명 설정"
 
 #: ../src/dialogs/layer-properties.cpp:47
 msgid "Layer name:"
 msgstr "레이어 이름:"
 
 #: ../src/dialogs/layer-properties.cpp:115
-#, fuzzy
 msgid "Add layer"
-msgstr "레이어 추가"
+msgstr "레이어 더하기"
 
 #: ../src/dialogs/layer-properties.cpp:153
 msgid "Above current"
-msgstr "현재 보다 위"
+msgstr "현재보다 위"
 
 #: ../src/dialogs/layer-properties.cpp:157
 msgid "Below current"
-msgstr "현재 보다 아래"
+msgstr "현재보다 아래"
 
 #: ../src/dialogs/layer-properties.cpp:160
 msgid "As sublayer of current"
-msgstr "현재의 부 레이어"
+msgstr "현재 하위 레이어"
 
 #: ../src/dialogs/layer-properties.cpp:164
 msgid "Position:"
@@ -1542,17 +1553,16 @@ msgstr "레이어 이름변경"
 
 #: ../src/dialogs/layer-properties.cpp:185
 msgid "_Rename"
-msgstr "이름변경(_R)"
+msgstr "이름 변경(_R)"
 
 #: ../src/dialogs/layer-properties.cpp:195
-#, fuzzy
 msgid "Rename layer"
-msgstr "이름바뀐 레이어"
+msgstr "레이어 다른 이름으로"
 
 #. TRANSLATORS: This means "The layer has been renamed"
 #: ../src/dialogs/layer-properties.cpp:197
 msgid "Renamed layer"
-msgstr "이름바뀐 레이어"
+msgstr "이름 변경된 레이어"
 
 #: ../src/dialogs/layer-properties.cpp:201
 msgid "Add Layer"
@@ -1564,39 +1574,40 @@ msgstr "추가(_A)"
 
 #: ../src/dialogs/layer-properties.cpp:225
 msgid "New layer created."
-msgstr "새로운 레이어 생성."
+msgstr "새 레이어 생성."
 
-#: ../src/dialogs/layers-panel.cpp:579 ../src/widgets/layer-selector.cpp:595
-#, fuzzy
+#: ../src/dialogs/layers-panel.cpp:579
+#: ../src/widgets/layer-selector.cpp:595
 msgid "Unhide layer"
-msgstr "레이어 이름변경"
+msgstr "레이어 보이기"
 
-#: ../src/dialogs/layers-panel.cpp:579 ../src/widgets/layer-selector.cpp:595
-#, fuzzy
+#: ../src/dialogs/layers-panel.cpp:579
+#: ../src/widgets/layer-selector.cpp:595
 msgid "Hide layer"
-msgstr "ë \88ì\9d´ì\96´ ì\9d´ë¦\84ë³\80ê²½"
+msgstr "ë \88ì\9d´ì\96´ ì\88¨ê¸°ê¸°"
 
-#: ../src/dialogs/layers-panel.cpp:590 ../src/widgets/layer-selector.cpp:587
-#, fuzzy
+#: ../src/dialogs/layers-panel.cpp:590
+#: ../src/widgets/layer-selector.cpp:587
 msgid "Lock layer"
-msgstr "ë\85¸ë\93\9c를 ì\95\84ë\9e\98ë\8f\84"
+msgstr "ë \88ì\9d´ì\96´ ì\9e ê·¸ê¸°"
 
-#: ../src/dialogs/layers-panel.cpp:590 ../src/widgets/layer-selector.cpp:587
-#, fuzzy
+#: ../src/dialogs/layers-panel.cpp:590
+#: ../src/widgets/layer-selector.cpp:587
 msgid "Unlock layer"
-msgstr "ë\85¸ë\93\9c를 ì\95\84ë\9e\98ë\8f\84"
+msgstr "ë \88ì\9d´ì\96´ ì\9e ê¸\88 í\95´ì \9c"
 
 #: ../src/dialogs/layers-panel.cpp:735
 msgid "New"
-msgstr "새로만들기"
+msgstr "새로 만들기"
 
-#: ../src/dialogs/layers-panel.cpp:740 ../share/extensions/restack.inx.h:16
+#: ../src/dialogs/layers-panel.cpp:740
+#: ../share/extensions/restack.inx.h:16
 msgid "Top"
-msgstr "ì\9c\84"
+msgstr "ìµ\9cì\83\81ë\8b¨"
 
 #: ../src/dialogs/layers-panel.cpp:746
 msgid "Up"
-msgstr "위"
+msgstr "위"
 
 #: ../src/dialogs/layers-panel.cpp:752
 msgid "Dn"
@@ -1604,7 +1615,7 @@ msgstr "아래로"
 
 #: ../src/dialogs/layers-panel.cpp:758
 msgid "Bot"
-msgstr ""
+msgstr "최하단"
 
 #: ../src/dialogs/layers-panel.cpp:768
 msgid "X"
@@ -1612,27 +1623,27 @@ msgstr "X"
 
 #: ../src/dialogs/object-attributes.cpp:39
 msgid "Href:"
-msgstr ""
+msgstr "Href:"
 
 #: ../src/dialogs/object-attributes.cpp:40
 msgid "Target:"
-msgstr "목:"
+msgstr "목:"
 
 #: ../src/dialogs/object-attributes.cpp:41
 msgid "Type:"
-msgstr "í\83\80ì\9e\85:"
+msgstr "í\98\95í\83\9c:"
 
 #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute
 #. Identifies the type of the related resource with an absolute URI
 #: ../src/dialogs/object-attributes.cpp:44
 msgid "Role:"
-msgstr "ì\97­í\99\9c:"
+msgstr "ì\97­í\95 :"
 
 #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute
 #. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link.
 #: ../src/dialogs/object-attributes.cpp:47
 msgid "Arcrole:"
-msgstr ""
+msgstr "Arcrole:"
 
 #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute
 #: ../src/dialogs/object-attributes.cpp:49
@@ -1647,16 +1658,16 @@ msgstr "보이기:"
 #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute
 #: ../src/dialogs/object-attributes.cpp:52
 msgid "Actuate:"
-msgstr ""
+msgstr "작동"
 
 #: ../src/dialogs/object-attributes.cpp:57
 msgid "URL:"
 msgstr "URL:"
 
 #: ../src/dialogs/object-attributes.cpp:113
-#, fuzzy, c-format
+#, c-format
 msgid "%s Properties"
-msgstr "출력 설정"
+msgstr "%s 속성"
 
 #: ../src/dialogs/rdf.cpp:181
 msgid "CC Attribution"
@@ -1691,13 +1702,12 @@ msgid "FreeArt"
 msgstr "프리아트"
 
 #: ../src/dialogs/rdf.cpp:221
-#, fuzzy
 msgid "Open Font License"
-msgstr "새파일 열기"
+msgstr "글꼴 저작권 열기"
 
 #: ../src/dialogs/rdf.cpp:239
 msgid "Name by which this document is formally known."
-msgstr "이 문서의 일반적으로 잘알려진 이름."
+msgstr "이 문서의 일반적으로 잘 알려진 이름."
 
 #: ../src/dialogs/rdf.cpp:241
 msgid "Date"
@@ -1705,18 +1715,19 @@ msgstr "날짜"
 
 #: ../src/dialogs/rdf.cpp:242
 msgid "Date associated with the creation of this document (YYYY-MM-DD)."
-msgstr "이 문서를 생성한 시간(YYYY-MM-DD)."
+msgstr "문서 생성 시간(YYYY-MM-DD)."
 
 #: ../src/dialogs/rdf.cpp:244
 msgid "Format"
-msgstr "í\8f¬ë©§"
+msgstr "í\98\95ì\8b\9d"
 
 #: ../src/dialogs/rdf.cpp:245
 msgid "The physical or digital manifestation of this document (MIME type)."
-msgstr ""
+msgstr "MIME 형태"
 
 #. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch");
-#: ../src/dialogs/rdf.cpp:247 ../src/extension/internal/bitmap/addNoise.cpp:46
+#: ../src/dialogs/rdf.cpp:247
+#: ../src/extension/internal/bitmap/addNoise.cpp:46
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2194
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2273
 msgid "Type"
@@ -1731,18 +1742,16 @@ msgid "Creator"
 msgstr "제작자"
 
 #: ../src/dialogs/rdf.cpp:252
-msgid ""
-"Name of entity primarily responsible for making the content of this document."
-msgstr ""
+msgid "Name of entity primarily responsible for making the content of this document."
+msgstr "문서 내용을 생성하는 기관 이름"
 
 #: ../src/dialogs/rdf.cpp:254
 msgid "Rights"
-msgstr ""
+msgstr "권리"
 
 #: ../src/dialogs/rdf.cpp:255
-msgid ""
-"Name of entity with rights to the Intellectual Property of this document."
-msgstr ""
+msgid "Name of entity with rights to the Intellectual Property of this document."
+msgstr "문서의 지적 재산권을 가진 기관 이름"
 
 #: ../src/dialogs/rdf.cpp:257
 msgid "Publisher"
@@ -1750,17 +1759,18 @@ msgstr "출판자"
 
 #: ../src/dialogs/rdf.cpp:258
 msgid "Name of entity responsible for making this document available."
-msgstr "이 문서를 만들기 위한 요구 엔트리 이름"
+msgstr "이 문서를 사용하기 위하여 책임이 있는 실체의 이름"
 
 #: ../src/dialogs/rdf.cpp:261
 msgid "Identifier"
-msgstr "별자"
+msgstr "별자"
 
 #: ../src/dialogs/rdf.cpp:262
 msgid "Unique URI to reference this document."
-msgstr "참조 ë¬¸ì\84\9cì\9d\98 유일한 URI"
+msgstr "ì\9d´ ë¬¸ì\84\9c를 ì°¸ì¡°í\95\98기 ì\9c\84í\95\9c 유일한 URI"
 
-#: ../src/dialogs/rdf.cpp:264 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1392
+#: ../src/dialogs/rdf.cpp:264
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1392
 msgid "Source"
 msgstr "소스"
 
@@ -1770,56 +1780,50 @@ msgstr "이문서 의 참고 소스가 되는 유일한 URI"
 
 #: ../src/dialogs/rdf.cpp:267
 msgid "Relation"
-msgstr ""
+msgstr "관련"
 
 #: ../src/dialogs/rdf.cpp:268
 msgid "Unique URI to a related document."
-msgstr "관련문서의 유일한 URI"
+msgstr "관련 문서의 유일한 URI"
 
 #: ../src/dialogs/rdf.cpp:270
 msgid "Language"
 msgstr "언어"
 
 #: ../src/dialogs/rdf.cpp:271
-msgid ""
-"Two-letter language tag with optional subtags for the language of this "
-"document.  (e.g. 'en-GB')"
-msgstr ""
+msgid "Two-letter language tag with optional subtags for the language of this document.  (e.g. 'en-GB')"
+msgstr "이 문서를 위한 부가 하위태그를 가진 2 글자 언어 태그 (예, 'ko-KR')"
 
 #: ../src/dialogs/rdf.cpp:273
 msgid "Keywords"
-msgstr "키워드"
+msgstr "주제어"
 
 #: ../src/dialogs/rdf.cpp:274
-msgid ""
-"The topic of this document as comma-separated key words, phrases, or "
-"classifications."
-msgstr ""
+msgid "The topic of this document as comma-separated key words, phrases, or classifications."
+msgstr "주제어,문단, 분류등 콤마로 분류된 문서의 주제"
 
 #. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content.
 #. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/
 #: ../src/dialogs/rdf.cpp:278
 msgid "Coverage"
-msgstr "표지"
+msgstr "범위"
 
 #: ../src/dialogs/rdf.cpp:279
 msgid "Extent or scope of this document."
-msgstr ""
+msgstr "이 문서의 확장 또는 범위"
 
 #: ../src/dialogs/rdf.cpp:283
 msgid "A short account of the content of this document."
-msgstr ""
+msgstr "이 문서 내용의 간략한 설명"
 
 #. FIXME: need to handle 1 agent per line of input
 #: ../src/dialogs/rdf.cpp:287
 msgid "Contributors"
-msgstr "기ì¦\9d자"
+msgstr "기ì\97¬자"
 
 #: ../src/dialogs/rdf.cpp:288
-msgid ""
-"Names of entities responsible for making contributions to the content of "
-"this document."
-msgstr ""
+msgid "Names of entities responsible for making contributions to the content of this document."
+msgstr "이 문서 내용의 기여에 책임이 있는 실체의 이름"
 
 #. TRANSLATORS: URL to a page that defines the license for the document
 #: ../src/dialogs/rdf.cpp:292
@@ -1829,102 +1833,107 @@ msgstr "URI"
 #. TRANSLATORS: this is where you put a URL to a page that defines the license
 #: ../src/dialogs/rdf.cpp:294
 msgid "URI to this document's license's namespace definition."
-msgstr ""
+msgstr "이 문서의 저작권을 정의한 URL이 있는 사이트"
 
 #. TRANSLATORS: fragment of XML representing the license of the document
 #: ../src/dialogs/rdf.cpp:298
 msgid "Fragment"
-msgstr ""
+msgstr "프래그먼트"
 
 #: ../src/dialogs/rdf.cpp:299
 msgid "XML fragment for the RDF 'License' section."
-msgstr ""
+msgstr "RDF 저작권 부분을 위한 XML 프래그먼트"
 
 #. TRANSLATORS: "Set" is a verb here
 #: ../src/dialogs/sp-attribute-widget.cpp:166
-#: ../src/dialogs/sp-attribute-widget.cpp:773 ../src/dialogs/xml-tree.cpp:533
+#: ../src/dialogs/sp-attribute-widget.cpp:773
+#: ../src/dialogs/xml-tree.cpp:533
 msgid "Set attribute"
 msgstr "속성 설정"
 
-#: ../src/dialogs/stroke-style.cpp:305 ../src/dialogs/stroke-style.cpp:364
-#, fuzzy
+#: ../src/dialogs/stroke-style.cpp:305
+#: ../src/dialogs/stroke-style.cpp:364
 msgid "Set stroke color"
-msgstr "ì\83\89 ë¶\99ì\9d´ê¸°"
+msgstr "ì\9c¤ê³½ì\84  ì\83\89ì\83\81 ì\84¤ì \95"
 
-#: ../src/dialogs/stroke-style.cpp:355 ../src/ui/widget/selected-style.cpp:255
+#: ../src/dialogs/stroke-style.cpp:355
+#: ../src/ui/widget/selected-style.cpp:255
 #: ../src/ui/widget/selected-style.cpp:488
 msgid "Remove stroke"
-msgstr ""
+msgstr "윤곽선 제거"
 
 #: ../src/dialogs/stroke-style.cpp:416
-#, fuzzy
 msgid "Set gradient on stroke"
-msgstr "ì\9e\84ì\9d\98ì\9d\98 ë\85¸ë\93\9c ê´\80리"
+msgstr "ì\9c¤ê³½ì\84  ê·¸ë\9d¼ë\94\94ì\96¸í\8a¸ ì\84¤ì \95"
 
 #: ../src/dialogs/stroke-style.cpp:460
-#, fuzzy
 msgid "Set pattern on stroke"
-msgstr "불이기 종류(_S)"
+msgstr "윤곽선에서 패턴 설정"
 
-#: ../src/dialogs/stroke-style.cpp:481 ../src/ui/widget/selected-style.cpp:193
+#: ../src/dialogs/stroke-style.cpp:481
+#: ../src/ui/widget/selected-style.cpp:193
 #: ../src/ui/widget/selected-style.cpp:251
 #: ../src/ui/widget/selected-style.cpp:513
 #: ../src/ui/widget/style-swatch.cpp:335
 msgid "Unset stroke"
-msgstr ""
+msgstr "윤곽선 설정안함"
 
-#: ../src/dialogs/stroke-style.cpp:793 ../src/filter-enums.cpp:95
-#: ../src/flood-context.cpp:288 ../src/interface.cpp:826
+#: ../src/dialogs/stroke-style.cpp:793
+#: ../src/filter-enums.cpp:95
+#: ../src/flood-context.cpp:288
+#: ../src/interface.cpp:826
 #: ../src/ui/dialog/filter-effects-dialog.cpp:507
 #: ../src/ui/dialog/inkscape-preferences.cpp:211
 #: ../src/ui/dialog/inkscape-preferences.cpp:375
 #: ../src/ui/dialog/inkscape-preferences.cpp:501
-#: ../src/ui/dialog/inkscape-preferences.cpp:958 ../src/verbs.cpp:2156
+#: ../src/ui/dialog/inkscape-preferences.cpp:958
+#: ../src/verbs.cpp:2156
 #: ../share/extensions/grid_polar.inx.h:16
 msgid "None"
 msgstr "없음"
 
-#: ../src/dialogs/stroke-style.cpp:848 ../src/widgets/gradient-vector.cpp:264
+#: ../src/dialogs/stroke-style.cpp:848
+#: ../src/widgets/gradient-vector.cpp:264
 #: ../src/widgets/paint-selector.cpp:885
 msgid "No document selected"
-msgstr "어떠한 문서도 선택되지 않음"
+msgstr "문서 선택 없음"
 
 #: ../src/dialogs/stroke-style.cpp:937
-#, fuzzy
 msgid "Set markers"
-msgstr "ë³\84"
+msgstr "ë§\88커 ì\84¤ì \95"
 
-#: ../src/dialogs/stroke-style.cpp:1104 ../share/extensions/edge3d.inx.h:9
+#: ../src/dialogs/stroke-style.cpp:1104
+#: ../share/extensions/edge3d.inx.h:9
 msgid "Stroke width"
-msgstr ""
+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/dialogs/stroke-style.cpp:1127
 msgid "Join:"
-msgstr "합체:"
+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/dialogs/stroke-style.cpp:1139
 msgid "Miter join"
-msgstr ""
+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/dialogs/stroke-style.cpp:1147
 msgid "Round join"
-msgstr ""
+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/dialogs/stroke-style.cpp:1155
 msgid "Bevel join"
-msgstr ""
+msgstr "경사 결합"
 
 #. Miterlimit
 #. TRANSLATORS: Miter limit: only for "miter join", this limits the length
@@ -1935,105 +1944,101 @@ msgstr ""
 #. when they become too long.
 #: ../src/dialogs/stroke-style.cpp:1166
 msgid "Miter limit:"
-msgstr ""
+msgstr "이음 한계:"
 
 #: ../src/dialogs/stroke-style.cpp:1174
 msgid "Maximum length of the miter (in units of stroke width)"
-msgstr ""
+msgstr "이음의 최대 길이"
 
 #. Cap type
 #. TRANSLATORS: cap type specifies the shape for the ends of lines
 #: ../src/dialogs/stroke-style.cpp:1187
 msgid "Cap:"
-msgstr ""
+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/dialogs/stroke-style.cpp:1198
 msgid "Butt cap"
-msgstr ""
+msgstr "버튼"
 
 #. TRANSLATORS: Round cap: the line shape extends beyond the end point of the
 #. line; the ends of the line are rounded
 #: ../src/dialogs/stroke-style.cpp:1205
 msgid "Round cap"
-msgstr ""
+msgstr "둥금"
 
 #. TRANSLATORS: Square cap: the line shape extends beyond the end point of the
 #. line; the ends of the line are square
 #: ../src/dialogs/stroke-style.cpp:1212
 msgid "Square cap"
-msgstr ""
+msgstr "사각"
 
 #. Dash
 #: ../src/dialogs/stroke-style.cpp:1218
 msgid "Dashes:"
-msgstr "ì \90선:"
+msgstr "ì\8b¤선:"
 
 #. 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/dialogs/stroke-style.cpp:1239
 msgid "Start Markers:"
-msgstr ""
+msgstr "시작 마커:"
 
 #: ../src/dialogs/stroke-style.cpp:1249
 msgid "Mid Markers:"
-msgstr ""
+msgstr "중간 마커:"
 
 #: ../src/dialogs/stroke-style.cpp:1259
 msgid "End Markers:"
-msgstr ""
+msgstr "끝 마커:"
 
-#: ../src/dialogs/stroke-style.cpp:1605 ../src/dialogs/stroke-style.cpp:1703
-#, fuzzy
+#: ../src/dialogs/stroke-style.cpp:1605
+#: ../src/dialogs/stroke-style.cpp:1703
 msgid "Set stroke style"
-msgstr "불이기 종류(_S)"
+msgstr "윤곽선 스타일 설정"
 
 #: ../src/dialogs/swatches.cpp:248
 #, c-format
-msgid ""
-"Color: <b>%s</b>; <b>Click</b> to set fill, <b>Shift+click</b> to set stroke"
-msgstr ""
+msgid "Color: <b>%s</b>; <b>Click</b> to set fill, <b>Shift+click</b> to set stroke"
+msgstr "색상: %s; 채움 설정하기 위하여 클릭, 윤곽선을 설정하기 위하여 Shift+클릭"
 
 #. TRANSLATORS: An item in context menu on a colour in the swatches
 #: ../src/dialogs/swatches.cpp:298
-#, fuzzy
 msgid "Set fill"
-msgstr "반전"
+msgstr "채움 설정"
 
 #. TRANSLATORS: An item in context menu on a colour in the swatches
 #: ../src/dialogs/swatches.cpp:306
-#, fuzzy
 msgid "Set stroke"
-msgstr "반전"
+msgstr "윤곽선 설정"
 
 #: ../src/dialogs/swatches.cpp:525
-#, fuzzy
 msgid "Change color definition"
-msgstr "ì \91ì\86\8d ì·¨ì\86\8c"
+msgstr "ì\83\89ì\83\81 ì \95ì\9d\98 ë³\80ê²½"
 
 #: ../src/dialogs/swatches.cpp:676
-#, fuzzy
 msgid "Set stroke color from swatch"
-msgstr "글자를 곡선으로 변환"
+msgstr "색상판에서 윤곽선 색상 설정"
 
 #: ../src/dialogs/swatches.cpp:676
 msgid "Set fill color from swatch"
-msgstr ""
+msgstr "색상판에서 채움 색상 설정"
 
 #: ../src/dialogs/swatches.cpp:996
 #, c-format
 msgid "Palettes directory (%s) is unavailable."
-msgstr ""
+msgstr "팔레트 폴더 (%s)를 사용할 수 없음."
 
 #. TODO:  Insert widgets
-#: ../src/dialogs/text-edit.cpp:200 ../src/ui/dialog/text-properties.cpp:36
+#: ../src/dialogs/text-edit.cpp:200
+#: ../src/ui/dialog/text-properties.cpp:36
 msgid "Font"
 msgstr "글꼴"
 
 #: ../src/dialogs/text-edit.cpp:223
 msgid "Layout"
-msgstr ""
+msgstr "문자 배열"
 
 #: ../src/dialogs/text-edit.cpp:237
 msgid "Align lines left"
@@ -2042,7 +2047,7 @@ msgstr "왼쪽으로 정렬"
 #. TRANSLATORS: `Center' here is a verb.
 #: ../src/dialogs/text-edit.cpp:252
 msgid "Center lines"
-msgstr "중심"
+msgstr "중심 정렬"
 
 #: ../src/dialogs/text-edit.cpp:266
 msgid "Align lines right"
@@ -2050,24 +2055,28 @@ msgstr "오른쪽으로 정렬"
 
 #: ../src/dialogs/text-edit.cpp:280
 msgid "Justify lines"
-msgstr ""
+msgstr "자리맞추기 정렬"
 
-#: ../src/dialogs/text-edit.cpp:302 ../src/widgets/toolbox.cpp:5354
+#: ../src/dialogs/text-edit.cpp:302
+#: ../src/widgets/toolbox.cpp:5354
 msgid "Horizontal text"
-msgstr "수평 글자"
+msgstr "수평 문자열"
 
-#: ../src/dialogs/text-edit.cpp:316 ../src/widgets/toolbox.cpp:5366
+#: ../src/dialogs/text-edit.cpp:316
+#: ../src/widgets/toolbox.cpp:5366
 msgid "Vertical text"
-msgstr "수직 글자"
+msgstr "수직 문자열"
 
 #: ../src/dialogs/text-edit.cpp:331
 msgid "Line spacing:"
 msgstr "줄 간격:"
 
 #. Text
-#: ../src/dialogs/text-edit.cpp:377 ../src/selection-describer.cpp:67
+#: ../src/dialogs/text-edit.cpp:377
+#: ../src/selection-describer.cpp:67
 #: ../src/ui/dialog/inkscape-preferences.cpp:469
-#: ../src/ui/dialog/text-properties.cpp:37 ../src/verbs.cpp:2437
+#: ../src/ui/dialog/text-properties.cpp:37
+#: ../src/verbs.cpp:2437
 #: ../share/extensions/lorem_ipsum.inx.h:5
 #: ../share/extensions/render_alphabetsoup.inx.h:4
 #: ../share/extensions/text_braille.inx.h:2
@@ -2079,20 +2088,20 @@ msgstr "줄 간격:"
 #: ../share/extensions/text_titlecase.inx.h:1
 #: ../share/extensions/text_uppercase.inx.h:1
 msgid "Text"
-msgstr "텍스트"
+msgstr "문자열"
 
 #: ../src/dialogs/text-edit.cpp:424
 msgid "Set as default"
-msgstr "기본 으로 설정"
+msgstr "기본으로 설정"
 
-#: ../src/dialogs/text-edit.cpp:665 ../src/text-context.cpp:1438
-#, fuzzy
+#: ../src/dialogs/text-edit.cpp:665
+#: ../src/text-context.cpp:1438
 msgid "Set text style"
-msgstr "ë\88ì\9d´ê¸° ì¢\85ë¥\98(_S)"
+msgstr "문ì\9e\90ì\97´ ì\8a¤í\83\80ì\9d¼ ì\84¤ì \95"
 
 #: ../src/dialogs/tiledialog.cpp:353
 msgid "Arrange in a grid"
-msgstr ""
+msgstr "격자에서 배열"
 
 #: ../src/dialogs/tiledialog.cpp:654
 msgid "Rows:"
@@ -2100,11 +2109,11 @@ msgstr "줄:"
 
 #: ../src/dialogs/tiledialog.cpp:662
 msgid "Number of rows"
-msgstr "줄 숫자:"
+msgstr "줄 갯수:"
 
 #: ../src/dialogs/tiledialog.cpp:666
 msgid "Equal height"
-msgstr "같은 높이"
+msgstr "높이 같게"
 
 #: ../src/dialogs/tiledialog.cpp:676
 msgid "If not set, each row has the height of the tallest object in it"
@@ -2112,9 +2121,10 @@ msgstr ""
 
 #. #### Radio buttons to control vertical alignment ####
 #. #### Radio buttons to control horizontal alignment ####
-#: ../src/dialogs/tiledialog.cpp:682 ../src/dialogs/tiledialog.cpp:752
+#: ../src/dialogs/tiledialog.cpp:682
+#: ../src/dialogs/tiledialog.cpp:752
 msgid "Align:"
-msgstr "정:"
+msgstr "정:"
 
 #. #### Number of columns ####
 #: ../src/dialogs/tiledialog.cpp:724
@@ -2123,11 +2133,11 @@ msgstr "열:"
 
 #: ../src/dialogs/tiledialog.cpp:732
 msgid "Number of columns"
-msgstr "열 숫자:"
+msgstr "열 갯수:"
 
 #: ../src/dialogs/tiledialog.cpp:736
 msgid "Equal width"
-msgstr "폭을 게"
+msgstr "폭을 동일하게"
 
 #: ../src/dialogs/tiledialog.cpp:745
 msgid "If not set, each column has the width of the widest object in it"
@@ -2136,7 +2146,7 @@ msgstr ""
 #. #### Radio buttons to control spacing manually or to fit selection bbox ####
 #: ../src/dialogs/tiledialog.cpp:791
 msgid "Fit into selection box"
-msgstr "선택한 박스에 마춤"
+msgstr "선택 상자에 맞추기"
 
 #: ../src/dialogs/tiledialog.cpp:797
 msgid "Set spacing:"
@@ -2144,79 +2154,84 @@ msgstr "간격 설정:"
 
 #: ../src/dialogs/tiledialog.cpp:817
 msgid "Vertical spacing between rows (px units)"
-msgstr "줄간의 수직간격 (px 단위)"
+msgstr "줄간의 수직간격 (화소)"
 
 #: ../src/dialogs/tiledialog.cpp:842
 msgid "Horizontal spacing between columns (px units)"
-msgstr "ì¤\84ê°\84ì\9d\98 ì\88\98í\8f\89 ê°\84격 (px ë\8b¨ì\9c\84)"
+msgstr "ì\97´ ì\82¬ì\9d´ ì\88\98í\8f\89 ê°\84격 (í\99\94ì\86\8c)"
 
 #. ## The OK button
-#: ../src/dialogs/tiledialog.cpp:865 ../share/extensions/restack.inx.h:3
-#, fuzzy
+#: ../src/dialogs/tiledialog.cpp:865
+#: ../share/extensions/restack.inx.h:3
 msgid "Arrange"
-msgstr "각도"
+msgstr "배열"
 
 #: ../src/dialogs/tiledialog.cpp:866
 msgid "Arrange selected objects"
-msgstr "선택한 객체 배분"
+msgstr "선택 객체 배열"
 
 #: ../src/dialogs/xml-tree.cpp:174
 msgid "<b>Click</b> to select nodes, <b>drag</b> to rearrange."
-msgstr ""
-"노드를 선택하기 위해 <b>클릭</b> 한후, 재 분배 하기 위해 <b>드래그</b>."
+msgstr "노드 선택하기 위해 <b>클릭</b>, 재배열하기 위하여 <b>끌기</b>."
 
 #: ../src/dialogs/xml-tree.cpp:185
 msgid "<b>Click</b> attribute to edit."
-msgstr "수정을 위한 특성 <b>클릭</b>"
+msgstr "편집하기 위한 속성. <b>클릭</b>"
 
 #: ../src/dialogs/xml-tree.cpp:189
 #, c-format
-msgid ""
-"Attribute <b>%s</b> selected. Press <b>Ctrl+Enter</b> when done editing to "
-"commit changes."
-msgstr ""
+msgid "Attribute <b>%s</b> selected. Press <b>Ctrl+Enter</b> when done editing to commit changes."
+msgstr "<b>%s</b> 선택된 속성 .<b>Ctrl+Enter</b>: 변경시 편집을 완료"
 
 #: ../src/dialogs/xml-tree.cpp:284
 msgid "Drag to reorder nodes"
-msgstr "재 정렬한 노드 드래그"
+msgstr "재정렬된 노드 끌기"
 
 #: ../src/dialogs/xml-tree.cpp:304
 msgid "New element node"
-msgstr "새로운 요소 노드"
+msgstr "새 요소 노드"
 
 #: ../src/dialogs/xml-tree.cpp:326
 msgid "New text node"
-msgstr "새로운 텍스트 노드"
+msgstr "새 텍스트 노드"
 
-#: ../src/dialogs/xml-tree.cpp:347 ../src/dialogs/xml-tree.cpp:1414
+#: ../src/dialogs/xml-tree.cpp:347
+#: ../src/dialogs/xml-tree.cpp:1414
 #: ../src/nodepath.cpp:2024
 msgid "Duplicate node"
 msgstr "노드 복사"
 
-#: ../src/dialogs/xml-tree.cpp:368 ../src/dialogs/xml-tree.cpp:1431
-#: ../src/nodepath.cpp:3273 ../src/widgets/toolbox.cpp:1086
+#: ../src/dialogs/xml-tree.cpp:368
+#: ../src/dialogs/xml-tree.cpp:1431
+#: ../src/nodepath.cpp:3273
+#: ../src/widgets/toolbox.cpp:1086
 msgid "Delete node"
 msgstr "노드 삭제"
 
-#: ../src/dialogs/xml-tree.cpp:384 ../src/dialogs/xml-tree.cpp:1576
+#: ../src/dialogs/xml-tree.cpp:384
+#: ../src/dialogs/xml-tree.cpp:1576
 msgid "Unindent node"
-msgstr ""
+msgstr "비의도 노드"
 
-#: ../src/dialogs/xml-tree.cpp:399 ../src/dialogs/xml-tree.cpp:1555
+#: ../src/dialogs/xml-tree.cpp:399
+#: ../src/dialogs/xml-tree.cpp:1555
 msgid "Indent node"
-msgstr ""
+msgstr "의도 노드"
 
-#: ../src/dialogs/xml-tree.cpp:411 ../src/dialogs/xml-tree.cpp:1508
+#: ../src/dialogs/xml-tree.cpp:411
+#: ../src/dialogs/xml-tree.cpp:1508
 msgid "Raise node"
 msgstr "노드 올리기"
 
-#: ../src/dialogs/xml-tree.cpp:423 ../src/dialogs/xml-tree.cpp:1525
+#: ../src/dialogs/xml-tree.cpp:423
+#: ../src/dialogs/xml-tree.cpp:1525
 msgid "Lower node"
-msgstr "노드를 아래도"
+msgstr "아래 노드"
 
-#: ../src/dialogs/xml-tree.cpp:468 ../src/dialogs/xml-tree.cpp:1449
+#: ../src/dialogs/xml-tree.cpp:468
+#: ../src/dialogs/xml-tree.cpp:1449
 msgid "Delete attribute"
-msgstr "성 삭제"
+msgstr "성 삭제"
 
 #. TRANSLATORS: "Attribute" is a noun here
 #: ../src/dialogs/xml-tree.cpp:513
@@ -2235,11 +2250,11 @@ msgstr "속성 값"
 
 #: ../src/dialogs/xml-tree.cpp:891
 msgid "Drag XML subtree"
-msgstr ""
+msgstr "XML 하위트리 끌기"
 
 #: ../src/dialogs/xml-tree.cpp:1318
 msgid "New element node..."
-msgstr "새로운 개체 노드"
+msgstr "새 요소 노드..."
 
 #: ../src/dialogs/xml-tree.cpp:1339
 #: ../src/ui/dialog/whiteboard-connect.cpp:114
@@ -2252,167 +2267,169 @@ msgid "Create"
 msgstr "생성"
 
 #: ../src/dialogs/xml-tree.cpp:1380
-#, fuzzy
 msgid "Create new element node"
-msgstr "새로운 요소 노드"
+msgstr "새 요소 노드 생성"
 
 #: ../src/dialogs/xml-tree.cpp:1396
-#, fuzzy
 msgid "Create new text node"
-msgstr "새로운 텍스트 노드"
+msgstr "새 문자열 노드 생성"
 
 #: ../src/dialogs/xml-tree.cpp:1478
-#, fuzzy
 msgid "Change attribute"
-msgstr "속성 설정"
+msgstr "속성 변경"
 
-#: ../src/display/canvas-axonomgrid.cpp:390 ../src/display/canvas-grid.cpp:656
+#: ../src/display/canvas-axonomgrid.cpp:390
+#: ../src/display/canvas-grid.cpp:656
 msgid "Grid _units:"
-msgstr ""
+msgstr "격자 단위(_U):"
 
-#: ../src/display/canvas-axonomgrid.cpp:392 ../src/display/canvas-grid.cpp:658
+#: ../src/display/canvas-axonomgrid.cpp:392
+#: ../src/display/canvas-grid.cpp:658
 msgid "_Origin X:"
-msgstr ""
+msgstr "기본 X(_O):"
 
-#: ../src/display/canvas-axonomgrid.cpp:392 ../src/display/canvas-grid.cpp:658
+#: ../src/display/canvas-axonomgrid.cpp:392
+#: ../src/display/canvas-grid.cpp:658
 #: ../src/ui/dialog/inkscape-preferences.cpp:869
 #: ../src/ui/dialog/inkscape-preferences.cpp:890
 msgid "X coordinate of grid origin"
-msgstr ""
+msgstr "기본 격자의 X좌표"
 
-#: ../src/display/canvas-axonomgrid.cpp:394 ../src/display/canvas-grid.cpp:660
+#: ../src/display/canvas-axonomgrid.cpp:394
+#: ../src/display/canvas-grid.cpp:660
 msgid "O_rigin Y:"
-msgstr ""
+msgstr "기본 Y(_R):"
 
-#: ../src/display/canvas-axonomgrid.cpp:394 ../src/display/canvas-grid.cpp:660
+#: ../src/display/canvas-axonomgrid.cpp:394
+#: ../src/display/canvas-grid.cpp:660
 #: ../src/ui/dialog/inkscape-preferences.cpp:870
 #: ../src/ui/dialog/inkscape-preferences.cpp:891
 msgid "Y coordinate of grid origin"
-msgstr ""
+msgstr "격자 원지점의 Y 좌표"
 
-#: ../src/display/canvas-axonomgrid.cpp:396 ../src/display/canvas-grid.cpp:664
+#: ../src/display/canvas-axonomgrid.cpp:396
+#: ../src/display/canvas-grid.cpp:664
 msgid "Spacing _Y:"
-msgstr ""
+msgstr "여백 Y(_Y)"
 
 #: ../src/display/canvas-axonomgrid.cpp:396
 #: ../src/ui/dialog/inkscape-preferences.cpp:893
 msgid "Base length of z-axis"
-msgstr ""
+msgstr "Z 축의 기본 길이"
 
-#: ../src/display/canvas-axonomgrid.cpp:398 ../src/widgets/toolbox.cpp:2723
-#, fuzzy
+#: ../src/display/canvas-axonomgrid.cpp:398
+#: ../src/widgets/toolbox.cpp:2723
 msgid "Angle X:"
-msgstr "각도"
+msgstr "X 각도:"
 
 #: ../src/display/canvas-axonomgrid.cpp:398
 #: ../src/ui/dialog/inkscape-preferences.cpp:896
 msgid "Angle of x-axis"
-msgstr ""
+msgstr "X 축의 각도"
 
-#: ../src/display/canvas-axonomgrid.cpp:400 ../src/widgets/toolbox.cpp:2802
-#, fuzzy
+#: ../src/display/canvas-axonomgrid.cpp:400
+#: ../src/widgets/toolbox.cpp:2802
 msgid "Angle Z:"
-msgstr "각도"
+msgstr "각도"
 
 #: ../src/display/canvas-axonomgrid.cpp:400
 #: ../src/ui/dialog/inkscape-preferences.cpp:897
 msgid "Angle of z-axis"
-msgstr ""
+msgstr "Z 축의 각도"
 
-#: ../src/display/canvas-axonomgrid.cpp:404 ../src/display/canvas-grid.cpp:668
+#: ../src/display/canvas-axonomgrid.cpp:404
+#: ../src/display/canvas-grid.cpp:668
 msgid "Grid line _color:"
-msgstr ""
+msgstr "격자선 색상(_C):"
 
-#: ../src/display/canvas-axonomgrid.cpp:404 ../src/display/canvas-grid.cpp:668
+#: ../src/display/canvas-axonomgrid.cpp:404
+#: ../src/display/canvas-grid.cpp:668
 #: ../src/ui/dialog/inkscape-preferences.cpp:876
 #: ../src/ui/dialog/inkscape-preferences.cpp:877
 #: ../src/ui/dialog/inkscape-preferences.cpp:898
 #: ../src/ui/dialog/inkscape-preferences.cpp:899
 msgid "Grid line color"
-msgstr ""
+msgstr "격자선 색상"
 
-#: ../src/display/canvas-axonomgrid.cpp:404 ../src/display/canvas-grid.cpp:668
+#: ../src/display/canvas-axonomgrid.cpp:404
+#: ../src/display/canvas-grid.cpp:668
 msgid "Color of grid lines"
-msgstr ""
+msgstr "격자선 색상"
 
-#: ../src/display/canvas-axonomgrid.cpp:409 ../src/display/canvas-grid.cpp:673
+#: ../src/display/canvas-axonomgrid.cpp:409
+#: ../src/display/canvas-grid.cpp:673
 msgid "Ma_jor grid line color:"
-msgstr ""
+msgstr "주 격자선 색상(_J):"
 
-#: ../src/display/canvas-axonomgrid.cpp:409 ../src/display/canvas-grid.cpp:673
+#: ../src/display/canvas-axonomgrid.cpp:409
+#: ../src/display/canvas-grid.cpp:673
 #: ../src/ui/dialog/inkscape-preferences.cpp:878
 #: ../src/ui/dialog/inkscape-preferences.cpp:879
 #: ../src/ui/dialog/inkscape-preferences.cpp:900
 #: ../src/ui/dialog/inkscape-preferences.cpp:901
 msgid "Major grid line color"
-msgstr ""
+msgstr "주 격자선 색상"
 
-#: ../src/display/canvas-axonomgrid.cpp:410 ../src/display/canvas-grid.cpp:674
+#: ../src/display/canvas-axonomgrid.cpp:410
+#: ../src/display/canvas-grid.cpp:674
 msgid "Color of the major (highlighted) grid lines"
-msgstr ""
+msgstr "주 격자선 색상"
 
-#: ../src/display/canvas-axonomgrid.cpp:414 ../src/display/canvas-grid.cpp:678
+#: ../src/display/canvas-axonomgrid.cpp:414
+#: ../src/display/canvas-grid.cpp:678
 msgid "_Major grid line every:"
-msgstr ""
+msgstr "주 격자선 반복(_M):"
 
-#: ../src/display/canvas-axonomgrid.cpp:414 ../src/display/canvas-grid.cpp:678
+#: ../src/display/canvas-axonomgrid.cpp:414
+#: ../src/display/canvas-grid.cpp:678
 msgid "lines"
-msgstr ""
+msgstr ""
 
 #: ../src/display/canvas-grid.cpp:40
-#, fuzzy
 msgid "Rectangular grid"
-msgstr "ì\82¬ê²©í\98\95"
+msgstr "ì\82¬ê°\81 ê²©ì\9e\90"
 
 #: ../src/display/canvas-grid.cpp:41
 msgid "Axonometric grid"
-msgstr ""
+msgstr "마름모 격자"
 
 #: ../src/display/canvas-grid.cpp:259
-#, fuzzy
 msgid "Create new grid"
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì\83\88 ê²©ì\9e\90 ì\83\9dì\84±"
 
 #: ../src/display/canvas-grid.cpp:325
-#, fuzzy
 msgid "_Enabled"
-msgstr "제목"
+msgstr "가능(_E)"
 
 #: ../src/display/canvas-grid.cpp:326
-msgid ""
-"Determines whether to snap to this grid or not. Can be 'on' for invisible "
-"grids."
+msgid "Determines whether to snap to this grid or not. Can be 'on' for invisible grids."
 msgstr ""
 
 #: ../src/display/canvas-grid.cpp:329
-#, fuzzy
 msgid "_Visible"
-msgstr "색:"
+msgstr "볼 수 있음(_V)"
 
 #: ../src/display/canvas-grid.cpp:330
-msgid ""
-"Determines whether the grid is displayed or not. Objects are still snapped "
-"to invisible grids."
+msgid "Determines whether the grid is displayed or not. Objects are still snapped to invisible grids."
 msgstr ""
 
 #: ../src/display/canvas-grid.cpp:662
 msgid "Spacing _X:"
-msgstr ""
+msgstr "여백 X(_X):"
 
 #: ../src/display/canvas-grid.cpp:662
 #: ../src/ui/dialog/inkscape-preferences.cpp:873
 msgid "Distance between vertical grid lines"
-msgstr ""
+msgstr "수직 격자선 사이 거리"
 
 #: ../src/display/canvas-grid.cpp:664
 #: ../src/ui/dialog/inkscape-preferences.cpp:874
-#, fuzzy
 msgid "Distance between horizontal grid lines"
-msgstr "ì\88\98í\8f\89 ê°\80ì\9d´ë\93\9c ë\9d¼ì\9d¸"
+msgstr "ì\88\98í\8f\89 ê²©ì\9e\90ì\84  ì\82¬ì\9d´ ê±°ë¦¬"
 
 #: ../src/display/canvas-grid.cpp:697
 msgid "_Show dots instead of lines"
-msgstr ""
+msgstr "선 대신 점으로 보이기(_S)"
 
 #: ../src/display/canvas-grid.cpp:698
 #: ../src/ui/dialog/inkscape-preferences.cpp:883
@@ -2422,7 +2439,7 @@ msgstr ""
 #: ../src/document.cpp:415
 #, c-format
 msgid "New document %d"
-msgstr "새로운 문서 %d"
+msgstr "새 문서 %d"
 
 #: ../src/document.cpp:447
 #, c-format
@@ -2432,7 +2449,7 @@ msgstr "메모리 문서 %d"
 #: ../src/document.cpp:603
 #, c-format
 msgid "Unnamed document %d"
-msgstr "이름이 바뀌지 않은 문서 %d"
+msgstr "이름이 없는 문서 %d"
 
 #. We hit green anchor, closing Green-Blue-Red
 #: ../src/draw-context.cpp:448
@@ -2442,11 +2459,11 @@ msgstr "경로 닫힘."
 #. We hit bot start and end of single curve, closing paths
 #: ../src/draw-context.cpp:463
 msgid "Closing path."
-msgstr "경로 닫는중."
+msgstr "경로 닫는 중."
 
 #: ../src/draw-context.cpp:577
 msgid "Draw path"
-msgstr ""
+msgstr "경로 그리기"
 
 #. alpha of color under cursor, to show in the statusbar
 #. locale-sensitive printf is OK, since this goes to the UI, not into SVG
@@ -2459,7 +2476,7 @@ msgstr " 알파 %.3g"
 #: ../src/dropper-context.cpp:294
 #, c-format
 msgid ", averaged with radius %d"
-msgstr ""
+msgstr ",평균 반경  %d"
 
 #: ../src/dropper-context.cpp:294
 msgid " under cursor"
@@ -2468,80 +2485,77 @@ msgstr " 커서 아래"
 #. message, to show in the statusbar
 #: ../src/dropper-context.cpp:296
 msgid "<b>Release mouse</b> to set color."
-msgstr ""
+msgstr "색상을 설정하기 위하여 마우스를 놓음"
 
-#: ../src/dropper-context.cpp:296 ../src/tools-switch.cpp:229
-msgid ""
-"<b>Click</b> to set fill, <b>Shift+click</b> to set stroke; <b>drag</b> to "
-"average color in area; with <b>Alt</b> to pick inverse color; <b>Ctrl+C</b> "
-"to copy the color under mouse to clipboard"
-msgstr ""
+#: ../src/dropper-context.cpp:296
+#: ../src/tools-switch.cpp:229
+msgid "<b>Click</b> to set fill, <b>Shift+click</b> to set stroke; <b>drag</b> to average color in area; with <b>Alt</b> to pick inverse color; <b>Ctrl+C</b> to copy the color under mouse to clipboard"
+msgstr "채움 설정하기 위하여 클릭, Shift+클릭: 윤곽선 설정 , Alt: 구간 색상을 평균하기 위하여 끌기, 역전 색상을 추출하기 위하여 , Ctrl+C: 마우스 아래 색상을 클립보드에 복사"
 
 #: ../src/dropper-context.cpp:329
 msgid "Set picked color"
-msgstr ""
+msgstr "선택 색상 설정"
 
 #: ../src/dyna-draw-context.cpp:625
-msgid ""
-"<b>Guide path selected</b>; start drawing along the guide with <b>Ctrl</b>"
-msgstr ""
+msgid "<b>Guide path selected</b>; start drawing along the guide with <b>Ctrl</b>"
+msgstr "<b>선택된 안내선 경로</b>; <b>Ctrl</b>: 안내선 따라 그리기 시작"
 
 #: ../src/dyna-draw-context.cpp:627
 msgid "<b>Select a guide path</b> to track with <b>Ctrl</b>"
-msgstr ""
+msgstr "<b>안내선 경로 선택</b>  <b>Ctrl</b>: 따라가기 위하여"
 
 #: ../src/dyna-draw-context.cpp:732
 msgid "Tracking: <b>connection to guide path lost!</b>"
-msgstr ""
+msgstr "따오기: 안내 경로 잃은 것을 연결"
 
 #: ../src/dyna-draw-context.cpp:732
 msgid "<b>Tracking</b> a guide path"
-msgstr ""
+msgstr "안내선 경로를 <b>따르기</b>"
 
 #: ../src/dyna-draw-context.cpp:735
-#, fuzzy
 msgid "<b>Drawing</b> a calligraphic stroke"
-msgstr "중심선"
+msgstr "글자체 윤곽선 <b>그리기</b>"
 
 #: ../src/dyna-draw-context.cpp:1016
-#, fuzzy
 msgid "Draw calligraphic stroke"
-msgstr "중심선"
+msgstr "글자체 윤곽선 그리기"
 
 #: ../src/eraser-context.cpp:532
-#, fuzzy
 msgid "<b>Drawing</b> an eraser stroke"
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì§\80ì\9a°ê°\9c ì\9c¤ê³½ì\84  <b>그리기</b>"
 
 #: ../src/eraser-context.cpp:839
-#, fuzzy
 msgid "Draw eraser stroke"
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì§\80ì\9a°ê°\9c ì\9c¤ê³½ì\84  ê·¸ë¦¬ê¸°"
 
 #: ../src/event-context.cpp:595
 msgid "<b>Space+mouse drag</b> to pan canvas"
-msgstr ""
+msgstr "<b>Space+끌기</b>는 캔버스 이동"
 
 #: ../src/event-log.cpp:37
 msgid "[Unchanged]"
-msgstr ""
+msgstr "[변화없음]"
 
 #. Edit
-#: ../src/event-log.cpp:264 ../src/event-log.cpp:267 ../src/verbs.cpp:2193
+#: ../src/event-log.cpp:264
+#: ../src/event-log.cpp:267
+#: ../src/verbs.cpp:2193
 msgid "_Undo"
 msgstr "되돌리기(_U)"
 
-#: ../src/event-log.cpp:274 ../src/event-log.cpp:278 ../src/verbs.cpp:2195
+#: ../src/event-log.cpp:274
+#: ../src/event-log.cpp:278
+#: ../src/verbs.cpp:2195
 msgid "_Redo"
-msgstr "ì\9b\90ë\9e\98ë\8f\84 ë\8f\8c리기"
+msgstr "ì\9e¬ì\8b¤í\96\89(_R)"
 
 #: ../src/extension/dependency.cpp:261
 msgid "Dependency:"
-msgstr ""
+msgstr "의존성:"
 
 #: ../src/extension/dependency.cpp:262
 msgid "  type: "
-msgstr "  í\83\80ì\9e\85: "
+msgstr "  í\98\95í\83\9c: "
 
 #: ../src/extension/dependency.cpp:263
 msgid "  location: "
@@ -2549,7 +2563,7 @@ msgstr "  위치: "
 
 #: ../src/extension/dependency.cpp:264
 msgid "  string: "
-msgstr ""
+msgstr "  문자열: "
 
 #: ../src/extension/dependency.cpp:267
 msgid "  description: "
@@ -2557,17 +2571,14 @@ msgstr "  설명: "
 
 #: ../src/extension/effect.cpp:35
 msgid " (No preferences)"
-msgstr ""
+msgstr " (기본설정 없음)"
 
 #. This is some filler text, needs to change before relase
 #: ../src/extension/error-file.cpp:53
 msgid ""
-"<span weight=\"bold\" size=\"larger\">One or more extensions failed to load</"
-"span>\n"
+"<span weight=\"bold\" size=\"larger\">One or more extensions failed to load</span>\n"
 "\n"
-"The failed extensions have been skipped.  Inkscape will continue to run "
-"normally but those extensions will be unavailable.  For details to "
-"troubleshoot this problem, please refer to the error log located at: "
+"The failed extensions have been skipped.  Inkscape will continue to run normally but those extensions will be unavailable.  For details to troubleshoot this problem, please refer to the error log located at: "
 msgstr ""
 
 #. This is some filler text, needs to change before relase
@@ -2578,23 +2589,21 @@ msgstr "시작시 대화창 보이기"
 #: ../src/extension/execution-env.cpp:134
 #, c-format
 msgid "'%s' working, please wait..."
-msgstr ""
+msgstr "'%s' 작업 중, 기다리세요..."
 
 #. static int i = 0;
 #. std::cout << "Checking module[" << i++ << "]: " << name << std::endl;
 #: ../src/extension/extension.cpp:252
-msgid ""
-"  This is caused by an improper .inx file for this extension.  An improper ."
-"inx file could have been caused by a faulty installation of Inkscape."
-msgstr ""
+msgid "  This is caused by an improper .inx file for this extension.  An improper .inx file could have been caused by a faulty installation of Inkscape."
+msgstr "부적합한 .inx 파일에  의해 문제가 생겼습니다."
 
 #: ../src/extension/extension.cpp:255
 msgid "an ID was not defined for it."
-msgstr "이것을 위해 ID 가 정의 되지 않았음."
+msgstr "이것을 위해 ID 가 정의되지 않았음."
 
 #: ../src/extension/extension.cpp:259
 msgid "there was no name defined for it."
-msgstr "이것을 위한 이름이 정해지지 않았음."
+msgstr "이것을 위한 이름이 정해지지 않았음."
 
 #: ../src/extension/extension.cpp:263
 msgid "the XML description of it got lost."
@@ -2607,7 +2616,7 @@ msgstr ""
 #. std::cout << "Failed: " << *(_deps[i]) << std::endl;
 #: ../src/extension/extension.cpp:274
 msgid "a dependency was not met."
-msgstr ""
+msgstr "의존성이 없음"
 
 #: ../src/extension/extension.cpp:294
 msgid "Extension \""
@@ -2615,12 +2624,12 @@ msgstr "확장 \""
 
 #: ../src/extension/extension.cpp:294
 msgid "\" failed to load because "
-msgstr "\" 불러들이는데 실패 왜냐하면 "
+msgstr "\" 불러들이는데 실패"
 
 #: ../src/extension/extension.cpp:625
 #, c-format
 msgid "Could not create extension error log file '%s'"
-msgstr "에라 로그 파일 '%s' 를 생성할수 없음"
+msgstr "확장 오류 로그 파일 '%s' 를 생성할 수 없음"
 
 #: ../src/extension/extension.cpp:723
 msgid "Name:"
@@ -2636,71 +2645,62 @@ msgstr "상태:"
 
 #: ../src/extension/extension.cpp:725
 msgid "Loaded"
-msgstr "불러들임"
+msgstr "불러오기"
 
 #: ../src/extension/extension.cpp:725
 msgid "Unloaded"
-msgstr "ë\82´ë ¤ì§\90"
+msgstr "ë\88ë\9f¬ì\98¤ê¸° í\95´ì \9c"
 
 #: ../src/extension/extension.cpp:725
 msgid "Deactivated"
 msgstr "비 활성화"
 
 #: ../src/extension/extension.cpp:756
-msgid ""
-"Currently there is no help available for this Extension.  Please look on the "
-"Inkscape website or ask on the mailing lists if you have questions regarding "
-"this extension."
+msgid "Currently there is no help available for this Extension.  Please look on the Inkscape website or ask on the mailing lists if you have questions regarding this extension."
 msgstr ""
 
 #: ../src/extension/implementation/script.cpp:1055
-msgid ""
-"Inkscape has received additional data from the script executed.  The script "
-"did not return an error, but this may indicate the results will not be as "
-"expected."
-msgstr ""
-"스크립트를 수행한 결과 데이타를 받았습니다. 스크립트 수형 결과, 에라가 발생"
-"한 것은 아니지만, 그 결과 값이 예상했던 결과가 아닐수 있습니다."
+msgid "Inkscape has received additional data from the script executed.  The script did not return an error, but this may indicate the results will not be as expected."
+msgstr "실행된 스크립트에서 부가 자료를 받았습니다. 오류가 발생한 것은 아니지만, 그 결과치는 예상했던 결과가 아닐 수 있습니다."
 
 #: ../src/extension/init.cpp:282
 msgid "Null external module directory name.  Modules will not be loaded."
-msgstr ""
+msgstr "Null 외부 모듈 폴더 이름. 모듈이 읽혀지지 않음."
 
 #: ../src/extension/init.cpp:296
 #: ../src/extension/internal/filter/filter-file.cpp:56
 #, c-format
-msgid ""
-"Modules directory (%s) is unavailable.  External modules in that directory "
-"will not be loaded."
-msgstr ""
+msgid "Modules directory (%s) is unavailable.  External modules in that directory will not be loaded."
+msgstr "모듈 폴더 (%s)를 사용할 수 없습니다. 그 폴더에서 외부 모듈을 읽어올 수 없습니다."
 
 #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:38
-msgid "Adaptive Threshold"
-msgstr ""
+msgid "Adaptive Threshold..."
+msgstr "조작 허용치..."
 
 #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:40
 #: ../src/extension/internal/bitmap/raise.cpp:41
 #: ../src/extension/internal/bitmap/sample.cpp:40
-#: ../src/extension/internal/bluredge.cpp:134 ../src/libgdl/gdl-dock.c:190
+#: ../src/extension/internal/bluredge.cpp:134
+#: ../src/libgdl/gdl-dock.c:190
 #: ../src/libgdl/gdl-dock-placeholder.c:169
 #: ../src/live_effects/lpe-bendpath.cpp:58
 #: ../src/live_effects/lpe-patternalongpath.cpp:64
-#: ../src/widgets/toolbox.cpp:2396 ../src/widgets/toolbox.cpp:3241
-#, fuzzy
+#: ../src/widgets/toolbox.cpp:2396
+#: ../src/widgets/toolbox.cpp:3241
 msgid "Width"
-msgstr "폭:"
+msgstr "폭"
 
 #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41
 #: ../src/extension/internal/bitmap/raise.cpp:42
-#: ../src/extension/internal/bitmap/sample.cpp:41 ../src/libgdl/gdl-dock.c:198
-#: ../src/libgdl/gdl-dock-placeholder.c:177 ../src/widgets/toolbox.cpp:2413
-#, fuzzy
+#: ../src/extension/internal/bitmap/sample.cpp:41
+#: ../src/libgdl/gdl-dock.c:198
+#: ../src/libgdl/gdl-dock-placeholder.c:177
+#: ../src/widgets/toolbox.cpp:2413
 msgid "Height"
-msgstr "높이:"
+msgstr "높이"
 
 #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42
 #: ../src/filter-enums.cpp:32
-#, fuzzy
 msgid "Offset"
 msgstr "옵셋"
 
@@ -2739,51 +2739,48 @@ msgstr "옵셋"
 #: ../src/extension/internal/bitmap/threshold.cpp:43
 #: ../src/extension/internal/bitmap/unsharpmask.cpp:49
 #: ../src/extension/internal/bitmap/wave.cpp:44
-#, fuzzy
 msgid "Raster"
-msgstr "ë°\98ì§\80ë¦\84"
+msgstr "ë\9e\98ì\8a¤í\84°"
 
 #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:48
 msgid "Apply adaptive thresholding to selected bitmap(s)."
-msgstr ""
+msgstr "적합한 허용치를 선택 비트맵에 적용"
 
 #: ../src/extension/internal/bitmap/addNoise.cpp:44
-#, fuzzy
 msgid "Add Noise"
-msgstr "노드 추가"
+msgstr "노이즈 더하기"
 
 #: ../src/extension/internal/bitmap/addNoise.cpp:47
 msgid "Uniform Noise"
-msgstr ""
+msgstr "균일 노이즈"
 
 #: ../src/extension/internal/bitmap/addNoise.cpp:48
 msgid "Gaussian Noise"
-msgstr ""
+msgstr "가우시안 노이즈"
 
 #: ../src/extension/internal/bitmap/addNoise.cpp:49
 msgid "Multiplicative Gaussian Noise"
-msgstr ""
+msgstr "증가 가우시안 노이즈"
 
 #: ../src/extension/internal/bitmap/addNoise.cpp:50
 msgid "Impulse Noise"
-msgstr ""
+msgstr "충격 노이즈"
 
 #: ../src/extension/internal/bitmap/addNoise.cpp:51
 msgid "Laplacian Noise"
-msgstr ""
+msgstr "라플라시안 노이즈"
 
 #: ../src/extension/internal/bitmap/addNoise.cpp:52
 msgid "Poisson Noise"
-msgstr ""
+msgstr "포아송 노이즈"
 
 #: ../src/extension/internal/bitmap/addNoise.cpp:59
 msgid "Add random noise to selected bitmap(s)."
-msgstr ""
+msgstr "임의 노이즈를 선택 비트맵에 더하기"
 
 #: ../src/extension/internal/bitmap/blur.cpp:37
-#, fuzzy
 msgid "Blur"
-msgstr "í\8c\8cë\9e\91"
+msgstr "í\9d\90림"
 
 #: ../src/extension/internal/bitmap/blur.cpp:39
 #: ../src/extension/internal/bitmap/charcoal.cpp:39
@@ -2803,115 +2800,104 @@ msgstr "반지름"
 #: ../src/extension/internal/bitmap/gaussianBlur.cpp:40
 #: ../src/extension/internal/bitmap/sharpen.cpp:40
 #: ../src/extension/internal/bitmap/unsharpmask.cpp:43
-#, fuzzy
 msgid "Sigma"
-msgstr "확대/축소(_S)"
+msgstr "시그마"
 
 #: ../src/extension/internal/bitmap/blur.cpp:46
-#, fuzzy
 msgid "Blur selected bitmap(s)"
-msgstr "내장 된 전체 이미지"
+msgstr "흐림 선택 비트맵"
 
 #: ../src/extension/internal/bitmap/channel.cpp:47
 #: ../src/extension/internal/bitmap/levelChannel.cpp:53
-#, fuzzy
 msgid "Channel"
-msgstr "ì·¨ì\86\8c"
+msgstr "ì±\84ë\84\90"
 
 #: ../src/extension/internal/bitmap/channel.cpp:49
-#, fuzzy
 msgid "Layer"
-msgstr "레이어 추가"
+msgstr "레이어"
 
 #: ../src/extension/internal/bitmap/channel.cpp:50
 #: ../src/extension/internal/bitmap/levelChannel.cpp:54
 msgid "Red Channel"
-msgstr ""
+msgstr "적색 채널"
 
 #: ../src/extension/internal/bitmap/channel.cpp:51
 #: ../src/extension/internal/bitmap/levelChannel.cpp:55
 msgid "Green Channel"
-msgstr ""
+msgstr "녹색 채널"
 
 #: ../src/extension/internal/bitmap/channel.cpp:52
 #: ../src/extension/internal/bitmap/levelChannel.cpp:56
 msgid "Blue Channel"
-msgstr ""
+msgstr "청색 채널"
 
 #: ../src/extension/internal/bitmap/channel.cpp:53
 #: ../src/extension/internal/bitmap/levelChannel.cpp:57
-#, fuzzy
 msgid "Cyan Channel"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì²­ë¡\9dì\83\89 ì±\84ë\84\90"
 
 #: ../src/extension/internal/bitmap/channel.cpp:54
 #: ../src/extension/internal/bitmap/levelChannel.cpp:58
 msgid "Magenta Channel"
-msgstr ""
+msgstr "자홍색 채널"
 
 #: ../src/extension/internal/bitmap/channel.cpp:55
 #: ../src/extension/internal/bitmap/levelChannel.cpp:59
 msgid "Yellow Channel"
-msgstr ""
+msgstr "노랑색 채널"
 
 #: ../src/extension/internal/bitmap/channel.cpp:56
 #: ../src/extension/internal/bitmap/levelChannel.cpp:60
-#, fuzzy
 msgid "Black Channel"
-msgstr "검정색"
+msgstr "검정색 채널"
 
 #: ../src/extension/internal/bitmap/channel.cpp:57
 #: ../src/extension/internal/bitmap/levelChannel.cpp:61
-#, fuzzy
 msgid "Opacity Channel"
-msgstr "불투명도"
+msgstr "불투명도 채널"
 
 #: ../src/extension/internal/bitmap/channel.cpp:58
 #: ../src/extension/internal/bitmap/levelChannel.cpp:62
 msgid "Matte Channel"
-msgstr ""
+msgstr "마테 채널"
 
 #: ../src/extension/internal/bitmap/channel.cpp:65
 msgid "Extract specific channel from image."
-msgstr ""
+msgstr "이미지에서 지정 채널 추출"
 
 #: ../src/extension/internal/bitmap/charcoal.cpp:37
 msgid "Charcoal"
-msgstr ""
+msgstr "석탄"
 
 #: ../src/extension/internal/bitmap/charcoal.cpp:46
 msgid "Apply charcoal stylization to selected bitmap(s)."
-msgstr ""
+msgstr "석탄 형태를 선택 비트맵으로 적용"
 
 #: ../src/extension/internal/bitmap/colorize.cpp:49
-#, fuzzy
 msgid "Colorize"
-msgstr "색"
+msgstr "색상화"
 
 #: ../src/extension/internal/bitmap/colorize.cpp:57
 msgid "Colorize selected bitmap(s) with specified color, using given opacity."
-msgstr ""
+msgstr "지정 선택 비트맵을 색상화"
 
 #: ../src/extension/internal/bitmap/contrast.cpp:36
-#, fuzzy
 msgid "Contrast"
-msgstr "ë³µì\82¬ ê°\9dì²´"
+msgstr "ë\8c\80ë¹\84"
 
 #: ../src/extension/internal/bitmap/contrast.cpp:38
 #: ../src/extension/internal/bitmap/sharpen.cpp:37
-#, fuzzy
 msgid "Sharpen"
-msgstr "형태"
+msgstr "날카롭게"
 
 #: ../src/extension/internal/bitmap/contrast.cpp:44
 msgid "Enhance intensity differences in selected bitmap(s)."
-msgstr ""
+msgstr "선택 비트맵에서 강도 차이 증가"
 
 #. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-convolve.html
 #: ../src/extension/internal/bitmap/convolve.cpp:50
-#, fuzzy
 msgid "Convolve"
-msgstr "ë³µì\82¬ë³¸"
+msgstr "ë\91\98ë\91\98ë§\90기"
 
 #: ../src/extension/internal/bitmap/convolve.cpp:52
 #: ../src/extension/internal/bitmap/reduceNoise.cpp:41
@@ -2921,541 +2907,482 @@ msgstr "순서"
 
 #: ../src/extension/internal/bitmap/convolve.cpp:53
 msgid "Kernel Array"
-msgstr ""
+msgstr "커널 배열"
 
 #: ../src/extension/internal/bitmap/convolve.cpp:59
 msgid "Apply Convolve Effect"
-msgstr ""
+msgstr "둘둘말기 효과 적용"
 
 #: ../src/extension/internal/bitmap/cycleColormap.cpp:36
 msgid "Cycle Colormap"
-msgstr ""
+msgstr "순환 색상맵"
 
 #: ../src/extension/internal/bitmap/cycleColormap.cpp:38
 #: ../src/extension/internal/bitmap/spread.cpp:38
 #: ../src/extension/internal/bitmap/unsharpmask.cpp:44
-#, fuzzy
 msgid "Amount"
-msgstr "글꼴"
+msgstr ""
 
 #: ../src/extension/internal/bitmap/cycleColormap.cpp:44
 msgid "Cycle colormap(s) of selected bitmap(s)."
-msgstr ""
+msgstr "선택 비트맵의 순환 색상맵"
 
 #: ../src/extension/internal/bitmap/despeckle.cpp:35
-#, fuzzy
 msgid "Despeckle"
-msgstr "선택"
+msgstr "반점 없애기"
 
 #: ../src/extension/internal/bitmap/despeckle.cpp:42
 msgid "Reduce speckle noise of selected bitmap(s)."
-msgstr ""
+msgstr "선택 비트맵의 반점 노이즈를 감소"
 
 #: ../src/extension/internal/bitmap/edge.cpp:36
 msgid "Edge"
-msgstr ""
+msgstr "모서리"
 
 #: ../src/extension/internal/bitmap/edge.cpp:44
 msgid "Hilight edges of selected bitmap(s)."
-msgstr ""
+msgstr "선택 비트맵의 강조 모서리"
 
 #. ID -- should be unique
 #: ../src/extension/internal/bitmap/emboss.cpp:37
 #: ../src/extension/internal/filter/emboss.h:21
 msgid "Emboss"
-msgstr ""
+msgstr "돋을새김"
 
 #: ../src/extension/internal/bitmap/emboss.cpp:46
 msgid "Emboss selected bitmap(s) -- hilight edges with 3D effect."
-msgstr ""
+msgstr "선택 비트맵을 돋을새김으로 하다 -- 3D 효과의 강조 모서리"
 
 #: ../src/extension/internal/bitmap/enhance.cpp:34
-#, fuzzy
 msgid "Enhance"
-msgstr "취소"
+msgstr "강화"
 
 #: ../src/extension/internal/bitmap/enhance.cpp:41
 msgid "Enhance selected bitmap(s) -- minimize noise."
-msgstr ""
+msgstr "선택 비트맵 강화"
 
 #: ../src/extension/internal/bitmap/equalize.cpp:34
-#, fuzzy
 msgid "Equalize"
-msgstr "폭을 같게"
+msgstr "균등화"
 
 #: ../src/extension/internal/bitmap/equalize.cpp:41
 msgid "Equalize selected bitmap(s) -- histogram equalization."
-msgstr ""
+msgstr "선택 비트맵을 균등화 - 도표 동점화"
 
 #: ../src/extension/internal/bitmap/gaussianBlur.cpp:37
 #: ../src/filter-enums.cpp:28
 msgid "Gaussian Blur"
-msgstr ""
+msgstr "가우시안 흐림"
 
 #: ../src/extension/internal/bitmap/gaussianBlur.cpp:39
 #: ../src/extension/internal/bitmap/implode.cpp:38
 #: ../src/extension/internal/bitmap/solarize.cpp:38
-#, fuzzy
 msgid "Factor"
-msgstr "ì \9cì\9e\91ì\9e\90"
+msgstr "ì\9a\94ì\86\8c"
 
 #: ../src/extension/internal/bitmap/gaussianBlur.cpp:46
 msgid "Gaussian blur selected bitmap(s)."
-msgstr ""
+msgstr "선택 비트맵 가우시안 흐림"
 
 #: ../src/extension/internal/bitmap/implode.cpp:36
-#, fuzzy
 msgid "Implode"
-msgstr "불러오기(_I)..."
+msgstr "파열"
 
 #: ../src/extension/internal/bitmap/implode.cpp:44
-#, fuzzy
 msgid "Implode selected bitmap(s)."
-msgstr "선택 ì\83\81í\83\9c ë³´ì¡´"
+msgstr "선택 ë¹\84í\8a¸ë§µ í\8c\8cì\97´"
 
 #: ../src/extension/internal/bitmap/levelChannel.cpp:51
 msgid "Level (with Channel)"
-msgstr ""
+msgstr "레벨(채널가짐)"
 
 #: ../src/extension/internal/bitmap/levelChannel.cpp:64
 #: ../src/extension/internal/bitmap/level.cpp:42
-#, fuzzy
 msgid "Black Point"
-msgstr "ê²\80ì \95ì\83\89"
+msgstr "ê²\80ì\9d\80 ì \90"
 
 #: ../src/extension/internal/bitmap/levelChannel.cpp:65
 #: ../src/extension/internal/bitmap/level.cpp:43
-#, fuzzy
 msgid "White Point"
-msgstr "백색"
+msgstr "흰 점"
 
 #: ../src/extension/internal/bitmap/levelChannel.cpp:66
 #: ../src/extension/internal/bitmap/level.cpp:44
-#, fuzzy
 msgid "Gamma Correction"
-msgstr "감사 수정:"
+msgstr "감마 보정"
 
 #: ../src/extension/internal/bitmap/levelChannel.cpp:72
-msgid ""
-"Level the specified channel of selected bitmap(s) by scaling values falling "
-"between the given ranges to the full color range."
+msgid "Level the specified channel of selected bitmap(s) by scaling values falling between the given ranges to the full color range."
 msgstr ""
 
 #: ../src/extension/internal/bitmap/level.cpp:40
-#, fuzzy
 msgid "Level"
-msgstr ""
+msgstr "레벨"
 
 #: ../src/extension/internal/bitmap/level.cpp:50
-msgid ""
-"Level selected bitmap(s) by scaling values falling between the given ranges "
-"to the full color range."
+msgid "Level selected bitmap(s) by scaling values falling between the given ranges to the full color range."
 msgstr ""
 
 #: ../src/extension/internal/bitmap/medianFilter.cpp:36
-#, fuzzy
 msgid "Median Filter"
-msgstr "레이어 추가"
+msgstr "중간 필터"
 
 #: ../src/extension/internal/bitmap/medianFilter.cpp:44
-msgid ""
-"Filter selected bitmap(s) by replacing each pixel component with the median "
-"color in a circular neighborhood."
+msgid "Filter selected bitmap(s) by replacing each pixel component with the median color in a circular neighborhood."
 msgstr ""
 
 #: ../src/extension/internal/bitmap/modulate.cpp:39
-#, fuzzy
 msgid "Modulate"
 msgstr "이동(_M)"
 
 #: ../src/extension/internal/bitmap/modulate.cpp:41
-#, fuzzy
 msgid "Brightness"
 msgstr "명도"
 
 #: ../src/extension/internal/bitmap/modulate.cpp:42
-#: ../src/flood-context.cpp:275 ../src/ui/dialog/inkscape-preferences.cpp:731
+#: ../src/flood-context.cpp:275
+#: ../src/ui/dialog/inkscape-preferences.cpp:731
 #: ../src/widgets/sp-color-icc-selector.cpp:235
 #: ../src/widgets/sp-color-icc-selector.cpp:236
 #: ../src/widgets/sp-color-scales.cpp:427
-#: ../src/widgets/sp-color-scales.cpp:428 ../src/widgets/toolbox.cpp:3375
+#: ../src/widgets/sp-color-scales.cpp:428
+#: ../src/widgets/toolbox.cpp:3375
 #: ../share/extensions/color_randomize.inx.h:5
 msgid "Saturation"
 msgstr "채도"
 
 #: ../src/extension/internal/bitmap/modulate.cpp:43
-#: ../src/flood-context.cpp:274 ../src/widgets/sp-color-icc-selector.cpp:235
+#: ../src/flood-context.cpp:274
+#: ../src/widgets/sp-color-icc-selector.cpp:235
 #: ../src/widgets/sp-color-icc-selector.cpp:236
 #: ../src/widgets/sp-color-scales.cpp:424
-#: ../src/widgets/sp-color-scales.cpp:425 ../src/widgets/toolbox.cpp:3360
+#: ../src/widgets/sp-color-scales.cpp:425
+#: ../src/widgets/toolbox.cpp:3360
 #: ../share/extensions/color_randomize.inx.h:2
 msgid "Hue"
-msgstr ""
+msgstr "색조"
 
 #: ../src/extension/internal/bitmap/modulate.cpp:49
 msgid "Modulate percent hue, saturation, and brightness of selected bitmap(s)."
 msgstr ""
 
 #: ../src/extension/internal/bitmap/negate.cpp:35
-#, fuzzy
 msgid "Negate"
-msgstr "비 활성화"
+msgstr "취소"
 
 #: ../src/extension/internal/bitmap/negate.cpp:42
 msgid "Negate (take inverse) selected bitmap(s)."
-msgstr ""
+msgstr "선택된 비트맵 취소"
 
 #: ../src/extension/internal/bitmap/normalize.cpp:35
-#, fuzzy
 msgid "Normalize"
-msgstr "일반"
+msgstr "일반"
 
 #: ../src/extension/internal/bitmap/normalize.cpp:42
-msgid ""
-"Normalize selected bitmap(s), expanding color range to the full possible "
-"range of color."
-msgstr ""
+msgid "Normalize selected bitmap(s), expanding color range to the full possible range of color."
+msgstr "선택된 비트맵 일반화, 색상 범위를 전체 색상범위로 확장"
 
 #: ../src/extension/internal/bitmap/oilPaint.cpp:36
-#, fuzzy
 msgid "Oil Paint"
-msgstr "ê·¸ë\86\88 í\94\84린í\8a¸"
+msgstr "기ë¦\84 ì¹ í\95\98기"
 
 #: ../src/extension/internal/bitmap/oilPaint.cpp:44
 msgid "Stylize selected bitmap(s) so that they appear to be painted with oils."
-msgstr ""
+msgstr "선택된 비트맵이 기름으로 칠해지도록 하기"
 
 #: ../src/extension/internal/bitmap/opacity.cpp:45
 msgid "Modify opacity channel(s) of selected bitmap(s)."
-msgstr ""
+msgstr "선택 비트맵의 불투명도 채널 편집"
 
 #: ../src/extension/internal/bitmap/raise.cpp:39
-#, fuzzy
 msgid "Raise"
-msgstr "반지름"
+msgstr "올리기"
 
 #: ../src/extension/internal/bitmap/raise.cpp:43
-#, fuzzy
 msgid "Raised"
-msgstr "반지름"
+msgstr "올리기"
 
 #: ../src/extension/internal/bitmap/raise.cpp:49
-msgid ""
-"Alter lightness the edges of selected bitmap(s) to create a raised "
-"appearance."
-msgstr ""
+msgid "Alter lightness the edges of selected bitmap(s) to create a raised appearance."
+msgstr "돋보이게 하기 위하여 선택 비트맵의 모서리 명도를 변경"
 
 #: ../src/extension/internal/bitmap/reduceNoise.cpp:39
 msgid "Reduce Noise"
-msgstr ""
+msgstr "노이즈 감소"
 
 #: ../src/extension/internal/bitmap/reduceNoise.cpp:47
-msgid ""
-"Reduce noise in selected bitmap(s) using a noise peak elimination filter."
-msgstr ""
+msgid "Reduce noise in selected bitmap(s) using a noise peak elimination filter."
+msgstr "선택 비트맵에서 노이즈 감소"
 
 #: ../src/extension/internal/bitmap/sample.cpp:38
-#, fuzzy
 msgid "Sample"
-msgstr "형태"
+msgstr "샘플"
 
 #: ../src/extension/internal/bitmap/sample.cpp:47
-msgid ""
-"Alter the resolution of selected image by resizing it by given dimensions."
-msgstr ""
+msgid "Alter the resolution of selected image by resizing it by given dimensions."
+msgstr "주어진 크기를 변경함으로서 주어진 이미지 해상도 변경"
 
 #: ../src/extension/internal/bitmap/shade.cpp:39
-#, fuzzy
 msgid "Shade"
-msgstr "형태"
+msgstr "음영"
 
 #: ../src/extension/internal/bitmap/shade.cpp:41
 #: ../src/ui/dialog/filter-effects-dialog.cpp:992
 msgid "Azimuth"
-msgstr ""
+msgstr "방위"
 
 #: ../src/extension/internal/bitmap/shade.cpp:42
 #: ../src/ui/dialog/filter-effects-dialog.cpp:993
-#, fuzzy
 msgid "Elevation"
-msgstr "선택"
+msgstr "고도"
 
 #: ../src/extension/internal/bitmap/shade.cpp:43
-#, fuzzy
 msgid "Colored Shading"
-msgstr "그림자 색"
+msgstr "색상 음영"
 
 #: ../src/extension/internal/bitmap/shade.cpp:49
 msgid "Shade selected bitmap(s) simulating distant light source."
 msgstr ""
 
 #: ../src/extension/internal/bitmap/sharpen.cpp:46
-#, fuzzy
 msgid "Sharpen selected bitmap(s)."
-msgstr "내장 된 전체 이미지"
+msgstr "선택 비트맵 날카롭게"
 
 #: ../src/extension/internal/bitmap/solarize.cpp:36
-#, fuzzy
 msgid "Solarize"
-msgstr "크기"
+msgstr "노출"
 
 #: ../src/extension/internal/bitmap/solarize.cpp:44
 msgid "Solarize selected bitmap(s), like overexposing photographic film."
-msgstr ""
+msgstr "선택 비트맵 노출"
 
 #: ../src/extension/internal/bitmap/spread.cpp:36
-#, fuzzy
 msgid "Spread"
-msgstr "속도:"
+msgstr "흩뜨림"
 
 #: ../src/extension/internal/bitmap/spread.cpp:44
-msgid ""
-"Randomly spread pixels in selected bitmap(s), within the radius of 'amount.'"
-msgstr ""
+msgid "Randomly spread pixels in selected bitmap(s), within the radius of 'amount.'"
+msgstr "선택 비트맵에서 주어진 반경 내에서 무작위로 화소 흩뜨림"
 
 #: ../src/extension/internal/bitmap/swirl.cpp:36
-#, fuzzy
 msgid "Swirl"
-msgstr "나선"
+msgstr "나선"
 
 #: ../src/extension/internal/bitmap/swirl.cpp:38
 #: ../share/extensions/grid_polar.inx.h:7
-#, fuzzy
 msgid "Degrees"
-msgstr "삭제(_D)"
+msgstr "각도"
 
 #: ../src/extension/internal/bitmap/swirl.cpp:44
 msgid "Swirl selected bitmap(s) around center point."
-msgstr ""
+msgstr "중앙점 주변 선택 비트맵을 나선으로 만듦"
 
 #. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html
 #: ../src/extension/internal/bitmap/threshold.cpp:37
 #: ../src/extension/internal/bitmap/threshold.cpp:39
 #: ../src/extension/internal/bitmap/unsharpmask.cpp:45
 msgid "Threshold"
-msgstr ""
+msgstr "허용치"
 
 #: ../src/extension/internal/bitmap/threshold.cpp:45
-#, fuzzy
 msgid "Threshold selected bitmap(s)."
-msgstr "내장 된 전체 이미지"
+msgstr "선택 비트맵 허용치"
 
 #: ../src/extension/internal/bitmap/unsharpmask.cpp:40
 msgid "Unsharp Mask"
-msgstr ""
+msgstr "언샤픈 마스크"
 
 #: ../src/extension/internal/bitmap/unsharpmask.cpp:51
 msgid "Sharpen selected bitmap(s) using unsharp mask algorithms."
-msgstr ""
+msgstr "언샤픈 마스크 수식을 사용하여 선택 비트맵을 날카롭게"
 
 #: ../src/extension/internal/bitmap/wave.cpp:37
-#, fuzzy
 msgid "Wave"
-msgstr "저장(_S)"
+msgstr "물결"
 
 #: ../src/extension/internal/bitmap/wave.cpp:39
 msgid "Amplitude"
-msgstr ""
+msgstr "진폭"
 
 #: ../src/extension/internal/bitmap/wave.cpp:40
 msgid "Wavelength"
-msgstr ""
+msgstr "파장"
 
 #: ../src/extension/internal/bitmap/wave.cpp:46
 msgid "Alter selected bitmap(s) along sine wave."
-msgstr ""
+msgstr "사인곡선을 따라 선택 비트맵 변경"
 
 #: ../src/extension/internal/bluredge.cpp:132
 msgid "Inset/Outset Halo"
-msgstr ""
+msgstr "후광 축소/확대"
 
 #: ../src/extension/internal/bluredge.cpp:134
 msgid "Width in px of the halo"
-msgstr ""
+msgstr "후광의 화소 폭"
 
 #: ../src/extension/internal/bluredge.cpp:135
-#, fuzzy
 msgid "Number of steps"
 msgstr "단계 숫자"
 
 #: ../src/extension/internal/bluredge.cpp:135
 msgid "Number of inset/outset copies of the object to make"
-msgstr ""
+msgstr "생성시킬 객체의 확대/축소 복사본 갯수"
 
 #: ../src/extension/internal/bluredge.cpp:139
-#: ../share/extensions/interp.inx.h:3 ../share/extensions/motion.inx.h:3
+#: ../share/extensions/interp.inx.h:3
+#: ../share/extensions/motion.inx.h:3
 #: ../share/extensions/pathalongpath.inx.h:4
 #: ../share/extensions/pathscatter.inx.h:5
 msgid "Generate from Path"
-msgstr "곡ì\84 ì\9c¼ë¡\9c ë¶\80í\84° ë§\8cë\93¤ì\96´ë\83\84"
+msgstr "ê²½ë¡\9cë¡\9cë¶\80í\84° ì\83\9dì\84±"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:239
-#, fuzzy
 msgid "Cairo PDF Output"
-msgstr "DXF 내보내기"
+msgstr "Cairo PDF 출력"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:241
 msgid "Restrict to PDF version"
-msgstr ""
+msgstr "PDF 버전으로 제한"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:242
 msgid "PDF 1.4"
-msgstr ""
+msgstr "PDF 1.4"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:244
 #: ../src/extension/internal/cairo-ps-out.cpp:230
 #: ../src/extension/internal/emf-win32-inout.cpp:2182
 #: ../src/extension/internal/eps-out.cpp:92
 #: ../src/extension/internal/ps-out.cpp:84
-#, fuzzy
 msgid "Convert texts to paths"
-msgstr "글자를 곡선으로 변환"
+msgstr "문자열을 경로로 변환"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:245
 #: ../src/extension/internal/cairo-ps-out.cpp:231
-#, fuzzy
 msgid "Convert blur effects to bitmaps"
-msgstr "글자를 곡선으로 변환"
+msgstr "흐림 효과를 비트맵으로 변환"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:246
 #: ../src/extension/internal/cairo-ps-out.cpp:232
 msgid "Preferred resolution (DPI) of bitmaps"
-msgstr ""
+msgstr "비트맵 기본 해상도(DPI)"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:247
-#, fuzzy
 msgid "Export drawing, not page"
-msgstr "생성 중"
+msgstr "그림 내보내기, 페이지 아님"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:248
-#, fuzzy
 msgid "Export canvas"
-msgstr "ì\9cë ¥(_E):"
+msgstr "ìº\94ë²\84ì\8a¤ ë\82´ë³´ë\82´ê¸°"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:249
 msgid "Limit export to the object with ID"
-msgstr ""
+msgstr "ID 객체 내보내기로 제한"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:253
-#, fuzzy
+#: ../src/extension/internal/cairo-pdf-out.cpp:25300
 msgid "PDF via Cairo (*.pdf)"
-msgstr "다이아 다이어그램 (*.dia)"
+msgstr "Cairo PDF(*.pdf)"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:254
-#, fuzzy
 msgid "PDF File"
-msgstr "파일(_F)"
+msgstr "PDF 파일"
 
 #: ../src/extension/internal/cairo-ps-out.cpp:222
-#, fuzzy
 msgid "Cairo PS Output"
-msgstr "DXF 내보내기"
+msgstr "Cairo PS 출력"
 
 #: ../src/extension/internal/cairo-ps-out.cpp:224
 msgid "Restrict to PS level"
-msgstr ""
+msgstr "PS 레벨로 제한"
 
 #: ../src/extension/internal/cairo-ps-out.cpp:225
-#, fuzzy
 msgid "PostScript level 3"
-msgstr "포스트 스크립 파일"
+msgstr "포스트스크립트 레벨 3"
 
 #: ../src/extension/internal/cairo-ps-out.cpp:227
-#, fuzzy
 msgid "PostScript level 2"
-msgstr "포스트 스크립 파일"
+msgstr "포스트스크립트 레벨 2"
 
 #: ../src/extension/internal/cairo-ps-out.cpp:236
-#, fuzzy
 msgid "PostScript via Cairo (*.ps)"
-msgstr "포스트스크립 (*.ps)"
+msgstr "Cairo 포스트스크립트 (*.ps)"
 
 #: ../src/extension/internal/cairo-ps-out.cpp:237
 #: ../src/extension/internal/ps-out.cpp:90
-#, fuzzy
 msgid "PostScript File"
-msgstr "포스트 스크립 파일"
+msgstr "포스트스크립트 파일"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2152
-#, fuzzy
 msgid "EMF Input"
-msgstr "DXF 불러오기"
+msgstr "EMF 입력"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2157
 msgid "Enhanced Metafiles (*.emf)"
-msgstr ""
+msgstr "Enhanced 메타파일 (*.emf)"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2158
 msgid "Enhanced Metafiles"
-msgstr ""
+msgstr "Enhanced 메타파일"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2166
-#, fuzzy
 msgid "WMF Input"
-msgstr "SVG 입력"
+msgstr "WMF 입력"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2171
-#, fuzzy
 msgid "Windows Metafiles (*.wmf)"
-msgstr "윈도우즈 메타파일 불러오기"
+msgstr "윈도우즈 메타파일 (*.wmf)"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2172
-#, fuzzy
 msgid "Windows Metafiles"
-msgstr "윈도우즈 메타파일 불러오기"
+msgstr "윈도우즈 메타파일"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2180
-#, fuzzy
 msgid "EMF Output"
-msgstr "DXF 내보내기"
+msgstr "EMF 출력"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2186
 msgid "Enhanced Metafile (*.emf)"
-msgstr ""
+msgstr "Enhanced 메타파일(*.emf)"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2187
-#, fuzzy
 msgid "Enhanced Metafile"
-msgstr "사각형 찾기"
+msgstr "Enhanced 메타파일"
 
 #: ../src/extension/internal/eps-out.cpp:89
 msgid "Encapsulated Postscript Output"
-msgstr ""
+msgstr "Encapsulated 포스트스크립트 출력"
 
 #: ../src/extension/internal/eps-out.cpp:91
 msgid "Make bounding box around full page"
-msgstr ""
+msgstr "전체 페이지에 경계 상자 생성"
 
 #: ../src/extension/internal/eps-out.cpp:93
 #: ../src/extension/internal/ps-out.cpp:85
 msgid "Embed fonts (Type 1 only)"
-msgstr ""
+msgstr "내장 글꼴 (Type 1만)"
 
 #: ../src/extension/internal/eps-out.cpp:97
 #: ../share/extensions/eps_input.inx.h:3
 msgid "Encapsulated Postscript (*.eps)"
-msgstr ""
+msgstr "Encapsulated 포스트스크립트 (*.eps)"
 
 #: ../src/extension/internal/eps-out.cpp:98
 msgid "Encapsulated Postscript File"
-msgstr ""
+msgstr "Encapsulated 포스크스크립트 파일"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/apparition.h:24
-#, fuzzy
 msgid "Apparition"
-msgstr "채도"
+msgstr "환영"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/apparition.h:25
 msgid "I'm not sure what this word means"
-msgstr ""
+msgstr "이 단어가 의미하는 바를 알 지 못함"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/bloom.h:24
-#, fuzzy
 msgid "Bloom"
-msgstr "확대 축소 보기"
+msgstr "개화"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/bloom.h:25
@@ -3464,319 +3391,295 @@ msgstr ""
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/clouds.h:24
-#, fuzzy
 msgid "Clouds"
-msgstr "닫기(_C)"
+msgstr "구름"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/clouds.h:25
-#, fuzzy
 msgid "Yes, more descriptions"
-msgstr "  설명: "
+msgstr "예, 더 자세한 설명"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/crystal.h:24
 msgid "Crystal"
-msgstr ""
+msgstr "수정"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/crystal.h:25
 msgid "Artist, insert data here"
-msgstr ""
+msgstr "예술가, 자료를 여기에 입력"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/cutout.h:24
-#, fuzzy
 msgid "Coutout"
-msgstr "개인적(_C)"
+msgstr "도려내기"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/cutout.h:25
 #: ../src/extension/internal/filter/etched-glass.h:25
 #: ../src/extension/internal/filter/frost.h:25
 #: ../src/extension/internal/filter/ridged-border.h:25
-#, fuzzy
 msgid "Artist text"
-msgstr "ì\88\98ì§\81 ê¸\80ì\9e\90"
+msgstr "ì\98\88ì\88 ê°\80 ë¬¸ì\9e\90ì\97´"
 
 #: ../src/extension/internal/filter/drop-shadow.h:35
 msgid "Drop Shadow"
-msgstr ""
+msgstr "물방울 그림자"
 
 #: ../src/extension/internal/filter/drop-shadow.h:37
-#, fuzzy
 msgid "Amount of Blur"
-msgstr "글꼴"
+msgstr "흐림 양"
 
 #: ../src/extension/internal/filter/drop-shadow.h:38
 #: ../src/extension/internal/grid.cpp:197
 msgid "Horizontal Offset"
-msgstr "수평 띄기"
+msgstr "수평 옵셋"
 
 #: ../src/extension/internal/filter/drop-shadow.h:39
 #: ../src/extension/internal/grid.cpp:198
 msgid "Vertical Offset"
-msgstr "수직 띄기"
+msgstr "수직 옵셋"
 
 #: ../src/extension/internal/filter/drop-shadow.h:43
 #: ../src/extension/internal/filter/filter.cpp:196
 #: ../src/extension/internal/filter/filter-file.cpp:146
 #: ../src/extension/internal/filter/snow.h:38
-#, fuzzy
 msgid "Filter"
-msgstr "밀리미터"
+msgstr "터"
 
 #: ../src/extension/internal/filter/drop-shadow.h:45
-#, fuzzy
 msgid "I hate text"
-msgstr "ë\88ì\9d´ê¸° ì¢\85ë¥\98(_S)"
+msgstr "ë\82\98ë\8a\94 ë¬¸ì\9e\90ì\97´ì\9d\84 ì\8b«ì\96´í\95©ë\8b\88ë\8b¤"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/emboss.h:22
-#, fuzzy
 msgid "Emboss effect"
-msgstr "ì\88\98í\8f\89 ë\9d\84기"
+msgstr "í\9a¨ê³¼ ê°\95ì¡°"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/etched-glass.h:24
 msgid "Etched Glass"
-msgstr ""
+msgstr "새긴 유리"
 
 #: ../src/extension/internal/filter/filter-file.cpp:32
-#, fuzzy
 msgid "Bundled"
-msgstr "ë\88ë\9f¬ë\93¤ì\9e\84"
+msgstr "묶ì\9d\8c"
 
 #: ../src/extension/internal/filter/filter-file.cpp:33
 msgid "Personal"
-msgstr ""
+msgstr "개인"
 
 #: ../src/extension/internal/filter/filter-file.cpp:44
 msgid "Null external module directory name.  Filters will not be loaded."
-msgstr ""
+msgstr "Null 외부 모듈 폴더 이름. 필터가 읽혀지지 않음."
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/fire.h:24
-#, fuzzy
 msgid "Fire"
-msgstr "파일(_F)"
+msgstr ""
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/fire.h:25
 msgid "Artist on fire"
-msgstr ""
+msgstr "불위의 예술가"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/frost.h:24
-#, fuzzy
 msgid "Frost"
-msgstr "글꼴"
+msgstr "서리"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/ink-bleed.h:24
-#, fuzzy
 msgid "InkBleed"
-msgstr "파랑"
+msgstr "잉크나옴"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/ink-bleed.h:25
 msgid "Artist Text"
-msgstr ""
+msgstr "예술가 문자열"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/jelly-bean.h:24
 msgid "Jelly Bean"
-msgstr ""
+msgstr "젤리 콩 과자"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/jelly-bean.h:25
 msgid "Mmmm, yummy."
-msgstr ""
+msgstr "히히 헤헤"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/jigsaw-piece.h:24
 msgid "JigsawPiece"
-msgstr ""
+msgstr "실톱무늬조각(직소우)"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/jigsaw-piece.h:25
 msgid "It's a puzzle, no hints"
-msgstr ""
+msgstr "호호 후후 알아맞추어 봐"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/leopard-fur.h:24
 msgid "Leopard Fur"
-msgstr ""
+msgstr "표범 무늬"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/leopard-fur.h:25
 msgid "Purrrr, quiet the kitty is sleeping"
-msgstr ""
+msgstr "우씨알라~~~"
 
-#. ID -- should be unique
+#. ID -- should be unique
 #: ../src/extension/internal/filter/melt.h:22
-#, fuzzy
 msgid "Melt"
-msgstr "미터"
+msgstr "용해"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/melt.h:23
-#, fuzzy
 msgid "Melt effect"
-msgstr "ì\88\98í\8f\89 ë\9d\84기"
+msgstr "ì\9a©í\95´ í\9a¨ê³¼"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/metal.h:24
-#, fuzzy
 msgid "Metal"
-msgstr "미터"
+msgstr "금속"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/metal.h:25
-#, fuzzy
 msgid "Iron Man vector objects"
-msgstr "ì\84 í\83\9dí\95\9c ê°\9dì²´ ë°°ë¶\84"
+msgstr "ì² ì\9d¸ ë²¡í\84° ê°\9dì²´"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/motion-blur.h:24
 msgid "Motion Blur"
-msgstr ""
+msgstr "모션 흐림"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/motion-blur.h:25
 msgid "Hmm, fast vectors"
-msgstr ""
+msgstr "빠른 벡터"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/oil-slick.h:24
 msgid "OilSlick"
-msgstr ""
+msgstr "기름막"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/oil-slick.h:25
 msgid "Ooops!  Slippery!"
-msgstr ""
+msgstr "교활한~~ 치치~~"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/patterned-glass.h:24
-#, fuzzy
 msgid "PatternedGlass"
-msgstr "ë°\98복무ë\8a¬"
+msgstr "í\8c¨í\84´ì\9c ë¦¬"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/patterned-glass.h:25
 msgid "Doesn't work, bug"
-msgstr ""
+msgstr "작업하지 않음, 버그"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/ridged-border.h:24
-#, fuzzy
 msgid "Ridged Border"
-msgstr "이동(_M)"
+msgstr "모서리 경계"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/ripple.h:24
-#, fuzzy
 msgid "Ripple"
-msgstr "ì \9c목"
+msgstr "ì\9e\94물결"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/ripple.h:25
 msgid "You're 80% water"
-msgstr ""
+msgstr "80% 물 임"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/roughen.h:24
-#, fuzzy
 msgid "Roughen"
-msgstr "그룹"
+msgstr "거침"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/roughen.h:25
 msgid "Like Brad Pitt's stubble"
-msgstr ""
+msgstr "Like Brad Pitt's stubble"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/rubber-stamp.h:24
-#, fuzzy
 msgid "RubberStamp"
-msgstr "단계 숫자"
+msgstr "고무도장"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/rubber-stamp.h:25
 msgid "Use this to forge your passport"
-msgstr ""
+msgstr "여권을 위조하기 위하여 이것을 사용"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/sepia.h:24
-#, fuzzy
 msgid "Sepia"
-msgstr "나선형"
+msgstr "세피아"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/sepia.h:25
 msgid "Turn all the colors to be sepia tones"
-msgstr ""
+msgstr "전체 색상을 세피아로 변경"
 
 #: ../src/extension/internal/filter/snow.h:32
-#, fuzzy
 msgid "Snow"
-msgstr "ë³´ì\9d´ê¸°:"
+msgstr "ë\88\88"
 
 #: ../src/extension/internal/filter/snow.h:34
-#, fuzzy
 msgid "Drift Size"
-msgstr "도트 크기"
+msgstr "크기 이동"
 
 #: ../src/extension/internal/filter/snow.h:40
 msgid "When the weather outside is frightening..."
-msgstr ""
+msgstr "바깥 날씨가 추울 때"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/speckle.h:24
-#, fuzzy
 msgid "Speckle"
-msgstr "선택"
+msgstr "반점"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/speckle.h:25
 msgid "You look cute with speckles"
-msgstr ""
+msgstr "반점이 보임"
 
 #. ID -- should be unique
 #: ../src/extension/internal/filter/zebra.h:24
 msgid "Zebra Stripes"
-msgstr ""
+msgstr "얼룩 무늬"
 
 #. Name in the menus, should have a N_() around it for translation
 #: ../src/extension/internal/filter/zebra.h:25
 msgid "Paint your object with zebra stripes"
-msgstr ""
+msgstr "얼룩 무늬로 객체를 칠하기"
 
 #: ../src/extension/internal/gdkpixbuf-input.cpp:114
 #, c-format
 msgid "%s GDK pixbuf Input"
-msgstr ""
+msgstr "%s GDK pixbuf Input"
 
 #: ../src/extension/internal/gimpgrad.cpp:274
 msgid "GIMP Gradients"
-msgstr "김프 색변화(Gradients)"
+msgstr "GIMP 그라디언트"
 
 #: ../src/extension/internal/gimpgrad.cpp:279
 msgid "GIMP Gradient (*.ggr)"
-msgstr "김프 색변화(Gradient) (*.ggr)"
+msgstr "GIMP 그라디언트 (*.ggr)"
 
 #: ../src/extension/internal/gimpgrad.cpp:280
 msgid "Gradients used in GIMP"
-msgstr "김프에서 사용되는 색변화(Gradients)"
+msgstr "김프에서 사용되는 그라디언트"
 
-#: ../src/extension/internal/grid.cpp:192 ../src/ui/widget/panel.cpp:122
+#: ../src/extension/internal/grid.cpp:192
+#: ../src/ui/widget/panel.cpp:122
 msgid "Grid"
 msgstr "격자"
 
 #: ../src/extension/internal/grid.cpp:194
 msgid "Line Width"
-msgstr "선 "
+msgstr "선 두께"
 
 #: ../src/extension/internal/grid.cpp:195
 msgid "Horizontal Spacing"
@@ -3786,91 +3689,87 @@ msgstr "수평 간격"
 msgid "Vertical Spacing"
 msgstr "수직 간격"
 
-#: ../src/extension/internal/grid.cpp:202 ../share/extensions/eqtexsvg.inx.h:3
-#: ../share/extensions/funcplot.inx.h:12 ../share/extensions/gears.inx.h:5
+#: ../src/extension/internal/grid.cpp:202
+#: ../share/extensions/eqtexsvg.inx.h:3
+#: ../share/extensions/funcplot.inx.h:12
+#: ../share/extensions/gears.inx.h:5
 #: ../share/extensions/grid_cartesian.inx.h:15
 #: ../share/extensions/grid_polar.inx.h:18
 #: ../share/extensions/lindenmayer.inx.h:11
 #: ../share/extensions/polyhedron_3d.inx.h:32
 #: ../share/extensions/render_alphabetsoup.inx.h:3
 #: ../share/extensions/render_barcode.inx.h:5
-#: ../share/extensions/rtree.inx.h:4 ../share/extensions/spirograph.inx.h:6
+#: ../share/extensions/rtree.inx.h:4
+#: ../share/extensions/spirograph.inx.h:6
 #: ../share/extensions/triangle.inx.h:10
 msgid "Render"
 msgstr "랜더"
 
 #: ../src/extension/internal/grid.cpp:204
 msgid "Draw a path which is a grid"
-msgstr "격ì\9e\90ì\97\90 ë§\88ì¶\94ì\96´ ê³¡ì\84 ì\9d\84 ê·¸ë¦¼"
+msgstr "격ì\9e\90ì\97\90 ë§\9eì¶\94ì\96´ ê²½ë¡\9c를 ê·¸ë¦¬ê¸°"
 
 #: ../src/extension/internal/latex-pstricks.cpp:347
 msgid "LaTeX Print"
-msgstr "라텍스 인쇄"
+msgstr "LaTeX 인쇄"
 
 #: ../src/extension/internal/latex-pstricks-out.cpp:106
 msgid "LaTeX Output"
-msgstr "라텍스 출력"
+msgstr "LaTeX 출력"
 
 #: ../src/extension/internal/latex-pstricks-out.cpp:111
 msgid "LaTeX With PSTricks macros (*.tex)"
-msgstr ""
+msgstr "LaTeX With PSTricks macros (*.tex)"
 
 #: ../src/extension/internal/latex-pstricks-out.cpp:112
 msgid "LaTeX PSTricks File"
-msgstr ""
+msgstr "LaTeX PSTricks File"
 
 #: ../src/extension/internal/odf.cpp:2424
 msgid "OpenDocument Drawing Output"
-msgstr "오픈 문서 드로링 출력"
+msgstr "OpenDocument 그림 출력"
 
 #: ../src/extension/internal/odf.cpp:2429
 msgid "OpenDocument drawing (*.odg)"
-msgstr "오픈 문서 드로링 (*.odg)"
+msgstr "OpenDocument 그림 (*.odg)"
 
 #: ../src/extension/internal/odf.cpp:2430
 msgid "OpenDocument drawing file"
-msgstr "오픈문서 그림 파일"
+msgstr "OpenDocument 그림 파일"
 
 #: ../src/extension/internal/pdf-cairo.cpp:127
 #: ../src/extension/internal/ps.cpp:147
 msgid "Print Destination"
-msgstr "ì\9cë ¥ ëª©ì \81ì§\80"
+msgstr "ì\9d¸ì\87\84 ë°©í\96¥"
 
 #. Print properties frame
 #: ../src/extension/internal/pdf-cairo.cpp:142
 #: ../src/extension/internal/ps.cpp:162
 msgid "Print properties"
-msgstr "ì\9cë ¥ 설정"
+msgstr "ì\9d¸ì\87\84 설정"
 
 #: ../src/extension/internal/pdf-cairo.cpp:149
 msgid "Print using PDF operators"
-msgstr "PDF 기능을 이용한 출력"
+msgstr "PDF 연산자 이용한 출력"
 
 #: ../src/extension/internal/pdf-cairo.cpp:151
-msgid ""
-"Use PDF vector operators. The resulting image is usually smaller in file "
-"size and can be arbitrarily scaled, but patterns will be lost."
-msgstr ""
-"PDF 백터 요소 사용. 이미지가 자유롭게 축소 확대 할수 있으면서 크기는 될것이지"
-"만 패턴은 없어질것임."
+msgid "Use PDF vector operators. The resulting image is usually smaller in file size and can be arbitrarily scaled, but patterns will be lost."
+msgstr "PDF벡터 연산자 사용. 결과 이미지는 파일 크기가 아주 작으며 임의로 비율을 정할 수 패턴은 없어집니다."
 
 #: ../src/extension/internal/pdf-cairo.cpp:156
 #: ../src/extension/internal/ps.cpp:176
 msgid "Print as bitmap"
-msgstr "ë¹\84í\8a¸ë§´ ì\9d´ë¯¸ì§\80ë¡\9c 출력"
+msgstr "ë¹\84í\8a¸ë§µ 출력"
 
 #: ../src/extension/internal/pdf-cairo.cpp:158
 #: ../src/extension/internal/ps.cpp:178
-msgid ""
-"Print everything as bitmap. The resulting image is usually larger in file "
-"size and cannot be arbitrarily scaled without quality loss, but all objects "
-"will be rendered exactly as displayed."
-msgstr ""
+msgid "Print everything as bitmap. The resulting image is usually larger in file size and cannot be arbitrarily scaled without quality loss, but all objects will be rendered exactly as displayed."
+msgstr "전체를 비트맵으로 인쇄."
 
 #: ../src/extension/internal/pdf-cairo.cpp:172
 #: ../src/extension/internal/ps.cpp:192
 msgid "Preferred resolution (dots per inch) of bitmap"
-msgstr ""
+msgstr "비트맵의 기본 해상도(DPI)"
 
 #: ../src/extension/internal/pdf-cairo.cpp:186
 #: ../src/extension/internal/ps.cpp:206
@@ -3881,7 +3780,7 @@ msgstr "해상도:"
 #: ../src/extension/internal/pdf-cairo.cpp:190
 #: ../src/extension/internal/ps.cpp:213
 msgid "Print destination"
-msgstr "ì¶\9cë ¥ ëª©ì \81ì§\80"
+msgstr "ì¶\9cë ¥ ë°©í\96¥"
 
 #: ../src/extension/internal/pdf-cairo.cpp:196
 #: ../src/extension/internal/ps.cpp:219
@@ -3900,168 +3799,149 @@ msgstr "PDF 인쇄"
 #. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:56
 msgid "media box"
-msgstr ""
+msgstr "미디어 상자"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:57
 msgid "crop box"
-msgstr ""
+msgstr "자르기 상자"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:58
 msgid "trim box"
-msgstr ""
+msgstr "잘림 상자"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:59
 msgid "bleed box"
-msgstr ""
+msgstr "잘림절단 상자"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:60
 msgid "art box"
-msgstr ""
+msgstr "아트 상자"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:72
-#, fuzzy
 msgid "Select page:"
-msgstr "노드 삭제"
+msgstr "페이지 선택:"
 
 #. Display total number of pages
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:86
 #, c-format
 msgid "out of %i"
-msgstr ""
+msgstr "%i 에서"
 
 #. Crop settings
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:92
 msgid "Clip to:"
-msgstr ""
+msgstr "자르기:"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:104
 msgid "Page settings"
-msgstr ""
+msgstr "페이지 설정"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:106
 msgid "Precision of approximating gradient meshes:"
-msgstr ""
+msgstr "그라디언트 망사의 근사 정확도:"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:107
-msgid ""
-"<b>Note</b>: setting the precision too high may result in a large SVG file "
-"and slow performance."
-msgstr ""
+msgid "<b>Note</b>: setting the precision too high may result in a large SVG file and slow performance."
+msgstr "주의: 높은 정확도는 큰 SVG 파일이 생성되며 실행이 느려짐."
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:112
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:381
-#, fuzzy
 msgid "rough"
-msgstr "그룹"
+msgstr "ê±°ì¹\9c"
 
 #. Text options
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:116
-#, fuzzy
 msgid "Text handling:"
-msgstr "간격 설정:"
+msgstr "문자열 핸들링:"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:118
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:119
-#, fuzzy
 msgid "Import text as text"
-msgstr "글자를 곡선으로 변환"
+msgstr "문자열로 문자열 읽어오기"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:122
-#, fuzzy
 msgid "Embed images"
-msgstr "내장 된 전체 이미지"
+msgstr "내장 이미지"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:125
 msgid "Import settings"
-msgstr ""
+msgstr "설정 읽어오기"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:242
 msgid "PDF Import Settings"
-msgstr ""
+msgstr "PDF 들어오기 설정"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:382
 msgid "pdfinput|medium"
-msgstr ""
+msgstr "pdf입력|중간"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:383
-#, fuzzy
 msgid "fine"
-msgstr ""
+msgstr "미세"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:384
-#, fuzzy
 msgid "very fine"
-msgstr "반전"
+msgstr "아주 미세"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:739
-#, fuzzy
 msgid "PDF Input"
-msgstr "DXF 불러오기"
+msgstr "PDF 입력"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:744
-#, fuzzy
 msgid "Adobe PDF (*.pdf)"
-msgstr "오트캐드 DXF (*.dxf)"
+msgstr "Adobe PDF (*.pdf)"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:745
 msgid "Adobe Portable Document Format"
-msgstr ""
+msgstr "PDF 형식"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:752
-#, fuzzy
 msgid "AI Input"
-msgstr "AI SVG 입력"
+msgstr "AI 입력"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:757
-#, fuzzy
 msgid "Adobe Illustrator 9.0 and above (*.ai)"
-msgstr "아도비 일러스트 (*.ai)"
+msgstr "Adobe Illustrator 9.0 이상 (*.ai)"
 
 #: ../src/extension/internal/pdfinput/pdf-input.cpp:758
-#, fuzzy
 msgid "Open files saved in Adobe Illustrator 9.0 and newer versions"
-msgstr "열린 파일이 아도비 일러스트 파일로 저장됨"
+msgstr "Adobe Illustrator 9.0 이상 파일 열기"
 
 #: ../src/extension/internal/pov-out.cpp:666
 msgid "PovRay Output"
-msgstr "포레이 출력"
+msgstr "PovRay 출력"
 
 #: ../src/extension/internal/pov-out.cpp:671
 msgid "PovRay (*.pov) (export splines)"
-msgstr ""
+msgstr "PovRay (*.pov) (export splines)"
 
 #: ../src/extension/internal/pov-out.cpp:672
 msgid "PovRay Raytracer File"
-msgstr "포레이 레이스레이스 파일"
+msgstr "PovRay Raytracer 파일"
 
 #: ../src/extension/internal/ps.cpp:147
-#, fuzzy
 msgid "Print Configuration"
-msgstr "ì\9cë ¥ ëª©ì \81ì§\80"
+msgstr "ì\9d¸ì\87\84 ì\84¤ì \95"
 
 #: ../src/extension/internal/ps.cpp:169
 msgid "Print using PostScript operators"
-msgstr "포스트 스크립트 를 이용한 출력"
+msgstr "포스트스크립트 연산자를 이용한 출력"
 
 #: ../src/extension/internal/ps.cpp:171
-msgid ""
-"Use PostScript vector operators. The resulting image is usually smaller in "
-"file size and can be arbitrarily scaled, but alpha transparency and patterns "
-"will be lost."
-msgstr ""
+msgid "Use PostScript vector operators. The resulting image is usually smaller in file size and can be arbitrarily scaled, but alpha transparency and patterns will be lost."
+msgstr "포스트스크립트 벡터 작동기 사용"
 
 #: ../src/extension/internal/ps.cpp:1753
 msgid "Postscript Print"
-msgstr "포스트 스크립트 프린트"
+msgstr "포스트스크립트 출력"
 
 #: ../src/extension/internal/ps-out.cpp:82
 msgid "Postscript Output"
-msgstr "포스트 스크립 출력"
+msgstr "포스트스크립 출력"
 
 #: ../src/extension/internal/ps-out.cpp:89
-#, fuzzy
 msgid "PostScript (*.ps)"
-msgstr "포스트스크립 (*.ps)"
+msgstr "포스트스크립 (*.ps)"
 
 #: ../src/extension/internal/svg.cpp:55
 msgid "SVG Input"
@@ -4069,23 +3949,23 @@ msgstr "SVG 입력"
 
 #: ../src/extension/internal/svg.cpp:60
 msgid "Scalable Vector Graphic (*.svg)"
-msgstr "크기변경 가능한 벡터 그래픽 (*.svg)"
+msgstr "SVG (*.svg)"
 
 #: ../src/extension/internal/svg.cpp:61
 msgid "Inkscape native file format and W3C standard"
-msgstr "잉크스케이프 기본 포멧과 W3C 표준"
+msgstr "Inkscape 기본 포멧과 W3C 표준"
 
 #: ../src/extension/internal/svg.cpp:69
 msgid "SVG Output Inkscape"
-msgstr "SVG 출력 잉크스케이프"
+msgstr "SVG 출력 Inkscape"
 
 #: ../src/extension/internal/svg.cpp:74
 msgid "Inkscape SVG (*.svg)"
-msgstr "잉크스케이프·SVG·(*.svg)"
+msgstr "Inkscape·SVG·(*.svg)"
 
 #: ../src/extension/internal/svg.cpp:75
 msgid "SVG format with Inkscape extensions"
-msgstr "잉크스케이프 확장자로 SVG 포멧"
+msgstr "Inkscape 확장자 가진 SVG 형식"
 
 #: ../src/extension/internal/svg.cpp:83
 #: ../src/ui/dialog/inkscape-preferences.cpp:942
@@ -4094,28 +3974,30 @@ msgstr "SVG 출력"
 
 #: ../src/extension/internal/svg.cpp:88
 msgid "Plain SVG (*.svg)"
-msgstr "일반 ·SVG·(*.svg)"
+msgstr "일반 SVG·(*.svg)"
 
 #: ../src/extension/internal/svg.cpp:89
 msgid "Scalable Vector Graphics format as defined by the W3C"
-msgstr "W3C 표준에 따른 크기 변경가능한 벡터파일 포멧"
+msgstr "W3C에 의해 정의된 SVG 형식"
 
 #: ../src/extension/internal/svgz.cpp:47
 #: ../share/extensions/svgz_input.inx.h:3
 msgid "SVGZ Input"
 msgstr "SVGZ 입력"
 
-#: ../src/extension/internal/svgz.cpp:53 ../src/extension/internal/svgz.cpp:67
+#: ../src/extension/internal/svgz.cpp:53
+#: ../src/extension/internal/svgz.cpp:67
 #: ../share/extensions/svgz_input.inx.h:1
 #: ../share/extensions/svgz_output.inx.h:1
 msgid "Compressed Inkscape SVG (*.svgz)"
-msgstr "압축된 잉크 스케이프 SVG·(*.svgz)"
+msgstr "압축된 Inkscape SVG·(*.svgz)"
 
 #: ../src/extension/internal/svgz.cpp:54
 msgid "SVG file format compressed with GZip"
-msgstr "Gzip 으로 압축된 SVG 파일"
+msgstr "Gzip으로 압축된 SVG 파일 형식"
 
-#: ../src/extension/internal/svgz.cpp:62 ../src/extension/internal/svgz.cpp:76
+#: ../src/extension/internal/svgz.cpp:62
+#: ../src/extension/internal/svgz.cpp:76
 #: ../share/extensions/svgz_output.inx.h:3
 msgid "SVGZ Output"
 msgstr "SVGZ 출력"
@@ -4124,39 +4006,35 @@ msgstr "SVGZ 출력"
 #: ../share/extensions/svgz_input.inx.h:2
 #: ../share/extensions/svgz_output.inx.h:2
 msgid "Inkscape's native file format compressed with GZip"
-msgstr "Gzip 으로 압축된 잉크스케이프 파일형식"
+msgstr "Gzip으로 압축된 Inkscape 파일 형식"
 
 #: ../src/extension/internal/svgz.cpp:81
 msgid "Compressed plain SVG (*.svgz)"
-msgstr "압축된 일반 SVG 파일 (*.svgz)"
+msgstr "압축된 SVG 파일 (*.svgz)"
 
 #: ../src/extension/internal/svgz.cpp:82
 msgid "Scalable Vector Graphics format compressed with GZip"
-msgstr "GZip 으로 압축된 크기 변화 가능한 벡터 그래픽 파일"
+msgstr "GZip으로 압축된 SVG 형식"
 
 #: ../src/extension/internal/win32.cpp:491
 msgid "Windows 32-bit Print"
-msgstr "윈도우즈 32 비트 출력"
+msgstr "윈도우 32-비트 출력"
 
 #: ../src/extension/internal/wpg-input.cpp:102
-#, fuzzy
 msgid "WPG Input"
-msgstr "SVG 입력"
+msgstr "WPG 입력"
 
 #: ../src/extension/internal/wpg-input.cpp:107
-#, fuzzy
 msgid "WordPerfect Graphics (*.wpg)"
-msgstr "크기변경 가능한 벡터 그래픽 (*.svg)"
+msgstr "WordPerfect 그래픽 (*.wpg)"
 
 #: ../src/extension/internal/wpg-input.cpp:108
-#, fuzzy
 msgid "Vector graphics format used by Corel WordPerfect"
-msgstr "W3C 표준에 따른 크기 변경가능한 벡터파일 포멧"
+msgstr "Corel WordPerfect에 의해 사용된 벡터 그래픽 형식"
 
 #: ../src/extension/prefdialog.cpp:237
-#, fuzzy
 msgid "Live Preview"
-msgstr "미리보기"
+msgstr "실시간 미리보기"
 
 #: ../src/extension/prefdialog.cpp:237
 msgid "Controls whether the effect settings are rendered live on canvas"
@@ -4168,7 +4046,7 @@ msgstr ""
 #. sp_ui_error_dialog(_("Format autodetect failed. The file is being opened as SVG."));
 #: ../src/extension/system.cpp:103
 msgid "Format autodetect failed. The file is being opened as SVG."
-msgstr "자동 파일 인식이 실패하여, SVG 로 추정해서 읽어 들일것임."
+msgstr "파일 형식 자동인식 실패, SVG형식으로 파일을 읽습니다."
 
 #. TRANSLATORS: default.svg is localizable - this is the name of the default document
 #. template. This way you can localize the default pagesize, translate the name of
@@ -4176,21 +4054,22 @@ msgstr "자동 파일 인식이 실패하여, SVG 로 추정해서 읽어 들일
 #. localized share/templates/default.xx.svg file, where xx is your language code.
 #: ../src/file.cpp:139
 msgid "default.svg"
-msgstr "default.svg"
+msgstr "기본.svg"
 
-#: ../src/file.cpp:225 ../src/file.cpp:993
+#: ../src/file.cpp:225
+#: ../src/file.cpp:993
 #, c-format
 msgid "Failed to load the requested file %s"
-msgstr "요청한 %s 파일을 불러 들이는데 실패"
+msgstr "요청한파일  %s를 읽어오는데 실패"
 
 #: ../src/file.cpp:250
 msgid "Document not saved yet.  Cannot revert."
-msgstr "문서가 아직 저장 되지 않음.  되돌릴수 없음."
+msgstr "문서가 아직 저장되지 않음. 되돌릴 수 없음."
 
 #: ../src/file.cpp:256
 #, c-format
 msgid "Changes will be lost!  Are you sure you want to reload document %s?"
-msgstr "ë³\80ê²½ë\82´ì\9a©ì\9d\84 ì\9e\83ì\96´ ë²\84립ë\8b\88ë\8b¤!  ì \95ë§\90ë¡\9c ì\83\88ë¡\9c ë¬¸ì\84\9c %s ë¥¼ ë¶\88ë\9f¬ë\93\9c릴까요?"
+msgstr "ë³\80ê²½ë\90\9c ë\82´ì\9a©ì\9d\84 ì\9e\83ì\8aµë\8b\88ë\8b¤.! ì \95ë§\90 ë¬¸ì\84\9c %s ë¥¼ ë¶\88ë\9f¬ì\98¬까요?"
 
 #: ../src/file.cpp:285
 msgid "Document reverted."
@@ -4198,52 +4077,50 @@ msgstr "문서 되돌려짐."
 
 #: ../src/file.cpp:287
 msgid "Document not reverted."
-msgstr "문서 되돌리지지 못함."
+msgstr "문서를 되돌리지 못함."
 
 #: ../src/file.cpp:437
 msgid "Select file to open"
-msgstr "열 화일을 선택하시오"
+msgstr "열기 화일 선택"
 
 #: ../src/file.cpp:524
-#, fuzzy
 msgid "Vacuum &lt;defs&gt;"
-msgstr "연계성 청소"
+msgstr "&lt;정의&gt; 삭제"
 
 #: ../src/file.cpp:529
 #, c-format
 msgid "Removed <b>%i</b> unused definition in &lt;defs&gt;."
-msgid_plural "Removed <b>%i</b> unused definitions in &lt;defs&gt;."
-msgstr[0] ""
-msgstr[1] ""
+msgstr "정의에서 미사용된 정의 <b>%i</b> 제거"
 
 #: ../src/file.cpp:534
 msgid "No unused definitions in &lt;defs&gt;."
-msgstr ""
+msgstr "&lt;defs&gt;에서 미사용 정의 없음."
 
 #: ../src/file.cpp:563
 #, c-format
-msgid ""
-"No Inkscape extension found to save document (%s).  This may have been "
-"caused by an unknown filename extension."
-msgstr ""
+msgid "No Inkscape extension found to save document (%s).  This may have been caused by an unknown filename extension."
+msgstr "문서 (%s)를 저장하기 위한 Inkscape 확장자가 없음."
 
-#: ../src/file.cpp:564 ../src/file.cpp:572
+#: ../src/file.cpp:564
+#: ../src/file.cpp:572
 msgid "Document not saved."
-msgstr "문ì\84\9cê°\80 ì \80ì \95 되지 않음."
+msgstr "문ì\84\9cê°\80 ì \80ì\9e¥되지 않음."
 
 #: ../src/file.cpp:571
 #, c-format
 msgid "File %s could not be saved."
-msgstr "파일 %s저장 되지 않을수 있습니다."
+msgstr "파일 %s가 저장되지 않을 수 있습니다."
 
 #: ../src/file.cpp:582
 msgid "Document saved."
 msgstr "문서 저장됨."
 
-#: ../src/file.cpp:721 ../src/file.cpp:1118 ../src/file.cpp:1235
+#: ../src/file.cpp:721
+#: ../src/file.cpp:1118
+#: ../src/file.cpp:1235
 #, c-format
 msgid "drawing%s"
-msgstr "그림%s"
+msgstr "그림 %s"
 
 #: ../src/file.cpp:727
 #, c-format
@@ -4251,334 +4128,311 @@ msgid "drawing-%d%s"
 msgstr "그림-%d%s"
 
 #: ../src/file.cpp:746
-#, fuzzy
 msgid "Select file to save a copy to"
-msgstr "저장할 파일 선택"
+msgstr "복사본을 저장하기 위하여 파일 선택"
 
 #: ../src/file.cpp:748
 msgid "Select file to save to"
-msgstr "저장 파일 선택"
+msgstr "저장 파일 선택"
 
 #: ../src/file.cpp:819
 msgid "No changes need to be saved."
-msgstr "저장할 아무 변화가 없음."
+msgstr "저장 변화가 없음."
 
 #: ../src/file.cpp:836
-#, fuzzy
 msgid "Saving document..."
-msgstr "문서 저장"
+msgstr "문서 저장..."
 
 #: ../src/file.cpp:990
-#, fuzzy
 msgid "Import"
-msgstr "불러오기(_I)..."
+msgstr "불러오기"
 
 #: ../src/file.cpp:1022
 msgid "Select file to import"
-msgstr "ì\82½ì\9e\85í\95  파일 선택"
+msgstr "ì\9d½ì\96´ì\98¬ 파일 선택"
 
-#: ../src/file.cpp:1140 ../src/file.cpp:1250
-#, fuzzy
+#: ../src/file.cpp:1140
+#: ../src/file.cpp:1250
 msgid "Select file to export to"
-msgstr "삽입할 파일 선택"
+msgstr "내보내기 위한 파일 선택"
 
 #: ../src/file.cpp:1277
 msgid "Error saving a temporary copy"
-msgstr ""
+msgstr "임시파일 저장 중 오류"
 
 #: ../src/file.cpp:1296
 msgid "Open Clip Art Login"
-msgstr ""
+msgstr "Open Clip Art 로그인"
 
 #: ../src/file.cpp:1317
-msgid ""
-"Error exporting the document. Verify if the server name, username and "
-"password are correct, if the server has support for webdav and verify if you "
-"didn't forget to choose a license."
-msgstr ""
+msgid "Error exporting the document. Verify if the server name, username and password are correct, if the server has support for webdav and verify if you didn't forget to choose a license."
+msgstr "문서 내보내기 오류."
 
 #: ../src/file.cpp:1338
-#, fuzzy
 msgid "Document exported..."
-msgstr "문ì\84\9c ë\90\98ë\8f\8cë ¤ì§\90."
+msgstr "문ì\84\9c ë\82´ë³´ë\82´ê¸°..."
 
-#: ../src/file.cpp:1366 ../src/verbs.cpp:2182
+#: ../src/file.cpp:1366
+#: ../src/verbs.cpp:2182
 msgid "Import From Open Clip Art Library"
-msgstr ""
+msgstr "Open Clip Art에서 읽어오기"
 
 #: ../src/filter-enums.cpp:20
-#, fuzzy
 msgid "Blend"
-msgstr "í\8c\8cë\9e\91"
+msgstr "í\98¼í\95©"
 
 #: ../src/filter-enums.cpp:21
 msgid "Color Matrix"
-msgstr ""
+msgstr "색상 행렬"
 
 #: ../src/filter-enums.cpp:22
 msgid "Component Transfer"
-msgstr ""
+msgstr "요소 전달"
 
 #: ../src/filter-enums.cpp:23
-#, fuzzy
 msgid "Composite"
-msgstr "조합된"
+msgstr "혼합"
 
 #: ../src/filter-enums.cpp:24
 msgid "Convolve Matrix"
-msgstr ""
+msgstr "컨볼브 행렬"
 
 #: ../src/filter-enums.cpp:25
 msgid "Diffuse Lighting"
-msgstr ""
+msgstr "확산 광"
 
 #: ../src/filter-enums.cpp:26
 msgid "Displacement Map"
-msgstr ""
+msgstr "치환 지도"
 
 #: ../src/filter-enums.cpp:27
 msgid "Flood"
-msgstr ""
+msgstr "홍수"
 
-#: ../src/filter-enums.cpp:29 ../src/selection-describer.cpp:53
+#: ../src/filter-enums.cpp:29
+#: ../src/selection-describer.cpp:53
 msgid "Image"
 msgstr "이미지"
 
 #: ../src/filter-enums.cpp:30
-#, fuzzy
 msgid "Merge"
-msgstr "ë©\94ì\84¸ì§\80"
+msgstr "ë³\91í\95©"
 
 #: ../src/filter-enums.cpp:31
 msgid "Morphology"
-msgstr ""
+msgstr "지형학"
 
 #: ../src/filter-enums.cpp:33
 msgid "Specular Lighting"
-msgstr ""
+msgstr "특수 광"
 
 #: ../src/filter-enums.cpp:34
-#, fuzzy
 msgid "Tile"
 msgstr "제목"
 
-#: ../src/filter-enums.cpp:35 ../src/filter-enums.cpp:118
-#, fuzzy
+#: ../src/filter-enums.cpp:35
+#: ../src/filter-enums.cpp:118
 msgid "Turbulence"
-msgstr "ë\82´êµ¬ë ¥:"
+msgstr "ë\82\9cë¥\98"
 
 #: ../src/filter-enums.cpp:40
-#, fuzzy
 msgid "Source Graphic"
-msgstr "같은 높이"
+msgstr "소스 그래픽"
 
 #: ../src/filter-enums.cpp:41
-#, fuzzy
 msgid "Source Alpha"
-msgstr "소스"
+msgstr "소스 알파"
 
 #: ../src/filter-enums.cpp:42
 msgid "Background Image"
-msgstr ""
+msgstr "배경 이미지"
 
 #: ../src/filter-enums.cpp:43
 msgid "Background Alpha"
-msgstr ""
+msgstr "배경 알파"
 
 #: ../src/filter-enums.cpp:44
-#, fuzzy
 msgid "Fill Paint"
-msgstr "PDF 인쇄"
+msgstr "채움 칠하기"
 
 #: ../src/filter-enums.cpp:45
-#, fuzzy
 msgid "Stroke Paint"
-msgstr ""
+msgstr "윤곽선 칠하기"
 
 #. TRANSLATORS: This is a context string, only put the word "Normal" in your translation
 #: ../src/filter-enums.cpp:52
 msgid "filterBlendMode|Normal"
-msgstr ""
+msgstr "필터혼합모드|일반"
 
 #: ../src/filter-enums.cpp:53
 msgid "Multiply"
-msgstr ""
+msgstr "곱하기"
 
 #: ../src/filter-enums.cpp:54
-#, fuzzy
 msgid "Screen"
-msgstr "녹색"
+msgstr "화면"
 
 #: ../src/filter-enums.cpp:55
-#, fuzzy
 msgid "Darken"
-msgstr "날짜"
+msgstr "어둡게"
 
 #: ../src/filter-enums.cpp:56
-#, fuzzy
 msgid "Lighten"
-msgstr "ëª\85ë\8f\84"
+msgstr "ë°\9dê²\8c"
 
 #: ../src/filter-enums.cpp:62
-#, fuzzy
 msgid "Matrix"
-msgstr "ë§\88í\81¬"
+msgstr "í\96\89ë ¬"
 
 #: ../src/filter-enums.cpp:63
-#, fuzzy
 msgid "Saturate"
 msgstr "채도"
 
 #: ../src/filter-enums.cpp:64
-#, fuzzy
 msgid "Hue Rotate"
-msgstr "회전(_R)"
+msgstr "색조 회전"
 
 #: ../src/filter-enums.cpp:65
 msgid "Luminance to Alpha"
-msgstr ""
+msgstr "명도를 알파로"
 
 #. File
-#: ../src/filter-enums.cpp:71 ../src/verbs.cpp:2159
+#: ../src/filter-enums.cpp:71
+#: ../src/verbs.cpp:2159
 msgid "Default"
 msgstr "기본"
 
 #: ../src/filter-enums.cpp:72
-#, fuzzy
 msgid "Over"
-msgstr "미터"
+msgstr "Over"
 
 #: ../src/filter-enums.cpp:73
-#, fuzzy
 msgid "In"
 msgstr "인치"
 
 #: ../src/filter-enums.cpp:74
-#, fuzzy
 msgid "Out"
-msgstr "내보내기"
+msgstr "Out"
 
 #: ../src/filter-enums.cpp:75
 msgid "Atop"
-msgstr ""
+msgstr "꼭대기"
 
 #: ../src/filter-enums.cpp:76
 msgid "XOR"
-msgstr ""
+msgstr "XOR"
 
 #: ../src/filter-enums.cpp:77
 msgid "Arithmetic"
-msgstr ""
+msgstr "산술"
 
 #: ../src/filter-enums.cpp:83
-#, fuzzy
 msgid "Identity"
-msgstr "구ë³\84ì\9e\90"
+msgstr "구ë\84"
 
 #: ../src/filter-enums.cpp:84
-#, fuzzy
 msgid "Table"
-msgstr "제목"
+msgstr ""
 
 #: ../src/filter-enums.cpp:85
 msgid "Discrete"
-msgstr ""
+msgstr "개별"
 
 #: ../src/filter-enums.cpp:86
-#, fuzzy
 msgid "Linear"
-msgstr "선"
+msgstr "선"
 
 #: ../src/filter-enums.cpp:87
 msgid "Gamma"
-msgstr ""
+msgstr "감마"
 
-#: ../src/filter-enums.cpp:93 ../src/selection-chemistry.cpp:260
+#: ../src/filter-enums.cpp:93
+#: ../src/selection-chemistry.cpp:260
 #: ../src/widgets/gradient-selector.cpp:134
 msgid "Duplicate"
-msgstr "ë³µì\82¬"
+msgstr "ë³µì \9c"
 
 #: ../src/filter-enums.cpp:94
 msgid "Wrap"
-msgstr ""
+msgstr "싸기"
 
-#: ../src/filter-enums.cpp:101 ../src/flood-context.cpp:271
+#: ../src/filter-enums.cpp:101
+#: ../src/flood-context.cpp:271
 #: ../src/widgets/sp-color-icc-selector.cpp:233
 #: ../src/widgets/sp-color-scales.cpp:398
 #: ../src/widgets/sp-color-scales.cpp:399
 msgid "Red"
 msgstr "빨강"
 
-#: ../src/filter-enums.cpp:102 ../src/flood-context.cpp:272
+#: ../src/filter-enums.cpp:102
+#: ../src/flood-context.cpp:272
 #: ../src/widgets/sp-color-icc-selector.cpp:233
 #: ../src/widgets/sp-color-scales.cpp:401
 #: ../src/widgets/sp-color-scales.cpp:402
 msgid "Green"
 msgstr "녹색"
 
-#: ../src/filter-enums.cpp:103 ../src/flood-context.cpp:273
+#: ../src/filter-enums.cpp:103
+#: ../src/flood-context.cpp:273
 #: ../src/widgets/sp-color-icc-selector.cpp:233
 #: ../src/widgets/sp-color-scales.cpp:404
 #: ../src/widgets/sp-color-scales.cpp:405
 msgid "Blue"
 msgstr "파랑"
 
-#: ../src/filter-enums.cpp:104 ../src/flood-context.cpp:277
+#: ../src/filter-enums.cpp:104
+#: ../src/flood-context.cpp:277
 msgid "Alpha"
-msgstr ""
+msgstr "알파"
 
 #: ../src/filter-enums.cpp:110
-#, fuzzy
 msgid "Erode"
-msgstr "ë\85¸ë\93\9c"
+msgstr "ë\80ì\8b\9d"
 
 #: ../src/filter-enums.cpp:111
-#, fuzzy
 msgid "Dilate"
-msgstr "날짜"
+msgstr "팽창"
 
 #: ../src/filter-enums.cpp:117
 msgid "Fractal Noise"
-msgstr ""
+msgstr "프랙탈 노이즈"
 
 #: ../src/filter-enums.cpp:124
-#, fuzzy
 msgid "Distant Light"
-msgstr "ì\9cë ¥ ëª©ì \81ì§\80"
+msgstr "ì\9b\90거리 ê´\91ì\9b\90"
 
 #: ../src/filter-enums.cpp:125
-#, fuzzy
 msgid "Point Light"
-msgstr "같은 높이"
+msgstr "점 광원"
 
 #: ../src/filter-enums.cpp:126
-#, fuzzy
 msgid "Spot Light"
-msgstr "같은 높이"
+msgstr "스폿 광원"
 
 #: ../src/flood-context.cpp:270
-#, fuzzy
 msgid "Visible Colors"
-msgstr "색:"
+msgstr "볼 수 있는 색상"
 
-#: ../src/flood-context.cpp:276 ../src/widgets/sp-color-icc-selector.cpp:236
+#: ../src/flood-context.cpp:276
+#: ../src/widgets/sp-color-icc-selector.cpp:236
 #: ../src/widgets/sp-color-scales.cpp:430
-#: ../src/widgets/sp-color-scales.cpp:431 ../src/widgets/toolbox.cpp:3390
+#: ../src/widgets/sp-color-scales.cpp:431
+#: ../src/widgets/toolbox.cpp:3390
 #: ../share/extensions/color_randomize.inx.h:3
 msgid "Lightness"
 msgstr "명도"
 
-#: ../src/flood-context.cpp:289 ../src/ui/dialog/inkscape-preferences.cpp:968
-#, fuzzy
+#: ../src/flood-context.cpp:289
+#: ../src/ui/dialog/inkscape-preferences.cpp:968
 msgid "Small"
-msgstr "확대/축소(_S)"
+msgstr "작게"
 
-#: ../src/flood-context.cpp:290 ../src/ui/dialog/inkscape-preferences.cpp:968
+#: ../src/flood-context.cpp:290
+#: ../src/ui/dialog/inkscape-preferences.cpp:968
 msgid "Medium"
-msgstr ""
+msgstr "중간"
 
 #: ../src/flood-context.cpp:291
-#, fuzzy
 msgid "Large"
 msgstr "크게"
 
@@ -4588,241 +4442,202 @@ msgstr ""
 
 #: ../src/flood-context.cpp:531
 #, c-format
-msgid ""
-"Area filled, path with <b>%d</b> node created and unioned with selection."
-msgid_plural ""
-"Area filled, path with <b>%d</b> nodes created and unioned with selection."
-msgstr[0] ""
-msgstr[1] ""
+msgid "Area filled, path with <b>%d</b> node created and unioned with selection."
+msgstr "구간 실패, <b>%d</b> 노드를 가진 경로가 선택으로 생성 및 결합."
 
 #: ../src/flood-context.cpp:535
 #, c-format
 msgid "Area filled, path with <b>%d</b> node created."
-msgid_plural "Area filled, path with <b>%d</b> nodes created."
-msgstr[0] ""
-msgstr[1] ""
+msgstr "구간 실패, <b>%d</b> 노드가진 경로 생성됨."
 
-#: ../src/flood-context.cpp:807 ../src/flood-context.cpp:1121
+#: ../src/flood-context.cpp:807
+#: ../src/flood-context.cpp:1121
 msgid "<b>Area is not bounded</b>, cannot fill."
-msgstr ""
+msgstr "구간이 설정되지 않았음, 채울 수 없음."
 
 #: ../src/flood-context.cpp:1126
-msgid ""
-"<b>Only the visible part of the bounded area was filled.</b> If you want to "
-"fill all of the area, undo, zoom out, and fill again."
-msgstr ""
+msgid "<b>Only the visible part of the bounded area was filled.</b> If you want to fill all of the area, undo, zoom out, and fill again."
+msgstr "경계 구간의 보이는 부분만 채움. 구간 전체를 채우려면, 취소 후 축소한 후 대시 채우기 실행."
 
-#: ../src/flood-context.cpp:1144 ../src/flood-context.cpp:1304
+#: ../src/flood-context.cpp:1144
+#: ../src/flood-context.cpp:1304
 msgid "Fill bounded area"
-msgstr ""
+msgstr "경계상자 채움"
 
 #: ../src/flood-context.cpp:1164
-#, fuzzy
 msgid "Set style on object"
-msgstr "ê°\84격ë\9d\84ì\9a°ê¸° ì\9c í\98\95"
+msgstr "ê°\9dì²´ ì\8a¤í\83\80ì\9d¼ ì\84¤ì \95"
 
 #: ../src/flood-context.cpp:1223
 msgid "<b>Draw over</b> areas to add to fill, hold <b>Alt</b> for touch fill"
-msgstr ""
+msgstr "채움을 더하기 위하여 구간을 끌기, Alt: 채움에 덧칠하기"
 
-#: ../src/gradient-context.cpp:132 ../src/gradient-drag.cpp:74
+#: ../src/gradient-context.cpp:132
+#: ../src/gradient-drag.cpp:74
 msgid "Linear gradient <b>start</b>"
-msgstr ""
+msgstr "선형 그라디언트 <b>시작</b>"
 
 #. POINT_LG_BEGIN
-#: ../src/gradient-context.cpp:133 ../src/gradient-drag.cpp:75
+#: ../src/gradient-context.cpp:133
+#: ../src/gradient-drag.cpp:75
 msgid "Linear gradient <b>end</b>"
-msgstr ""
+msgstr "선형 그라디언트 <b>끝</b>"
 
-#: ../src/gradient-context.cpp:134 ../src/gradient-drag.cpp:76
-#, fuzzy
+#: ../src/gradient-context.cpp:134
+#: ../src/gradient-drag.cpp:76
 msgid "Linear gradient <b>mid stop</b>"
-msgstr "ì\84 í\83\9dë¶\80ë¶\84 ì§\80ì\9a°ê¸°"
+msgstr "ì\84 í\98\95 ê·¸ë\9d¼ë\94\94ì\96¸í\8a¸ <b>ì¤\91ê°\84 ì¡°ì \88ì \90</b>"
 
-#: ../src/gradient-context.cpp:135 ../src/gradient-drag.cpp:77
+#: ../src/gradient-context.cpp:135
+#: ../src/gradient-drag.cpp:77
 msgid "Radial gradient <b>center</b>"
-msgstr ""
+msgstr "방사 그라디언트 <b>중앙</b>"
 
-#: ../src/gradient-context.cpp:136 ../src/gradient-context.cpp:137
-#: ../src/gradient-drag.cpp:78 ../src/gradient-drag.cpp:79
+#: ../src/gradient-context.cpp:136
+#: ../src/gradient-context.cpp:137
+#: ../src/gradient-drag.cpp:78
+#: ../src/gradient-drag.cpp:79
 msgid "Radial gradient <b>radius</b>"
-msgstr ""
+msgstr "방사 그라디언트 <b>반경</b>"
 
-#: ../src/gradient-context.cpp:138 ../src/gradient-drag.cpp:80
+#: ../src/gradient-context.cpp:138
+#: ../src/gradient-drag.cpp:80
 msgid "Radial gradient <b>focus</b>"
-msgstr ""
+msgstr "방사 그라디언트 <b>초점</b>"
 
 #. POINT_RG_FOCUS
-#: ../src/gradient-context.cpp:139 ../src/gradient-context.cpp:140
-#: ../src/gradient-drag.cpp:81 ../src/gradient-drag.cpp:82
-#, fuzzy
+#: ../src/gradient-context.cpp:139
+#: ../src/gradient-context.cpp:140
+#: ../src/gradient-drag.cpp:81
+#: ../src/gradient-drag.cpp:82
 msgid "Radial gradient <b>mid stop</b>"
-msgstr "선택부분 지우기"
+msgstr "방사 그라디언트 <b>중간 조절점</b>"
 
 #. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message
 #: ../src/gradient-context.cpp:162
-#, fuzzy, c-format
 msgid "%s selected"
-msgstr "아무것도 선택 되지 않음"
+msgstr "%s 선택됨"
 
 #. TRANSLATORS: Mind the space in front. This is part of a compound message
-#: ../src/gradient-context.cpp:164 ../src/gradient-context.cpp:173
-#, fuzzy, c-format
-msgid " out of %d gradient handle"
-msgid_plural " out of %d gradient handles"
-msgstr[0] "임의의 노드 관리"
-msgstr[1] "임의의 노드 관리"
-
 #. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message
-#: ../src/gradient-context.cpp:165 ../src/gradient-context.cpp:174
-#: ../src/gradient-context.cpp:181
-#, fuzzy, c-format
-msgid " on %d selected object"
-msgid_plural " on %d selected objects"
-msgstr[0] "선택됀 객체의 복사본 만들기"
-msgstr[1] "선택됀 객체의 복사본 만들기"
-
 #. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count)
+#: ../src/gradient-context.cpp:164
+#: ../src/gradient-context.cpp:173
+#: ../src/gradient-context.cpp:165
+#: ../src/gradient-context.cpp:174
+#: ../src/gradient-context.cpp:181
 #: ../src/gradient-context.cpp:171
 #, c-format
-msgid ""
-"One handle merging %d stop (drag with <b>Shift</b> to separate) selected"
-msgid_plural ""
-"One handle merging %d stops (drag with <b>Shift</b> to separate) selected"
-msgstr[0] ""
-msgstr[1] ""
+msgid "One handle merging %d stop (drag with <b>Shift</b> to separate) selected"
+msgstr "%d 조절점 병합하기 위한 한 개 핸들(<b>Shift</b>: 분리하기) 선택"
 
 #. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count)
 #: ../src/gradient-context.cpp:179
-#, c-format
 msgid "<b>%d</b> gradient handle selected out of %d"
-msgid_plural "<b>%d</b> gradient handles selected out of %d"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "선택 객체 %d 에서 선택된 그라디언트 핸들이 없음"
 
 #. TRANSLATORS: The plural refers to number of selected objects
 #: ../src/gradient-context.cpp:186
-#, c-format
 msgid "<b>No</b> gradient handles selected out of %d on %d selected object"
-msgid_plural ""
-"<b>No</b> gradient handles selected out of %d on %d selected objects"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "선택 객체 %d의 %d 에서 선택된 그라디언트 핸들이 없음"
 
-#: ../src/gradient-context.cpp:385 ../src/gradient-context.cpp:478
+#: ../src/gradient-context.cpp:385
+#: ../src/gradient-context.cpp:478
 #: ../src/widgets/gradient-vector.cpp:735
 msgid "Add gradient stop"
-msgstr ""
+msgstr "그라디언트 조절점 더하기"
 
 #: ../src/gradient-context.cpp:453
-#, fuzzy
 msgid "Simplify gradient"
-msgstr "노드 복사"
+msgstr "그라디언트 단순화"
 
 #: ../src/gradient-context.cpp:529
 msgid "Create default gradient"
-msgstr ""
+msgstr "기본 그라디언트 생성"
 
 #: ../src/gradient-context.cpp:584
 msgid "<b>Draw around</b> handles to select them"
-msgstr ""
+msgstr "핸들을 선택하기 위하여 핸들 주위를 그리기"
 
 #: ../src/gradient-context.cpp:682
 msgid "<b>Ctrl</b>: snap gradient angle"
-msgstr ""
+msgstr "Ctrl: 그라디언트 각도를 붙이기 위함"
 
 #: ../src/gradient-context.cpp:683
 msgid "<b>Shift</b>: draw gradient around the starting point"
-msgstr ""
+msgstr "Shift: 시작점 주위 그라디언트 그리기"
 
 #: ../src/gradient-context.cpp:803
-#, fuzzy
 msgid "Invert gradient"
-msgstr "ê¹\80í\94\84 ì\83\89ë³\80í\99\94(Gradients)"
+msgstr "ê·¸ë\9d¼ë\94\94ì\96¸í\8a¸ ì\97­ì\9c¼ë¡\9c"
 
 #: ../src/gradient-context.cpp:919
 #, c-format
 msgid "<b>Gradient</b> for %d object; with <b>Ctrl</b> to snap angle"
-msgid_plural "<b>Gradient</b> for %d objects; with <b>Ctrl</b> to snap angle"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "%d 객체 그라디언트; <b>Ctrl</b>: 각도 붙이기 점 조정"
 
 #: ../src/gradient-context.cpp:923
 msgid "Select <b>objects</b> on which to create gradient."
-msgstr ""
+msgstr "그라디언트를 생성하기 위한 객체 선택"
 
 #: ../src/gradient-drag.cpp:573
-#, fuzzy
 msgid "Merge gradient handles"
-msgstr "임의의 노드 관리"
+msgstr "그라디언트 핸들 병합"
 
 #: ../src/gradient-drag.cpp:895
-#, fuzzy
 msgid "Move gradient handle"
-msgstr "임의의 노드 관리"
+msgstr "그라디언트 핸들 이동"
 
-#: ../src/gradient-drag.cpp:948 ../src/widgets/gradient-vector.cpp:767
-#, fuzzy
+#: ../src/gradient-drag.cpp:948
+#: ../src/widgets/gradient-vector.cpp:767
 msgid "Delete gradient stop"
-msgstr "선택부분 지우기"
+msgstr "그라디언트 조절점 삭제"
 
 #: ../src/gradient-drag.cpp:1112
 #, c-format
-msgid ""
-"%s %d for: %s%s; drag with <b>Ctrl</b> to snap offset; click with <b>Ctrl"
-"+Alt</b> to delete stop"
-msgstr ""
+msgid "%s %d for: %s%s; drag with <b>Ctrl</b> to snap offset; click with <b>Ctrl+Alt</b> to delete stop"
+msgstr " %s %d : %s%s; <b>Ctrl</b>: 옵셋 붙이기; <b>Ctrl+Alt</b>: 조절점 삭제"
 
-#: ../src/gradient-drag.cpp:1116 ../src/gradient-drag.cpp:1123
+#: ../src/gradient-drag.cpp:1116
+#: ../src/gradient-drag.cpp:1123
 msgid " (stroke)"
-msgstr ""
+msgstr "(윤곽선)"
 
 #: ../src/gradient-drag.cpp:1120
 #, c-format
-msgid ""
-"%s for: %s%s; drag with <b>Ctrl</b> to snap angle, with <b>Ctrl+Alt</b> to "
-"preserve angle, with <b>Ctrl+Shift</b> to scale around center"
-msgstr ""
+msgid "%s for: %s%s; drag with <b>Ctrl</b> to snap angle, with <b>Ctrl+Alt</b> to preserve angle, with <b>Ctrl+Shift</b> to scale around center"
+msgstr "  %s : %s%s; <b>Ctrl</b>: 각도를 붙이기, <b>Ctrl+Alt</b>: 각도 유지, <b>Ctrl+Shift</b>: 중앙 주변 변경"
 
 #: ../src/gradient-drag.cpp:1128
-msgid ""
-"Radial gradient <b>center</b> and <b>focus</b>; drag with <b>Shift</b> to "
-"separate focus"
-msgstr ""
+msgid "Radial gradient <b>center</b> and <b>focus</b>; drag with <b>Shift</b> to separate focus"
+msgstr "방사 그라디언트 <b>중앙</b>과 <b>초점</b>; <b>Shift</b> 초점 분리"
 
 #: ../src/gradient-drag.cpp:1131
 #, c-format
-msgid ""
-"Gradient point shared by <b>%d</b> gradient; drag with <b>Shift</b> to "
-"separate"
-msgid_plural ""
-"Gradient point shared by <b>%d</b> gradients; drag with <b>Shift</b> to "
-"separate"
-msgstr[0] ""
-msgstr[1] ""
+msgid "Gradient point shared by <b>%d</b> gradient; drag with <b>Shift</b> to separate"
+msgstr "<b>%d</b> 그라디언트에 의해 공유된 그라디언트 점; Shift: 분리하기"
 
 #: ../src/gradient-drag.cpp:1806
-#, fuzzy
 msgid "Move gradient handle(s)"
-msgstr "임의의 노드 관리"
+msgstr "그라디언트 핸들 이동"
 
 #: ../src/gradient-drag.cpp:1842
-#, fuzzy
 msgid "Move gradient mid stop(s)"
-msgstr "선택부분 지우기"
+msgstr "그라디언트 중간 조절점 이동"
 
 #: ../src/gradient-drag.cpp:2130
-#, fuzzy
 msgid "Delete gradient stop(s)"
-msgstr "선택부분 지우기"
+msgstr "그라디언트 조절점 삭제"
 
 #: ../src/helper/units.cpp:37
 msgid "Unit"
 msgstr "단위"
 
 #. Add the units menu.
-#: ../src/helper/units.cpp:37 ../src/widgets/select-toolbar.cpp:490
-#: ../src/widgets/toolbox.cpp:1280 ../src/widgets/toolbox.cpp:2457
+#: ../src/helper/units.cpp:37
+#: ../src/widgets/select-toolbar.cpp:490
+#: ../src/widgets/toolbox.cpp:1280
+#: ../src/widgets/toolbox.cpp:2457
 #: ../src/widgets/toolbox.cpp:5758
 msgid "Units"
 msgstr "단위"
@@ -4831,74 +4646,79 @@ msgstr "단위"
 msgid "Point"
 msgstr "포인트"
 
-#: ../src/helper/units.cpp:38 ../src/ui/widget/selected-style.cpp:287
+#: ../src/helper/units.cpp:38
+#: ../src/ui/widget/selected-style.cpp:287
 msgid "pt"
-msgstr "pt"
+msgstr "포인트"
 
-#: ../src/helper/units.cpp:38 ../share/extensions/perfectboundcover.inx.h:16
+#: ../src/helper/units.cpp:38
+#: ../share/extensions/perfectboundcover.inx.h:16
 msgid "Points"
 msgstr "포인트"
 
 #: ../src/helper/units.cpp:38
 msgid "Pt"
-msgstr "Pt"
+msgstr "포인트"
 
 #: ../src/helper/units.cpp:39
 msgid "Pica"
-msgstr ""
+msgstr "피카"
 
 #: ../src/helper/units.cpp:39
 msgid "pc"
-msgstr ""
+msgstr "피카"
 
 #: ../src/helper/units.cpp:39
-#, fuzzy
 msgid "Picas"
-msgstr "경로"
+msgstr "피카"
 
 #: ../src/helper/units.cpp:39
 msgid "Pc"
-msgstr ""
+msgstr "피카"
 
 #: ../src/helper/units.cpp:40
 msgid "Pixel"
-msgstr "í\94½ì\85\80"
+msgstr "í\99\94ì\86\8c"
 
-#: ../src/helper/units.cpp:40 ../src/ui/dialog/inkscape-preferences.cpp:198
+#: ../src/helper/units.cpp:40
+#: ../src/ui/dialog/inkscape-preferences.cpp:198
 #: ../src/ui/dialog/inkscape-preferences.cpp:202
 #: ../src/ui/dialog/inkscape-preferences.cpp:205
 #: ../src/ui/widget/selected-style.cpp:283
 msgid "px"
-msgstr "px"
+msgstr "화소"
 
 #: ../src/helper/units.cpp:40
 msgid "Pixels"
-msgstr "í\94½ì\85\80"
+msgstr "í\99\94ì\86\8c"
 
 #: ../src/helper/units.cpp:40
 msgid "Px"
-msgstr "Px"
+msgstr "화소"
 
 #. You can add new elements from this point forward
-#: ../src/helper/units.cpp:42 ../share/extensions/straightseg.inx.h:3
+#: ../src/helper/units.cpp:42
+#: ../share/extensions/straightseg.inx.h:3
 msgid "Percent"
-msgstr "퍼센트"
+msgstr "백분율"
 
-#: ../src/helper/units.cpp:42 ../src/ui/dialog/inkscape-preferences.cpp:218
+#: ../src/helper/units.cpp:42
+#: ../src/ui/dialog/inkscape-preferences.cpp:218
 msgid "%"
 msgstr "%"
 
 #: ../src/helper/units.cpp:42
 msgid "Percents"
-msgstr "퍼센트"
+msgstr "백분율"
 
 #: ../src/helper/units.cpp:43
 msgid "Millimeter"
 msgstr "밀리미터"
 
-#: ../src/helper/units.cpp:43 ../src/ui/widget/selected-style.cpp:291
+#: ../src/helper/units.cpp:43
+#: ../src/ui/widget/selected-style.cpp:291
 msgid "mm"
-msgstr "mm"
+msgstr "밀리미터"
 
 #: ../src/helper/units.cpp:43
 msgid "Millimeters"
@@ -4906,15 +4726,15 @@ msgstr "밀리미터"
 
 #: ../src/helper/units.cpp:44
 msgid "Centimeter"
-msgstr "센미터"
+msgstr "센미터"
 
 #: ../src/helper/units.cpp:44
 msgid "cm"
-msgstr "cm"
+msgstr "센티미터"
 
 #: ../src/helper/units.cpp:44
 msgid "Centimeters"
-msgstr "센미터"
+msgstr "센미터"
 
 #: ../src/helper/units.cpp:45
 msgid "Meter"
@@ -4922,7 +4742,7 @@ msgstr "미터"
 
 #: ../src/helper/units.cpp:45
 msgid "m"
-msgstr "m"
+msgstr "미터"
 
 #: ../src/helper/units.cpp:45
 msgid "Meters"
@@ -4935,25 +4755,23 @@ msgstr "인치"
 
 #: ../src/helper/units.cpp:46
 msgid "in"
-msgstr "in"
+msgstr "인치"
 
 #: ../src/helper/units.cpp:46
 msgid "Inches"
 msgstr "인치"
 
 #: ../src/helper/units.cpp:47
-#, fuzzy
 msgid "Foot"
-msgstr "글꼴"
+msgstr "피트"
 
 #: ../src/helper/units.cpp:47
 msgid "ft"
-msgstr ""
+msgstr "피트"
 
 #: ../src/helper/units.cpp:47
-#, fuzzy
 msgid "Feet"
-msgstr "í\94\84리ì\95\84트"
+msgstr "í\94¼트"
 
 #. Volatiles do not have default, so there are none here
 #. TRANSLATORS: for info, see http://www.w3.org/TR/REC-CSS2/syndata.html#length-units
@@ -4983,22 +4801,22 @@ msgid "Ex squares"
 msgstr "평방 Ex"
 
 #: ../src/inkscape.cpp:337
-#, fuzzy
 msgid "Autosaving documents..."
-msgstr "문ì\84\9c ì \80ì\9e¥"
+msgstr "문ì\84\9c ì\9e\90ë\8f\99 ì \80ì\9e¥ ì¤\91..."
 
 #: ../src/inkscape.cpp:405
 msgid "Autosave failed! Could not find inkscape extension to save document."
-msgstr ""
+msgstr "자동 저장 실패! 문서 저장하기 위하여 Inkscape 확장자 찾을 수 없습니다."
 
-#: ../src/inkscape.cpp:408 ../src/inkscape.cpp:415
-#, fuzzy, c-format
+#: ../src/inkscape.cpp:408
+#: ../src/inkscape.cpp:415
+#, c-format
 msgid "Autosave failed! File %s could not be saved."
-msgstr "파일 %s저장 되지 않을수 있습니다."
+msgstr "자동 저장 실패! 파일 %s를 저장할 수 없습니다."
 
 #: ../src/inkscape.cpp:430
 msgid "Autosave complete."
-msgstr ""
+msgstr "자동 저장 완료."
 
 #: ../src/inkscape.cpp:653
 msgid "Untitled document"
@@ -5007,17 +4825,15 @@ msgstr "제목없는 문서"
 #. Show nice dialog box
 #: ../src/inkscape.cpp:682
 msgid "Inkscape encountered an internal error and will close now.\n"
-msgstr "잉크 스케이프에 내부 에라가 발생하여 프로그램을 닫습니다.\n"
+msgstr "Inkscape 실행 중 내부 오류가 발생하여, 지금 종료합니다.\n"
 
 #: ../src/inkscape.cpp:683
-msgid ""
-"Automatic backups of unsaved documents were done to the following "
-"locations:\n"
-msgstr "저장 하지 않은 문의의 자동 백업이 다음 위치에 보관 됩니다:\n"
+msgid "Automatic backups of unsaved documents were done to the following locations:\n"
+msgstr "저장안된 문서의 자동 백업이 다음 위치에서 저장됩니다:\n"
 
 #: ../src/inkscape.cpp:684
 msgid "Automatic backup of the following documents failed:\n"
-msgstr "다음 문서들의 자동 백업이 실폐:\n"
+msgstr "다음 문서들의 자동 백업 실패:\n"
 
 #: ../src/inkscape.cpp:829
 #, c-format
@@ -5025,7 +4841,7 @@ msgid ""
 "Cannot create directory %s.\n"
 "%s"
 msgstr ""
-"%s 디렉토리를 생성할수 없습니다 \n"
+"%s 폴더를 생성할 수 없습니다 \n"
 "%s"
 
 #: ../src/inkscape.cpp:830
@@ -5034,7 +4850,7 @@ msgid ""
 "%s is not a valid directory.\n"
 "%s"
 msgstr ""
-"%s 는 유효한 디렉토리가 아닙니다.\n"
+"%s 는 유효한 폴더가 아닙니다.\n"
 "%s"
 
 #: ../src/inkscape.cpp:831
@@ -5043,7 +4859,7 @@ msgid ""
 "Cannot create file %s.\n"
 "%s"
 msgstr ""
-"%s 파일을 생성할수 없습니다.\n"
+"%s 파일을 생성할 수 없습니다.\n"
 "%s"
 
 #: ../src/inkscape.cpp:832
@@ -5060,10 +4876,11 @@ msgid ""
 "Although Inkscape will run, it will use default settings,\n"
 "and any changes made in preferences will not be saved."
 msgstr ""
-"잉크스케이프가 기본 설정 상태로 실행 될것입니다,\n"
-"그리고 설정판에 어떤 설정 변화도 저장 되지 않습니다."
+"Inkscape가 실행될지라도, 기본 설정을 사용할 것입니다,\n"
+"그리고 기본설정에서 어떤 설정 변화도 저장되지 않습니다."
 
-#: ../src/inkscape.cpp:903 ../src/preferences.cpp:56
+#: ../src/inkscape.cpp:903
+#: ../src/preferences.cpp:56
 #, c-format
 msgid ""
 "%s is not a regular file.\n"
@@ -5072,15 +4889,17 @@ msgstr ""
 "%s 는 일반 파일이 아닙니다.\n"
 "%s"
 
-#: ../src/inkscape.cpp:904 ../src/preferences.cpp:57
+#: ../src/inkscape.cpp:904
+#: ../src/preferences.cpp:57
 #, c-format
 msgid ""
 "%s not a valid XML file, or\n"
 "you don't have read permissions on it.\n"
 "%s"
 msgstr ""
-"%s 는 유효한 XML 파일이 아닙니다, 그리고 \n"
-"%s 을 읽을 권한이 없습니다."
+"%s 는 유효한 XML 파일이 아닙니다, 또는 \n"
+"읽을 권한이 없습니다.\n"
+"%s"
 
 #: ../src/inkscape.cpp:906
 #, c-format
@@ -5096,26 +4915,26 @@ msgid ""
 "Inkscape will run with default menus.\n"
 "New menus will not be saved."
 msgstr ""
-"잉크스케이프 를 기본 메뉴와 시작.\n"
-"ì\83\88 ë©\94ë\89´ë\8a\94 ì \80ì\9e¥ë\90\98ì§\80 ì\95\8aì\9d\8c."
+"Inkscape가 기본 메뉴로 시작합니다.\n"
+"ì\83\88 ë©\94ë\89´ë\8a\94 ì \80ì\9e¥ë\90\98ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤."
 
 #. sp_ui_menu_append_check_item_from_verb(m, view, _("_Menu"), _("Show or hide the menu bar"), "menu",
 #. checkitem_toggled, checkitem_update, 0);
 #: ../src/interface.cpp:838
 msgid "Commands Bar"
-msgstr "ëª\85ë ¹ ë°\94"
+msgstr "ëª\85ë ¹ ë§\89ë\8c\80"
 
 #: ../src/interface.cpp:838
 msgid "Show or hide the Commands bar (under the menu)"
-msgstr "명령바를 보이기또는 감추기 (메뉴 아래)"
+msgstr "명령 막대 보이기 토글(메뉴 아래)"
 
 #: ../src/interface.cpp:840
 msgid "Tool Controls Bar"
-msgstr "ë\8f\84구 ì¡°ì \95 ë°\94"
+msgstr "ë\8f\84구 ì \9cì\96´ ë§\89ë\8c\80"
 
 #: ../src/interface.cpp:840
 msgid "Show or hide the Tool Controls bar"
-msgstr "ë\8f\84구 ì¡°ì \95 ë°\94를 ë³´ì\9d´ê¸° ë\98\90ë\8a\94 ê°\90ì¶\94기"
+msgstr "ë\8f\84구 ì \9cì\96´ ë§\89ë\8c\80 ë³´ì\9d´ê¸° í\86 ê¸\80"
 
 #: ../src/interface.cpp:842
 msgid "_Toolbox"
@@ -5123,153 +4942,150 @@ msgstr "도구상자(_T)"
 
 #: ../src/interface.cpp:842
 msgid "Show or hide the main toolbox (on the left)"
-msgstr "주 도구박스 보이기 또는 감추기(왼쪽편)"
+msgstr "도구상자 보이기 토글(왼쪽)"
 
 #: ../src/interface.cpp:848
 msgid "_Palette"
-msgstr "í\8c\94ë\9e«트(_P)"
+msgstr "í\8c\94ë \88트(_P)"
 
 #: ../src/interface.cpp:848
 msgid "Show or hide the color palette"
-msgstr "색 팔래트 보이기 또는 감추기"
+msgstr "색상 팔레.트 보이기 토글"
 
 #: ../src/interface.cpp:850
 msgid "_Statusbar"
-msgstr "상태(_S)"
+msgstr "상태 막대(_S)"
 
 #: ../src/interface.cpp:850
 msgid "Show or hide the statusbar (at the bottom of the window)"
-msgstr "상태바 보이기 또는 감추기 ( 창 아래쪽)"
+msgstr "상태 막대 보이기 토글 (창 최하단)"
 
 #: ../src/interface.cpp:904
 #, c-format
 msgid "Verb \"%s\" Unknown"
-msgstr ""
+msgstr " 동사 \"%s\" 알 수 없음"
 
 #. TRANSLATORS: #%s is the id of the group e.g. <g id="#g7">, not a number.
 #: ../src/interface.cpp:1023
 #, c-format
 msgid "Enter group #%s"
-msgstr "그룹을 넣으세요 #%s"
+msgstr "그룹 #%s 입력"
 
 #: ../src/interface.cpp:1034
 msgid "Go to parent"
-msgstr "부모인자로 가시오"
+msgstr "상위 폴더로 이동"
 
-#: ../src/interface.cpp:1125 ../src/interface.cpp:1210
+#: ../src/interface.cpp:1125
+#: ../src/interface.cpp:1210
 #: ../src/ui/widget/selected-style.cpp:466
-#, fuzzy
 msgid "Drop color"
-msgstr "ì\83\89 ë³µì\82¬"
+msgstr "ì\94ì¶\9c ì\83\89ì\83\81"
 
 #: ../src/interface.cpp:1164
-#, fuzzy
 msgid "Drop color on gradient"
-msgstr "색 복사"
+msgstr "그라디언트상 색상 추출"
 
 #: ../src/interface.cpp:1223
 msgid "Could not parse SVG data"
-msgstr ""
+msgstr "SVG 분석을 할 수 없음"
 
 #: ../src/interface.cpp:1265
 msgid "Drop SVG"
-msgstr ""
+msgstr "DVG 추출"
 
 #: ../src/interface.cpp:1323
-#, fuzzy
 msgid "Drop bitmap image"
-msgstr "<image> 비트맵 불러들이기."
+msgstr "비트맵 이미지 추출"
 
 #: ../src/interface.cpp:1415
 #, c-format
 msgid ""
-"<span weight=\"bold\" size=\"larger\">A file named \"%s\" already exists. Do "
-"you want to replace it?</span>\n"
+"<span weight=\"bold\" size=\"larger\">A file named \"%s\" already exists. Do you want to replace it?</span>\n"
 "\n"
 "The file already exists in \"%s\". Replacing it will overwrite its contents."
 msgstr ""
 
 #: ../src/interface.cpp:1422
 msgid "Replace"
-msgstr ""
+msgstr "치환"
 
-#: ../src/io/sys.cpp:411 ../src/io/sys.cpp:419
+#: ../src/io/sys.cpp:411
+#: ../src/io/sys.cpp:419
 #, c-format
 msgid "Failed to read from child pipe (%s)"
-msgstr ""
+msgstr "자식 파이프 (%s) 로 부터 읽는데 실패"
 
 #: ../src/io/sys.cpp:443
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to change to directory '%s' (%s)"
-msgstr ""
-"%s 디렉토리를 생성할수 없습니다 \n"
-"%s"
+msgstr "'%s' (%s) 폴더 변경 실패!"
 
-#: ../src/io/sys.cpp:449 ../src/io/sys.cpp:675
-#, fuzzy, c-format
+#: ../src/io/sys.cpp:449
+#: ../src/io/sys.cpp:675
+#, c-format
 msgid "Failed to execute child process (%s)"
-msgstr "ì\9a\94ì²­í\95\9c %s í\8c\8cì\9d¼ì\9d\84 ë¶\88ë\9f¬ ë\93¤ì\9d´ë\8a\94ë\8d° ì\8b¤í\8c¨"
+msgstr "ì\9e\90ì\8b\9d í\94\84ë¡\9cì\84¸ì\8a¤ (%s) ì\8b¤í\96\89 ì\8b¤í\8c¨!"
 
 #: ../src/io/sys.cpp:622
 #, c-format
 msgid "Invalid program name: %s"
-msgstr ""
+msgstr "부적합한 프로그램 이름: %s"
 
-#: ../src/io/sys.cpp:632 ../src/io/sys.cpp:921
+#: ../src/io/sys.cpp:632
+#: ../src/io/sys.cpp:921
 #, c-format
 msgid "Invalid string in argument vector at %d: %s"
-msgstr ""
+msgstr "%d의 인수 벡터에서 부적합한 문자열 : %s"
 
-#: ../src/io/sys.cpp:643 ../src/io/sys.cpp:936
+#: ../src/io/sys.cpp:643
+#: ../src/io/sys.cpp:936
 #, c-format
 msgid "Invalid string in environment: %s"
-msgstr ""
+msgstr "환경에서 부적합한 문자열: %s"
 
 #: ../src/io/sys.cpp:704
 #, c-format
 msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr ""
+msgstr "자식 프로세스 (%s)와 통신하기 위한 파이프 생성 실패"
 
 #: ../src/io/sys.cpp:917
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid working directory: %s"
-msgstr ""
-"%s 는 유효한 디렉토리가 아닙니다.\n"
-"%s"
+msgstr "부적합한 작업 폴더 : %s"
 
 #: ../src/io/sys.cpp:985
 #, c-format
 msgid "Failed to execute helper program (%s)"
-msgstr ""
+msgstr "도움말 프로그램 (%s) 실행 오류!"
 
 #: ../src/jabber_whiteboard/invitation-confirm-dialog.cpp:26
 #: ../src/jabber_whiteboard/session-file-selector.cpp:24
 msgid "_Write session file:"
-msgstr "세션 파일을 쓰시오(_W):"
+msgstr "세션 파일 쓰기(_W):"
 
 #: ../src/jabber_whiteboard/pedrogui.cpp:2630
 msgid "Shared SVG whiteboard tool."
-msgstr ""
+msgstr "공유 SVG 화이트보드 도구."
 
 #: ../src/jabber_whiteboard/pedrogui.cpp:2631
 msgid "Based on the Pedro XMPP client"
-msgstr ""
+msgstr "Pedro XMPP 클라이언트 기반"
 
 #: ../src/jabber_whiteboard/session-file-selector.cpp:60
 msgid "Select a location and filename"
-msgstr "위치와 파일 이름 선택"
+msgstr "위치와 파일 선택"
 
 #: ../src/jabber_whiteboard/session-file-selector.cpp:62
 msgid "Set filename"
-msgstr "파일이름 설정"
+msgstr "파일 설정"
 
 #: ../src/jabber_whiteboard/session-manager.cpp:308
 msgid "<b>%1</b> has invited you to a whiteboard session."
-msgstr "<b>%1</b> 가 당신을 화이트 보드 세션에 초대 했습니다."
+msgstr "<b>%1</b>가 당신을 화이트보드 세션에 초대 했습니다."
 
 #: ../src/jabber_whiteboard/session-manager.cpp:310
 msgid "Do you wish to accept <b>%1</b>'s whiteboard session invitation?"
-msgstr ""
+msgstr "<b>%1</b>' 화이트보드 세션 초대를 허용하시겠습니까?"
 
 #: ../src/jabber_whiteboard/session-manager.cpp:314
 msgid "Accept invitation"
@@ -5281,271 +5097,242 @@ msgstr "초대 거절"
 
 #: ../src/jabber_whiteboard/session-manager.cpp:370
 msgid "Inkboard session (%1 to %2)"
-msgstr ""
+msgstr "잉크보드 세션 (%1 에서 %2)"
 
 #: ../src/knot.cpp:430
 msgid "Node or handle drag canceled."
-msgstr ""
+msgstr "노드 또는 핸들 끌끼 취소됨."
 
 #: ../src/knotholder.cpp:132
-#, fuzzy
 msgid "Change handle"
-msgstr "사각형 찾기"
+msgstr "핸들 변경"
 
 #: ../src/knotholder.cpp:207
-#, fuzzy
 msgid "Move handle"
-msgstr "임의의 노드 관리"
+msgstr "핸들 이동"
 
 #. TRANSLATORS: This refers to the pattern that's inside the object
 #: ../src/knotholder.cpp:228
 msgid "<b>Move</b> the pattern fill inside the object"
-msgstr ""
+msgstr "객체 안쪽 패턴 채움 이동"
 
 #: ../src/knotholder.cpp:231
 msgid "<b>Scale</b> the pattern fill uniformly"
-msgstr ""
+msgstr "동일하게 패턴 채움 변경"
 
 #: ../src/knotholder.cpp:234
 msgid "<b>Rotate</b> the pattern fill; with <b>Ctrl</b> to snap angle"
-msgstr ""
+msgstr "패턴 채움 회전; Ctrl 각도 붙이기 점 조정"
 
 #: ../src/libgdl/gdl-dock-bar.c:108
-#, fuzzy
 msgid "Master"
-msgstr "ë°\98ì§\80ë¦\84"
+msgstr "ë§\88ì\8a¤í\84°"
 
 #: ../src/libgdl/gdl-dock-bar.c:109
 msgid "GdlDockMaster object which the dockbar widget is attached to"
 msgstr ""
 
 #: ../src/libgdl/gdl-dock-bar.c:116
-#, fuzzy
 msgid "Dockbar style"
-msgstr "확대/축소(_S)"
+msgstr "도크막대 스타일"
 
 #: ../src/libgdl/gdl-dock-bar.c:117
 msgid "Dockbar style to show items on it"
-msgstr ""
+msgstr "아이템을 보이기 위한 도크막대 스타일"
 
-#: ../src/libgdl/gdl-dock.c:175 ../src/ui/dialog/inkscape-preferences.cpp:496
+#: ../src/libgdl/gdl-dock.c:175
+#: ../src/ui/dialog/inkscape-preferences.cpp:496
 #: ../src/ui/dialog/inkscape-preferences.cpp:517
-#, fuzzy
 msgid "Floating"
-msgstr "  위치: "
+msgstr "유동"
 
 #: ../src/libgdl/gdl-dock.c:176
 msgid "Whether the dock is floating in its own window"
-msgstr ""
+msgstr "자체 창에서 도크가 유동인지"
 
-#: ../src/libgdl/gdl-dock.c:183 ../src/libgdl/gdl-dock-master.c:144
-#, fuzzy
+#: ../src/libgdl/gdl-dock.c:183
+#: ../src/libgdl/gdl-dock-master.c:144
 msgid "Default title"
-msgstr "기본"
+msgstr "기본 제목"
 
 #: ../src/libgdl/gdl-dock.c:184
 msgid "Default title for the newly created floating docks"
-msgstr ""
+msgstr "새로이 유동 도크를 생성하기 위한 기본 제목"
 
 #: ../src/libgdl/gdl-dock.c:191
 msgid "Width for the dock when it's of floating type"
-msgstr ""
+msgstr "유동 형태일 때 도크 폭"
 
 #: ../src/libgdl/gdl-dock.c:199
 msgid "Height for the dock when it's of floating type"
-msgstr ""
+msgstr "유동 형태일 때 도크 높이"
 
 #: ../src/libgdl/gdl-dock.c:206
-#, fuzzy
 msgid "Float X"
-msgstr "  위치: "
+msgstr "유동 X 좌표"
 
 #: ../src/libgdl/gdl-dock.c:207
 msgid "X coordinate for a floating dock"
-msgstr ""
+msgstr "유동 도크를 위한 X 좌표"
 
 #: ../src/libgdl/gdl-dock.c:214
-#, fuzzy
 msgid "Float Y"
-msgstr "  위치: "
+msgstr "유동 Y 좌표"
 
 #: ../src/libgdl/gdl-dock.c:215
 msgid "Y coordinate for a floating dock"
-msgstr ""
+msgstr "유동 도크를 위한 Y 좌표"
 
 #: ../src/libgdl/gdl-dock.c:499
 #, c-format
 msgid "Dock #%d"
-msgstr ""
+msgstr "도크 #%d"
 
 #: ../src/libgdl/gdl-dock-item.c:287
-#, fuzzy
 msgid "Orientation"
-msgstr "출력 목적지"
+msgstr "방향"
 
 #: ../src/libgdl/gdl-dock-item.c:288
 msgid "Orientation of the docking item"
-msgstr ""
+msgstr "도킹 아이템의 방향"
 
 #: ../src/libgdl/gdl-dock-item.c:303
 msgid "Resizable"
-msgstr ""
+msgstr "크기 변경가능"
 
 #: ../src/libgdl/gdl-dock-item.c:304
 msgid "If set, the dock item can be resized when docked in a panel"
-msgstr ""
+msgstr "설정시, 패널에 도크가 되어있을 때 도크 항목 크기를 조정할 수 있음"
 
 #: ../src/libgdl/gdl-dock-item.c:311
-#, fuzzy
 msgid "Item behavior"
-msgstr "동"
+msgstr "객체 작동"
 
 #: ../src/libgdl/gdl-dock-item.c:312
-msgid ""
-"General behavior for the dock item (i.e. whether it can float, if it's "
-"locked, etc.)"
-msgstr ""
+msgid "General behavior for the dock item (i.e. whether it can float, if it's locked, etc.)"
+msgstr "도크 항목의 일반 작동"
 
-#: ../src/libgdl/gdl-dock-item.c:320 ../src/libgdl/gdl-dock-master.c:151
-#, fuzzy
+#: ../src/libgdl/gdl-dock-item.c:320
+#: ../src/libgdl/gdl-dock-master.c:151
 msgid "Locked"
-msgstr "잠금(_o)"
+msgstr "잠금"
 
 #: ../src/libgdl/gdl-dock-item.c:321
-msgid ""
-"If set, the dock item cannot be dragged around and it doesn't show a grip"
-msgstr ""
+msgid "If set, the dock item cannot be dragged around and it doesn't show a grip"
+msgstr "설정시, 도크 항목을 주변으로 끌기할 수 없고 붙잡기가 나타나지 않음"
 
 #: ../src/libgdl/gdl-dock-item.c:329
 msgid "Preferred width"
-msgstr ""
+msgstr "기본 폭"
 
 #: ../src/libgdl/gdl-dock-item.c:330
 msgid "Preferred width for the dock item"
-msgstr ""
+msgstr "도크 객체를 위한 기본 폭"
 
 #: ../src/libgdl/gdl-dock-item.c:336
-#, fuzzy
 msgid "Preferred height"
-msgstr "높이:"
+msgstr "기본 높이"
 
 #: ../src/libgdl/gdl-dock-item.c:337
 msgid "Preferred height for the dock item"
-msgstr ""
+msgstr "도크 객체를 위한 기본 높이"
 
 #: ../src/libgdl/gdl-dock-item.c:616
-#, c-format
-msgid ""
-"You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or "
-"some other compound dock object."
+#, fuzzy, c-format
+msgid "You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or some other compound dock object."
 msgstr ""
 
 #: ../src/libgdl/gdl-dock-item.c:623
 #, c-format
-msgid ""
-"Attempting to add a widget with type %s to a %s, but it can only contain one "
-"widget at a time; it already contains a widget of type %s"
-msgstr ""
+msgid "Attempting to add a widget with type %s to a %s, but it can only contain one widget at a time; it already contains a widget of type %s"
+msgstr "위젯 %s 형태를 %s 로 더하기 시도,; %s 형태 위젯를 가지고 있음"
 
-#: ../src/libgdl/gdl-dock-item.c:1345 ../src/libgdl/gdl-dock-item.c:1390
+#: ../src/libgdl/gdl-dock-item.c:1345
+#: ../src/libgdl/gdl-dock-item.c:1390
 #, c-format
 msgid "Unsupported docking strategy %s in dock object of type %s"
 msgstr ""
 
 #. UnLock menuitem
 #: ../src/libgdl/gdl-dock-item.c:1479
-#, fuzzy
 msgid "UnLock"
-msgstr "잠금(_o)"
+msgstr "잠금 해제"
 
 #. Hide menuitem.
 #: ../src/libgdl/gdl-dock-item.c:1486
-#, fuzzy
 msgid "Hide"
-msgstr "숨기기(_H)"
+msgstr "숨기기"
 
 #. Lock menuitem
 #: ../src/libgdl/gdl-dock-item.c:1491
-#, fuzzy
 msgid "Lock"
-msgstr "잠금(_o)"
+msgstr "잠금"
 
 #: ../src/libgdl/gdl-dock-item.c:1717
 #, c-format
 msgid "Attempt to bind an unbound item %p"
-msgstr ""
+msgstr "해제된 항목 %p 를 고정 시도"
 
 #: ../src/libgdl/gdl-dock-item-grip.c:395
 msgid "Iconify"
-msgstr ""
+msgstr "아이콘화"
 
 #: ../src/libgdl/gdl-dock-item-grip.c:395
 msgid "Iconify this dock"
-msgstr ""
+msgstr "이 도크를 아이콘화"
 
 #: ../src/libgdl/gdl-dock-item-grip.c:397
-#, fuzzy
 msgid "Close"
-msgstr "닫기(_C)"
+msgstr "닫기"
 
 #: ../src/libgdl/gdl-dock-item-grip.c:397
-#, fuzzy
 msgid "Close this dock"
-msgstr "ì\9d´ ë¬¸ì\84\9cì°½ì\9d\84 닫기"
+msgstr "ì\9d´ ë\8f\84í\81¬ë¥¼ 닫기"
 
 #: ../src/libgdl/gdl-dock-item-grip.c:706
 #: ../src/libgdl/gdl-dock-tablabel.c:128
 msgid "Controlling dock item"
-msgstr ""
+msgstr "도크 객체 제어 중"
 
 #: ../src/libgdl/gdl-dock-item-grip.c:707
 msgid "Dockitem which 'owns' this grip"
-msgstr ""
+msgstr "붙잡기를 가진 도크 항목"
 
 #: ../src/libgdl/gdl-dock-master.c:145
 msgid "Default title for newly created floating docks"
-msgstr ""
+msgstr "유동 도크에 의해 새로이 생성된 기본 제목"
 
 #: ../src/libgdl/gdl-dock-master.c:152
-msgid ""
-"If is set to 1, all the dock items bound to the master are locked; if it's "
-"0, all are unlocked; -1 indicates inconsistency among the items"
-msgstr ""
+msgid "If is set to 1, all the dock items bound to the master are locked; if it's 0, all are unlocked; -1 indicates inconsistency among the items"
+msgstr "설정을 1일 때, 도크 항목이 잠김; 0이라면 전체 잠김 해제, -1은 불일치를 나타냄"
 
-#: ../src/libgdl/gdl-dock-master.c:160 ../src/libgdl/gdl-switcher.c:707
-#, fuzzy
+#: ../src/libgdl/gdl-dock-master.c:160
+#: ../src/libgdl/gdl-switcher.c:707
 msgid "Switcher Style"
-msgstr "불이기 종류(_S)"
+msgstr "스위처 스타일"
 
-#: ../src/libgdl/gdl-dock-master.c:161 ../src/libgdl/gdl-switcher.c:708
-#, fuzzy
+#: ../src/libgdl/gdl-dock-master.c:161
+#: ../src/libgdl/gdl-switcher.c:708
 msgid "Switcher buttons style"
-msgstr "ì\9d´ë¦\84ë°\94ë\80\90 ë \88ì\9d´ì\96´"
+msgstr "ì\8a¤ì\9c\84ì²\98 ë\8b¨ì¶\94 ì\8a¤í\83\80ì\9d¼"
 
 #: ../src/libgdl/gdl-dock-master.c:168
-#, fuzzy
 msgid "Expand direction"
-msgstr "줄 간격:"
+msgstr "확장 방향"
 
 #: ../src/libgdl/gdl-dock-master.c:169
-msgid ""
-"Allow the master's dock items to expand their container dock objects in the "
-"given direction"
-msgstr ""
+msgid "Allow the master's dock items to expand their container dock objects in the given direction"
+msgstr "마스터 도크 항목이 지정 방향으로 도크 객체를 확장하는 것을 허용."
 
 #: ../src/libgdl/gdl-dock-master.c:796
 #, c-format
-msgid ""
-"master %p: unable to add object %p[%s] to the hash.  There already is an "
-"item with that name (%p)."
-msgstr ""
+msgid "master %p: unable to add object %p[%s] to the hash.  There already is an item with that name (%p)."
+msgstr "마스터 %p: 객체 %p[%s] 해시로 더할 수 없음.  (%p) 이름 항목이 벌써 있음."
 
 #: ../src/libgdl/gdl-dock-master.c:969
 #, c-format
-msgid ""
-"The new dock controller %p is automatic.  Only manual dock objects should be "
-"named controller."
-msgstr ""
+msgid "The new dock controller %p is automatic.  Only manual dock objects should be named controller."
+msgstr "새 도크 제어자 %p가 자동임."
 
 #: ../src/libgdl/gdl-dock-notebook.c:134
 #: ../src/ui/dialog/align-and-distribute.cpp:903
@@ -5553,69 +5340,61 @@ msgstr ""
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1364
 #: ../src/widgets/desktop-widget.cpp:1544
 msgid "Page"
-msgstr ""
+msgstr "페이지"
 
 #: ../src/libgdl/gdl-dock-notebook.c:135
-#, fuzzy
 msgid "The index of the current page"
-msgstr "현재 레이어에서 만 찾기"
+msgstr "현재 페이지의 인덱스"
 
-#: ../src/libgdl/gdl-dock-object.c:120 ../src/ui/widget/page-sizer.cpp:198
-#, fuzzy
+#: ../src/libgdl/gdl-dock-object.c:120
+#: ../src/ui/widget/page-sizer.cpp:198
 msgid "Name"
-msgstr "이름:"
+msgstr "이름"
 
 #: ../src/libgdl/gdl-dock-object.c:121
 msgid "Unique name for identifying the dock object"
-msgstr ""
+msgstr "도크 객체를 인식하기 위한 유일한 이름"
 
 #: ../src/libgdl/gdl-dock-object.c:128
-#, fuzzy
 msgid "Long name"
-msgstr "레이어 이름:"
+msgstr "긴 이름"
 
 #: ../src/libgdl/gdl-dock-object.c:129
-#, fuzzy
 msgid "Human readable name for the dock object"
-msgstr "객체를 위한 자유 형식의 래밸"
+msgstr "도크 객체를 위한 읽을 수 있는 이름"
 
 #: ../src/libgdl/gdl-dock-object.c:135
 msgid "Stock Icon"
-msgstr ""
+msgstr "Icon 모음"
 
 #: ../src/libgdl/gdl-dock-object.c:136
 msgid "Stock icon for the dock object"
-msgstr ""
+msgstr "도크 객체를 위한 Icon 모음"
 
 #: ../src/libgdl/gdl-dock-object.c:142
 msgid "Pixbuf Icon"
-msgstr ""
+msgstr "Pixbuf 아이콘"
 
 #: ../src/libgdl/gdl-dock-object.c:143
 msgid "Pixbuf icon for the dock object"
-msgstr ""
+msgstr "도크 객체의 Pixbuf 아이콘"
 
 #: ../src/libgdl/gdl-dock-object.c:148
-#, fuzzy
 msgid "Dock master"
-msgstr "ë\85¸ë\93\9c를 ì\95\84ë\9e\98ë\8f\84"
+msgstr "ë\8f\84í\81¬ ë§\88ì\8a¤í\84°"
 
 #: ../src/libgdl/gdl-dock-object.c:149
 msgid "Dock master this dock object is bound to"
-msgstr ""
+msgstr "이 도크 객체에서 보이는 도크 마스터"
 
 #: ../src/libgdl/gdl-dock-object.c:434
 #, c-format
-msgid ""
-"Call to gdl_dock_object_dock in a dock object %p (object type is %s) which "
-"hasn't implemented this method"
+msgid "Call to gdl_dock_object_dock in a dock object %p (object type is %s) which hasn't implemented this method"
 msgstr ""
 
 #: ../src/libgdl/gdl-dock-object.c:563
 #, c-format
-msgid ""
-"Dock operation requested in a non-bound object %p. The application might "
-"crash"
+msgid "Dock operation requested in a non-bound object %p. The application might crash"
 msgstr ""
 
 #: ../src/libgdl/gdl-dock-object.c:570
@@ -5625,86 +5404,76 @@ msgstr ""
 
 #: ../src/libgdl/gdl-dock-object.c:612
 #, c-format
-msgid ""
-"Attempt to bind to %p an already bound dock object %p (current master: %p)"
+msgid "Attempt to bind to %p an already bound dock object %p (current master: %p)"
 msgstr ""
 
 #: ../src/libgdl/gdl-dock-paned.c:132
-#, fuzzy
 msgid "Position"
-msgstr "위치:"
+msgstr "위치"
 
 #: ../src/libgdl/gdl-dock-paned.c:133
 msgid "Position of the divider in pixels"
-msgstr ""
+msgstr "나눔자 화소 위치"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:143
 msgid "Sticky"
-msgstr ""
+msgstr "스티키"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:144
-msgid ""
-"Whether the placeholder will stick to its host or move up the hierarchy when "
-"the host is redocked"
+msgid "Whether the placeholder will stick to its host or move up the hierarchy when the host is redocked"
 msgstr ""
 
 #: ../src/libgdl/gdl-dock-placeholder.c:151
 msgid "Host"
-msgstr ""
+msgstr "호스트"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:152
 msgid "The dock object this placeholder is attached to"
 msgstr ""
 
 #: ../src/libgdl/gdl-dock-placeholder.c:159
-#, fuzzy
 msgid "Next placement"
-msgstr "새로운 요소 노드"
+msgstr "다음 위치"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:160
-msgid ""
-"The position an item will be docked to our host if a request is made to dock "
-"to us"
-msgstr ""
+msgid "The position an item will be docked to our host if a request is made to dock to us"
+msgstr "항목이 도킹할 위치"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:170
 msgid "Width for the widget when it's attached to the placeholder"
-msgstr ""
+msgstr "위젯의 폭"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:178
 msgid "Height for the widget when it's attached to the placeholder"
-msgstr ""
+msgstr "위젯의 높이"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:184
-#, fuzzy
 msgid "Floating Toplevel"
-msgstr "  위치: "
+msgstr "유동 최상위 레벨"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:185
 msgid "Whether the placeholder is standing in for a floating toplevel dock"
 msgstr ""
 
 #: ../src/libgdl/gdl-dock-placeholder.c:191
-#, fuzzy
 msgid "X-Coordinate"
-msgstr "복사 객체"
+msgstr "X 좌표"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:192
 msgid "X coordinate for dock when floating"
-msgstr ""
+msgstr "유동시 도크의 X 좌표"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:198
-#, fuzzy
 msgid "Y-Coordinate"
-msgstr "복사 객체"
+msgstr "Y 좌표"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:199
 msgid "Y coordinate for dock when floating"
-msgstr ""
+msgstr "유동시 도크의 Y 좌표"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:494
 msgid "Attempt to dock a dock object to an unbound placeholder"
-msgstr ""
+msgstr "도크 객체를 무제한 묶음자를 도크하기 위한 시도"
 
 #: ../src/libgdl/gdl-dock-placeholder.c:618
 #, c-format
@@ -5713,9 +5482,7 @@ msgstr ""
 
 #: ../src/libgdl/gdl-dock-placeholder.c:643
 #, c-format
-msgid ""
-"Something weird happened while getting the child placement for %p from "
-"parent %p"
+msgid "Something weird happened while getting the child placement for %p from parent %p"
 msgstr ""
 
 #: ../src/libgdl/gdl-dock-tablabel.c:129
@@ -5728,104 +5495,89 @@ msgstr ""
 
 #. {constant defined in effect.h, N_("name of your effect"), "name of your effect in SVG"}
 #: ../src/live_effects/effect.cpp:68
-#, fuzzy
 msgid "Bend"
-msgstr "파랑"
+msgstr "구부러짐"
 
 #: ../src/live_effects/effect.cpp:69
-#, fuzzy
 msgid "Pattern Along Path"
-msgstr "ê°\84격ë\9d\84ì\9a°ê¸° ì\9c í\98\95"
+msgstr "ê²½ë¡\9c ë\94°ë¥´ë\8a\94 í\8c¨í\84´"
 
 #. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG
 #: ../src/live_effects/effect.cpp:70
-#, fuzzy
 msgid "Sketch"
-msgstr "ì\84¤ì \95"
+msgstr "ì\8a¤ì¼\80ì¹\98"
 
 #: ../src/live_effects/effect.cpp:71
 msgid "VonKoch"
-msgstr ""
+msgstr "반고호"
 
 #: ../src/live_effects/effect.cpp:72
 msgid "Knot"
-msgstr ""
+msgstr "매듭"
 
 #: ../src/live_effects/effect.cpp:74
 msgid "doEffect stack test"
-msgstr ""
+msgstr "doEffect 스택 테스트"
 
 #: ../src/live_effects/effect.cpp:76
-#, fuzzy
 msgid "Gears"
-msgstr "청소(_C)"
+msgstr "톱니"
 
 #: ../src/live_effects/effect.cpp:77
 msgid "Stitch Sub-Paths"
-msgstr ""
+msgstr "하위 경로 스티치"
 
 #: ../src/live_effects/effect.cpp:78
 msgid "Circle (center+radius)"
-msgstr ""
+msgstr "원(중앙+반경)"
 
 #: ../src/live_effects/effect.cpp:79
-#, fuzzy
 msgid "Perspective path"
-msgstr "ì\84 í\83\9d"
+msgstr "ì\9b\90ê·¼ ê²½ë¡\9c"
 
 #: ../src/live_effects/effect.cpp:80
 msgid "Spiro spline"
-msgstr ""
+msgstr "나선 스프라인"
 
 #: ../src/live_effects/effect.cpp:81
-#, fuzzy
 msgid "Lattice Deformation"
-msgstr "정보"
+msgstr "격자 변형"
 
 #: ../src/live_effects/effect.cpp:82
-#, fuzzy
 msgid "Envelope Deformation"
-msgstr "정보"
+msgstr "봉투 변형"
 
 #: ../src/live_effects/effect.cpp:83
-#, fuzzy
 msgid "Construct grid"
-msgstr "기증자"
+msgstr "컨스트럭트 격자"
 
 #: ../src/live_effects/effect.cpp:84
 msgid "Perpendicular bisector"
-msgstr ""
+msgstr "수직 이등분선"
 
 #: ../src/live_effects/effect.cpp:85
-#, fuzzy
 msgid "Tangent to curve"
-msgstr "수직 띄기"
+msgstr "탄젠트(접선)를 곡선으로"
 
 #: ../src/live_effects/effect.cpp:86
-#, fuzzy
 msgid "Mirror reflection"
-msgstr "<b>PM</b>: 반사"
+msgstr "반영 반사"
 
 #: ../src/live_effects/effect.cpp:178
-#, fuzzy
 msgid "Create and apply path effect"
-msgstr "떨어진(offset) 객체 찾지"
+msgstr "경로 효과 생성 및 적용"
 
 #: ../src/live_effects/effect.cpp:189
-#, fuzzy
 msgid "Is visible?"
-msgstr "색:"
+msgstr "볼 수 있습니까?"
 
 #: ../src/live_effects/effect.cpp:189
-msgid ""
-"If unchecked, the effect remains applied to the object but is temporarily "
-"disabled on canvas"
-msgstr ""
+msgid "If unchecked, the effect remains applied to the object but is temporarily disabled on canvas"
+msgstr "체크가 안될 경우, 효과가 객체에 적용 그러나 일시적으로 캔버스상에서 불가능."
 
 #: ../src/live_effects/effect.cpp:207
-#, fuzzy
 msgid "No effect"
-msgstr "수평 띄기"
+msgstr "효과 없음"
 
 #: ../src/live_effects/effect.cpp:254
 #, c-format
@@ -5837,173 +5589,149 @@ msgid "An exception occurred during execution of the Path Effect."
 msgstr ""
 
 #: ../src/live_effects/effect.cpp:512
-#, fuzzy, c-format
 msgid "Editing parameter <b>%s</b>."
-msgstr "<b>사각형</b>"
+msgstr "인자 편집 중 <b>%s</b>."
 
 #: ../src/live_effects/effect.cpp:517
 msgid "None of the applied path effect's parameters can be edited on-canvas."
 msgstr ""
 
 #: ../src/live_effects/lpe-bendpath.cpp:57
-#, fuzzy
 msgid "Bend path"
-msgstr "곡ì\84 "
+msgstr "ê²½ë¡\9c êµ½í\9e\88기"
 
 #: ../src/live_effects/lpe-bendpath.cpp:57
 msgid "Path along which to bend the original path"
-msgstr ""
+msgstr "원래 경로 굽힌 것을 따르는 경로"
 
 #: ../src/live_effects/lpe-bendpath.cpp:58
-#, fuzzy
 msgid "Width of the path"
-msgstr "점선 유형"
+msgstr "경로 폭"
 
 #: ../src/live_effects/lpe-bendpath.cpp:59
 #: ../src/live_effects/lpe-patternalongpath.cpp:65
 msgid "Width in units of length"
-msgstr ""
+msgstr "길이 단위에서 폭"
 
 #: ../src/live_effects/lpe-bendpath.cpp:59
 msgid "Scale the width of the path in units of its length"
-msgstr ""
+msgstr "길이 단위에서 경로 폭 변경"
 
 #: ../src/live_effects/lpe-bendpath.cpp:60
-#, fuzzy
 msgid "Original path is vertical"
-msgstr "간격띄우기 유형"
+msgstr "원려 경로가 수직"
 
 #: ../src/live_effects/lpe-bendpath.cpp:60
 msgid "Rotates the original 90 degrees, before bending it along the bend path"
-msgstr ""
+msgstr "90도 회전"
 
 #: ../src/live_effects/lpe-constructgrid.cpp:28
-#, fuzzy
 msgid "Size X"
-msgstr "크기"
+msgstr "크기"
 
 #: ../src/live_effects/lpe-constructgrid.cpp:28
 msgid "The size of the grid in X direction."
-msgstr ""
+msgstr "X 방향 격자 크기"
 
 #: ../src/live_effects/lpe-constructgrid.cpp:29
-#, fuzzy
 msgid "Size Y"
-msgstr "크기"
+msgstr "크기"
 
 #: ../src/live_effects/lpe-constructgrid.cpp:29
 msgid "The size of the grid in Y direction."
-msgstr ""
+msgstr "Y 방향 격자 크기"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:42
-#, fuzzy
 msgid "Stitch path"
-msgstr ""
+msgstr "제본철 경로"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:42
 msgid "The path that will be used as stitch."
-msgstr ""
+msgstr "제본철로 사용될 경로"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:43
-#, fuzzy
 msgid "Number of paths"
-msgstr "줄 숫자:"
+msgstr "경로 수"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:43
 msgid "The number of paths that will be generated."
-msgstr ""
+msgstr "생성시킬 경로 갯수"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:44
 msgid "Start edge variance"
-msgstr ""
+msgstr "시작 모서리 변이"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:44
-msgid ""
-"The amount of random jitter to move the start points of the stitches inside "
-"& outside the guide path"
+msgid "The amount of random jitter to move the start points of the stitches inside & outside the guide path"
 msgstr ""
 
 #: ../src/live_effects/lpe-curvestitch.cpp:45
-#, fuzzy
 msgid "Start spacing variance"
-msgstr "ì±\84ë\8f\84"
+msgstr "ì\8b\9cì\9e\91 ê°\84격 ë³\80ì\9d´"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:45
-msgid ""
-"The amount of random shifting to move the start points of the stitches back "
-"& forth along the guide path"
+msgid "The amount of random shifting to move the start points of the stitches back & forth along the guide path"
 msgstr ""
 
 #: ../src/live_effects/lpe-curvestitch.cpp:46
 msgid "End edge variance"
-msgstr ""
+msgstr "끝 모서리 변이"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:46
-msgid ""
-"The amount of randomness that moves the end points of the stitches inside & "
-"outside the guide path"
+msgid "The amount of randomness that moves the end points of the stitches inside & outside the guide path"
 msgstr ""
 
 #: ../src/live_effects/lpe-curvestitch.cpp:47
-#, fuzzy
 msgid "End spacing variance"
-msgstr "채도"
+msgstr "끝 간격 변이"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:47
-msgid ""
-"The amount of random shifting to move the end points of the stitches back & "
-"forth along the guide path"
+msgid "The amount of random shifting to move the end points of the stitches back & forth along the guide path"
 msgstr ""
 
 #: ../src/live_effects/lpe-curvestitch.cpp:48
-#, fuzzy
 msgid "Scale width"
-msgstr "소스"
+msgstr "폭 변경"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:48
-#, fuzzy
 msgid "Scale the width of the stitch path"
-msgstr "ì \90ì\84  ì\9c í\98\95"
+msgstr "ì\8a¤í\8b°ì¹\98 ê²½ë¡\9c í\8f­ì\9d\84 ë³\80ê²½"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:49
 msgid "Scale width relative to length"
-msgstr ""
+msgstr "길이와 관계된 폭 변경"
 
 #: ../src/live_effects/lpe-curvestitch.cpp:49
 msgid "Scale the width of the stitch path relative to its length"
 msgstr ""
 
 #: ../src/live_effects/lpe-envelope.cpp:36
-#, fuzzy
 msgid "Top bend path"
-msgstr "곡선"
+msgstr "최상단 굽힘 경로"
 
 #: ../src/live_effects/lpe-envelope.cpp:36
 msgid "Top path along which to bend the original path"
 msgstr ""
 
 #: ../src/live_effects/lpe-envelope.cpp:37
-#, fuzzy
 msgid "Right bend path"
-msgstr "곡선"
+msgstr "오른쪽 굽힘 경로"
 
 #: ../src/live_effects/lpe-envelope.cpp:37
 msgid "Right path along which to bend the original path"
 msgstr ""
 
 #: ../src/live_effects/lpe-envelope.cpp:38
-#, fuzzy
 msgid "Bottom bend path"
-msgstr "곡선"
+msgstr "최하단 굽힘 경로"
 
 #: ../src/live_effects/lpe-envelope.cpp:38
 msgid "Bottom path along which to bend the original path"
 msgstr ""
 
 #: ../src/live_effects/lpe-envelope.cpp:39
-#, fuzzy
 msgid "Left bend path"
-msgstr "곡선"
+msgstr "왼쪽 굽힘 경로"
 
 #: ../src/live_effects/lpe-envelope.cpp:39
 msgid "Left path along which to bend the original path"
@@ -6011,56 +5739,49 @@ msgstr ""
 
 #: ../src/live_effects/lpe-envelope.cpp:40
 msgid "Enable left & right paths"
-msgstr ""
+msgstr "왼쪽 & 오른쪽 경로 가능"
 
 #: ../src/live_effects/lpe-envelope.cpp:40
 msgid "Enable the left and right deformation paths"
 msgstr ""
 
 #: ../src/live_effects/lpe-envelope.cpp:41
-#, fuzzy
 msgid "Enable top & bottom paths"
-msgstr "노드 올리기"
+msgstr "최상단 & 최하단 경로 가능"
 
 #: ../src/live_effects/lpe-envelope.cpp:41
 msgid "Enable the top and bottom deformation paths"
 msgstr ""
 
 #: ../src/live_effects/lpe-gears.cpp:212
-#, fuzzy
 msgid "Teeth"
-msgstr "í\85\8dì\8a¤í\8a¸"
+msgstr "í\86±ë\8b\88"
 
 #: ../src/live_effects/lpe-gears.cpp:212
-#, fuzzy
 msgid "The number of teeth"
-msgstr "단계 숫자"
+msgstr "톱니 수"
 
 #: ../src/live_effects/lpe-gears.cpp:213
 msgid "Phi"
-msgstr ""
+msgstr "파이"
 
 #: ../src/live_effects/lpe-gears.cpp:213
-msgid ""
-"Tooth pressure angle (typically 20-25 deg).  The ratio of teeth not in "
-"contact."
-msgstr ""
+msgid "Tooth pressure angle (typically 20-25 deg).  The ratio of teeth not in contact."
+msgstr "톱니 압력 각도 (전형적으로 20-25도)"
 
 #. initialise your parameters here:
 #: ../src/live_effects/lpe-knot.cpp:27
-#, fuzzy
 msgid "Gap width"
-msgstr "폭을 같게"
+msgstr "간격 폭"
 
 #: ../src/live_effects/lpe-knot.cpp:27
 msgid "The width of the gap in the path where it self-intersects"
-msgstr ""
+msgstr "나누는 경로의 간격 폭"
 
 #. initialise your parameters here:
 #: ../src/live_effects/lpe-lattice.cpp:45
-#, fuzzy
 msgid "Control handle 0"
-msgstr "임의의 노드 관리"
+msgstr "핸들0 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:45
 #: ../src/live_effects/lpe-lattice.cpp:46
@@ -6079,570 +5800,501 @@ msgstr "임의의 노드 관리"
 #: ../src/live_effects/lpe-lattice.cpp:59
 #: ../src/live_effects/lpe-lattice.cpp:60
 msgid "Tadah"
-msgstr ""
+msgstr "Tadah"
 
 #: ../src/live_effects/lpe-lattice.cpp:46
-#, fuzzy
 msgid "Control handle 1"
-msgstr "임의의 노드 관리"
+msgstr "핸들1 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:47
-#, fuzzy
 msgid "Control handle 2"
-msgstr "임의의 노드 관리"
+msgstr "핸들2 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:48
-#, fuzzy
 msgid "Control handle 3"
-msgstr "임의의 노드 관리"
+msgstr "핸들3 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:49
-#, fuzzy
 msgid "Control handle 4"
-msgstr "임의의 노드 관리"
+msgstr "핸들4 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:50
-#, fuzzy
 msgid "Control handle 5"
-msgstr "임의의 노드 관리"
+msgstr "핸들5 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:51
-#, fuzzy
 msgid "Control handle 6"
-msgstr "임의의 노드 관리"
+msgstr "핸들6 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:52
-#, fuzzy
 msgid "Control handle 7"
-msgstr "임의의 노드 관리"
+msgstr "핸들7 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:53
-#, fuzzy
 msgid "Control handle 8"
-msgstr "임의의 노드 관리"
+msgstr "핸들8 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:54
-#, fuzzy
 msgid "Control handle 9"
-msgstr "임의의 노드 관리"
+msgstr "핸들9 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:55
-#, fuzzy
 msgid "Control handle 10"
-msgstr "임의의 노드 관리"
+msgstr "핸들10 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:56
-#, fuzzy
 msgid "Control handle 11"
-msgstr "임의의 노드 관리"
+msgstr "핸들11 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:57
-#, fuzzy
 msgid "Control handle 12"
-msgstr "임의의 노드 관리"
+msgstr "핸들12 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:58
-#, fuzzy
 msgid "Control handle 13"
-msgstr "임의의 노드 관리"
+msgstr "핸들13 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:59
-#, fuzzy
 msgid "Control handle 14"
-msgstr "임의의 노드 관리"
+msgstr "핸들14 제어"
 
 #: ../src/live_effects/lpe-lattice.cpp:60
-#, fuzzy
 msgid "Control handle 15"
-msgstr "임의의 노드 관리"
+msgstr "핸들15 제어"
 
 #: ../src/live_effects/lpe-mirror_reflect.cpp:30
-#, fuzzy
 msgid "Reflection line"
-msgstr "선택"
+msgstr "반사 선"
 
 #: ../src/live_effects/lpe-mirror_reflect.cpp:30
 msgid "Line which serves as 'mirror' for the reflection"
-msgstr ""
+msgstr "반사 거울로서 사용되는 선"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:53
 #: ../share/extensions/pathalongpath.inx.h:11
-#, fuzzy
 msgid "Single"
-msgstr "각도"
+msgstr "단일"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:54
 #: ../share/extensions/pathalongpath.inx.h:12
 msgid "Single, stretched"
-msgstr ""
+msgstr "단일,확장"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:55
 #: ../share/extensions/pathalongpath.inx.h:8
-#, fuzzy
 msgid "Repeated"
-msgstr "반복:"
+msgstr "반복"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:56
 #: ../share/extensions/pathalongpath.inx.h:9
 msgid "Repeated, stretched"
-msgstr ""
+msgstr "반복,확장"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:62
-#, fuzzy
 msgid "Pattern source"
-msgstr "반복무늬"
+msgstr "패턴 소스"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:62
 msgid "Path to put along the skeleton path"
-msgstr ""
+msgstr "윤곽 경로에 따라 놓기 위한 경로"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:63
-#, fuzzy
 msgid "Pattern copies"
-msgstr "ë°\98복무ë\8a¬"
+msgstr "í\8c¨í\84´ ë³µì\82¬"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:63
 msgid "How many pattern copies to place along the skeleton path"
-msgstr ""
+msgstr "윤곽 경로에 따라 놓기 위한 얼마나 많은 패턴을 복사하는가"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:64
-#, fuzzy
 msgid "Width of the pattern"
-msgstr "점선 유형"
+msgstr "패턴 폭"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:65
 msgid "Scale the width of the pattern in units of its length"
-msgstr ""
+msgstr "길이 단위에서 패턴 폭 변경"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:66
-#, fuzzy
 msgid "Spacing"
-msgstr "간격:"
+msgstr "간격"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:66
 #, c-format
-msgid ""
-"Space between copies of the pattern. Negative values allowed, but are "
-"limited to -90% of pattern width."
+msgid "Space between copies of the pattern. Negative values allowed, but are limited to -90% of pattern width."
 msgstr ""
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:67
 #: ../share/extensions/pathalongpath.inx.h:5
 #: ../share/extensions/pathscatter.inx.h:7
-#, fuzzy
 msgid "Normal offset"
-msgstr "ì\88\98í\8f\89 ë\9d\84기"
+msgstr "ì\9d¼ë°\98 ì\98µì\85\8b"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:68
 #: ../share/extensions/pathalongpath.inx.h:15
 #: ../share/extensions/pathscatter.inx.h:13
-#, fuzzy
 msgid "Tangential offset"
-msgstr "ì\88\98ì§\81 ë\9d\84기"
+msgstr "ì \91ì\84  ì\98µì\85\8b"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:69
-#, fuzzy
 msgid "Offsets in unit of pattern size"
-msgstr "점선 유형"
+msgstr "패턴 크기 단위에서 옵셋"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:69
-msgid ""
-"Spacing, tangential and normal offset are expressed as a ratio of width/"
-"height"
-msgstr ""
+msgid "Spacing, tangential and normal offset are expressed as a ratio of width/height"
+msgstr "간격, 접선과 일반 옵셋은 폭/높이 비로 표시"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:70
 #: ../share/extensions/pathalongpath.inx.h:7
 #: ../share/extensions/pathscatter.inx.h:9
-#, fuzzy
 msgid "Pattern is vertical"
-msgstr "간격띄우기 유형"
+msgstr "패턴이 수직임"
 
 #: ../src/live_effects/lpe-patternalongpath.cpp:70
 msgid "Rotate pattern 90 deg before applying"
-msgstr ""
+msgstr "적용 전 패턴 90도 회전"
 
 #: ../src/live_effects/lpe-perp_bisector.cpp:156
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:65
 msgid "Length left"
-msgstr ""
+msgstr "길이 왼쪽"
 
 #: ../src/live_effects/lpe-perp_bisector.cpp:156
 msgid "Specifies the left end of the bisector"
-msgstr ""
+msgstr "이등분선 왼쪽 끝 지정"
 
 #: ../src/live_effects/lpe-perp_bisector.cpp:157
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:66
-#, fuzzy
 msgid "Length right"
-msgstr "ì\9cë ¥ ëª©ì \81ì§\80"
+msgstr "ì\98¤ë¥¸ìª½ ê¸¸ì\9d´"
 
 #: ../src/live_effects/lpe-perp_bisector.cpp:157
-#, fuzzy
 msgid "Specifies the right end of the bisector"
-msgstr "ì\83\89ì\9d\98 ë°\9d기를 ì\84 í\83\9dí\95\98ì\84¸ì\9a\94"
+msgstr "ì\9d´ë\93±ë¶\84ì\84 ì\9d\98 ì\98¤ë¥¸ìª½ ë\81\9d ì§\80ì \95"
 
 #: ../src/live_effects/lpe-perp_bisector.cpp:164
-#, fuzzy
 msgid "Lala"
-msgstr "_Label"
+msgstr "Lala"
 
 #: ../src/live_effects/lpe-perp_bisector.cpp:165
-#, fuzzy
 msgid "Lolo"
-msgstr ""
+msgstr "Lolo"
 
 #. initialise your parameters here:
 #: ../src/live_effects/lpe-perspective_path.cpp:42
-#, fuzzy
 msgid "Scale x"
-msgstr "확대/축소(_S)"
+msgstr "비율 X"
 
 #: ../src/live_effects/lpe-perspective_path.cpp:42
 msgid "Scale factor in x direction"
-msgstr ""
+msgstr "X 방향 비율 요소"
 
 #: ../src/live_effects/lpe-perspective_path.cpp:43
-#, fuzzy
 msgid "Scale y"
-msgstr "확대/축소(_S)"
+msgstr "비율 Y"
 
 #: ../src/live_effects/lpe-perspective_path.cpp:43
 msgid "Scale factor in y direction"
-msgstr ""
+msgstr "Y 방향 비율 요소"
 
 #: ../src/live_effects/lpe-perspective_path.cpp:44
-#, fuzzy
 msgid "Offset x"
-msgstr "옵셋"
+msgstr "옵셋 X"
 
 #: ../src/live_effects/lpe-perspective_path.cpp:44
 msgid "Offset in x direction"
-msgstr ""
+msgstr "X 방향 옵셋"
 
 #: ../src/live_effects/lpe-perspective_path.cpp:45
-#, fuzzy
 msgid "Offset y"
-msgstr "옵셋"
+msgstr "옵셋 Y"
 
 #: ../src/live_effects/lpe-perspective_path.cpp:45
 msgid "Offset in y direction"
-msgstr ""
+msgstr "Y 방향 옵셋"
 
 #: ../src/live_effects/lpe-perspective_path.cpp:46
 msgid "Uses XY plane?"
-msgstr ""
+msgstr "XY 평면을 사용합니까?"
 
 #: ../src/live_effects/lpe-perspective_path.cpp:46
-msgid ""
-"If true, put the path on the left side of an imaginary box, otherwise on the "
-"right side"
-msgstr ""
+msgid "If true, put the path on the left side of an imaginary box, otherwise on the right side"
+msgstr "참일 경우 가상 상자의 왼쪽 면에 경로를 위치, 그렇지 않으면 오른쪽 면에 위치"
 
 #. initialise your parameters here:
 #: ../src/live_effects/lpe-skeleton.cpp:33
-#, fuzzy
 msgid "Float parameter"
-msgstr "<b>사각형</b>"
+msgstr "유동 인자"
 
 #: ../src/live_effects/lpe-skeleton.cpp:33
 msgid "just a real number like 1.4!"
-msgstr ""
+msgstr "1.4와 같이 실수만!"
 
 #. initialise your parameters here:
 #. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)),
 #: ../src/live_effects/lpe-sketch.cpp:35
-#, fuzzy
 msgid "Strokes"
-msgstr "ì\83\81í\83\9c:"
+msgstr "ì\9c¤ê³½ì\84 "
 
 #: ../src/live_effects/lpe-sketch.cpp:35
 msgid "Draw that many approximating strokes"
-msgstr ""
+msgstr "다수 윤곽선 그리기"
 
 #: ../src/live_effects/lpe-sketch.cpp:36
-#, fuzzy
 msgid "Max stroke length"
-msgstr "글자를 곡선으로 변환"
+msgstr "최대 윤곽선 길이"
 
 #: ../src/live_effects/lpe-sketch.cpp:37
 msgid "Maximum length of approximating strokes"
-msgstr ""
+msgstr "윤곽선의 최대 길이"
 
 #: ../src/live_effects/lpe-sketch.cpp:38
 msgid "Stroke length variation"
-msgstr ""
+msgstr "윤곽선 길이 변화"
 
 #: ../src/live_effects/lpe-sketch.cpp:39
 msgid "Random variation of stroke length (relative to maximum length)"
-msgstr ""
+msgstr "윤곽선 길이 임의 변화(최대 길이에 상대적임)"
 
 #: ../src/live_effects/lpe-sketch.cpp:40
 msgid "Max. overlap"
-msgstr ""
+msgstr "최대 중첩"
 
 #: ../src/live_effects/lpe-sketch.cpp:41
-msgid ""
-"How much successive strokes should overlap (relative to maximum length)."
-msgstr ""
+msgid "How much successive strokes should overlap (relative to maximum length)."
+msgstr "얼마나 많은 연속 윤곽선이 중첩될 수 있는가 (최대길이에 대하여 상대적)."
 
 #: ../src/live_effects/lpe-sketch.cpp:42
 msgid "Overlap variation"
-msgstr ""
+msgstr "중첩 변화"
 
 #: ../src/live_effects/lpe-sketch.cpp:43
 msgid "Random variation of overlap (relative to maximum overlap)"
-msgstr ""
+msgstr "무작의 중첩 변화 (최대 중첩에 대하여 상대적)"
 
 #: ../src/live_effects/lpe-sketch.cpp:44
 msgid "Max. end tolerance"
-msgstr ""
+msgstr "최대 끝 허용치"
 
 #: ../src/live_effects/lpe-sketch.cpp:45
-msgid ""
-"Maximum distance between ends of original and approximating paths (relative "
-"to maximum length)"
-msgstr ""
+msgid "Maximum distance between ends of original and approximating paths (relative to maximum length)"
+msgstr "원본과 근사 경로의 끝점 사이 최대 거리"
 
 #: ../src/live_effects/lpe-sketch.cpp:46
-#, fuzzy
 msgid "Parallel offset"
-msgstr "수평 띄기"
+msgstr "평행 옵셋"
 
 #: ../src/live_effects/lpe-sketch.cpp:47
 msgid "Average distance from approximating path to original path"
-msgstr ""
+msgstr "근사 경로에서 원 경로 까지 평균 거리"
 
 #: ../src/live_effects/lpe-sketch.cpp:48
 msgid "Max. tremble"
-msgstr ""
+msgstr "최대 진동"
 
 #: ../src/live_effects/lpe-sketch.cpp:49
 msgid "Maximum tremble magnitude"
-msgstr ""
+msgstr "최대 진동 크기"
 
 #: ../src/live_effects/lpe-sketch.cpp:50
 msgid "Tremble frequency"
-msgstr ""
+msgstr "진동 주파수"
 
 #: ../src/live_effects/lpe-sketch.cpp:51
 msgid "Avreage number of tremble periods in an approximating stroke"
-msgstr ""
+msgstr "근사 윤곽선에서 진동 주기 평균 수치"
 
 #: ../src/live_effects/lpe-sketch.cpp:52
-#, fuzzy
 msgid "Construction lines"
-msgstr "ì¤\91ì\8b¬선"
+msgstr "ì\9e\91ë\8f\84 선"
 
 #: ../src/live_effects/lpe-sketch.cpp:53
 msgid "How many construction lines (tangents) to draw"
-msgstr ""
+msgstr "얼마나 많은 작도 선을 그릴 것인가"
 
-#: ../src/live_effects/lpe-sketch.cpp:54 ../src/selection-chemistry.cpp:1450
-#: ../src/seltrans.cpp:454 ../src/ui/dialog/filter-effects-dialog.cpp:2235
+#: ../src/live_effects/lpe-sketch.cpp:54
+#: ../src/selection-chemistry.cpp:1450
+#: ../src/seltrans.cpp:454
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2235
 #: ../src/ui/dialog/transformation.cpp:736
-#, fuzzy
 msgid "Scale"
-msgstr "확대/축소(_S)"
+msgstr "비율"
 
 #: ../src/live_effects/lpe-sketch.cpp:55
-msgid ""
-"Scale factor relating curvature and length of construction lines (try "
-"5*offset)"
-msgstr ""
+msgid "Scale factor relating curvature and length of construction lines (try 5*offset)"
+msgstr "만곡과 작도 선 길이와 관계된 비율 요소 (5*옵셋 시도)"
 
 #: ../src/live_effects/lpe-sketch.cpp:56
 msgid "Max. length"
-msgstr ""
+msgstr "최대 길이"
 
 #: ../src/live_effects/lpe-sketch.cpp:56
 msgid "Maximum length of construction lines"
-msgstr ""
+msgstr "선의 최대 길이"
 
 #: ../src/live_effects/lpe-sketch.cpp:57
-#, fuzzy
 msgid "Length variation"
-msgstr "채도"
+msgstr "길이 변화량"
 
 #: ../src/live_effects/lpe-sketch.cpp:57
 msgid "Random variation of the length of construction lines"
-msgstr ""
+msgstr "작도 선 길이의 무작위 변화"
 
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:63
-#: ../share/extensions/motion.inx.h:1 ../share/extensions/restack.inx.h:1
+#: ../share/extensions/motion.inx.h:1
+#: ../share/extensions/restack.inx.h:1
 msgid "Angle"
 msgstr "각도"
 
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:63
 msgid "Additional angle between tangent and curve"
-msgstr ""
+msgstr "접선과 곡선 사이 부가 각도"
 
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:64
 msgid "Location along curve"
-msgstr ""
+msgstr "곡선 따르는 위치"
 
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:64
-msgid ""
-"Location of the point of attachment along the curve (between 0.0 and number-"
-"of-segments)"
-msgstr ""
+msgid "Location of the point of attachment along the curve (between 0.0 and number-of-segments)"
+msgstr "곡선따라 붙이는 점의 위치 (0.0 과 세그먼트 수 사이)"
 
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:65
 msgid "Specifies the left end of the tangent"
-msgstr ""
+msgstr "접선의 왼쪽 끝 지정"
 
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:66
 msgid "Specifies the right end of the tangent"
-msgstr ""
+msgstr "접선의 오른쪽 끝 지정"
 
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:73
 msgid "Adjust the \"left\" end of the tangent"
-msgstr ""
+msgstr "접선의 왼쪽 끝 정렬"
 
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:74
 msgid "Adjust the \"right\" end of the tangent"
-msgstr ""
+msgstr "접선의 오른쪽 끝 정렬"
 
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:75
 msgid "Adjust the point of attachment of the tangent"
-msgstr ""
+msgstr "접선 붙임점 정렬"
 
 #: ../src/live_effects/lpe-test-doEffect-stack.cpp:23
-#, fuzzy
 msgid "Stack step"
-msgstr "ì\83\81í\83\9c:"
+msgstr "ì\8a¤í\83\9d ë\8b¨ê³\84"
 
 #: ../src/live_effects/lpe-test-doEffect-stack.cpp:24
-#, fuzzy
 msgid "point param"
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì \90 ì\9d¸ì\9e\90"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:42
 msgid "Bounding box"
-msgstr ""
+msgstr "경계 상자"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:43
-#, fuzzy
 msgid "Last gen. segment"
-msgstr "선택부분 지우기"
+msgstr "마지막 생성 세그먼트"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:49
 msgid "Nb of generations"
-msgstr ""
+msgstr "생성 Nb"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:49
 msgid "Depth of the recursion --- keep low!!"
-msgstr ""
+msgstr "재귀순환 깊이 -- 낮게 유지!!"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:50
-#, fuzzy
 msgid "Generating path"
-msgstr "곡ì\84 ì\9c¼ë¡\9c ë¶\80í\84° ë§\8cë\93¤ì\96´ë\83\84"
+msgstr "ê²½ë¡\9c ì\83\9dì\84±"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:50
 msgid "Path whos segments define the fractal"
-msgstr ""
+msgstr "세그먼트를 프랙탈로 정의한 경로"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:51
 msgid "Draw all generations"
-msgstr ""
+msgstr "전체 생성 그리기"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:51
 msgid "If unchecked, draw only the last generation"
-msgstr ""
+msgstr "미체크시, 마지막 생성만 그리기"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:52
-#, fuzzy
 msgid "Reference"
-msgstr "다름"
+msgstr "참조"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:52
-msgid ""
-"Generating path segments define transforms in reference to bbox or last "
-"segment"
-msgstr ""
+msgid "Generating path segments define transforms in reference to bbox or last segment"
+msgstr "경로 세그먼트 생성은 참조에서 bbox 또는 마지막 세그먼트 변형을 정의"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:53
 msgid "Max complexity"
-msgstr ""
+msgstr "최대 복잡도"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:53
 msgid "Disable effect if the output is too complex"
-msgstr ""
+msgstr "출력이 너무 복잡하다면 효과 불가능"
 
 #: ../src/live_effects/parameter/bool.cpp:69
-#, fuzzy
 msgid "Change bool parameter"
-msgstr "주 투명도"
+msgstr "부울 인자 변경"
 
 #: ../src/live_effects/parameter/enum.h:51
-#, fuzzy
 msgid "Change enumeration parameter"
-msgstr "ì\9d´ë\8f\99ì¹\98 ì \80ì\9e¥"
+msgstr "ì\97´ê±° ì\9d¸ì\9e\90 ë³\80ê²½"
 
 #: ../src/live_effects/parameter/parameter.cpp:138
-#, fuzzy
 msgid "Change scalar parameter"
-msgstr "주 í\88¬ëª\85ë\8f\84"
+msgstr "ì\8a¤ì¹¼ë\9d¼ ì\9d¸ì\9e\90 ë³\80ê²½"
 
 #: ../src/live_effects/parameter/path.cpp:157
 #: ../src/live_effects/parameter/point.cpp:110
 msgid "Edit on-canvas"
-msgstr ""
+msgstr "캔버스상 편집"
 
 #: ../src/live_effects/parameter/path.cpp:167
-#, fuzzy
 msgid "Copy path"
-msgstr "곡ì\84 "
+msgstr "ê²½ë¡\9c ë³µì\82¬"
 
 #: ../src/live_effects/parameter/path.cpp:177
-#, fuzzy
 msgid "Paste path"
-msgstr "곡ì\84  ê°\84격 ë\9d\84ì\9a°기"
+msgstr "ê²½ë¡\9c ë¶\99ì\97¬ë\84£기"
 
 #: ../src/live_effects/parameter/path.cpp:187
-#, fuzzy
 msgid "Link to path"
-msgstr "노드 올리기"
+msgstr "경로에 링크"
 
 #: ../src/live_effects/parameter/path.cpp:363
-#, fuzzy
 msgid "Paste path parameter"
-msgstr "불이기 종류(_S)"
+msgstr "경로 인자 붙여넣기"
 
 #: ../src/live_effects/parameter/path.cpp:395
-#, fuzzy
 msgid "Link path parameter to path"
-msgstr "불이기 종류(_S)"
+msgstr "경로 인자를 경로에 링크"
 
 #: ../src/live_effects/parameter/point.cpp:95
-#, fuzzy
 msgid "Change point parameter"
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì \90 ì\9d¸ì\9e\90 ë³\80ê²½"
 
 #: ../src/live_effects/parameter/pointparam-knotholder.cpp:134
-#, fuzzy
 msgid "Change LPE point parameter"
-msgstr "중심선"
+msgstr "LPE 점 인자 변경"
 
 #: ../src/live_effects/parameter/random.cpp:137
-#, fuzzy
 msgid "Change random parameter"
-msgstr "ì\9d´ë\8f\99ì¹\98 ì \80ì\9e¥"
+msgstr "ì\9e\84ì\9d\98 ì\9d¸ì\9e\90 ë³\80ê²½"
 
 #: ../src/main-cmdlineact.cpp:49
 #, c-format
 msgid "Unable to find verb ID '%s' specified on the command line.\n"
-msgstr ""
+msgstr "명령어 줄에서 지정한 '%s' ID 찾을 수 없음.\n"
 
 #: ../src/main-cmdlineact.cpp:61
 #, c-format
 msgid "Unable to find node ID: '%s'\n"
-msgstr ""
+msgstr "노드 ID 찾을 수 없음: '%s'\n"
 
 #: ../src/main.cpp:218
 msgid "Print the Inkscape version number"
-msgstr "잉크스케이프 버전 숫자를 출력"
+msgstr "Inkscape 버전 숫자를 출력"
 
 #: ../src/main.cpp:223
 msgid "Do not use X server (only process files from console)"
@@ -6650,207 +6302,199 @@ msgstr "X 서버를 이용하지 않음(콘솔에서 파일 작업만 진행)"
 
 #: ../src/main.cpp:228
 msgid "Try to use X server (even if $DISPLAY is not set)"
-msgstr "X 서버 사용($DISPLAY 가 지정 되있지 않더라도)"
+msgstr "X 서버 사용하기 위하여 시도($DISPLAY 가 지정 되있지 않더라도)"
 
 #: ../src/main.cpp:233
 msgid "Open specified document(s) (option string may be excluded)"
-msgstr "정의된 문서를 열음 (아마도 옵션 은 포함되지 않음)"
-
-#: ../src/main.cpp:234 ../src/main.cpp:239 ../src/main.cpp:244
-#: ../src/main.cpp:311 ../src/main.cpp:316 ../src/main.cpp:321
-#: ../src/main.cpp:326 ../src/main.cpp:332
+msgstr "지정된 문서를 열음 (아마도 설정 문자열은 제외)"
+
+#: ../src/main.cpp:234
+#: ../src/main.cpp:239
+#: ../src/main.cpp:244
+#: ../src/main.cpp:311
+#: ../src/main.cpp:316
+#: ../src/main.cpp:321
+#: ../src/main.cpp:326
+#: ../src/main.cpp:332
 msgid "FILENAME"
-msgstr "파일이름"
+msgstr "파일"
 
 #: ../src/main.cpp:238
 msgid "Print document(s) to specified output file (use '| program' for pipe)"
-msgstr ""
+msgstr "문서를 지정 출력 파일로 출력( 파이프로 '| program' 사용)"
 
 #: ../src/main.cpp:243
 msgid "Export document to a PNG file"
-msgstr "문서를 PNG 파일로 내보네기"
+msgstr "문서를 PNG로 내보내기"
 
 #: ../src/main.cpp:248
 msgid "The resolution used for exporting SVG into bitmap (default 90)"
-msgstr ""
+msgstr "SVG를 비트맵으로 내보내는 해상도(기본값은 90)"
 
-#: ../src/main.cpp:249 ../src/ui/widget/rendering-options.cpp:43
+#: ../src/main.cpp:249
+#: ../src/ui/widget/rendering-options.cpp:43
 msgid "DPI"
-msgstr ""
+msgstr "DPI"
 
 #: ../src/main.cpp:253
-msgid ""
-"Exported area in SVG user units (default is the canvas; 0,0 is lower-left "
-"corner)"
-msgstr ""
+msgid "Exported area in SVG user units (default is the canvas; 0,0 is lower-left corner)"
+msgstr "SVG 사용자 단위에서 내보내기 구간(기본은 캔버스; 0.0은 왼쪽 하단 모서리임)"
 
 #: ../src/main.cpp:254
 msgid "x0:y0:x1:y1"
-msgstr ""
+msgstr "x0:y0:x1:y1"
 
 #: ../src/main.cpp:258
 msgid "Exported area is the entire drawing (not canvas)"
-msgstr ""
+msgstr "내보내기 구간이 전체 그림(캔버스가 아님)"
 
 #: ../src/main.cpp:263
 msgid "Exported area is the entire canvas"
-msgstr ""
+msgstr "내보내기 구가이 전체 캔버스"
 
 #: ../src/main.cpp:268
-msgid ""
-"Snap the bitmap export area outwards to the nearest integer values (in SVG "
-"user units)"
+msgid "Snap the bitmap export area outwards to the nearest integer values (in SVG user units)"
 msgstr ""
 
 #: ../src/main.cpp:273
 msgid "The width of exported bitmap in pixels (overrides export-dpi)"
-msgstr ""
+msgstr "내보낼 비트맵 폭(화소)"
 
 #: ../src/main.cpp:274
 msgid "WIDTH"
-msgstr ""
+msgstr ""
 
 #: ../src/main.cpp:278
 msgid "The height of exported bitmap in pixels (overrides export-dpi)"
-msgstr ""
+msgstr "내보낼 비트맵 높이(화소)"
 
 #: ../src/main.cpp:279
 msgid "HEIGHT"
-msgstr ""
+msgstr "높이"
 
 #: ../src/main.cpp:283
 msgid "The ID of the object to export"
-msgstr ""
+msgstr "내보낼 객체 ID"
 
-#: ../src/main.cpp:284 ../src/main.cpp:382
+#: ../src/main.cpp:284
+#: ../src/main.cpp:382
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #. TRANSLATORS: this means: "Only export the object whose id is given in --export-id".
 #. See "man inkscape" for details.
 #: ../src/main.cpp:290
-msgid ""
-"Export just the object with export-id, hide all others (only with export-id)"
-msgstr ""
+msgid "Export just the object with export-id, hide all others (only with export-id)"
+msgstr "내보내기-ID를 가진 객체만 내보내기, 전체 다른 객체는 숨기기"
 
 #: ../src/main.cpp:295
 msgid "Use stored filename and DPI hints when exporting (only with export-id)"
-msgstr ""
+msgstr "내보낼 때 저장된 파일명과 DPI 힌트를 사용(내보내기-ID있을 때만)"
 
 #: ../src/main.cpp:300
 msgid "Background color of exported bitmap (any SVG-supported color string)"
-msgstr ""
+msgstr "내보내기 비트맵의 배경 색상(임의 SVG지원 색상 문자열)"
 
 #: ../src/main.cpp:301
 msgid "COLOR"
-msgstr ""
+msgstr "색상"
 
 #: ../src/main.cpp:305
 msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)"
-msgstr ""
+msgstr "내보내기 비트맵의 배경 불투명도(0.0에서 1.0 또는 1에서 255"
 
 #: ../src/main.cpp:306
 msgid "VALUE"
-msgstr ""
+msgstr ""
 
 #: ../src/main.cpp:310
 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)"
-msgstr ""
+msgstr "문서를 단순 SVG 파일로 내보내기 (sodipodi나 Inkscape 네임스페이스 없음)"
 
 #: ../src/main.cpp:315
 msgid "Export document to a PS file"
-msgstr ""
+msgstr "문서를 PS 파일로 내보내기"
 
 #: ../src/main.cpp:320
 msgid "Export document to an EPS file"
-msgstr ""
+msgstr "문서를 EPS 파일로 내보내기"
 
 #: ../src/main.cpp:325
-#, fuzzy
 msgid "Export document to a PDF file"
-msgstr "문서를 PNG 파일로 내보네기"
+msgstr "문서를 PDF 파일로 내보내기"
 
 #: ../src/main.cpp:331
-#, fuzzy
 msgid "Export document to an Enhanced Metafile (EMF) File"
-msgstr "문서를 PNG 파일로 내보네기"
+msgstr "문서를 EMF 파일로 내보내기"
 
 #: ../src/main.cpp:337
 msgid "Convert text object to paths on export (EPS)"
-msgstr ""
+msgstr "문자열 객체를 내보낼 경로로 변환 (EPS)"
 
 #: ../src/main.cpp:342
 msgid "Embed fonts on export (Type 1 only) (EPS)"
-msgstr ""
+msgstr "내보낼 내장 글꼴 (TYPE 1만) (EPS)"
 
 #: ../src/main.cpp:347
 msgid "Export files with the bounding box set to the page size (EPS)"
-msgstr ""
+msgstr "경계 상자 설정을 가진 파일을 페이지 크기로 내보내기 (EPS)"
 
 #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
 #: ../src/main.cpp:353
-msgid ""
-"Query the X coordinate of the drawing or, if specified, of the object with --"
-"query-id"
-msgstr ""
+msgid "Query the X coordinate of the drawing or, if specified, of the object with --query-id"
+msgstr "그림의 X 좌표 질의"
 
 #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
 #: ../src/main.cpp:359
-msgid ""
-"Query the Y coordinate of the drawing or, if specified, of the object with --"
-"query-id"
-msgstr ""
+msgid "Query the Y coordinate of the drawing or, if specified, of the object with --query-id"
+msgstr "그림의 Y 좌표 질의"
 
 #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
 #: ../src/main.cpp:365
-msgid ""
-"Query the width of the drawing or, if specified, of the object with --query-"
-"id"
-msgstr ""
+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:371
-msgid ""
-"Query the height of the drawing or, if specified, of the object with --query-"
-"id"
-msgstr ""
+msgid "Query the height of the drawing or, if specified, of the object with --query-id"
+msgstr "그림의 높이 질의"
 
 #: ../src/main.cpp:376
 msgid "List id,x,y,w,h for all objects"
-msgstr ""
+msgstr "전체 객체의 ID, X, Y, W, H 나열"
 
 #: ../src/main.cpp:381
 msgid "The ID of the object whose dimensions are queried"
-msgstr ""
+msgstr "크기를 질의한 객체의 ID"
 
 #. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory
 #: ../src/main.cpp:387
 msgid "Print out the extension directory and exit"
-msgstr ""
+msgstr "확장 폴더로 출력 후 종료"
 
 #: ../src/main.cpp:392
 msgid "Remove unused definitions from the defs section(s) of the document"
-msgstr ""
+msgstr "문서의 정의 부분에서 미사용 정의를 제거"
 
 #: ../src/main.cpp:397
 msgid "List the IDs of all the verbs in Inkscape"
-msgstr ""
+msgstr "Inkscape에서 전체 동사의 ID 나열"
 
 #: ../src/main.cpp:402
 msgid "Verb to call when Inkscape opens."
-msgstr ""
+msgstr "Inkscape 열 때 호출할 동사"
 
 #: ../src/main.cpp:403
 msgid "VERB-ID"
-msgstr ""
+msgstr "동사-ID"
 
 #: ../src/main.cpp:407
 msgid "Object ID to select when Inkscape opens."
-msgstr ""
+msgstr "Inkscape 열 때 선택할 객체 ID"
 
 #: ../src/main.cpp:408
 msgid "OBJECT-ID"
-msgstr ""
+msgstr "객체-ID"
 
 #: ../src/main.cpp:687
 msgid ""
@@ -6858,584 +6502,524 @@ msgid ""
 "\n"
 "Available options:"
 msgstr ""
+"[설정...] [파일...]\n"
+"\n"
+"사용 가능한 설정:"
 
 #: ../src/menus-skeleton.h:17
 msgid "_New"
-msgstr ""
+msgstr "새 파일(_N)"
 
 #: ../src/menus-skeleton.h:22
 msgid "Open _Recent"
-msgstr ""
+msgstr "최근 작업파일 열기(_R)"
 
-#: ../src/menus-skeleton.h:50 ../src/verbs.cpp:2403 ../src/verbs.cpp:2409
+#: ../src/menus-skeleton.h:50
+#: ../src/verbs.cpp:2403
+#: ../src/verbs.cpp:2409
 msgid "_Edit"
-msgstr ""
+msgstr "편집(_E)"
 
-#: ../src/menus-skeleton.h:60 ../src/verbs.cpp:2205
+#: ../src/menus-skeleton.h:60
+#: ../src/verbs.cpp:2205
 msgid "Paste Si_ze"
-msgstr ""
+msgstr "크기로 붙여넣기(_Z)"
 
 #: ../src/menus-skeleton.h:72
 msgid "Clo_ne"
-msgstr ""
+msgstr "복제 객체(_N)"
 
 #: ../src/menus-skeleton.h:91
 msgid "_View"
-msgstr ""
+msgstr "보기(_V)"
 
 #: ../src/menus-skeleton.h:92
 msgid "_Zoom"
-msgstr ""
+msgstr "비율(_Z)"
 
 #: ../src/menus-skeleton.h:108
 msgid "_Display mode"
-msgstr ""
+msgstr "보이기 모드(_D)"
 
 #: ../src/menus-skeleton.h:120
 msgid "Show/Hide"
-msgstr ""
+msgstr "보이기/숨기기"
 
 #: ../src/menus-skeleton.h:137
 msgid "_Layer"
-msgstr ""
+msgstr "레이어(_L)"
 
 #: ../src/menus-skeleton.h:156
 msgid "_Object"
-msgstr ""
+msgstr "객체(_O)"
 
 #: ../src/menus-skeleton.h:166
 msgid "Cli_p"
-msgstr ""
+msgstr "자르기(_P)"
 
 #: ../src/menus-skeleton.h:170
 msgid "Mas_k"
-msgstr ""
+msgstr "마스크(_K)"
 
 #: ../src/menus-skeleton.h:174
 msgid "Patter_n"
-msgstr ""
+msgstr "패턴(_N)"
 
 #: ../src/menus-skeleton.h:198
 msgid "_Path"
-msgstr ""
+msgstr "경로(_P)"
 
 #: ../src/menus-skeleton.h:221
-#, fuzzy
 msgid "Path Effects"
-msgstr "옵셋"
+msgstr "경로 효과"
 
 #: ../src/menus-skeleton.h:227
 msgid "_Text"
-msgstr ""
+msgstr "문자열(_T)"
 
 #: ../src/menus-skeleton.h:239
-#, fuzzy
 msgid "Effe_cts"
-msgstr "옵셋"
+msgstr "효과(_C)"
 
 #: ../src/menus-skeleton.h:246
 msgid "Whiteboa_rd"
-msgstr ""
+msgstr "화이트보드(_R)"
 
 #: ../src/menus-skeleton.h:250
 msgid "_Help"
-msgstr ""
+msgstr "도움말(_H)"
 
 #: ../src/menus-skeleton.h:254
 msgid "Tutorials"
-msgstr ""
+msgstr "지침서"
 
 #: ../src/node-context.cpp:255
-msgid ""
-"<b>Ctrl</b>: toggle node type, snap handle angle, move hor/vert; <b>Ctrl"
-"+Alt</b>: move along handles"
-msgstr ""
+msgid "<b>Ctrl</b>: toggle node type, snap handle angle, move hor/vert; <b>Ctrl+Alt</b>: move along handles"
+msgstr "Ctrl: 노드 형태 토글, 핸들 각도 붙이기 점 조정, 수직/수평 이동; Ctrl+Alt: 핸들 따라 이동"
 
 #: ../src/node-context.cpp:256
-msgid ""
-"<b>Shift</b>: toggle node selection, disable snapping, rotate both handles"
-msgstr ""
+msgid "<b>Shift</b>: toggle node selection, disable snapping, rotate both handles"
+msgstr "Shift: 노드 선택 토글, 붙이기 불가능, 양 핸들 회전"
 
 #: ../src/node-context.cpp:257
 msgid "<b>Alt</b>: lock handle length; <b>Ctrl+Alt</b>: move along handles"
-msgstr ""
+msgstr "Alt: 핸들 길이 잠금; Ctrl+Alt: 핸들 따라 이동"
 
-#: ../src/nodepath.cpp:651 ../src/seltrans.cpp:547
-#, fuzzy
+#: ../src/nodepath.cpp:651
+#: ../src/seltrans.cpp:547
 msgid "Stamp"
-msgstr "ë\8b¨ê³\84"
+msgstr "ë\8f\84ì\9e¥"
 
-#: ../src/nodepath.cpp:1486 ../src/nodepath.cpp:1513
+#: ../src/nodepath.cpp:1486
+#: ../src/nodepath.cpp:1513
 msgid "Move nodes vertically"
-msgstr ""
+msgstr "노드 수직 이동"
 
-#: ../src/nodepath.cpp:1488 ../src/nodepath.cpp:1515
+#: ../src/nodepath.cpp:1488
+#: ../src/nodepath.cpp:1515
 msgid "Move nodes horizontally"
-msgstr ""
+msgstr "노드 수평 이동"
 
-#: ../src/nodepath.cpp:1490 ../src/nodepath.cpp:1517 ../src/nodepath.cpp:1532
+#: ../src/nodepath.cpp:1490
+#: ../src/nodepath.cpp:1517
+#: ../src/nodepath.cpp:1532
 #: ../src/nodepath.cpp:3359
-#, fuzzy
 msgid "Move nodes"
-msgstr "노드를 아래도"
+msgstr "노드 이동"
 
 #: ../src/nodepath.cpp:1570
-msgid ""
-"<b>Node handle</b>: drag to shape the curve; with <b>Ctrl</b> to snap angle; "
-"with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both handles"
-msgstr ""
+msgid "<b>Node handle</b>: drag to shape the curve; with <b>Ctrl</b> to snap angle; with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both handles"
+msgstr "노드 핸들: 곡선 생성하기 위하여 끌기; Ctrl: 각도 붙이기 점 조정; Alt: 길이를 잠그기 위해; Shift: 양 핸들 회전"
 
 #: ../src/nodepath.cpp:1740
-#, fuzzy
 msgid "Align nodes"
-msgstr "ì\99¼ìª½ì\9c¼ë¡\9c ì \95ë ¬"
+msgstr "ë\85¸ë\93\9c ì \95ë ¬"
 
 #: ../src/nodepath.cpp:1802
-#, fuzzy
 msgid "Distribute nodes"
-msgstr "속성 이름"
+msgstr "노드 분배"
 
 #: ../src/nodepath.cpp:1840
-#, fuzzy
 msgid "Add nodes"
-msgstr "노드 추가"
+msgstr "노드 더하기"
 
-#: ../src/nodepath.cpp:1842 ../src/nodepath.cpp:1914
-#, fuzzy
+#: ../src/nodepath.cpp:1842
+#: ../src/nodepath.cpp:1914
 msgid "Add node"
-msgstr "노드 추가"
+msgstr "노드 더하기"
 
 #: ../src/nodepath.cpp:1995
 msgid "Break path"
-msgstr ""
+msgstr "경로 나누기"
 
 #: ../src/nodepath.cpp:2051
-#, fuzzy
 msgid "Close subpath"
-msgstr "경로 닫는중."
+msgstr "하위경로 닫기"
 
 #: ../src/nodepath.cpp:2112
-#, fuzzy
 msgid "Join nodes"
-msgstr "임의의 노드"
+msgstr "노드 결합"
 
 #: ../src/nodepath.cpp:2139
 msgid "Close subpath by segment"
-msgstr ""
+msgstr "세그먼트에 의한 하위경로 닫기"
 
 #: ../src/nodepath.cpp:2193
 msgid "Join nodes by segment"
-msgstr ""
+msgstr "세그먼트에 의한 노드 결합"
 
-#: ../src/nodepath.cpp:2206 ../src/nodepath.cpp:2221
+#: ../src/nodepath.cpp:2206
+#: ../src/nodepath.cpp:2221
 msgid "To join, you must have <b>two endnodes</b> selected."
-msgstr ""
+msgstr "결합하기 위하여 두 개의 선택 노드점을 가져야 함"
 
-#: ../src/nodepath.cpp:2378 ../src/nodepath.cpp:2414 ../src/nodepath.cpp:2418
-#, fuzzy
+#: ../src/nodepath.cpp:2378
+#: ../src/nodepath.cpp:2414
+#: ../src/nodepath.cpp:2418
 msgid "Delete nodes"
 msgstr "노드 삭제"
 
 #: ../src/nodepath.cpp:2380
 msgid "Delete nodes preserving shape"
-msgstr ""
+msgstr "모양을 유지하는 노드 삭제"
 
-#: ../src/nodepath.cpp:2437 ../src/nodepath.cpp:2451
-msgid ""
-"Select <b>two non-endpoint nodes</b> on a path between which to delete "
-"segments."
-msgstr ""
+#: ../src/nodepath.cpp:2437
+#: ../src/nodepath.cpp:2451
+msgid "Select <b>two non-endpoint nodes</b> on a path between which to delete segments."
+msgstr "세그먼트를 삭제하기 위하여 경로상 2개의 비끝점 노드를 선택."
 
 #: ../src/nodepath.cpp:2547
 msgid "Cannot find path between nodes."
-msgstr ""
+msgstr "노드 사이 경로를 찾을 수 없음"
 
-#: ../src/nodepath.cpp:2579 ../src/widgets/toolbox.cpp:1129
-#, fuzzy
+#: ../src/nodepath.cpp:2579
+#: ../src/widgets/toolbox.cpp:1129
 msgid "Delete segment"
-msgstr "ì\84 í\83\9dë¶\80ë¶\84 ì§\80ì\9a°ê¸°"
+msgstr "ì\84¸ê·¸ë¨¼í\8a¸ ì\82­ì \9c"
 
 #: ../src/nodepath.cpp:2600
 msgid "Change segment type"
-msgstr ""
+msgstr "세그먼트 형태 변경"
 
-#: ../src/nodepath.cpp:2617 ../src/nodepath.cpp:3317
+#: ../src/nodepath.cpp:2617
+#: ../src/nodepath.cpp:3317
 msgid "Change node type"
-msgstr ""
+msgstr "노드 형태 변경"
 
 #: ../src/nodepath.cpp:3605
-#, fuzzy
 msgid "Retract handle"
-msgstr "사격형"
+msgstr "핸들 축소"
 
 #: ../src/nodepath.cpp:3654
-#, fuzzy
 msgid "Move node handle"
-msgstr "임의의 노드 관리"
+msgstr "노드 핸들 이동"
 
 #: ../src/nodepath.cpp:3823
 #, c-format
-msgid ""
-"<b>Node handle</b>: angle %0.2f&#176;, length %s; with <b>Ctrl</b> to snap "
-"angle; with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both "
-"handles"
-msgstr ""
+msgid "<b>Node handle</b>: angle %0.2f&#176;, length %s; with <b>Ctrl</b> to snap angle; with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both handles"
+msgstr "<b>노드 핸들</b>: 각도 %0.2f&#176;,길이 %s; <b>Ctrl</b>: 각도 붙이기 점 조정;  <b>Alt</b>: 길이 잠금; <b>Shift</b>: 양 핸들 회전"
 
 #: ../src/nodepath.cpp:4017
-#, fuzzy
 msgid "Rotate nodes"
-msgstr "노드 올리기"
+msgstr "노드 회전"
 
 #: ../src/nodepath.cpp:4148
-#, fuzzy
 msgid "Scale nodes"
-msgstr "노드 올리기"
+msgstr "노드 변경"
 
 #: ../src/nodepath.cpp:4192
-#, fuzzy
 msgid "Flip nodes"
-msgstr "노드 올리기"
+msgstr "노드 거꾸로"
 
 #: ../src/nodepath.cpp:4361
-msgid ""
-"<b>Node</b>: drag to edit the path; with <b>Ctrl</b> to snap to horizontal/"
-"vertical; with <b>Ctrl+Alt</b> to snap to handles' directions"
-msgstr ""
+msgid "<b>Node</b>: drag to edit the path; with <b>Ctrl</b> to snap to horizontal/vertical; with <b>Ctrl+Alt</b> to snap to handles' directions"
+msgstr "노드: 경로 펴집; Ctrl: 수평/수직 붙이기; Ctrl+Alt: 핸들 방향 붙이기"
 
 #. TRANSLATORS: "end" is an adjective here (NOT a verb)
 #: ../src/nodepath.cpp:4587
 msgid "end node"
-msgstr ""
+msgstr "끝 노드"
 
 #. TRANSLATORS: "cusp" means "sharp" (cusp node); see also the Advanced Tutorial
 #: ../src/nodepath.cpp:4592
 msgid "cusp"
-msgstr ""
+msgstr "날카롭게"
 
 #. TRANSLATORS: "smooth" is an adjective here
 #: ../src/nodepath.cpp:4595
 msgid "smooth"
-msgstr ""
+msgstr "부트럽게"
 
 #: ../src/nodepath.cpp:4597
 msgid "symmetric"
-msgstr ""
+msgstr "대칭"
 
 #. TRANSLATORS: "end" is an adjective here (NOT a verb)
 #: ../src/nodepath.cpp:4603
 msgid "end node, handle retracted (drag with <b>Shift</b> to extend)"
-msgstr ""
+msgstr "끝 노드, 핸들 축소(Shift: 확장)"
 
 #: ../src/nodepath.cpp:4605
 msgid "one handle retracted (drag with <b>Shift</b> to extend)"
-msgstr ""
+msgstr "한 개 핸들 축소(Shift: 확장)"
 
 #: ../src/nodepath.cpp:4608
 msgid "both handles retracted (drag with <b>Shift</b> to extend)"
-msgstr ""
+msgstr "양 핸들 축소(Shift: 확장)"
 
 #: ../src/nodepath.cpp:4620
-msgid ""
-"<b>Drag</b> nodes or node handles; <b>Alt+drag</b> nodes to sculpt; "
-"<b>arrow</b> keys to move nodes, <b>&lt; &gt;</b> to scale, <b>[ ]</b> to "
-"rotate"
-msgstr ""
+msgid "<b>Drag</b> nodes or node handles; <b>Alt+drag</b> nodes to sculpt; <b>arrow</b> keys to move nodes, <b>&lt; &gt;</b> to scale, <b>[ ]</b> to rotate"
+msgstr "노드 또는 노드 핸들 끌기; Alt: 조각하기; 화살표 키: 노드 이동; < > 키: 비율 변경, [ ]키: 회전"
 
 #: ../src/nodepath.cpp:4621
 msgid "<b>Drag</b> the node or its handles; <b>arrow</b> keys to move the node"
 msgstr ""
 
-#: ../src/nodepath.cpp:4646 ../src/nodepath.cpp:4658
+#: ../src/nodepath.cpp:4646
+#: ../src/nodepath.cpp:4658
 msgid "Select a single object to edit its nodes or handles."
-msgstr ""
+msgstr "노드 또는 핸들을 편집하기 위하여 단일 객ㅊ를 선택"
 
 #: ../src/nodepath.cpp:4650
 #, c-format
-msgid ""
-"<b>0</b> out of <b>%i</b> node selected. <b>Click</b>, <b>Shift+click</b>, "
-"or <b>drag around</b> nodes to select."
-msgid_plural ""
-"<b>0</b> out of <b>%i</b> nodes selected. <b>Click</b>, <b>Shift+click</b>, "
-"or <b>drag around</b> nodes to select."
-msgstr[0] ""
-msgstr[1] ""
+msgid "<b>0</b> out of <b>%i</b> node selected. <b>Click</b>, <b>Shift+click</b>, or <b>drag around</b> nodes to select."
+msgstr "<b>0</b> <b>%i</b>에서 노드 선택. <b>Click</b>, <b>Shift+click</b>, 또는 선택하기 위하여 노드 주변끌기."
 
 #: ../src/nodepath.cpp:4656
 msgid "Drag the handles of the object to modify it."
-msgstr ""
+msgstr "수정하기 위하여 객체 핸들을 끌기"
 
 #: ../src/nodepath.cpp:4664
 #, c-format
 msgid "<b>%i</b> of <b>%i</b> node selected; %s. %s."
-msgid_plural "<b>%i</b> of <b>%i</b> nodes selected; %s. %s."
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>%i</b> <b>%i</b> 노드 선택됨; %s. %s."
 
 #: ../src/nodepath.cpp:4671
 #, c-format
-msgid ""
-"<b>%i</b> of <b>%i</b> node selected in <b>%i</b> of <b>%i</b> subpaths. %s."
-msgid_plural ""
-"<b>%i</b> of <b>%i</b> nodes selected in <b>%i</b> of <b>%i</b> subpaths. %s."
-msgstr[0] ""
-msgstr[1] ""
+msgid "<b>%i</b> of <b>%i</b> node selected in <b>%i</b> of <b>%i</b> subpaths. %s."
+msgstr "<b>%i</b> <b>%i</b> 노드 선택 <b>%i</b> <b>%i</b> 하위경로. %s."
 
 #: ../src/nodepath.cpp:4677
 #, c-format
 msgid "<b>%i</b> of <b>%i</b> node selected. %s."
-msgid_plural "<b>%i</b> of <b>%i</b> nodes selected. %s."
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>%i</b> <b>%i</b> 노드 선택됨. %s."
 
 #: ../src/object-edit.cpp:420
-msgid ""
-"Adjust the <b>horizontal rounding</b> radius; with <b>Ctrl</b> to make the "
-"vertical radius the same"
-msgstr ""
+msgid "Adjust the <b>horizontal rounding</b> radius; with <b>Ctrl</b> to make the vertical radius the same"
+msgstr "수평 둥근 반경 조정, Ctrl: 수직으로 동일하게 반경 조정"
 
 #: ../src/object-edit.cpp:424
-msgid ""
-"Adjust the <b>vertical rounding</b> radius; with <b>Ctrl</b> to make the "
-"horizontal radius the same"
-msgstr ""
-
-#: ../src/object-edit.cpp:428 ../src/object-edit.cpp:432
-msgid ""
-"Adjust the <b>width and height</b> of the rectangle; with <b>Ctrl</b>to lock "
-"ratio or stretch in one dimension only"
-msgstr ""
-
-#: ../src/object-edit.cpp:666 ../src/object-edit.cpp:669
-#: ../src/object-edit.cpp:672 ../src/object-edit.cpp:675
-msgid ""
-"Resize box in X/Y direction; with <b>Shift</b> along the Z axis; with "
-"<b>Ctrl</b> to constrain to the directions of edges or diagonals"
-msgstr ""
-
-#: ../src/object-edit.cpp:678 ../src/object-edit.cpp:681
-#: ../src/object-edit.cpp:684 ../src/object-edit.cpp:687
-msgid ""
-"Resize box along the Z axis; with <b>Shift</b> in X/Y direction; with "
-"<b>Ctrl</b> to constrain to the directions of edges or diagonals"
-msgstr ""
+msgid "Adjust the <b>vertical rounding</b> radius; with <b>Ctrl</b> to make the horizontal radius the same"
+msgstr "수직 둥근 반경 조정, Ctrl: 수평으로 동일하게 반경 조정"
+
+#: ../src/object-edit.cpp:428
+#: ../src/object-edit.cpp:432
+msgid "Adjust the <b>width and height</b> of the rectangle; with <b>Ctrl</b>to lock ratio or stretch in one dimension only"
+msgstr "직사각형의 폭과 높이를 조정;  Ctrl: 고정비를 잠그거나 한 면을 확장"
+
+#: ../src/object-edit.cpp:666
+#: ../src/object-edit.cpp:669
+#: ../src/object-edit.cpp:672
+#: ../src/object-edit.cpp:675
+msgid "Resize box in X/Y direction; with <b>Shift</b> along the Z axis; with <b>Ctrl</b> to constrain to the directions of edges or diagonals"
+msgstr "X/Y 방향 상자 크기 조정; Shift: Z 축 ; Ctrl: 모서리나 대각선 방향을 제한 "
+
+#: ../src/object-edit.cpp:678
+#: ../src/object-edit.cpp:681
+#: ../src/object-edit.cpp:684
+#: ../src/object-edit.cpp:687
+msgid "Resize box along the Z axis; with <b>Shift</b> in X/Y direction; with <b>Ctrl</b> to constrain to the directions of edges or diagonals"
+msgstr "Z 축  따라 상자 크기 조정; Shift: X/Y 방향 , Ctrl: 모서리나 대각선 방향을 제한"
 
 #: ../src/object-edit.cpp:690
 msgid "Move the box in perspective"
-msgstr ""
+msgstr "원근감에서 상자 이동"
 
 #: ../src/object-edit.cpp:908
 msgid "Adjust ellipse <b>width</b>, with <b>Ctrl</b> to make circle"
-msgstr ""
+msgstr "타원 폭 조정, Ctrl: 원 생성"
 
 #: ../src/object-edit.cpp:911
 msgid "Adjust ellipse <b>height</b>, with <b>Ctrl</b> to make circle"
-msgstr ""
+msgstr "타원 높이 조정, Ctrl: 원 생성"
 
 #: ../src/object-edit.cpp:914
-msgid ""
-"Position the <b>start point</b> of the arc or segment; with <b>Ctrl</b>to "
-"snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for "
-"segment"
-msgstr ""
+msgid "Position the <b>start point</b> of the arc or segment; with <b>Ctrl</b>to snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for segment"
+msgstr "호나 세그먼트의 시작점 위치; Ctrl:각도 붙이기 점 조정, 호를 생성하기 위하여 타원 안쪽으로, 세그먼트를 위하여는 바깥 타원으로 끌기"
 
 #: ../src/object-edit.cpp:918
-msgid ""
-"Position the <b>end point</b> of the arc or segment; with <b>Ctrl</b> to "
-"snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for "
-"segment"
-msgstr ""
+msgid "Position the <b>end point</b> of the arc or segment; with <b>Ctrl</b> to snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for segment"
+msgstr "호나 세크먼트의 끝점 위치; Ctrl:각도 붙이기 점 조정, 호를 생성하기 위하여 타원 안쪽으로, 세그먼트를 위하여는 바깥 타원으로 끌기"
 
 #: ../src/object-edit.cpp:1057
-msgid ""
-"Adjust the <b>tip radius</b> of the star or polygon; with <b>Shift</b> to "
-"round; with <b>Alt</b> to randomize"
-msgstr ""
+msgid "Adjust the <b>tip radius</b> of the star or polygon; with <b>Shift</b> to round; with <b>Alt</b> to randomize"
+msgstr "별이나 다각형의 정점 반경 조정; Shift: 둥글게 하기 ; Alt: 무작위"
 
 #: ../src/object-edit.cpp:1064
-msgid ""
-"Adjust the <b>base radius</b> of the star; with <b>Ctrl</b> to keep star "
-"rays radial (no skew); with <b>Shift</b> to round; with <b>Alt</b> to "
-"randomize"
-msgstr ""
+msgid "Adjust the <b>base radius</b> of the star; with <b>Ctrl</b> to keep star rays radial (no skew); with <b>Shift</b> to round; with <b>Alt</b> to randomize"
+msgstr "별의 기본 반경을 조정; Ctrl: 별 빛을 방사로 유지(왜곡 안됨), Shift: 둥글게 하기 ; Alt: 무작위"
 
 #: ../src/object-edit.cpp:1245
-msgid ""
-"Roll/unroll the spiral from <b>inside</b>; with <b>Ctrl</b> to snap angle; "
-"with <b>Alt</b> to converge/diverge"
-msgstr ""
+msgid "Roll/unroll the spiral from <b>inside</b>; with <b>Ctrl</b> to snap angle; with <b>Alt</b> to converge/diverge"
+msgstr "안쪽으로부터 나선을 감기/풀기; Ctrl:각도 붙이기 점 조정; Alt: 확대/축소 "
 
 #: ../src/object-edit.cpp:1248
-msgid ""
-"Roll/unroll the spiral from <b>outside</b>; with <b>Ctrl</b> to snap angle; "
-"with <b>Shift</b> to scale/rotate"
-msgstr ""
+msgid "Roll/unroll the spiral from <b>outside</b>; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to scale/rotate"
+msgstr "바깥으로부터 나선 감기/풀기; Ctrl:각도 붙이기 점 조정; Shift: 비율/회전 변경"
 
 #: ../src/object-edit.cpp:1292
 msgid "Adjust the <b>offset distance</b>"
-msgstr ""
+msgstr "옵셋 거리 조정"
 
 #: ../src/object-edit.cpp:1327
 msgid "Drag to resize the <b>flowed text frame</b>"
-msgstr ""
+msgstr "유동 문자열 프레임 크기를 재조정하기 위하여 끌기"
 
 #: ../src/path-chemistry.cpp:63
 msgid "Select <b>at least two objects</b> to combine."
-msgstr ""
+msgstr "결합하기 위하여 적어도 두 객체 선택"
 
 #: ../src/path-chemistry.cpp:67
-#, fuzzy
 msgid "Combining paths..."
-msgstr "경로 닫는중."
+msgstr "경로 결합 중..."
 
 #: ../src/path-chemistry.cpp:169
-#, fuzzy
 msgid "Combine"
-msgstr "조합된"
+msgstr "결합"
 
 #: ../src/path-chemistry.cpp:176
 msgid "<b>No path(s)</b> to combine in the selection."
-msgstr ""
+msgstr "선택에서 결합할 경로 없음"
 
 #: ../src/path-chemistry.cpp:190
 msgid "Select <b>path(s)</b> to break apart."
-msgstr ""
+msgstr "분리 경로 선택"
 
 #: ../src/path-chemistry.cpp:194
 msgid "Breaking apart paths..."
-msgstr ""
+msgstr "경로 분리 중..."
 
 #: ../src/path-chemistry.cpp:280
 msgid "Break apart"
-msgstr ""
+msgstr "경로 분리"
 
 #: ../src/path-chemistry.cpp:282
 msgid "<b>No path(s)</b> to break apart in the selection."
-msgstr ""
+msgstr "선택에서 분리할 경로 없음"
 
 #: ../src/path-chemistry.cpp:306
 msgid "Select <b>object(s)</b> to convert to path."
-msgstr ""
+msgstr "경로로 변환시킬 객체 선택"
 
 #: ../src/path-chemistry.cpp:312
-#, fuzzy
 msgid "Converting objects to paths..."
-msgstr "ê¸\80ì\9e\90를 ê³¡ì\84 ì\9c¼ë¡\9c ë³\80í\99\98"
+msgstr "ê°\9d체를 ê²½ë¡\9cë¡\9c ë³\80í\99\98 ì¤\91..."
 
 #: ../src/path-chemistry.cpp:334
-#, fuzzy
 msgid "Object to path"
-msgstr "ê¸\80ì\9e\90를 ì\84 ì\9c¼로"
+msgstr "ê°\9d체를 ê²½ë¡\9c로"
 
 #: ../src/path-chemistry.cpp:336
 msgid "<b>No objects</b> to convert to path in the selection."
-msgstr ""
+msgstr "선택에서 경로로 변환할 객체 없음"
 
 #: ../src/path-chemistry.cpp:487
 msgid "Select <b>path(s)</b> to reverse."
-msgstr ""
+msgstr "역 경로 선택"
 
 #: ../src/path-chemistry.cpp:496
-#, fuzzy
 msgid "Reversing paths..."
-msgstr "되돌리기(_R)"
+msgstr "객체를 역으로..."
 
 #: ../src/path-chemistry.cpp:523
-#, fuzzy
 msgid "Reverse path"
-msgstr "되돌리기(_R)"
+msgstr "역 경로"
 
 #: ../src/path-chemistry.cpp:525
 msgid "<b>No paths</b> to reverse in the selection."
-msgstr ""
+msgstr "선택에서 역 경로 없음"
 
-#: ../src/pencil-context.cpp:239 ../src/pen-context.cpp:441
+#: ../src/pencil-context.cpp:239
+#: ../src/pen-context.cpp:441
 msgid "Continuing selected path"
-msgstr ""
+msgstr "선택 경로 계속"
 
-#: ../src/pencil-context.cpp:248 ../src/pen-context.cpp:451
+#: ../src/pencil-context.cpp:248
+#: ../src/pen-context.cpp:451
 msgid "Creating new path"
-msgstr ""
+msgstr "새 경로 생성"
 
-#: ../src/pencil-context.cpp:253 ../src/pen-context.cpp:453
+#: ../src/pencil-context.cpp:253
+#: ../src/pen-context.cpp:453
 msgid "Appending to selected path"
-msgstr ""
+msgstr "선택 경로 더하기"
 
 #: ../src/pencil-context.cpp:336
 msgid "<b>Release</b> here to close and finish the path."
-msgstr ""
+msgstr "경로를 닫기 또는 끝내기 위하여 여기에서 해제"
 
 #: ../src/pencil-context.cpp:342
 msgid "Drawing a freehand path"
-msgstr ""
+msgstr "자유곡선 경로 그리기"
 
 #: ../src/pencil-context.cpp:347
 msgid "<b>Drag</b> to continue the path from this point."
-msgstr ""
+msgstr "이 점으로부터 경로를 계속하기 위하여 끌기"
 
 #. Write curves to object
 #: ../src/pencil-context.cpp:409
 msgid "Finishing freehand"
-msgstr ""
+msgstr "자유곡선 끝내는 중"
 
-#: ../src/pencil-context.cpp:460 ../src/pen-context.cpp:237
+#: ../src/pencil-context.cpp:460
+#: ../src/pen-context.cpp:237
 msgid "Drawing cancelled"
-msgstr ""
+msgstr "그리기 취소"
 
 #: ../src/pen-context.cpp:620
 msgid "<b>Click</b> or <b>click and drag</b> to close and finish the path."
-msgstr ""
+msgstr "<b>클릭</b> 또는 <b>클릭과 끌기</b> 경로를 닫고 끝내기"
 
 #: ../src/pen-context.cpp:630
-msgid ""
-"<b>Click</b> or <b>click and drag</b> to continue the path from this point."
-msgstr ""
+msgid "<b>Click</b> or <b>click and drag</b> to continue the path from this point."
+msgstr "이 점으로부터 경로를 계속하기 위하여 클릭 또는 클릭과 끌기"
 
 #: ../src/pen-context.cpp:1177
 #, c-format
-msgid ""
-"<b>Curve segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to "
-"snap angle, <b>Enter</b> to finish the path"
-msgstr ""
+msgid "<b>Curve segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to snap angle, <b>Enter</b> to finish the path"
+msgstr "곡선 세그먼트: 각도 %3.2f&#176;, 거리 %s; <b>Ctrl</b>: 각도 붙이기 점 조정; <b>Enter</b>: 경로를 끝내기 위하여"
 
 #: ../src/pen-context.cpp:1178
 #, c-format
-msgid ""
-"<b>Line segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to "
-"snap angle, <b>Enter</b> to finish the path"
-msgstr ""
+msgid "<b>Line segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to snap angle, <b>Enter</b> to finish the path"
+msgstr "<b>선 세그먼트 </b>: 각도 %3.2f&#176;, 거리 %s;  <b>Ctrl</b>: 각도 붙이기 점 조정; <b>Enter</b>: 경로를 끝내기 위하여"
 
 #: ../src/pen-context.cpp:1196
 #, c-format
-msgid ""
-"<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap "
-"angle"
-msgstr ""
+msgid "<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle"
+msgstr "<b>곡선 핸들</b>: 각도 %3.2f&#176;, 길이 %s; <b>Ctrl</b>: 각도 붙이기 점 조정"
 
 #: ../src/pen-context.cpp:1218
 #, c-format
-msgid ""
-"<b>Curve handle, symmetric</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</"
-"b> to snap angle, with <b>Shift</b> to move this handle only"
-msgstr ""
+msgid "<b>Curve handle, symmetric</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle, with <b>Shift</b> to move this handle only"
+msgstr "<b>곡선 핸들, 대칭</b>: 각도 %3.2f&#176;, 길이 %s; <b>Ctrl</b>: 각도 붙이기 점 조정  <b>Shift</b>: 이 핸들만 이동"
 
 #: ../src/pen-context.cpp:1219
 #, c-format
-msgid ""
-"<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap "
-"angle, with <b>Shift</b> to move this handle only"
-msgstr ""
+msgid "<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle, with <b>Shift</b> to move this handle only"
+msgstr "<b>곡선 핸들</b>: 각도 %3.2f&#176;, 길이 %s; <b>Ctrl</b>: 각도 붙이기 점 조정  <b>Shift</b>: 이 핸들만 이동"
 
 #: ../src/pen-context.cpp:1259
 msgid "Drawing finished"
-msgstr ""
+msgstr "그리기 끝냄"
 
 #: ../src/persp3d.cpp:335
 msgid "Toggle vanishing point"
-msgstr ""
+msgstr "소멸 점 토글"
 
 #: ../src/persp3d.cpp:346
 msgid "Toggle multiple vanishing points"
-msgstr ""
+msgstr "다수 소멸 점 토글"
 
 #: ../src/preferences.cpp:59
 #, c-format
@@ -7443,472 +7027,424 @@ msgid ""
 "%s is not a valid preferences file.\n"
 "%s"
 msgstr ""
+"%s 은 적합한 기본설정이 아님.\n"
+"%s"
 
 #: ../src/preferences.cpp:60
 msgid ""
 "Inkscape will run with default settings.\n"
 "New settings will not be saved."
 msgstr ""
+"Inkscape은 기본설정으로 실행됩니다.\n"
+"새 설정이 저장되지 않습니다."
 
 #: ../src/rect-context.cpp:382
-msgid ""
-"<b>Ctrl</b>: make square or integer-ratio rect, lock a rounded corner "
-"circular"
-msgstr ""
+msgid "<b>Ctrl</b>: make square or integer-ratio rect, lock a rounded corner circular"
+msgstr "Ctrl: 정사각형 또는 정수비 직사각형을 생성, 둥근 모서리 원을 잠금"
 
 #: ../src/rect-context.cpp:536
 #, c-format
-msgid ""
-"<b>Rectangle</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</"
-"b> to draw around the starting point"
-msgstr ""
+msgid "<b>Rectangle</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> to draw around the starting point"
+msgstr "<b>사각형</b>: %s &#215; %s (%d:%d 비로 고정); <b>Shift</b>: 시작점 주위로 그리기"
 
 #: ../src/rect-context.cpp:539
 #, c-format
-msgid ""
-"<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1.618 : 1); with "
-"<b>Shift</b> to draw around the starting point"
-msgstr ""
+msgid "<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1.618 : 1); with <b>Shift</b> to draw around the starting point"
+msgstr "<b>직사각형</b>: %s &#215; %s (1.618 : 1 황금비로 고정); <b>Shift</b>: 시작점 주위로 그리기"
 
 #: ../src/rect-context.cpp:541
 #, c-format
-msgid ""
-"<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1 : 1.618); with "
-"<b>Shift</b> to draw around the starting point"
-msgstr ""
+msgid "<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1 : 1.618); with <b>Shift</b> to draw around the starting point"
+msgstr "<b>직사각형</b>: %s &#215; %s (1 : 1.618황금비로 고정); <b>Shift</b>: 시작점 주위로 그리기"
 
 #: ../src/rect-context.cpp:545
 #, c-format
-msgid ""
-"<b>Rectangle</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-"
-"ratio rectangle; with <b>Shift</b> to draw around the starting point"
-msgstr ""
+msgid "<b>Rectangle</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-ratio rectangle; with <b>Shift</b> to draw around the starting point"
+msgstr "직사각형: %s  &#215; %s; Ctrl: 정사각형이나 정수비 직사각형 생성은; Shift: 시작점 주위를 그리기"
 
 #: ../src/rect-context.cpp:566
-#, fuzzy
 msgid "Create rectangle"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì§\81ì\82¬ê°\81í\98\95 ì\83\9dì\84±"
 
 #: ../src/select-context.cpp:230
 msgid "Move canceled."
-msgstr ""
+msgstr "이동 취소."
 
 #: ../src/select-context.cpp:238
 msgid "Selection canceled."
-msgstr ""
+msgstr "선택 취소."
 
 #: ../src/select-context.cpp:545
-msgid ""
-"<b>Draw over</b> objects to select them; release <b>Alt</b> to switch to "
-"rubberband selection"
-msgstr ""
+msgid "<b>Draw over</b> objects to select them; release <b>Alt</b> to switch to rubberband selection"
+msgstr "선택하기 위하여 객체 위를 그리기; Alt 해제:  고무줄 선택을 변경"
 
 #: ../src/select-context.cpp:547
-msgid ""
-"<b>Drag around</b> objects to select them; press <b>Alt</b> to switch to "
-"touch selection"
-msgstr ""
+msgid "<b>Drag around</b> objects to select them; press <b>Alt</b> to switch to touch selection"
+msgstr "객체를 선택하기 위하여 객체 주위 끌기; Alt: 터치 선택 변경하기"
 
 #: ../src/select-context.cpp:707
-#, fuzzy
 msgid "<b>Ctrl</b>: click to select in groups; drag to move hor/vert"
-msgstr ""
-"노드를 선택하기 위해 <b>클릭</b> 한후, 재 분배 하기 위해 <b>드래그</b>."
+msgstr "<b>Ctrl</b>:그룹에서 선택하기 위하여 클릭; 수평/수직 이동하기 위하여 끌기"
 
 #: ../src/select-context.cpp:708
 msgid "<b>Shift</b>: click to toggle select; drag for rubberband selection"
-msgstr ""
+msgstr "Shift: 선택 토글하기 위하여 클릭"
 
 #: ../src/select-context.cpp:709
-msgid ""
-"<b>Alt</b>: click to select under; drag to move selected or select by touch"
-msgstr ""
+msgid "<b>Alt</b>: click to select under; drag to move selected or select by touch"
+msgstr "Alt: 선택하기 위하여 클릭"
 
 #: ../src/select-context.cpp:880
 msgid "Selected object is not a group. Cannot enter."
-msgstr ""
+msgstr "선택된 객체가 그룹이 아님. 입력할 수 없음."
 
 #: ../src/selection-chemistry.cpp:194
-#, fuzzy
 msgid "Delete text"
-msgstr "ë\85¸ë\93\9c 삭제"
+msgstr "문ì\9e\90ì\97´ 삭제"
 
 #: ../src/selection-chemistry.cpp:202
 msgid "<b>Nothing</b> was deleted."
-msgstr ""
+msgstr "삭제된 것이 없음"
 
-#: ../src/selection-chemistry.cpp:220 ../src/text-context.cpp:995
-#: ../src/widgets/toolbox.cpp:1090 ../src/widgets/toolbox.cpp:4335
-#, fuzzy
+#: ../src/selection-chemistry.cpp:220
+#: ../src/text-context.cpp:995
+#: ../src/widgets/too기lbox.cpp:1090
+#: ../src/widgets/toolbox.cpp:4335
 msgid "Delete"
-msgstr "삭제(_D)"
+msgstr "삭제"
 
 #: ../src/selection-chemistry.cpp:235
 msgid "Select <b>object(s)</b> to duplicate."
-msgstr ""
+msgstr "복제하기 위하여 객체 선택"
 
 #: ../src/selection-chemistry.cpp:285
-#, fuzzy
 msgid "Delete all"
-msgstr "ì\82­ì \9c(_D)"
+msgstr "ì \84ì²´ ì\82­ì \9c"
 
 #: ../src/selection-chemistry.cpp:409
-#, fuzzy
 msgid "Select <b>some objects</b> to group."
-msgstr "클론으로 만들 <b>객체</b>를 선택"
+msgstr "그룹화하기 위하여 <b>객체들을</b> 선택."
 
-#: ../src/selection-chemistry.cpp:482 ../src/selection-describer.cpp:51
+#: ../src/selection-chemistry.cpp:482
+#: ../src/selection-describer.cpp:51
 msgid "Group"
 msgstr "그룹"
 
 #: ../src/selection-chemistry.cpp:497
 msgid "Select a <b>group</b> to ungroup."
-msgstr ""
+msgstr "그룹 해제를 위하여 그룹 선택"
 
 #: ../src/selection-chemistry.cpp:538
 msgid "<b>No groups</b> to ungroup in the selection."
-msgstr ""
+msgstr "선택에서 그룹 해제할 그룹이 없음."
 
-#: ../src/selection-chemistry.cpp:544 ../src/sp-item-group.cpp:488
-#, fuzzy
+#: ../src/selection-chemistry.cpp:544
+#: ../src/sp-item-group.cpp:488
 msgid "Ungroup"
-msgstr "그룹"
+msgstr "그룹 해제"
 
 #: ../src/selection-chemistry.cpp:605
 msgid "Select <b>object(s)</b> to raise."
-msgstr ""
+msgstr "올리기 위하여 객체 선택"
 
-#: ../src/selection-chemistry.cpp:611 ../src/selection-chemistry.cpp:672
-#: ../src/selection-chemistry.cpp:707 ../src/selection-chemistry.cpp:772
-msgid ""
-"You cannot raise/lower objects from <b>different groups</b> or <b>layers</b>."
-msgstr ""
+#: ../src/selection-chemistry.cpp:611
+#: ../src/selection-chemistry.cpp:672
+#: ../src/selection-chemistry.cpp:707
+#: ../src/selection-chemistry.cpp:772
+msgid "You cannot raise/lower objects from <b>different groups</b> or <b>layers</b>."
+msgstr "다른 그룹 또는 레이어에서 객체를 올리기/내리기 할 수 없음"
 
 #. TRANSLATORS: Only put the word "Raise" in the translation. Means "to raise an object" in the undo history
 #: ../src/selection-chemistry.cpp:651
-#, fuzzy
 msgid "undo_action|Raise"
-msgstr "기능"
+msgstr "되돌리기_작동|위로"
 
 #: ../src/selection-chemistry.cpp:664
 msgid "Select <b>object(s)</b> to raise to top."
-msgstr ""
+msgstr "최상단으로 올리기 위하여 객체 선택"
 
 #: ../src/selection-chemistry.cpp:687
-#, fuzzy
 msgid "Raise to top"
-msgstr "ë\85¸ë\93\9c ì\98¬ë¦¬ê¸°"
+msgstr "ìµ\9cì\83\81ë\8b¨ì\9c¼ë¡\9c ì\98¬ë¦¬ê¸°"
 
 #: ../src/selection-chemistry.cpp:701
 msgid "Select <b>object(s)</b> to lower."
-msgstr ""
+msgstr "아래로 내리기 위하여 객체 선택"
 
 #: ../src/selection-chemistry.cpp:751
-#, fuzzy
 msgid "Lower"
-msgstr "노드를 아래도"
+msgstr "아래로"
 
 #: ../src/selection-chemistry.cpp:764
 msgid "Select <b>object(s)</b> to lower to bottom."
-msgstr ""
+msgstr "최하단으로 내리기 위하여 객체 선택"
 
 #: ../src/selection-chemistry.cpp:799
 msgid "Lower to bottom"
-msgstr ""
+msgstr "최하단으로 내리기"
 
 #: ../src/selection-chemistry.cpp:806
 msgid "Nothing to undo."
-msgstr "ë\90\98ë\8f\8c리ê²\8c 없음"
+msgstr "ë\90\98ë\8f\8c리기 í\95  ì\9e\91ì\97\85ì\9d´ 없음"
 
 #: ../src/selection-chemistry.cpp:813
 msgid "Nothing to redo."
-msgstr "되돌리기 취소할게 없음"
+msgstr "재실행할 작업이 없음"
 
 #: ../src/selection-chemistry.cpp:873
-#, fuzzy
 msgid "Paste"
-msgstr "ë¶\99ì\9d´ê¸°(_P)"
+msgstr "ë¶\99ì\97¬ë\84£ê¸°"
 
 #: ../src/selection-chemistry.cpp:880
-#, fuzzy
 msgid "Paste style"
-msgstr "불이기 종류(_S)"
+msgstr "스타일 붙여넣기"
 
 #: ../src/selection-chemistry.cpp:889
 msgid "Paste live path effect"
-msgstr ""
+msgstr "활성 경로 효과 붙여넣기"
 
 #: ../src/selection-chemistry.cpp:909
-#, fuzzy
 msgid "Select <b>object(s)</b> to remove live path effects from."
-msgstr "í\81´ë¡ ì\9c¼ë¡\9c ë§\8cë\93¤ <b>ê°\9dì²´</b>를 선택"
+msgstr "í\99\9cì\84± ê°\9dì²´ í\9a¨ê³¼ë¥¼ ì \9cê±°í\95\98기 ì\9c\84í\95\98ì\97¬ <b>ê°\9dì²´</b> 선택"
 
 #: ../src/selection-chemistry.cpp:921
-#, fuzzy
 msgid "Remove live path effect"
-msgstr " 삭제(_m) "
+msgstr "활성 경로 효과 제거"
 
 #: ../src/selection-chemistry.cpp:933
-#, fuzzy
 msgid "Select <b>object(s)</b> to remove filters from."
-msgstr "í\81´ë¡ ì\9c¼ë¡\9c ë§\8cë\93¤ <b>ê°\9dì²´</b>를 선택"
+msgstr "í\95\84í\84°ë¥¼ ì \9cê±°í\95\98기 ì\9c\84í\95\98ì\97¬ <b>ê°\9dì²´</b> 선택"
 
 #: ../src/selection-chemistry.cpp:943
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1363
-#, fuzzy
 msgid "Remove filter"
-msgstr "채움 제거"
+msgstr "필터 제거"
 
 #: ../src/selection-chemistry.cpp:952
-#, fuzzy
 msgid "Paste size"
-msgstr "도트 크기"
+msgstr "크기로 붙여넣기"
 
 #: ../src/selection-chemistry.cpp:960
 msgid "Paste size separately"
-msgstr ""
+msgstr "크기 개별적으로 붙여넣기"
 
 #: ../src/selection-chemistry.cpp:971
 msgid "Select <b>object(s)</b> to move to the layer above."
-msgstr ""
+msgstr "위 레이어로 이동하기 위하여 객체 선택"
 
 #: ../src/selection-chemistry.cpp:996
-#, fuzzy
 msgid "Raise to next layer"
-msgstr "이름바뀐 레이어"
+msgstr "다음 레이어로 올리기"
 
 #: ../src/selection-chemistry.cpp:1002
 msgid "No more layers above."
-msgstr "위로 더이상의 레이어가 없음"
+msgstr "위에 더 이상의 레이어 없음"
 
 #: ../src/selection-chemistry.cpp:1016
 msgid "Select <b>object(s)</b> to move to the layer below."
-msgstr ""
+msgstr "아래 레이어로 이동하기 위하여 객체 선택"
 
 #: ../src/selection-chemistry.cpp:1041
 msgid "Lower to previous layer"
-msgstr ""
+msgstr "이전 레이어로 내리"
 
 #: ../src/selection-chemistry.cpp:1047
 msgid "No more layers below."
-msgstr "아래로 더이상의 레이어가 없음"
+msgstr "아래에 더 이상의 레이어 없음"
 
 #: ../src/selection-chemistry.cpp:1234
-#, fuzzy
 msgid "Remove transform"
-msgstr "이동치 저장"
+msgstr "변환 제거"
 
 #: ../src/selection-chemistry.cpp:1343
 msgid "Rotate 90&#176; CW"
-msgstr ""
+msgstr "90도 시계방향 회전"
 
 #: ../src/selection-chemistry.cpp:1367
 msgid "Rotate 90&#176; CCW"
-msgstr ""
+msgstr "90도 반시계방향 회전"
 
-#: ../src/selection-chemistry.cpp:1388 ../src/seltrans.cpp:457
+#: ../src/selection-chemistry.cpp:1388
+#: ../src/seltrans.cpp:457
 #: ../src/ui/dialog/transformation.cpp:757
-#, fuzzy
 msgid "Rotate"
-msgstr "회전(_R)"
+msgstr "회전"
 
 #: ../src/selection-chemistry.cpp:1420
 msgid "Rotate by pixels"
-msgstr ""
+msgstr "화소에 의한 회전"
 
 #: ../src/selection-chemistry.cpp:1475
 msgid "Scale by whole factor"
-msgstr ""
+msgstr "전체 요소에 의한 비율"
 
 #: ../src/selection-chemistry.cpp:1491
 msgid "Move vertically"
-msgstr ""
+msgstr "수직 이동"
 
 #: ../src/selection-chemistry.cpp:1494
-#, fuzzy
 msgid "Move horizontally"
-msgstr "수평(_H)"
+msgstr "수평 이동"
 
-#: ../src/selection-chemistry.cpp:1497 ../src/selection-chemistry.cpp:1525
-#: ../src/seltrans.cpp:451 ../src/ui/dialog/transformation.cpp:680
-#, fuzzy
+#: ../src/selection-chemistry.cpp:1497
+#: ../src/selection-chemistry.cpp:1525
+#: ../src/seltrans.cpp:451
+#: ../src/ui/dialog/transformation.cpp:680
 msgid "Move"
-msgstr "이동(_M)"
+msgstr "이동"
 
 #: ../src/selection-chemistry.cpp:1519
 msgid "Move vertically by pixels"
-msgstr ""
+msgstr "화소단위로 수직 이동"
 
 #: ../src/selection-chemistry.cpp:1522
-#, fuzzy
 msgid "Move horizontally by pixels"
-msgstr "수평(_H)"
+msgstr "화소단위로 수평 이동"
 
 #: ../src/selection-chemistry.cpp:1650
-#, fuzzy
 msgid "The selection has no applied path effect."
-msgstr "떨어진(offset) 객체 찾지"
+msgstr "선택이 적용 경로 효과를 가지지 않음."
 
 #: ../src/selection-chemistry.cpp:1694
-#, fuzzy
 msgid "The selection has no applied clip path."
-msgstr "떨어진(offset) 객체 찾지"
+msgstr "선택이 적용 자르기 경로를 가지지 않음."
 
 #: ../src/selection-chemistry.cpp:1696
-#, fuzzy
 msgid "The selection has no applied mask."
-msgstr "떨어진(offset) 객체 찾지"
+msgstr "선택이 적용 마스크를 가지지 않음."
 
 #: ../src/selection-chemistry.cpp:1854
 msgid "action|Clone"
-msgstr ""
+msgstr "작동|복제"
 
 #: ../src/selection-chemistry.cpp:1871
 msgid "Select a <b>clone</b> to unlink."
-msgstr ""
+msgstr "링크 해제하기 위하여 복제물 선택"
 
 #: ../src/selection-chemistry.cpp:1920
 msgid "<b>No clones to unlink</b> in the selection."
-msgstr ""
+msgstr "선택에서 링크 해제할 복제물이 없음"
 
 #: ../src/selection-chemistry.cpp:1924
 msgid "Unlink clone"
-msgstr ""
+msgstr "복제물 링크 해제"
 
 #: ../src/selection-chemistry.cpp:1938
-msgid ""
-"Select a <b>clone</b> to go to its original. Select a <b>linked offset</b> "
-"to go to its source. Select a <b>text on path</b> to go to the path. Select "
-"a <b>flowed text</b> to go to its frame."
-msgstr ""
+msgid "Select a <b>clone</b> to go to its original. Select a <b>linked offset</b> to go to its source. Select a <b>text on path</b> to go to the path. Select a <b>flowed text</b> to go to its frame."
+msgstr "원본으로 가기 위하여 복제물 선택"
 
 #: ../src/selection-chemistry.cpp:1961
-msgid ""
-"<b>Cannot find</b> the object to select (orphaned clone, offset, textpath, "
-"flowed text?)"
-msgstr ""
+msgid "<b>Cannot find</b> the object to select (orphaned clone, offset, textpath, flowed text?)"
+msgstr "선택할 객체가 없음"
 
 #: ../src/selection-chemistry.cpp:1967
-msgid ""
-"The object you're trying to select is <b>not visible</b> (it is in &lt;"
-"defs&gt;)"
-msgstr ""
+msgid "The object you're trying to select is <b>not visible</b> (it is in &lt;defs&gt;)"
+msgstr "선택할 객체가 보이지 않음"
 
 #: ../src/selection-chemistry.cpp:1995
-#, fuzzy
 msgid "Select <b>object(s)</b> to convert to marker."
-msgstr "클론으로 만들 <b>객체</b>를 선택"
+msgstr "마커로 변환시킬 <b>객체</b>를 선택"
 
 #: ../src/selection-chemistry.cpp:2061
-#, fuzzy
 msgid "Objects to marker"
-msgstr "점선 유형"
+msgstr "객체를 마커로 변환"
 
 #: ../src/selection-chemistry.cpp:2090
-#, fuzzy
 msgid "Select <b>object(s)</b> to convert to guides."
-msgstr "클론으로 만들 <b>객체</b>를 선택"
+msgstr "안내선으로 변환할 <b>객체</b>를 선택"
 
 #: ../src/selection-chemistry.cpp:2101
-#, fuzzy
 msgid "Objects to guides"
-msgstr "점선 유형"
+msgstr "객체를 안내선으로 변환"
 
 #: ../src/selection-chemistry.cpp:2118
 msgid "Select <b>object(s)</b> to convert to pattern."
-msgstr ""
+msgstr "패턴으로 변환할 <b>객체</b> 선택"
 
 #: ../src/selection-chemistry.cpp:2205
-#, fuzzy
 msgid "Objects to pattern"
-msgstr "점선 유형"
+msgstr "객체를 패턴으로 변환"
 
 #: ../src/selection-chemistry.cpp:2222
 msgid "Select an <b>object with pattern fill</b> to extract objects from."
-msgstr ""
+msgstr "객체를 추출하기 위하여 <b>패턴 채움 객체</b> 선택"
 
 #: ../src/selection-chemistry.cpp:2275
 msgid "<b>No pattern fills</b> in the selection."
-msgstr ""
+msgstr "선택에서 패턴 채움이 없음"
 
 #: ../src/selection-chemistry.cpp:2278
-#, fuzzy
 msgid "Pattern to objects"
-msgstr "간격띄우기 유형"
+msgstr "페턴을 객체로 변환"
 
 #: ../src/selection-chemistry.cpp:2364
 msgid "Select <b>object(s)</b> to make a bitmap copy."
-msgstr ""
+msgstr "비트맵 복사본을 생성하기 위하여 <b>객체</b> 선택"
 
 #: ../src/selection-chemistry.cpp:2368
-#, fuzzy
 msgid "Rendering bitmap..."
-msgstr "ë\90\98ë\8f\8c리기(_R)"
+msgstr "ë¹\84í\8a¸ë§µ ë \8cë\8d\94ë§\81..."
 
 #: ../src/selection-chemistry.cpp:2530
-#, fuzzy
 msgid "Create bitmap"
-msgstr "중심선"
+msgstr "비트맵 생성"
 
 #: ../src/selection-chemistry.cpp:2563
-msgid "Select <b>object(s)</b> to create clippath or mask from."
-msgstr ""
+msgid "Select to create clippath or mask from."
+msgstr "자르기 경로 또는 마스크 생성하기 위하여 <b>객체</b>선택 "
 
 #: ../src/selection-chemistry.cpp:2566
 msgid "Select mask object and <b>object(s)</b> to apply clippath or mask to."
-msgstr ""
+msgstr "자르기 경로 또는 마스크를 적용하기 위한 마스크 객체와 객체 선택"
 
 #: ../src/selection-chemistry.cpp:2672
-#, fuzzy
 msgid "Set clipping path"
-msgstr "경로 닫는중."
+msgstr "자르기 경로 설정"
 
 #: ../src/selection-chemistry.cpp:2674
-#, fuzzy
 msgid "Set mask"
-msgstr "ë³\84"
+msgstr "ë§\88ì\8a¤í\81¬ ì\84¤ì \95"
 
 #: ../src/selection-chemistry.cpp:2688
 msgid "Select <b>object(s)</b> to remove clippath or mask from."
-msgstr ""
+msgstr "자르기 경로 또는 마스크를 제거하기 위한 마스크 객체와 객체 선택"
 
 #: ../src/selection-chemistry.cpp:2756
 msgid "Release clipping path"
-msgstr ""
+msgstr "자르기 경로 해제"
 
 #: ../src/selection-chemistry.cpp:2758
-#, fuzzy
 msgid "Release mask"
-msgstr "ë¡\9cê·¸ ë©\94ì\84¸ì§\80 ë\82´ë³´ë\84¤ê¸°"
+msgstr "ë§\88ì\8a¤í\81¬ í\95´ì \9c"
 
 #: ../src/selection-chemistry.cpp:2769
-#, fuzzy
 msgid "Select <b>object(s)</b> to fit canvas to."
-msgstr "클론으로 만들 <b>객체</b>를 선택"
+msgstr "캔버스로 조정하기 위하여 <b>객체</b> 선택."
 
 #: ../src/selection-chemistry.cpp:2803
-#, fuzzy
 msgid "Fit page to selection"
-msgstr "캔버스를 선택영역크기로 조정"
+msgstr "페이지를 선택으로 조정"
 
 #. TRANSLATORS: only translate and put "Link" in the translation. It means internet link (anchor)
 #: ../src/selection-describer.cpp:43
 msgid "web|Link"
-msgstr ""
+msgstr "웹|링크"
 
 #: ../src/selection-describer.cpp:45
 msgid "Circle"
 msgstr "원"
 
 #. ellipse
-#: ../src/selection-describer.cpp:47 ../src/selection-describer.cpp:73
-#: ../src/ui/dialog/inkscape-preferences.cpp:424 ../src/verbs.cpp:2425
+#: ../src/selection-describer.cpp:47
+#: ../src/selection-describer.cpp:73
+#: ../src/ui/dialog/inkscape-preferences.cpp:424
+#: ../src/verbs.cpp:2425
 msgid "Ellipse"
 msgstr "타원"
 
 #: ../src/selection-describer.cpp:49
 msgid "Flowed text"
-msgstr ""
+msgstr "유동 문자열"
 
 #: ../src/selection-describer.cpp:55
 msgid "Line"
@@ -7916,11 +7452,12 @@ msgstr "선"
 
 #: ../src/selection-describer.cpp:57
 msgid "Path"
-msgstr "곡ì\84 "
+msgstr "ê²½ë¡\9c"
 
-#: ../src/selection-describer.cpp:59 ../src/widgets/toolbox.cpp:2028
+#: ../src/selection-describer.cpp:59
+#: ../src/widgets/toolbox.cpp:2028
 msgid "Polygon"
-msgstr "폴리곤"
+msgstr "다각형"
 
 #: ../src/selection-describer.cpp:61
 msgid "Polyline"
@@ -7928,226 +7465,202 @@ msgstr "폴리라인"
 
 #. Rectangle
 #: ../src/selection-describer.cpp:63
-#: ../src/ui/dialog/inkscape-preferences.cpp:414 ../src/verbs.cpp:2421
+#: ../src/ui/dialog/inkscape-preferences.cpp:414
+#: ../src/verbs.cpp:2421
 msgid "Rectangle"
-msgstr "ì\82¬ê²©형"
+msgstr "ì\82¬ê°\81형"
 
 #. 3D box
 #: ../src/selection-describer.cpp:65
-#: ../src/ui/dialog/inkscape-preferences.cpp:419 ../src/verbs.cpp:2423
-#, fuzzy
+#: ../src/ui/dialog/inkscape-preferences.cpp:419
+#: ../src/verbs.cpp:2423
 msgid "3D Box"
-msgstr "박스"
+msgstr "3D 상자"
 
 #: ../src/selection-describer.cpp:71
 msgid "object|Clone"
-msgstr ""
+msgstr "객체|복제"
 
 #: ../src/selection-describer.cpp:75
 msgid "Offset path"
-msgstr "곡선 간격 띄우기"
+msgstr "옵셋 경로"
 
 #. spiral
 #: ../src/selection-describer.cpp:77
-#: ../src/ui/dialog/inkscape-preferences.cpp:432 ../src/verbs.cpp:2429
+#: ../src/ui/dialog/inkscape-preferences.cpp:432
+#: ../src/verbs.cpp:2429
 msgid "Spiral"
-msgstr ""
+msgstr "나선"
 
 #. star
 #: ../src/selection-describer.cpp:79
-#: ../src/ui/dialog/inkscape-preferences.cpp:428 ../src/verbs.cpp:2427
+#: ../src/ui/dialog/inkscape-preferences.cpp:428
+#: ../src/verbs.cpp:2427
 #: ../src/widgets/toolbox.cpp:2035
 msgid "Star"
-msgstr "ë³\86"
+msgstr "ë³\84"
 
 #: ../src/selection-describer.cpp:107
 msgid "Click selection to toggle scale/rotation handles"
-msgstr ""
+msgstr "핸들 비율/회전을 토글하기 위하여 선택 클릭"
 
 #. no items
 #: ../src/selection-describer.cpp:109
-msgid ""
-"No objects selected. Click, Shift+click, or drag around objects to select."
-msgstr ""
+msgid "No objects selected. Click, Shift+click, or drag around objects to select."
+msgstr "선택된 객체가 없음. 클릭, Shift+클릭, 또는 선택하기 위하여 객체 주변을 끌기"
 
 #: ../src/selection-describer.cpp:118
 msgid "root"
-msgstr ""
+msgstr "루트"
 
 #: ../src/selection-describer.cpp:130
 #, c-format
 msgid "layer <b>%s</b>"
-msgstr ""
+msgstr "레이어 <b>%s</b>"
 
 #: ../src/selection-describer.cpp:132
 #, c-format
 msgid "layer <b><i>%s</i></b>"
-msgstr ""
+msgstr "레이어 <b><i>%s</i></b>"
 
 #: ../src/selection-describer.cpp:141
 #, c-format
 msgid "<i>%s</i>"
-msgstr ""
+msgstr "<i>%s</i>"
 
 #: ../src/selection-describer.cpp:150
 #, c-format
 msgid " in %s"
-msgstr ""
+msgstr " %s"
 
 #: ../src/selection-describer.cpp:152
 #, c-format
 msgid " in group %s (%s)"
-msgstr ""
+msgstr " %s (%s) 그룹"
 
 #: ../src/selection-describer.cpp:154
 #, c-format
 msgid " in <b>%i</b> parents (%s)"
-msgid_plural " in <b>%i</b> parents (%s)"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>%i</b> 부모 (%s)"
 
 #: ../src/selection-describer.cpp:157
 #, c-format
 msgid " in <b>%i</b> layers"
-msgid_plural " in <b>%i</b> layers"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>%i</b> 레이어"
 
 #: ../src/selection-describer.cpp:167
 msgid "Use <b>Shift+D</b> to look up original"
-msgstr ""
+msgstr "원본을 찾기 위해 <b>Shift+D</b>"
 
 #: ../src/selection-describer.cpp:171
 msgid "Use <b>Shift+D</b> to look up path"
-msgstr ""
+msgstr "경로를 찾기 위해 <b>Shift+D</b>"
 
 #: ../src/selection-describer.cpp:175
 msgid "Use <b>Shift+D</b> to look up frame"
-msgstr ""
+msgstr "프레임을 찾기 위해 <b>Shift+D</b>"
 
 #. this is only used with 2 or more objects
 #: ../src/selection-describer.cpp:190
 #, c-format
 msgid "<b>%i</b> object selected"
-msgid_plural "<b>%i</b> objects selected"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>%i</b> 객체 선택"
 
 #. this is only used with 2 or more objects
 #: ../src/selection-describer.cpp:195
 #, c-format
 msgid "<b>%i</b> object of type <b>%s</b>"
-msgid_plural "<b>%i</b> objects of type <b>%s</b>"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>%i</b> <b>%s</b> 형태 객체"
 
 #. this is only used with 2 or more objects
 #: ../src/selection-describer.cpp:200
 #, c-format
 msgid "<b>%i</b> object of types <b>%s</b>, <b>%s</b>"
-msgid_plural "<b>%i</b> objects of types <b>%s</b>, <b>%s</b>"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>%i</b> <b>%s</b>, <b>%s</b> 형태 객체"
 
 #. this is only used with 2 or more objects
 #: ../src/selection-describer.cpp:205
 #, c-format
 msgid "<b>%i</b> object of types <b>%s</b>, <b>%s</b>, <b>%s</b>"
-msgid_plural "<b>%i</b> objects of types <b>%s</b>, <b>%s</b>, <b>%s</b>"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>%i</b> 객체 형태 <b>%s</b>, <b>%s</b>, <b>%s</b>"
 
 #. this is only used with 2 or more objects
 #: ../src/selection-describer.cpp:210
 #, c-format
 msgid "<b>%i</b> object of <b>%i</b> types"
-msgid_plural "<b>%i</b> objects of <b>%i</b> types"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>%i</b> <b>%i</b> 형태 객체"
 
 #: ../src/selection-describer.cpp:215
 #, c-format
 msgid "%s%s. %s."
-msgstr ""
+msgstr "%s%s. %s."
 
-#: ../src/seltrans.cpp:460 ../src/ui/dialog/transformation.cpp:815
+#: ../src/seltrans.cpp:460
+#: ../src/ui/dialog/transformation.cpp:815
 msgid "Skew"
-msgstr ""
+msgstr "찌그러짐"
 
 #: ../src/seltrans.cpp:472
-#, fuzzy
 msgid "Set center"
-msgstr "프린터 선택"
+msgstr "중앙 설정"
 
 #: ../src/seltrans.cpp:569
-msgid ""
-"<b>Center</b> of rotation and skewing: drag to reposition; scaling with "
-"Shift also uses this center"
-msgstr ""
+msgid "<b>Center</b> of rotation and skewing: drag to reposition; scaling with Shift also uses this center"
+msgstr "회전 및 기울이기의 중심점: 재 위치 시키기 위하여 끌기; Shift: 중앙에서 사용 가능"
 
 #: ../src/seltrans.cpp:596
-msgid ""
-"<b>Squeeze or stretch</b> selection; with <b>Ctrl</b> to scale uniformly; "
-"with <b>Shift</b> to scale around rotation center"
-msgstr ""
+msgid "<b>Squeeze or stretch</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
+msgstr "선택을 축소 또는 확장; Ctrl: 일정하게 비율 조정; Shift: 회전 중심 주위로 비율 조정"
 
 #: ../src/seltrans.cpp:597
-msgid ""
-"<b>Scale</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</"
-"b> to scale around rotation center"
-msgstr ""
+msgid "<b>Scale</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
+msgstr "선택 비율 조정: Ctrl: 균일하게 비율 조정; Shift: 회전 중심 주변 비율 조정"
 
 #: ../src/seltrans.cpp:601
-msgid ""
-"<b>Skew</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to "
-"skew around the opposite side"
-msgstr ""
+msgid "<b>Skew</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to skew around the opposite side"
+msgstr "선택 기울이기: Ctrl: 각도 붙이기 점 조정; Shift: 반대면 주변 기울이기"
 
 #: ../src/seltrans.cpp:602
-msgid ""
-"<b>Rotate</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> "
-"to rotate around the opposite corner"
-msgstr ""
+msgid "<b>Rotate</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to rotate around the opposite corner"
+msgstr "선택 회전; Ctrl: 각도 붙이기 점 조정; Shift: 반대 모서리 주변 회전"
 
 #: ../src/seltrans.cpp:736
-#, fuzzy
 msgid "Reset center"
-msgstr "프린터 선택"
+msgstr "중앙 초기화"
 
-#: ../src/seltrans.cpp:980 ../src/seltrans.cpp:1079
+#: ../src/seltrans.cpp:980
+#: ../src/seltrans.cpp:1079
 #, c-format
 msgid "<b>Scale</b>: %0.2f%% x %0.2f%%; with <b>Ctrl</b> to lock ratio"
-msgstr ""
+msgstr "<b>비율</b>: %0.2f%% x %0.2f%%; <b>Ctrl</b>: 비율 잠금"
 
 #. TRANSLATORS: don't modify the first ";"
 #. (it will NOT be displayed as ";" - only the second one will be)
 #: ../src/seltrans.cpp:1196
 #, c-format
 msgid "<b>Skew</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
-msgstr ""
+msgstr "<b>기울이기</b>: %0.2f&#176;; <b>Ctrl</b>: 각도 붙이기 점 조정"
 
 #. TRANSLATORS: don't modify the first ";"
 #. (it will NOT be displayed as ";" - only the second one will be)
 #: ../src/seltrans.cpp:1255
 #, c-format
 msgid "<b>Rotate</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
-msgstr ""
+msgstr "<b>회전</b>: %0.2f&#176;; <b>Ctrl</b>: 각도 붙이기 점 조정"
 
 #: ../src/seltrans.cpp:1296
 #, c-format
 msgid "Move <b>center</b> to %s, %s"
-msgstr ""
+msgstr "<b>중앙</b> %s, %s 로 이동"
 
 #: ../src/seltrans.cpp:1457
 #, c-format
-msgid ""
-"<b>Move</b> by %s, %s; with <b>Ctrl</b> to restrict to horizontal/vertical; "
-"with <b>Shift</b> to disable snapping"
-msgstr ""
+msgid "<b>Move</b> by %s, %s; with <b>Ctrl</b> to restrict to horizontal/vertical; with <b>Shift</b> to disable snapping"
+msgstr "<b>이동</b> %s, %s; <b>Ctrl</b>: 수평/수직으로 제한; <b>Shift</b>: 붙이기 불가능"
 
 #: ../src/shape-editor.cpp:397
 msgid "Drag curve"
-msgstr ""
+msgstr "곡선 끌기"
 
 #: ../src/sp-anchor.cpp:178
 #, c-format
@@ -8156,9 +7669,10 @@ msgstr "<b>링크</b> 를 %s"
 
 #: ../src/sp-anchor.cpp:182
 msgid "<b>Link</b> without URI"
-msgstr "URL 을 포함 않한 <b>링크</b>"
+msgstr "URL을 포함하지 않는<b>링크</b>"
 
-#: ../src/sp-ellipse.cpp:494 ../src/sp-ellipse.cpp:873
+#: ../src/sp-ellipse.cpp:494
+#: ../src/sp-ellipse.cpp:873
 msgid "<b>Ellipse</b>"
 msgstr "<b>타원</b>"
 
@@ -8168,16 +7682,16 @@ msgstr "<b>원</b>"
 
 #: ../src/sp-ellipse.cpp:868
 msgid "<b>Segment</b>"
-msgstr ""
+msgstr "<b>세그먼트</b>"
 
 #: ../src/sp-ellipse.cpp:870
 msgid "<b>Arc</b>"
-msgstr "<b>호</b>"
+msgstr "<b>호</b>"
 
 #. TRANSLATORS: "Flow region" is an area where text is allowed to flow
 #: ../src/sp-flowregion.cpp:269
 msgid "Flow region"
-msgstr ""
+msgstr "흐름 구간"
 
 #. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the
 #. * flow excluded region.  flowRegionExclude in SVG 1.2: see
@@ -8185,49 +7699,43 @@ msgstr ""
 #. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem.
 #: ../src/sp-flowregion.cpp:488
 msgid "Flow excluded region"
-msgstr ""
+msgstr "흐름 제외 구간"
 
 #: ../src/sp-flowtext.cpp:377
 #, c-format
 msgid "<b>Flowed text</b> (%d character)"
-msgid_plural "<b>Flowed text</b> (%d characters)"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>유동 문자열</b> (%d 문자)"
 
 #: ../src/sp-flowtext.cpp:379
 #, c-format
 msgid "<b>Linked flowed text</b> (%d character)"
-msgid_plural "<b>Linked flowed text</b> (%d characters)"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "<b>링크된 유동 문자열</b> (%d 문자)"
 
 #: ../src/sp-guide.cpp:285
 msgid "Guides around page"
-msgstr ""
+msgstr "페이지 안내선"
 
 #: ../src/sp-guide.cpp:418
-#, fuzzy, c-format
 msgid "vertical, at %s"
-msgstr "수직 가이드 라인"
+msgstr "%s 수직"
 
 #: ../src/sp-guide.cpp:421
-#, fuzzy, c-format
 msgid "horizontal, at %s"
-msgstr "수평 가이드 라인"
+msgstr "%s 수평"
 
 #: ../src/sp-guide.cpp:426
 #, c-format
 msgid "at %d degrees, through (%s,%s); <b>Ctrl</b>+click to delete"
-msgstr ""
+msgstr "%d 도 (%s,%s) 통한 ; <b>Ctrl</b>+클릭: 삭제"
 
 #: ../src/sp-image.cpp:1098
 msgid "embedded"
-msgstr "삽입된"
+msgstr "내장"
 
 #: ../src/sp-image.cpp:1106
 #, c-format
 msgid "<b>Image with bad reference</b>: %s"
-msgstr "<b>잘못된 참조 이미지</b>: %s"
+msgstr "<b>잘못된 참조를 가진 이미지</b>: %s"
 
 #: ../src/sp-image.cpp:1107
 #, c-format
@@ -8236,22 +7744,20 @@ msgstr "<b>이미지</b> %d·&#215;·%d:·%s"
 
 #: ../src/spiral-context.cpp:341
 msgid "<b>Ctrl</b>: snap angle"
-msgstr ""
+msgstr "<b>Ctrl</b>: 각도 붙이기 점 조정"
 
 #: ../src/spiral-context.cpp:343
 msgid "<b>Alt</b>: lock spiral radius"
-msgstr ""
+msgstr "<b>Alt</b>: 나선 반경 잠금"
 
 #: ../src/spiral-context.cpp:466
 #, c-format
-msgid ""
-"<b>Spiral</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
-msgstr ""
+msgid "<b>Spiral</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
+msgstr "<b>나선</b>: 반경 %s, 각도 %5g&#176;; <b>Ctrl</b>: 각도 붙이기 점 조정"
 
 #: ../src/spiral-context.cpp:487
-#, fuzzy
 msgid "Create spiral"
-msgstr "중심선"
+msgstr "나선 생성"
 
 #: ../src/sp-item.cpp:959
 msgid "Object"
@@ -8260,277 +7766,248 @@ msgstr "객체"
 #: ../src/sp-item.cpp:976
 #, c-format
 msgid "%s; <i>clipped</i>"
-msgstr ""
+msgstr "%s; <i>잘라내기</i>"
 
 #: ../src/sp-item.cpp:981
 #, c-format
 msgid "%s; <i>masked</i>"
-msgstr ""
+msgstr "%s; <i>마스크됨</i>"
 
 #: ../src/sp-item.cpp:986
 #, c-format
 msgid "%s; <i>filtered</i>"
-msgstr ""
+msgstr "%s; <i>필터됨</i>"
 
 #: ../src/sp-item-group.cpp:738
-#, fuzzy, c-format
+#, c-format
 msgid "<b>Group</b> of <b>%d</b> object"
-msgid_plural "<b>Group</b> of <b>%d</b> objects"
-msgstr[0] "<b>%d</b> 객체의 <b>그룹</b>"
-msgstr[1] "<b>%d</b> 객체의 <b>그룹</b>"
+msgstr "%d 객체의 그룹"
 
 #: ../src/sp-line.cpp:188
 msgid "<b>Line</b>"
 msgstr "<b>선</b>"
 
-#: ../src/splivarot.cpp:71 ../src/splivarot.cpp:77
-#, fuzzy
+#: ../src/splivarot.cpp:71
+#: ../src/splivarot.cpp:77
 msgid "Union"
-msgstr "알수 없는"
+msgstr ""
 
 #: ../src/splivarot.cpp:83
-#, fuzzy
 msgid "Intersection"
-msgstr "선택"
+msgstr "교차"
 
-#: ../src/splivarot.cpp:89 ../src/splivarot.cpp:95
-#, fuzzy
+#: ../src/splivarot.cpp:89
+#: ../src/splivarot.cpp:95
 msgid "Difference"
-msgstr "다름"
+msgstr ""
 
 #: ../src/splivarot.cpp:101
-#, fuzzy
 msgid "Exclusion"
-msgstr "확장 \""
+msgstr "제외"
 
 #: ../src/splivarot.cpp:106
 msgid "Division"
-msgstr ""
+msgstr "나누기"
 
 #: ../src/splivarot.cpp:111
-#, fuzzy
 msgid "Cut path"
-msgstr "곡ì\84 "
+msgstr "ê²½ë¡\9c ì\9e\90르기"
 
 #: ../src/splivarot.cpp:128
 msgid "Select <b>at least 2 paths</b> to perform a boolean operation."
-msgstr ""
+msgstr "부울식을 수행하기 위하여 최소 2개 경로 선택"
 
 #: ../src/splivarot.cpp:132
 msgid "Select <b>at least 1 path</b> to perform a boolean union."
-msgstr ""
+msgstr "부울 합을 수행하기 위하여 최소 1개 경로 선택"
 
 #: ../src/splivarot.cpp:138
-msgid ""
-"Select <b>exactly 2 paths</b> to perform difference, XOR, division, or path "
-"cut."
-msgstr ""
+msgid "Select <b>exactly 2 paths</b> to perform difference, XOR, division, or path cut."
+msgstr "차, Xor, 나누기, 잘라내기를 수행하기 위하여 정확히 2개 경로 선택."
 
-#: ../src/splivarot.cpp:155 ../src/splivarot.cpp:170
-msgid ""
-"Unable to determine the <b>z-order</b> of the objects selected for "
-"difference, XOR, division, or path cut."
-msgstr ""
+#: ../src/splivarot.cpp:155
+#: ../src/splivarot.cpp:170
+msgid "Unable to determine the <b>z-order</b> of the objects selected for difference, XOR, division, or path cut."
+msgstr "차, Xor, 나누기, 잘라내기를 위해 선택된 객체의 Z-순서를 결정할 수 없음"
 
 #: ../src/splivarot.cpp:200
-msgid ""
-"One of the objects is <b>not a path</b>, cannot perform boolean operation."
-msgstr ""
+msgid "One of the objects is <b>not a path</b>, cannot perform boolean operation."
+msgstr "객체들 중 하나가 경로가 없음, 부울식을 수행할 수 없음"
 
 #: ../src/splivarot.cpp:610
 msgid "Select <b>stroked path(s)</b> to convert stroke to path."
-msgstr ""
+msgstr "윤곽선을 경로로 변환시키기 위하여 윤곽선 경로 선택"
 
 #: ../src/splivarot.cpp:894
-#, fuzzy
 msgid "Convert stroke to path"
-msgstr "글자를 곡선으로 변환"
+msgstr "윤곽선를 경로로 변환"
 
 #. TRANSLATORS: "to outline" means "to convert stroke to path"
 #: ../src/splivarot.cpp:897
 msgid "<b>No stroked paths</b> in the selection."
-msgstr ""
+msgstr "선택에서 윤곽선 경로가 없음"
 
 #: ../src/splivarot.cpp:981
 msgid "Selected object is <b>not a path</b>, cannot inset/outset."
-msgstr ""
+msgstr "선택 객체가 경로가 없음, 축소/확대할 수 없음"
 
-#: ../src/splivarot.cpp:1101 ../src/splivarot.cpp:1170
-#, fuzzy
+#: ../src/splivarot.cpp:1101
+#: ../src/splivarot.cpp:1170
 msgid "Create linked offset"
-msgstr "중심선"
+msgstr "링크된 옵셋 생성"
 
-#: ../src/splivarot.cpp:1102 ../src/splivarot.cpp:1171
-#, fuzzy
+#: ../src/splivarot.cpp:1102
+#: ../src/splivarot.cpp:1171
 msgid "Create dynamic offset"
-msgstr "ë\96¨ì\96´ì§\84(offset) ê°\9dì²´ ì°¾ì§\80"
+msgstr "ë\8f\99ì \81 ì\98µì\85\8b ì\83\9dì\84±"
 
 #: ../src/splivarot.cpp:1198
 msgid "Select <b>path(s)</b> to inset/outset."
-msgstr ""
+msgstr "축소/확대하기 위하여 경로 선택"
 
 #: ../src/splivarot.cpp:1416
-#, fuzzy
 msgid "Outset path"
-msgstr "곡ì\84  ê°\84격 ë\9d\84ì\9a°ê¸°"
+msgstr "ê²½ë¡\9c í\99\95ë\8c\80"
 
 #: ../src/splivarot.cpp:1416
-#, fuzzy
 msgid "Inset path"
-msgstr "곡ì\84  ê°\84격 ë\9d\84ì\9a°ê¸°"
+msgstr "ê²½ë¡\9c ì¶\95ì\86\8c"
 
 #: ../src/splivarot.cpp:1418
 msgid "<b>No paths</b> to inset/outset in the selection."
-msgstr ""
+msgstr "선택에서 축소/확대하기 위한 경로 없음"
 
 #: ../src/splivarot.cpp:1579
 msgid "Simplifying paths (separately):"
-msgstr ""
+msgstr "경로 단순화(개별):"
 
 #: ../src/splivarot.cpp:1581
-#, fuzzy
 msgid "Simplifying paths:"
-msgstr "ê²½ë¡\9c ë\8b«ë\8a\94ì¤\91."
+msgstr "ê²½ë¡\9c ë\8b¨ì\88\9cí\99\94:"
 
 #: ../src/splivarot.cpp:1618
 #, c-format
 msgid "%s <b>%d</b> of <b>%d</b> paths simplified..."
-msgstr ""
+msgstr "%s <b>%d</b> <b>%d</b>의  경로 단순화..."
 
 #: ../src/splivarot.cpp:1629
 #, c-format
 msgid "<b>%d</b> paths simplified."
-msgstr ""
+msgstr "<b>%d</b> 경로 단순화함"
 
 #: ../src/splivarot.cpp:1645
 msgid "Select <b>path(s)</b> to simplify."
-msgstr ""
+msgstr "단순화 위하여 <b>경로</b> 선택"
 
 #: ../src/splivarot.cpp:1659
-#, fuzzy
 msgid "Simplify"
-msgstr "단순화(_m)"
+msgstr "단순화"
 
 #: ../src/splivarot.cpp:1661
 msgid "<b>No paths</b> to simplify in the selection."
-msgstr ""
+msgstr "선택에서 단순화시킬 경로가 없음"
 
 #. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign
 #: ../src/sp-offset.cpp:432
 #, c-format
 msgid "<b>Linked offset</b>, %s by %f pt"
-msgstr ""
+msgstr "링크 옵셋, %s %f 포인트"
 
-#: ../src/sp-offset.cpp:433 ../src/sp-offset.cpp:437
+#: ../src/sp-offset.cpp:433
+#: ../src/sp-offset.cpp:437
 msgid "outset"
-msgstr ""
+msgstr "확대"
 
-#: ../src/sp-offset.cpp:433 ../src/sp-offset.cpp:437
+#: ../src/sp-offset.cpp:433
+#: ../src/sp-offset.cpp:437
 msgid "inset"
-msgstr ""
+msgstr "축소"
 
 #. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign
 #: ../src/sp-offset.cpp:436
 #, c-format
 msgid "<b>Dynamic offset</b>, %s by %f pt"
-msgstr ""
+msgstr "동적 옵셋, %s %f 포인트"
 
 #: ../src/sp-path.cpp:135
-#, c-format
-msgid "<b>Path</b> (%i node, path effect)"
-msgid_plural "<b>Path</b> (%i nodes, path effect)"
-msgstr[0] ""
-msgstr[1] ""
-
 #: ../src/sp-path.cpp:138
 #, c-format
 msgid "<b>Path</b> (%i node)"
-msgid_plural "<b>Path</b> (%i nodes)"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "경로 %i 노드"
 
 #: ../src/sp-path.cpp:540
-#, fuzzy
 msgid "Creating single dot"
-msgstr "ì\83\88 ì\97°ê²°ì\9e\90 ì\83\9dì\84±"
+msgstr "ë\8b¨ì\9d¼ ì \90 ì\83\9dì\84±"
 
 #: ../src/sp-path.cpp:541
-#, fuzzy
 msgid "Create single dot"
-msgstr "중심선"
+msgstr "단일 점 생성"
 
 #: ../src/sp-polygon.cpp:235
 msgid "<b>Polygon</b>"
-msgstr ""
+msgstr "<b>다각형</b>"
 
 #: ../src/sp-polyline.cpp:177
 msgid "<b>Polyline</b>"
-msgstr ""
+msgstr "<b>폴리라인</b>"
 
 #: ../src/sp-rect.cpp:226
 msgid "<b>Rectangle</b>"
-msgstr "<b>사각형</b>"
+msgstr "<b>ì§\81ì\82¬ê°\81í\98\95</b>"
 
 #. TRANSLATORS: since turn count isn't an integer, please adjust the
 #. string as needed to deal with an localized plural forms.
 #: ../src/sp-spiral.cpp:324
 #, c-format
 msgid "<b>Spiral</b> with %3f turns"
-msgstr ""
+msgstr "%3f 회전수를 가진 나선"
 
 #: ../src/sp-star.cpp:307
 #, c-format
 msgid "<b>Star</b> with %d vertex"
-msgid_plural "<b>Star</b> with %d vertices"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "%d 꼭지점을 가진 별"
 
 #: ../src/sp-star.cpp:311
 #, c-format
 msgid "<b>Polygon</b> with %d vertex"
-msgid_plural "<b>Polygon</b> with %d vertices"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "%d 꼭지점을 가진 다각형"
 
 #: ../src/sp-switch.cpp:100
 #, c-format
 msgid "<b>Conditional group</b> of <b>%d</b> object"
-msgid_plural "<b>Conditional group</b> of <b>%d</b> objects"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "%d 객체의 조건 그룹"
 
 #. TRANSLATORS: For description of font with no name.
 #: ../src/sp-text.cpp:414
 msgid "&lt;no name found&gt;"
-msgstr ""
+msgstr "<이름이 없음>"
 
 #: ../src/sp-text.cpp:420
 #, c-format
 msgid "<b>Text on path</b> (%s, %s)"
-msgstr ""
+msgstr "<b>경로상 문자열</b> (%s, %s)"
 
 #: ../src/sp-text.cpp:421
 #, c-format
 msgid "<b>Text</b> (%s, %s)"
-msgstr ""
+msgstr "<b>문자열</b> (%s, %s)"
 
 #: ../src/sp-tref.cpp:368
 #, c-format
 msgid "<b>Cloned character data</b>%s%s"
-msgstr ""
+msgstr "<b>복제된 문자 자료</b>%s%s"
 
 #: ../src/sp-tref.cpp:369
 msgid " from "
-msgstr ""
+msgstr " 에서 "
 
 #: ../src/sp-tref.cpp:374
 msgid "<b>Orphaned cloned character data</b>"
-msgstr ""
+msgstr "<b>잃은 복제된 문자 자료</b>"
 
 #: ../src/sp-tspan.cpp:284
-#, fuzzy
 msgid "<b>Text span</b>"
-msgstr "<b>사각형</b>"
+msgstr "<b>문자열 폭</b>"
 
 #. TRANSLATORS: Used for statusbar description for long <use> chains:
 #. * "Clone of: Clone of: ... in Layer 1".
@@ -8541,614 +8018,532 @@ msgstr "..."
 #: ../src/sp-use.cpp:326
 #, c-format
 msgid "<b>Clone</b> of: %s"
-msgstr ""
+msgstr "<b>복제 객체</b>: %s"
 
 #: ../src/sp-use.cpp:330
 msgid "<b>Orphaned clone</b>"
-msgstr ""
+msgstr "<b>지원이 없는 복제 객체</b>"
 
 #: ../src/star-context.cpp:352
 msgid "<b>Ctrl</b>: snap angle; keep rays radial"
-msgstr ""
+msgstr "Ctrl: 각도 붙이기 점 조정; 빛을 방사로 유지"
 
 #: ../src/star-context.cpp:476
 #, c-format
-msgid ""
-"<b>Polygon</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
-msgstr ""
+msgid "<b>Polygon</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
+msgstr "다각형: 반경 %s 화소, 각도 %5g도; 각도를 붙이기 위하여 Ctrl"
 
 #: ../src/star-context.cpp:477
 #, c-format
 msgid "<b>Star</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
-msgstr ""
+msgstr "별: 반경 %s 화소, 각도 %5g 도;각도를 붙이기 위하여 Ctrl "
 
 #: ../src/star-context.cpp:500
-#, fuzzy
 msgid "Create star"
-msgstr "중심선"
+msgstr "별 생성"
 
 #: ../src/text-chemistry.cpp:104
 msgid "Select <b>a text and a path</b> to put text on path."
-msgstr ""
+msgstr "경로상에서 문자열을 놓기 위하여 문자열과 경로 선택"
 
 #: ../src/text-chemistry.cpp:109
-msgid ""
-"This text object is <b>already put on a path</b>. Remove it from the path "
-"first. Use <b>Shift+D</b> to look up its path."
-msgstr ""
+msgid "This text object is <b>already put on a path</b>. Remove it from the path first. Use <b>Shift+D</b> to look up its path."
+msgstr "이 문자열 객체는 별써 경로상에 있음. 경로에서 처음에 제거. <b>Shift+D</b>: 경로를 찾기"
 
 #. rect is the only SPShape which is not <path> yet, and thus SVG forbids us from putting text on it
 #: ../src/text-chemistry.cpp:115
-msgid ""
-"You cannot put text on a rectangle in this version. Convert rectangle to "
-"path first."
-msgstr ""
+msgid "You cannot put text on a rectangle in this version. Convert rectangle to path first."
+msgstr "이 버전에서 직사각형에 문자열을 넣을 수 없음. 직사각형을 경로로 먼저 변환."
 
 #: ../src/text-chemistry.cpp:125
 msgid "The flowed text(s) must be <b>visible</b> in order to be put on a path."
-msgstr ""
+msgstr "유동 문자열은 경로상에 놓기 위하여 볼 수 있어야 합니다."
 
-#: ../src/text-chemistry.cpp:192 ../src/verbs.cpp:2283
+#: ../src/text-chemistry.cpp:192
+#: ../src/verbs.cpp:2283
 msgid "Put text on path"
-msgstr ""
+msgstr "문자열을 경로에 두기"
 
 #: ../src/text-chemistry.cpp:204
 msgid "Select <b>a text on path</b> to remove it from path."
-msgstr ""
+msgstr "경로에서 문자열을 제거하기 위하여 경로상의 문자열 선택"
 
 #: ../src/text-chemistry.cpp:226
 msgid "<b>No texts-on-paths</b> in the selection."
-msgstr ""
+msgstr "선택에서 경로상 선택 없음"
 
-#: ../src/text-chemistry.cpp:229 ../src/verbs.cpp:2285
+#: ../src/text-chemistry.cpp:229
+#: ../src/verbs.cpp:2285
 msgid "Remove text from path"
-msgstr ""
+msgstr "경로에서 문자열 제거"
 
-#: ../src/text-chemistry.cpp:269 ../src/text-chemistry.cpp:290
+#: ../src/text-chemistry.cpp:269
+#: ../src/text-chemistry.cpp:290
 msgid "Select <b>text(s)</b> to remove kerns from."
-msgstr ""
+msgstr "수동꼬리장식을 제거하기 위하여 문자열 선택"
 
 #: ../src/text-chemistry.cpp:293
 msgid "Remove manual kerns"
-msgstr ""
+msgstr "수동 꼬리장식 제거"
 
 #: ../src/text-chemistry.cpp:313
-msgid ""
-"Select <b>a text</b> and one or more <b>paths or shapes</b> to flow text "
-"into frame."
-msgstr ""
+msgid "Select <b>a text</b> and one or more <b>paths or shapes</b> to flow text into frame."
+msgstr "문자열을 프레임으로 넣기 위하여 한 개 이상의 경로 또는 모양과 문자열을 선택."
 
 #: ../src/text-chemistry.cpp:381
-#, fuzzy
 msgid "Flow text into shape"
-msgstr "ì\83\88ë¡\9cì\9a´ í\85\8dì\8a¤í\8a¸ ë\85¸ë\93\9c"
+msgstr "ì\9c ë\8f\99 ë¬¸ì\9e\90ì\97´ì\9d\84 ëª¨ì\96\91ì\9c¼ë¡\9c"
 
 #: ../src/text-chemistry.cpp:403
 msgid "Select <b>a flowed text</b> to unflow it."
-msgstr ""
+msgstr "문자열의 유동을 취소하기 위하여 유동 문자열 선택"
 
 #: ../src/text-chemistry.cpp:470
 msgid "Unflow flowed text"
-msgstr ""
+msgstr "유동 문자열을 유동 취소"
 
 #: ../src/text-chemistry.cpp:482
-#, fuzzy
 msgid "Select <b>flowed text(s)</b> to convert."
-msgstr "클론으로 만들 <b>객체</b>를 선택"
+msgstr "바꾸기 위한 <b>유동 문자열</b>."
 
 #: ../src/text-chemistry.cpp:500
 msgid "The flowed text(s) must be <b>visible</b> in order to be converted."
-msgstr ""
+msgstr "변환시키기 위하여 유동 문자열은 볼 수 있어야 합니다."
 
 #: ../src/text-chemistry.cpp:528
-#, fuzzy
 msgid "Convert flowed text to text"
-msgstr "글자를 곡선으로 변환"
+msgstr "유동 문자열을 문자열로 변환"
 
 #: ../src/text-chemistry.cpp:533
 msgid "<b>No flowed text(s)</b> to convert in the selection."
-msgstr ""
+msgstr "선택에서 변환시킬 유동 문자열이 없음"
 
 #: ../src/text-context.cpp:452
 msgid "<b>Click</b> to edit the text, <b>drag</b> to select part of the text."
-msgstr ""
+msgstr "문자열을 편집하기 위하여 클릭, 문자열 부분을 선택하기 위하여 끌기"
 
 #: ../src/text-context.cpp:454
-msgid ""
-"<b>Click</b> to edit the flowed text, <b>drag</b> to select part of the text."
-msgstr ""
+msgid "<b>Click</b> to edit the flowed text, <b>drag</b> to select part of the text."
+msgstr "유동 문자열을 편집하기 위하여 클릭, 문자열 부분을 선택하기 위하여 끌기"
 
 #: ../src/text-context.cpp:508
-#, fuzzy
 msgid "Create text"
-msgstr "ë\85¸ë\93\9c ì\82­ì \9c"
+msgstr "문ì\9e\90ì\97´ ì\83\9dì\84±"
 
 #: ../src/text-context.cpp:532
 msgid "Non-printable character"
-msgstr ""
+msgstr "비출력 문자"
 
 #: ../src/text-context.cpp:547
 msgid "Insert Unicode character"
-msgstr ""
+msgstr "유니코드 문자 삽입"
 
 #: ../src/text-context.cpp:582
 #, c-format
 msgid "Unicode (<b>Enter</b> to finish): %s: %s"
-msgstr ""
+msgstr "유니코드( 끝내기 위하여 Enter): %s: %s"
 
-#: ../src/text-context.cpp:584 ../src/text-context.cpp:849
+#: ../src/text-context.cpp:584
+#: ../src/text-context.cpp:849
 msgid "Unicode (<b>Enter</b> to finish): "
-msgstr ""
+msgstr "유니코드(끝내기 위하여 Enter):"
 
 #: ../src/text-context.cpp:659
 #, c-format
 msgid "<b>Flowed text frame</b>: %s &#215; %s"
-msgstr ""
+msgstr "<b>유동 문자열 프레임</b>: %s &#215; %s"
 
-#: ../src/text-context.cpp:691 ../src/text-context.cpp:1544
+#: ../src/text-context.cpp:691
+#: ../src/text-context.cpp:1544
 msgid "Type text; <b>Enter</b> to start new line."
-msgstr ""
+msgstr "문자열 입력: 새 줄을 시작하기 위하여 Enter"
 
 #: ../src/text-context.cpp:704
 msgid "Flowed text is created."
-msgstr ""
+msgstr "유동 문자열 생성"
 
 #: ../src/text-context.cpp:706
 msgid "Create flowed text"
-msgstr ""
+msgstr "유동 문자열 생성"
 
 #: ../src/text-context.cpp:708
-msgid ""
-"The frame is <b>too small</b> for the current font size. Flowed text not "
-"created."
-msgstr ""
+msgid "The frame is <b>too small</b> for the current font size. Flowed text not created."
+msgstr "프레임이 현재 글꼴 크기에 대하여 너무 작음. 문자열을 생성할 수 없음"
 
 #: ../src/text-context.cpp:834
 msgid "No-break space"
-msgstr ""
+msgstr "개행없음 공백"
 
 #: ../src/text-context.cpp:836
 msgid "Insert no-break space"
-msgstr ""
+msgstr "개행 없음 공백 삽입"
 
 #: ../src/text-context.cpp:873
-#, fuzzy
 msgid "Make bold"
-msgstr "ì\99\84ì \84í\9e\88 ë§\8cë\93¤ê¸°"
+msgstr "ì§\84í\95\98ê²\8c"
 
 #: ../src/text-context.cpp:891
 msgid "Make italic"
-msgstr ""
+msgstr "이태릭"
 
 #: ../src/text-context.cpp:930
-#, fuzzy
 msgid "New line"
-msgstr "ì¤\91ì\8b¬선"
+msgstr "ì\83\88 선"
 
 #: ../src/text-context.cpp:964
 msgid "Backspace"
-msgstr ""
+msgstr "백스페이스"
 
 #: ../src/text-context.cpp:1012
 msgid "Kern to the left"
-msgstr ""
+msgstr "꼬리장식을 왼쪽으로"
 
 #: ../src/text-context.cpp:1034
-#, fuzzy
 msgid "Kern to the right"
-msgstr "출력 목적지"
+msgstr "꼬리장식을 오른쪽으로"
 
 #: ../src/text-context.cpp:1056
 msgid "Kern up"
-msgstr ""
+msgstr "꼬리장식을 위로"
 
 #: ../src/text-context.cpp:1079
 msgid "Kern down"
-msgstr ""
+msgstr "꼬리장식을 아래로"
 
 #: ../src/text-context.cpp:1135
-#, fuzzy
 msgid "Rotate counterclockwise"
-msgstr "시계방향으로 회전"
+msgstr "시계방향으로 회전"
 
 #: ../src/text-context.cpp:1156
-#, fuzzy
 msgid "Rotate clockwise"
 msgstr "시계방향으로 회전"
 
-#: ../src/text-context.cpp:1173
-#, fuzzy
-msgid "Contract line spacing"
-msgstr "줄 간격:"
-
 #: ../src/text-context.cpp:1181
 msgid "Contract letter spacing"
-msgstr ""
+msgstr "문자 간격 축소"
 
 #: ../src/text-context.cpp:1200
-#, fuzzy
 msgid "Expand line spacing"
-msgstr "줄 간격:"
+msgstr "줄 간격 확대"
 
 #: ../src/text-context.cpp:1208
-#, fuzzy
 msgid "Expand letter spacing"
-msgstr "간격 설정:"
+msgstr "문자 간격 확대"
 
 #: ../src/text-context.cpp:1312
-#, fuzzy
 msgid "Paste text"
-msgstr "ë\88ì\9d´ê¸° ì¢\85ë¥\98(_S)"
+msgstr "문ì\9e\90ì\97´ ë¶\99ì\97¬ë\84£ê¸°"
 
 #: ../src/text-context.cpp:1542
 msgid "Type flowed text; <b>Enter</b> to start new paragraph."
-msgstr ""
+msgstr "유동 문자열 입력; 새 문단을 시작하기 위하여 Enter."
 
-#: ../src/text-context.cpp:1552 ../src/tools-switch.cpp:211
-msgid ""
-"<b>Click</b> to select or create text, <b>drag</b> to create flowed text; "
-"then type."
-msgstr ""
+#: ../src/text-context.cpp:1552
+#: ../src/tools-switch.cpp:211
+msgid "<b>Click</b> to select or create text, <b>drag</b> to create flowed text; then type."
+msgstr "문자열을 선택 또는 생성하기 위하여 클릭, 유동 문자열을 생성하기 위하여 끌기 한 후 입력."
 
 #: ../src/text-context.cpp:1659
-#, fuzzy
 msgid "Type text"
-msgstr "형태(_y): "
+msgstr "문자열 입력"
 
 #: ../src/text-editing.cpp:40
 msgid "You cannot edit <b>cloned character data</b>."
-msgstr ""
+msgstr "복제 문자 자료를 편집할 수 없음."
 
 #: ../src/tools-switch.cpp:151
-msgid ""
-"To edit a path, <b>click</b>, <b>Shift+click</b>, or <b>drag around</b> "
-"nodes to select them, then <b>drag</b> nodes and handles. <b>Click</b> on an "
-"object to select."
-msgstr ""
+msgid "To edit a path, <b>click</b>, <b>Shift+click</b>, or <b>drag around</b> nodes to select them, then <b>drag</b> nodes and handles. <b>Click</b> on an object to select."
+msgstr "경로 편집하기 위하여 클릭, Shift+클릭 또는 노드를 선택하기 위하여 노드 주변을 끌기한 후 노드와 핸들을 끌기. 선택하기 위하여 객체를 클릭"
 
 #: ../src/tools-switch.cpp:157
 msgid "To tweak a path by pushing, select it and drag over it."
-msgstr ""
+msgstr "밀기에 의한 객체 경로 조정 및 선택하여 끌기"
 
 #: ../src/tools-switch.cpp:163
-msgid ""
-"<b>Drag</b> to create a rectangle. <b>Drag controls</b> to round corners and "
-"resize. <b>Click</b> to select."
-msgstr ""
+msgid "<b>Drag</b> to create a rectangle. <b>Drag controls</b> to round corners and resize. <b>Click</b> to select."
+msgstr "직사각형을 생성하기 위하여 끌기, 모서리를 둥글게 또는 크기를 재설정하기 위하여 제어점을 끌기. 선택하기 위하여 클릭"
 
 #: ../src/tools-switch.cpp:169
-msgid ""
-"<b>Drag</b> to create a 3D box. <b>Drag controls</b> to resize in "
-"perspective. <b>Click</b> to select (with <b>Ctrl+Alt</b> for single faces)."
-msgstr ""
+msgid "<b>Drag</b> to create a 3D box. <b>Drag controls</b> to resize in perspective. <b>Click</b> to select (with <b>Ctrl+Alt</b> for single faces)."
+msgstr "3D 상자를 생성하기 위하여 끌기. 원근감의 크기를 조정하기 위하여 제어점 끌기. 단일 면 선택은 Ctrl+Alt 누른 채 클릭"
 
 #: ../src/tools-switch.cpp:175
-msgid ""
-"<b>Drag</b> to create an ellipse. <b>Drag controls</b> to make an arc or "
-"segment. <b>Click</b> to select."
-msgstr ""
+msgid "<b>Drag</b> to create an ellipse. <b>Drag controls</b> to make an arc or segment. <b>Click</b> to select."
+msgstr "타원을 생성하기 위하여 끌기. 호나 세크먼트를 생성하기 위하여 제어점 끌기. 선택하기 위하여 클릭"
 
 #: ../src/tools-switch.cpp:181
-msgid ""
-"<b>Drag</b> to create a star. <b>Drag controls</b> to edit the star shape. "
-"<b>Click</b> to select."
-msgstr ""
+msgid "<b>Drag</b> to create a star. <b>Drag controls</b> to edit the star shape. <b>Click</b> to select."
+msgstr "별을 생성하기 위하여 끌기. 별 모양을 편집하기 위하여 제어점 끌기. 선택하기 위하여 클릭"
 
 #: ../src/tools-switch.cpp:187
-msgid ""
-"<b>Drag</b> to create a spiral. <b>Drag controls</b> to edit the spiral "
-"shape. <b>Click</b> to select."
-msgstr ""
+msgid "<b>Drag</b> to create a spiral. <b>Drag controls</b> to edit the spiral shape. <b>Click</b> to select."
+msgstr "나선을 생성하기 위하여 끌기. 나선 모양을 편집하기 이하여 제어점 끌기. 선택하기 위하여 클릭"
 
 #: ../src/tools-switch.cpp:193
-msgid ""
-"<b>Drag</b> to create a freehand line. Start drawing with <b>Shift</b> to "
-"append to selected path. <b>Ctrl+click</b> to create single dots."
-msgstr ""
+msgid "<b>Drag</b> to create a freehand line. Start drawing with <b>Shift</b> to append to selected path. <b>Ctrl+click</b> to create single dots."
+msgstr "자유곡선을 생성하기 위하여 끌기. 선택 경로를 더하기 위하여 Shift 누른째 그리기 시작. 단일 점을 생성하기 위하여 Ctrl+클릭"
 
 #: ../src/tools-switch.cpp:199
-msgid ""
-"<b>Click</b> or <b>click and drag</b> to start a path; with <b>Shift</b> to "
-"append to selected path. <b>Ctrl+click</b> to create single dots."
-msgstr ""
+msgid "<b>Click</b> or <b>click and drag</b> to start a path; with <b>Shift</b> to append to selected path. <b>Ctrl+click</b> to create single dots."
+msgstr "경로를 시작하기 위하여 클릭 또는 클릭과 끌기. 선택 경로를 더하기 위하여 Shift 누름. 단일 점을 생성하기 위하여 Ctrl+클릭."
 
 #: ../src/tools-switch.cpp:205
-msgid ""
-"<b>Drag</b> to draw a calligraphic stroke; with <b>Ctrl</b> to track a "
-"guide, with <b>Alt</b> to thin/thicken. <b>Arrow keys</b> adjust width (left/"
-"right) and angle (up/down)."
-msgstr ""
+msgid "<b>Drag</b> to draw a calligraphic stroke; with <b>Ctrl</b> to track a guide, with <b>Alt</b> to thin/thicken. <b>Arrow keys</b> adjust width (left/right) and angle (up/down)."
+msgstr "글자체 윤곽선을 생성하기 위하여 끌기. 안내선을 나타내기 위하여 Ctrl, 얇게/두껍게 나타내기 위하여 Alt, 폭을 조정하기 위하여 왼쪽,오른쪽 화살표, 각도 조정은 위, 아래 화살표 사용."
 
 #: ../src/tools-switch.cpp:217
-msgid ""
-"<b>Drag</b> or <b>double click</b> to create a gradient on selected objects, "
-"<b>drag handles</b> to adjust gradients."
-msgstr ""
+msgid "<b>Drag</b> or <b>double click</b> to create a gradient on selected objects, <b>drag handles</b> to adjust gradients."
+msgstr "선택 객체의 그라디언트를 생성하기 위하여 끌기 또는 이중 클릭, 그라디언트를 조정하기 위하여 핸들을 끌기."
 
 #: ../src/tools-switch.cpp:223
-msgid ""
-"<b>Click</b> or <b>drag around an area</b> to zoom in, <b>Shift+click</b> to "
-"zoom out."
-msgstr ""
+msgid "<b>Click</b> or <b>drag around an area</b> to zoom in, <b>Shift+click</b> to zoom out."
+msgstr "확대시 클릭 또는 구간 주변 끌기, Shift+클릭은 축소"
 
 #: ../src/tools-switch.cpp:235
 msgid "<b>Click and drag</b> between shapes to create a connector."
-msgstr ""
+msgstr "연결자를 생성하기 위하여 모양 사이에서 클릭 및 끌기."
 
 #: ../src/tools-switch.cpp:241
-msgid ""
-"<b>Click</b> to paint a bounded area, <b>Shift+click</b> to union the new "
-"fill with the current selection, <b>Ctrl+click</b> to change the clicked "
-"object's fill and stroke to the current setting."
-msgstr ""
+msgid "<b>Click</b> to paint a bounded area, <b>Shift+click</b> to union the new fill with the current selection, <b>Ctrl+click</b> to change the clicked object's fill and stroke to the current setting."
+msgstr "경계 구간을 칠하기 이하여 클릭, 현재 선택을 새로운 채움으로 합하기 위하여 Shift+ 클릭, 클릭시 객체 채움과 윤곽선을 현재 설정으로 변경하기 위하여 Ctrl+ 클릭"
 
 #: ../src/tools-switch.cpp:247
-#, fuzzy
 msgid "<b>Drag</b> to erase."
-msgstr "<b>링크</b> 를 %s"
+msgstr "지우기 위해 <b>끌기</b>"
 
 #: ../src/trace/potrace/inkscape-potrace.cpp:524
 #: ../src/trace/potrace/inkscape-potrace.cpp:598
 #, c-format
 msgid "Trace: %d.  %ld nodes"
-msgstr ""
+msgstr "따오기: %d.  %ld 노드"
 
-#: ../src/trace/trace.cpp:71 ../src/trace/trace.cpp:136
-#: ../src/trace/trace.cpp:144 ../src/trace/trace.cpp:243
+#: ../src/trace/trace.cpp:71
+#: ../src/trace/trace.cpp:136
+#: ../src/trace/trace.cpp:144
+#: ../src/trace/trace.cpp:243
 msgid "Select an <b>image</b> to trace"
-msgstr ""
+msgstr "따오기 위한 이미지 선택"
 
 #: ../src/trace/trace.cpp:106
 msgid "Select only one <b>image</b> to trace"
-msgstr ""
+msgstr "따오기 위한 한 개의 이미지만 선택"
 
 #: ../src/trace/trace.cpp:124
 msgid "Select one image and one or more shapes above it"
-msgstr ""
+msgstr "한 개의 이미지와 한 개 이상의 모양을 선택"
 
 #: ../src/trace/trace.cpp:234
 msgid "Trace: No active desktop"
-msgstr ""
+msgstr "따오기: 활성 데스크톱이 없음"
 
 #: ../src/trace/trace.cpp:333
 msgid "Invalid SIOX result"
-msgstr ""
+msgstr "부적합한 SIOX 결과"
 
 #: ../src/trace/trace.cpp:438
 msgid "Trace: No active document"
-msgstr ""
+msgstr "따오기: 활성 문서가 없음"
 
 #: ../src/trace/trace.cpp:461
 msgid "Trace: Image has no bitmap data"
-msgstr ""
+msgstr "따오기: 이미지는 비트맵 자료가 없음"
 
 #: ../src/trace/trace.cpp:468
-#, fuzzy
 msgid "Trace: Starting trace..."
-msgstr "ë¹\84í\8a¸ë§´ ë\94°ì\98¤ê¸°(_T)..."
+msgstr "ë\94°ì\98¤ê¸°: ë\94°ì\98¤ê¸° ì\8b\9cì\9e\91..."
 
 #. ## inform the document, so we can undo
 #: ../src/trace/trace.cpp:570
-#, fuzzy
 msgid "Trace bitmap"
-msgstr "중심선"
+msgstr "비트맵 따오기"
 
 #: ../src/trace/trace.cpp:574
 #, c-format
 msgid "Trace: Done. %ld nodes created"
-msgstr ""
+msgstr "따오기: 완료. %ld 노드 생성"
 
 #: ../src/tweak-context.cpp:960
 msgid "<b>Nothing selected!</b> Select objects to tweak."
-msgstr ""
+msgstr "선택되지 않음! 조정하기 위하여 객체 선택"
 
 #: ../src/tweak-context.cpp:965
-#, fuzzy, c-format
-msgid "<b>Pushing %d</b> selected object"
-msgid_plural "<b>Pushing %d</b> selected objects"
-msgstr[0] "선택한 객체 배분"
-msgstr[1] "선택한 객체 배분"
-
 #: ../src/tweak-context.cpp:970
-#, fuzzy, c-format
-msgid "<b>Shrinking %d</b> selected object"
-msgid_plural "<b>Shrinking %d</b> selected objects"
-msgstr[0] "선택한 객체 배분"
-msgstr[1] "선택한 객체 배분"
-
 #: ../src/tweak-context.cpp:975
-#, fuzzy, c-format
+#, c-format
 msgid "<b>Growing %d</b> selected object"
-msgid_plural "<b>Growing %d</b> selected objects"
-msgstr[0] "선택한 객체 배분"
-msgstr[1] "선택한 객체 배분"
+msgstr "%d 선택 객체 확대"
 
 #: ../src/tweak-context.cpp:980
-#, fuzzy, c-format
-msgid "<b>Attracting %d</b> selected object"
-msgid_plural "<b>Attracting %d</b> selected objects"
-msgstr[0] "선택한 객체 배분"
-msgstr[1] "선택한 객체 배분"
-
 #: ../src/tweak-context.cpp:985
-#, fuzzy, c-format
+#, c-format
 msgid "<b>Repelling %d</b> selected object"
-msgid_plural "<b>Repelling %d</b> selected objects"
-msgstr[0] "선택됀 객체의 복사본 만들기"
-msgstr[1] "선택됀 객체의 복사본 만들기"
+msgstr "%d 선택 객체 되튀기"
 
 #: ../src/tweak-context.cpp:990
-#, fuzzy, c-format
+#, c-format
 msgid "<b>Roughening %d</b> selected object"
-msgid_plural "<b>Roughening %d</b> selected objects"
-msgstr[0] "선택됀 객체의 복사본 만들기"
-msgstr[1] "선택됀 객체의 복사본 만들기"
+msgstr "%d 선택 객체 거칠게 하기"
 
 #: ../src/tweak-context.cpp:995
-#, fuzzy, c-format
+#, c-format
 msgid "<b>Painting %d</b> selected object"
-msgid_plural "<b>Painting %d</b> selected objects"
-msgstr[0] "선택한 객체 배분"
-msgstr[1] "선택한 객체 배분"
+msgstr "%d 선택 객체 칠하기"
 
 #: ../src/tweak-context.cpp:1000
 #, c-format
 msgid "<b>Jittering colors in %d</b> selected object"
-msgid_plural "<b>Jittering colors in %d</b> selected objects"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "%d 선택 객체에서 색상이 점이적으로 변함"
 
 #: ../src/tweak-context.cpp:1040
 msgid "Push tweak"
-msgstr ""
+msgstr "밀기 조정"
 
 #: ../src/tweak-context.cpp:1044
 msgid "Shrink tweak"
-msgstr ""
+msgstr "축소 조정"
 
 #: ../src/tweak-context.cpp:1048
 msgid "Grow tweak"
-msgstr ""
+msgstr "확대 조정"
 
 #: ../src/tweak-context.cpp:1052
 msgid "Attract tweak"
-msgstr ""
+msgstr "유인 조정"
 
 #: ../src/tweak-context.cpp:1056
 msgid "Repel tweak"
-msgstr ""
+msgstr "반발 조정"
 
 #: ../src/tweak-context.cpp:1060
 msgid "Roughen tweak"
-msgstr ""
+msgstr "거침 조정"
 
 #: ../src/tweak-context.cpp:1064
 msgid "Color paint tweak"
-msgstr ""
+msgstr "색상 칠하기 조정"
 
 #: ../src/tweak-context.cpp:1068
 msgid "Color jitter tweak"
-msgstr ""
+msgstr "색상 전이 조정"
 
 #. check whether something is selected
 #: ../src/ui/clipboard.cpp:205
 msgid "Nothing was copied."
-msgstr "ë³µì\82¬ë\90\9cê²\8c ì\97\86ì\9d\8c"
+msgstr "ë³µì\82¬ë\90\98ì§\80 ì\95\8aì\9d\8c."
 
-#: ../src/ui/clipboard.cpp:266 ../src/ui/clipboard.cpp:428
+#: ../src/ui/clipboard.cpp:266
+#: ../src/ui/clipboard.cpp:428
 #: ../src/ui/clipboard.cpp:452
 msgid "Nothing on the clipboard."
-msgstr "클립보드에 아무것도 없음"
+msgstr "클립보드에 아무 것도 없음."
 
 #: ../src/ui/clipboard.cpp:288
 msgid "Select <b>object(s)</b> to paste style to."
-msgstr ""
+msgstr "스타일을 붙여넣기할 객체 선택"
 
-#: ../src/ui/clipboard.cpp:294 ../src/ui/clipboard.cpp:311
-#, fuzzy
+#: ../src/ui/clipboard.cpp:294
+#: ../src/ui/clipboard.cpp:311
 msgid "No style on the clipboard."
-msgstr "í\81´ë¦½ë³´ë\93\9cì\97\90 ì\95\84무ê²\83ë\8f\84 없음"
+msgstr "í\81´ë¦½ë³´ë\93\9cì\83\81 ì\8a¤í\83\80ì\9d¼ 없음"
 
 #: ../src/ui/clipboard.cpp:333
 msgid "Select <b>object(s)</b> to paste size to."
-msgstr ""
+msgstr "크기를 붙여넣기할 객체 선택"
 
 #: ../src/ui/clipboard.cpp:340
-#, fuzzy
 msgid "No size on the clipboard."
-msgstr "í\81´ë¦½ë³´ë\93\9cì\97\90 ì\95\84무ê²\83ë\8f\84 없음"
+msgstr "í\81´ë¦½ë³´ë\93\9cì\83\81 í\81¬ê¸° 없음"
 
 #: ../src/ui/clipboard.cpp:391
-#, fuzzy
 msgid "Select <b>object(s)</b> to paste live path effect to."
-msgstr "í\81´ë¡ ì\9c¼ë¡\9c ë§\8cë\93¤ <b>ê°\9dì²´</b>를 ì\84 í\83\9d"
+msgstr "í\99\9cì\84± ê²½ë¡\9c í\9a¨ê³¼ë¥¼ ë¶\99ì\97¬ë\84£ê¸° ì\9c\84í\95\98ì\97¬ <b>ê°\9dì²´</b> ì\84 í\83\9d."
 
 #. no_effect:
 #: ../src/ui/clipboard.cpp:415
-#, fuzzy
 msgid "No effect on the clipboard."
-msgstr "í\81´ë¦½ë³´ë\93\9cì\97\90 ì\95\84무ê²\83ë\8f\84 없음"
+msgstr "í\81´ë¦½ë³´ë\93\9cì\83\81ì\97\90 í\9a¨ê³¼ 없음"
 
-#: ../src/ui/clipboard.cpp:435 ../src/ui/clipboard.cpp:462
+#: ../src/ui/clipboard.cpp:435
+#: ../src/ui/clipboard.cpp:462
 msgid "Clipboard does not contain a path."
-msgstr ""
+msgstr "클립보드는 경로를 포함하지 않음"
 
 #. Item dialog
 #: ../src/ui/context-menu.cpp:100
 msgid "Object _Properties"
-msgstr ""
+msgstr "객체 속성(_P)"
 
 #. Select item
 #: ../src/ui/context-menu.cpp:110
 msgid "_Select This"
-msgstr ""
+msgstr "이것을 선택(_S)"
 
 #. Create link
 #: ../src/ui/context-menu.cpp:120
 msgid "_Create Link"
-msgstr ""
+msgstr "링크 생성(_C)"
 
 #: ../src/ui/context-menu.cpp:177
-#, fuzzy
 msgid "Create link"
-msgstr "중심선"
+msgstr "링크 생성"
 
 #. "Ungroup"
-#: ../src/ui/context-menu.cpp:195 ../src/verbs.cpp:2279
+#: ../src/ui/context-menu.cpp:195
+#: ../src/verbs.cpp:2279
 msgid "_Ungroup"
-msgstr ""
+msgstr "그룹 해제(_U)"
 
 #. Link dialog
 #: ../src/ui/context-menu.cpp:235
 msgid "Link _Properties"
-msgstr ""
+msgstr "링크 속성(_P)"
 
 #. Select item
 #: ../src/ui/context-menu.cpp:241
 msgid "_Follow Link"
-msgstr ""
+msgstr "다음 링크"
 
 #. Reset transformations
 #: ../src/ui/context-menu.cpp:246
 msgid "_Remove Link"
-msgstr ""
+msgstr "링크 제거(_R)"
 
 #. Link dialog
 #: ../src/ui/context-menu.cpp:294
 msgid "Image _Properties"
-msgstr ""
+msgstr "이미지 속성(_P)"
 
 #: ../src/ui/context-menu.cpp:300
 msgid "Edit Externally..."
-msgstr ""
+msgstr "외부에서 편집.."
 
 #. Item dialog
 #: ../src/ui/context-menu.cpp:392
 msgid "_Fill and Stroke"
-msgstr ""
+msgstr "채움/윤곽선(_F)"
 
 #. *
 #. * Constructor
 #.
 #: ../src/ui/dialog/aboutbox.cpp:77
 msgid "About Inkscape"
-msgstr "잉크스 케이트에 대하여"
+msgstr "Inkscape에 대하여"
 
 #: ../src/ui/dialog/aboutbox.cpp:88
 msgid "_Splash"
-msgstr ""
+msgstr "스플래시(_S)"
 
 #: ../src/ui/dialog/aboutbox.cpp:92
 msgid "_Authors"
-msgstr ""
+msgstr "저작자(_A)"
 
 #: ../src/ui/dialog/aboutbox.cpp:94
 msgid "_Translators"
-msgstr ""
+msgstr "번역자(_T)"
 
 #: ../src/ui/dialog/aboutbox.cpp:96
 msgid "_License"
-msgstr ""
+msgstr "저작권(_L)"
 
 #. TRANSLATORS: This is the filename of the `About Inkscape' picture in
 #. the `screens' directory.  Thus the translation of "about.svg" should be
@@ -9163,694 +8558,641 @@ msgstr ""
 #. should be in UTF-*8..
 #: ../src/ui/dialog/aboutbox.cpp:149
 msgid "about.svg"
-msgstr "about.svg"
+msgstr "대하여.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:338
 msgid "translator-credits"
-msgstr ""
+msgstr "translator-credits"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:234
 #: ../src/ui/dialog/align-and-distribute.cpp:776
 msgid "Align"
-msgstr ""
+msgstr "배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:392
 #: ../src/ui/dialog/align-and-distribute.cpp:777
 msgid "Distribute"
-msgstr ""
+msgstr "정렬"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:461
 msgid "Minimum horizontal gap (in px units) between bounding boxes"
-msgstr ""
+msgstr "경계 상자 사이 최소 수평 간격(화소)"
 
 #. TRANSLATORS: Horizontal gap. Only put "H:" equivalent in the translation
 #: ../src/ui/dialog/align-and-distribute.cpp:463
 msgid "gap|H:"
-msgstr ""
+msgstr "간격|높이:"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:471
 msgid "Minimum vertical gap (in px units) between bounding boxes"
-msgstr ""
+msgstr "경계 상자 사이 최소 수직 간격(화소)"
 
 #. TRANSLATORS: Vertical gap
 #: ../src/ui/dialog/align-and-distribute.cpp:473
 msgid "V:"
-msgstr ""
+msgstr "간격|수직:"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:501
 #: ../src/ui/dialog/align-and-distribute.cpp:778
 #: ../src/widgets/toolbox.cpp:5626
 msgid "Remove overlaps"
-msgstr ""
+msgstr "중첩 제거"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:531
 #: ../src/widgets/toolbox.cpp:5484
-#, fuzzy
 msgid "Arrange connector network"
-msgstr "ì\83\88 ì\97°ê²°ì\9e\90 ì\83\9dì\84±"
+msgstr "ì\97°ê²°ì\9e\90 ë\84¤í\8a¸ì\9b\8cí\81¬ ë°°ì\97´"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:561
 msgid "Unclump"
-msgstr ""
+msgstr "Unclump"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:631
-#, fuzzy
 msgid "Randomize positions"
 msgstr "임의의 위치"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:728
-#, fuzzy
 msgid "Distribute text baselines"
-msgstr "ì\86\8dì\84± ì\9d´ë¦\84"
+msgstr "문ì\9e\90ì\97´ ê¸°ì¤\80ì\84  ë°°ë¶\84"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:748
-#, fuzzy
 msgid "Align text baselines"
-msgstr "왼쪽으로 정렬"
+msgstr "텍스트 기준선 정렬"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:779
 msgid "Connector network layout"
-msgstr ""
+msgstr "연결자 네트워크 윤곽"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:780
 msgid "Nodes"
-msgstr ""
+msgstr "노드"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:786
 msgid "Relative to: "
-msgstr ""
+msgstr "관계:"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:791
 msgid "Align right sides of objects to left side of anchor"
-msgstr ""
+msgstr "객체 오른쪽 면에서 조절점 왼쪽 면으로 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:794
 msgid "Align left sides"
-msgstr ""
+msgstr "왼쪽 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:797
 msgid "Center on vertical axis"
-msgstr ""
+msgstr "수직 축 중앙"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:800
 msgid "Align right sides"
-msgstr ""
+msgstr "오른쪽 면 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:803
 msgid "Align left sides of objects to right side of anchor"
-msgstr ""
+msgstr "객체 왼쪽 면에서 조절점 오른쪽 면으로 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:806
 msgid "Align bottoms of objects to top of anchor"
-msgstr ""
+msgstr "객체 최하단에서 조절점 최상단으로 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:809
 msgid "Align tops"
-msgstr ""
+msgstr "최상단 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:812
 msgid "Center on horizontal axis"
-msgstr ""
+msgstr "수평 축 중앙"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:815
 msgid "Align bottoms"
-msgstr ""
+msgstr "최하단 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:818
 msgid "Align tops of objects to bottom of anchor"
-msgstr ""
+msgstr "객체 최상단에서 조절점 최하단으로 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:823
 msgid "Align baseline anchors of texts vertically"
-msgstr ""
+msgstr "수직으로 문자열 기준선에 조절점 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:826
 msgid "Align baseline anchors of texts horizontally"
-msgstr ""
+msgstr "수평으로 문자열 기준선에 조절점 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:831
 msgid "Make horizontal gaps between objects equal"
-msgstr ""
+msgstr "객체를 등거리 수평 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:835
 msgid "Distribute left sides equidistantly"
-msgstr ""
+msgstr "왼쪽 면 등거리 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:838
 msgid "Distribute centers equidistantly horizontally"
-msgstr ""
+msgstr "중앙 등거리 수평으로 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:841
 msgid "Distribute right sides equidistantly"
-msgstr ""
+msgstr "오른쪽 면 등거리 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:845
 msgid "Make vertical gaps between objects equal"
-msgstr ""
+msgstr "객체를 등거리 수직 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:849
 msgid "Distribute tops equidistantly"
-msgstr ""
+msgstr "최상단 등거리 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:852
 msgid "Distribute centers equidistantly vertically"
-msgstr ""
+msgstr "중앙 등거리 수직 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:855
 msgid "Distribute bottoms equidistantly"
-msgstr ""
+msgstr "최하단 등거리 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:860
 msgid "Distribute baseline anchors of texts horizontally"
-msgstr ""
+msgstr "수평으로 문자열 기준선에 조절점 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:863
 msgid "Distribute baseline anchors of texts vertically"
-msgstr ""
+msgstr "수직으로 문자열 기준선을 조절점 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:868
 msgid "Randomize centers in both dimensions"
-msgstr ""
+msgstr "양쪽 크기에서 중앙으로 무작위"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:871
 msgid "Unclump objects: try to equalize edge-to-edge distances"
-msgstr ""
+msgstr "객체 배열: 모서리-모서리 등거리로"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:876
-msgid ""
-"Move objects as little as possible so that their bounding boxes do not "
-"overlap"
-msgstr ""
+msgid "Move objects as little as possible so that their bounding boxes do not overlap"
+msgstr "경계 상자를 중첩시키지 않기 위하여 가능한한 약간 객체를 이동"
 
+#: ../src/ui/dialog/align-and-distribute.cpp:876
 #: ../src/ui/dialog/align-and-distribute.cpp:880
 #: ../src/widgets/toolbox.cpp:5588
 msgid "Nicely arrange selected connector network"
-msgstr ""
+msgstr "선택 연결자 네트워크를 좋게 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:885
 msgid "Align selected nodes horizontally"
-msgstr ""
+msgstr "선택 노드를 수평으로 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:888
 msgid "Align selected nodes vertically"
-msgstr ""
+msgstr "선택 노드를 수직으로 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:891
 msgid "Distribute selected nodes horizontally"
-msgstr ""
+msgstr "선택 노드를 수평으로 배열"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:894
 msgid "Distribute selected nodes vertically"
-msgstr ""
+msgstr "선택 노드를 수직으로 배열"
 
 #. Rest of the widgetry
 #: ../src/ui/dialog/align-and-distribute.cpp:899
 msgid "Last selected"
-msgstr ""
+msgstr "마지막 선택된 것"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:900
 msgid "First selected"
-msgstr ""
+msgstr "처음 선택된 것"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:901
 msgid "Biggest item"
-msgstr ""
+msgstr "가장 큰 객체"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:902
 msgid "Smallest item"
-msgstr ""
+msgstr "가장 작은 객체"
 
 #: ../src/ui/dialog/align-and-distribute.cpp:904
 #: ../src/widgets/desktop-widget.cpp:1548
 msgid "Drawing"
-msgstr ""
+msgstr "그림"
 
 #: ../src/ui/dialog/document-metadata.cpp:79
 msgid "Metadata"
-msgstr ""
+msgstr "문서 정보"
 
 #: ../src/ui/dialog/document-metadata.cpp:80
 msgid "License"
-msgstr ""
+msgstr "저작권"
 
 #: ../src/ui/dialog/document-metadata.cpp:160
 msgid "<b>Dublin Core Entities</b>"
-msgstr ""
+msgstr "<b>문서 주요 정보</b>"
 
 #: ../src/ui/dialog/document-metadata.cpp:182
 msgid "<b>License</b>"
-msgstr ""
+msgstr "<b>저작권</b>"
 
 #. ---------------------------------------------------------------
 #: ../src/ui/dialog/document-properties.cpp:88
 msgid "Show page _border"
-msgstr ""
+msgstr "페이지 경계 보이기(_B)"
 
 #: ../src/ui/dialog/document-properties.cpp:88
 msgid "If set, rectangular page border is shown"
-msgstr ""
+msgstr "설정시, 직사각형 페이지 경계가 보임"
 
 #: ../src/ui/dialog/document-properties.cpp:89
 msgid "Border on _top of drawing"
-msgstr ""
+msgstr "그림내 페이지 경계 보이기(_T)"
 
 #: ../src/ui/dialog/document-properties.cpp:89
 msgid "If set, border is always on top of the drawing"
-msgstr ""
+msgstr "설정시, 페이지 최상단에 걸친 객체내 페이지 경계가 나타남"
 
 #: ../src/ui/dialog/document-properties.cpp:90
 msgid "_Show border shadow"
-msgstr ""
+msgstr "경계 음영 보이기(_S)"
 
 #: ../src/ui/dialog/document-properties.cpp:90
 msgid "If set, page border shows a shadow on its right and lower side"
-msgstr ""
+msgstr "설정시, 페이지 경계 중 오른쪽 아래면에서 음영이 나타남."
 
 #: ../src/ui/dialog/document-properties.cpp:91
 msgid "Back_ground:"
-msgstr ""
+msgstr "배경(_G):"
 
 #: ../src/ui/dialog/document-properties.cpp:91
 msgid "Background color"
-msgstr ""
+msgstr "배경 색상"
 
 #: ../src/ui/dialog/document-properties.cpp:91
-msgid ""
-"Color and transparency of the page background (also used for bitmap export)"
-msgstr ""
+msgid "Color and transparency of the page background (also used for bitmap export)"
+msgstr "페이지 배경의 색상 및 투명도 (비트맵 내보내기에 사용)"
 
 #: ../src/ui/dialog/document-properties.cpp:92
 msgid "Border _color:"
-msgstr ""
+msgstr "경계 색상(_C):"
 
 #: ../src/ui/dialog/document-properties.cpp:92
 msgid "Page border color"
-msgstr ""
+msgstr "페이지 경계 색상"
 
 #: ../src/ui/dialog/document-properties.cpp:92
 msgid "Color of the page border"
-msgstr ""
+msgstr "페이지 경계 색상"
 
 #: ../src/ui/dialog/document-properties.cpp:93
 msgid "Default _units:"
-msgstr ""
+msgstr "기본 단위(_U):"
 
 #. ---------------------------------------------------------------
 #. General snap options
 #: ../src/ui/dialog/document-properties.cpp:97
 msgid "Show _guides"
-msgstr ""
+msgstr "안내선 보이기(_G)"
 
 #: ../src/ui/dialog/document-properties.cpp:97
 msgid "Show or hide guides"
-msgstr ""
+msgstr "안내선 보이기 또는 숨기기"
 
 #: ../src/ui/dialog/document-properties.cpp:98
 msgid "_Snap guides while dragging"
-msgstr ""
+msgstr "끌기하는 동안 안내선 붙이기(_S)"
 
 #: ../src/ui/dialog/document-properties.cpp:98
-msgid ""
-"While dragging a guide, snap to object nodes or bounding box corners ('Snap "
-"to nodes' or 'snap to bounding box corners' must be enabled in the 'Snap' "
-"tab; only a small part of the guide near the cursor will snap)"
-msgstr ""
+msgid "While dragging a guide, snap to object nodes or bounding box corners ('Snap to nodes' or 'snap to bounding box corners' must be enabled in the 'Snap' tab; only a small part of the guide near the cursor will snap)"
+msgstr "안내선을 끌기하는 동안, 객체 노드 또는 경계 상자 모서리에 붙이기( '붙이기' 설정이 되어있어야 가능)"
 
 #: ../src/ui/dialog/document-properties.cpp:100
 msgid "Guide co_lor:"
-msgstr ""
+msgstr "안내선 색상(_L):"
 
 #: ../src/ui/dialog/document-properties.cpp:100
 msgid "Guideline color"
-msgstr ""
+msgstr "안내선 색상"
 
 #: ../src/ui/dialog/document-properties.cpp:100
 msgid "Color of guidelines"
-msgstr ""
+msgstr "안내선 색상"
 
 #: ../src/ui/dialog/document-properties.cpp:101
 msgid "_Highlight color:"
-msgstr ""
+msgstr "강조 색상(_H):"
 
 #: ../src/ui/dialog/document-properties.cpp:101
 msgid "Highlighted guideline color"
-msgstr ""
+msgstr "강조 안내선 색상"
 
 #: ../src/ui/dialog/document-properties.cpp:101
 msgid "Color of a guideline when it is under mouse"
-msgstr ""
+msgstr "마우스 아래 있을 때 안내선의 색상"
 
 #. ---------------------------------------------------------------
 #: ../src/ui/dialog/document-properties.cpp:103
 msgid "_Enable snapping"
-msgstr ""
+msgstr "붙이기 가능(_E)"
 
-#: ../src/ui/dialog/document-properties.cpp:103 ../src/verbs.cpp:2498
+#: ../src/ui/dialog/document-properties.cpp:103
+#: ../src/verbs.cpp:2498
 msgid "Toggle snapping on or off"
-msgstr ""
+msgstr "붙이기 On 또는 off 토글"
 
 #: ../src/ui/dialog/document-properties.cpp:104
 msgid "_Enable snap indicator"
-msgstr ""
+msgstr "붙이기 지시자 가능(_E)"
 
 #: ../src/ui/dialog/document-properties.cpp:104
 msgid "After snapping, a symbol is drawn at the point that has snapped"
-msgstr ""
+msgstr "붙이기 후, 붙이기한 지점에서 심볼이 보임"
 
 #: ../src/ui/dialog/document-properties.cpp:105
 msgid "_Bounding box corners"
-msgstr ""
+msgstr "경계 상자 모서리(_B)"
 
 #: ../src/ui/dialog/document-properties.cpp:105
-msgid ""
-"Only available in the selector tool: snap bounding box corners to guides, to "
-"grids, and to other bounding boxes (but not to nodes or paths)"
-msgstr ""
+msgid "Only available in the selector tool: snap bounding box corners to guides, to grids, and to other bounding boxes (but not to nodes or paths)"
+msgstr "선택 도구에서만 가능: 경계 상자 모서리를 안내선, 격자 그리고 다른 경계 상자에 붙이기(노드나 경로는 아님)"
 
 #: ../src/ui/dialog/document-properties.cpp:107
-#, fuzzy
 msgid "_Nodes"
-msgstr "노드"
+msgstr "노드(_N)"
 
 #: ../src/ui/dialog/document-properties.cpp:107
-msgid ""
-"Snap nodes (e.g. path nodes, special points in shapes, gradient handles, "
-"text base points, transformation origins, etc.) to guides, to grids, to "
-"paths and to other nodes"
-msgstr ""
+msgid "Snap nodes (e.g. path nodes, special points in shapes, gradient handles, text base points, transformation origins, etc.) to guides, to grids, to paths and to other nodes"
+msgstr "노드를 안내선, 격자, 경로, 다른 노드에 붙이기(즉, 경로 노드, 모양, 그라디언트 핸들, 문자열 기준점, 변형 원본등)에서 특별한 점, "
 
 #. Options for snapping to objects
 #: ../src/ui/dialog/document-properties.cpp:110
-#, fuzzy
 msgid "Snap to path_s"
-msgstr "노드 올리기"
+msgstr "경로에 붙이기(_S)"
 
 #: ../src/ui/dialog/document-properties.cpp:110
 msgid "Snap nodes to object paths"
-msgstr ""
+msgstr "노드를 객체 경로에 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:111
-#, fuzzy
 msgid "Snap to n_odes"
-msgstr "노드 올리기"
+msgstr "노드에 붙이기(_O)"
 
 #: ../src/ui/dialog/document-properties.cpp:111
 msgid "Snap nodes and guides to object nodes"
-msgstr ""
+msgstr "노드와 안내선을 객체 노드에 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:112
-#, fuzzy
 msgid "Snap to bounding bo_x edges"
-msgstr "노드 올리기"
+msgstr "경계 상자 모서리에 붙이기(_X)"
 
 #: ../src/ui/dialog/document-properties.cpp:112
 msgid "Snap bounding box corners and guides to bounding box edges"
-msgstr ""
+msgstr "경계 상자 모서리 그리고 안내선을 경계 상자 모서리에 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:113
 msgid "Snap to bounding box co_rners"
-msgstr ""
+msgstr "경계 상자 모서리에 붙이기(_R)"
 
 #: ../src/ui/dialog/document-properties.cpp:113
 msgid "Snap bounding box corners to other bounding box corners"
-msgstr ""
+msgstr "경계 상자 모서리를 다른 경계 상자 모서리에 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:114
-#, fuzzy
 msgid "Snap to page border"
-msgstr "노드 올리기"
+msgstr "페이지 경계에 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:114
 msgid "Snap bounding box corners and nodes to the page border"
-msgstr ""
+msgstr "경계 상자 모서리와 노드를 페이지 경계에 붙이기"
 
 #. ---------------------------------------------------------------
 #. Applies to both nodes and guides, but not to bboxes, that's why its located here
 #: ../src/ui/dialog/document-properties.cpp:117
-#, fuzzy
 msgid "Rotation _center"
-msgstr "회전(_R)"
+msgstr "중앙 회전(_R)"
 
 #: ../src/ui/dialog/document-properties.cpp:117
 msgid "Consider the rotation center of an object when snapping"
-msgstr ""
+msgstr "붙이기할 때 객체의 회전 중심을 고려"
 
 #: ../src/ui/dialog/document-properties.cpp:118
 msgid "_Grid with guides"
-msgstr ""
+msgstr "안내선 있는 격자(_G)"
 
 #: ../src/ui/dialog/document-properties.cpp:118
 msgid "Snap to grid-guide intersections"
-msgstr ""
+msgstr "격자 안내선 교차지점에 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:119
-#, fuzzy
 msgid "_Line segments"
-msgstr "선택부분 지우기"
+msgstr "선 세그먼트(_L)"
 
 #: ../src/ui/dialog/document-properties.cpp:119
-msgid ""
-"Snap to intersections of line segments ('snap to paths' must be enabled, see "
-"the previous tab)"
-msgstr ""
+msgid "Snap to intersections of line segments ('snap to paths' must be enabled, see the previous tab)"
+msgstr "선 세그먼트의 교차점에 붙이기('경로에 붙이기' 설정이 되어있어야 가능)"
 
 #. TRANSLATORS: In Grid|_New translate only the word _New. It ref to grid
 #: ../src/ui/dialog/document-properties.cpp:124
-#, fuzzy
 msgid "Grid|_New"
-msgstr "격자"
+msgstr "격자|새로 생성(_N)"
 
 #: ../src/ui/dialog/document-properties.cpp:124
-#, fuzzy
 msgid "Create new grid."
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì\83\88 ê²©ì\9e\90 ì\83\9dì\84±"
 
 #: ../src/ui/dialog/document-properties.cpp:125
-#, fuzzy
 msgid "_Remove"
-msgstr "제거"
+msgstr "격자 제거(_R)"
 
 #: ../src/ui/dialog/document-properties.cpp:125
-#, fuzzy
 msgid "Remove selected grid."
-msgstr "선택 상태 보존"
+msgstr "선택 격자 제거"
 
 #: ../src/ui/dialog/document-properties.cpp:135
-#, fuzzy
 msgid "Guides"
-msgstr "가이드(_u)"
+msgstr "안내선"
 
 #: ../src/ui/dialog/document-properties.cpp:136
 #: ../src/ui/dialog/inkscape-preferences.cpp:905
-#, fuzzy
 msgid "Grids"
 msgstr "격자"
 
-#: ../src/ui/dialog/document-properties.cpp:137 ../src/verbs.cpp:2498
-#, fuzzy
+#: ../src/ui/dialog/document-properties.cpp:137
+#: ../src/verbs.cpp:2498
 msgid "Snap"
-msgstr "ë\8b¨ê³\84"
+msgstr "ë\99ì\9d´ê¸°"
 
 #: ../src/ui/dialog/document-properties.cpp:138
-#, fuzzy
 msgid "Snap points"
-msgstr "노드 올리기"
+msgstr "점 붙이기 "
 
 #: ../src/ui/dialog/document-properties.cpp:227
 msgid "<b>General</b>"
-msgstr ""
+msgstr "<b>일반</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:229
 msgid "<b>Border</b>"
-msgstr ""
+msgstr "<b>경계</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:231
 msgid "<b>Format</b>"
-msgstr ""
+msgstr "<b>형식</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:259
 msgid "<b>Guides</b>"
-msgstr ""
+msgstr "<b>안내선</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:278
-#, fuzzy
 msgid "Snap _distance"
-msgstr "잉크스케이프: 고급(_A)"
+msgstr "붙이기 거리(_D)"
 
 #: ../src/ui/dialog/document-properties.cpp:278
 msgid "Snap only when _closer than:"
-msgstr ""
+msgstr "보다 가까울 때만 붙이기(_C)"
 
 #: ../src/ui/dialog/document-properties.cpp:278
 #: ../src/ui/dialog/document-properties.cpp:284
 #: ../src/ui/dialog/document-properties.cpp:290
 msgid "Always snap"
-msgstr ""
+msgstr "항상 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:279
 msgid "Snapping distance, in screen pixels, for snapping to objects"
-msgstr ""
+msgstr "객체를 붙이기 위한 붙이기 거리"
 
 #: ../src/ui/dialog/document-properties.cpp:279
 msgid "Always snap to objects, regardless of their distance"
-msgstr ""
+msgstr "거리와 무관하게 객체를 항상 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:280
-msgid ""
-"If set, objects only snap to another object when it's within the range "
-"specified below"
-msgstr ""
+msgid "If set, objects only snap to another object when it's within the range specified below"
+msgstr "설정시, 객체들이 지정된 범위내에 있을 때 다른 객체에 붙이기됨"
 
 #. Options for snapping to grids
 #: ../src/ui/dialog/document-properties.cpp:284
-#, fuzzy
 msgid "Snap d_istance"
-msgstr "잉크스케이프: 고급(_A)"
+msgstr "붙이기 거리(_I)"
 
 #: ../src/ui/dialog/document-properties.cpp:284
 msgid "Snap only when c_loser than:"
-msgstr ""
+msgstr "보다 가까울 때만 붙이기(_ L)"
 
 #: ../src/ui/dialog/document-properties.cpp:285
 msgid "Snapping distance, in screen pixels, for snapping to grid"
-msgstr ""
+msgstr "격자에 붙이기 위한 붙이기 거리"
 
 #: ../src/ui/dialog/document-properties.cpp:285
 msgid "Always snap to grids, regardless of the distance"
-msgstr ""
+msgstr "거리에 무관하게 항상 격자에 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:286
-msgid ""
-"If set, objects only snap to a grid line when it's within the range "
-"specified below"
-msgstr ""
+msgid "If set, objects only snap to a grid line when it's within the range specified below"
+msgstr "설정시, 지정된 범위내에 있으면 객체들이 격자선에 붙이기됨"
 
 #. Options for snapping to guides
 #: ../src/ui/dialog/document-properties.cpp:290
-#, fuzzy
 msgid "Snap dist_ance"
-msgstr "잉크스케이프: 고급(_A)"
+msgstr "붙이기 거리(_A)"
 
 #: ../src/ui/dialog/document-properties.cpp:290
 msgid "Snap only when close_r than:"
-msgstr ""
+msgstr "보다 가까이 있을 때만 붙이기(_R):"
 
 #: ../src/ui/dialog/document-properties.cpp:291
 msgid "Snapping distance, in screen pixels, for snapping to guides"
-msgstr ""
+msgstr "안내선에 붙이기 위한 붙이기 거리"
 
 #: ../src/ui/dialog/document-properties.cpp:291
 msgid "Always snap to guides, regardless of the distance"
-msgstr ""
+msgstr "거리에 무관하게 항상 안내선에 붙이기"
 
 #: ../src/ui/dialog/document-properties.cpp:292
-msgid ""
-"If set, objects only snap to a guide when it's within the range specified "
-"below"
-msgstr ""
+msgid "If set, objects only snap to a guide when it's within the range specified below"
+msgstr "설정시, 객체가 지정된 범위내에 있으면 안내선에 붙이기됨"
 
 #: ../src/ui/dialog/document-properties.cpp:315
-#, fuzzy
 msgid "<b>Snapping</b>"
-msgstr "<b></b>"
+msgstr "<b>붙이기</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:317
-#, fuzzy
 msgid "<b>What snaps</b>"
-msgstr "<b>사각형</b>"
+msgstr "<b>붙일 대상</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:319
-#, fuzzy
 msgid "<b>Snap to objects</b>"
-msgstr "<b></b>"
+msgstr "<b>객체에 붙이기</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:321
-#, fuzzy
 msgid "<b>Snap to grids</b>"
-msgstr "<b></b>"
+msgstr "<b>격자에 붙이기</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:323
-#, fuzzy
 msgid "<b>Snap to guides</b>"
-msgstr "<b>ì\84 </b>"
+msgstr "<b>ì\95\88ë\82´ì\84 ì\97\90 ë¶\99ì\9d´ê¸°</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:361
-#, fuzzy
 msgid "<b>Snapping to intersections of</b>"
-msgstr "<b></b>"
+msgstr "<b>교차선에 붙이기</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:363
-#, fuzzy
 msgid "<b>Special points to consider</b>"
-msgstr "<b></b>"
+msgstr "<b>고려할 특정 지점</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:433
-#, fuzzy
 msgid "<b>Creation</b>"
-msgstr " <b>생성(_C)</b> "
+msgstr " <b>생성</b> "
 
 #: ../src/ui/dialog/document-properties.cpp:434
-#, fuzzy
 msgid "<b>Defined grids</b>"
-msgstr "<b>ì\84 </b>"
+msgstr "<b>ì \95ì\9d\98ë\90\9c ê²©ì\9e\90</b>"
 
 #: ../src/ui/dialog/document-properties.cpp:650
-#, fuzzy
 msgid "Remove grid"
-msgstr "제거"
+msgstr "격자 제거"
 
 #: ../src/ui/dialog/export.cpp:32
 msgid "Export"
-msgstr ""
+msgstr "내보내기"
 
 #: ../src/ui/dialog/extension-editor.cpp:80
 msgid "Information"
 msgstr "정보"
 
 #: ../src/ui/dialog/extension-editor.cpp:81
-#: ../share/extensions/lindenmayer.inx.h:3 ../share/extensions/measure.inx.h:2
+#: ../share/extensions/lindenmayer.inx.h:3
+#: ../share/extensions/measure.inx.h:2
 msgid "Help"
 msgstr "도움말"
 
 #: ../src/ui/dialog/extension-editor.cpp:82
 msgid "Parameters"
-msgstr ""
+msgstr "인자"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:382
-#, fuzzy
 msgid "No preview"
-msgstr "미리보기"
+msgstr "미리보기 없음"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:488
 msgid "too large for preview"
-msgstr ""
+msgstr "미리보기에는 너무 큼"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:577
-#, fuzzy
 msgid "Enable preview"
-msgstr "미리보기"
+msgstr "미리보기 가능"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:711
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:712
 #: ../src/ui/dialog/filedialogimpl-win32.cpp:198
-#, fuzzy
 msgid "All Inkscape Files"
-msgstr "모든 모양"
+msgstr "전체 Inkscape 파일"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:716
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:717
 #: ../src/ui/dialog/filedialogimpl-win32.cpp:197
-#, fuzzy
 msgid "All Files"
-msgstr "모든 형태"
+msgstr "전체 파일"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:722
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:723
-#, fuzzy
 msgid "All Images"
-msgstr "내장 된 전체 이미지"
+msgstr "전체 이미지"
 
 #. ###### Add the file types menu
 #. createFilterMenu();
@@ -9860,100 +9202,89 @@ msgstr "내장 된 전체 이미지"
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:887
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1429
 msgid "Append filename extension automatically"
-msgstr ""
+msgstr "자동으로 파일이름 확장자 붙이기"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1042
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1294
 msgid "Guess from extension"
-msgstr ""
+msgstr "확장자에서 추측"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1315
 msgid "Left edge of source"
-msgstr ""
+msgstr "소스의 왼쪽 모서리"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1316
 msgid "Top edge of source"
-msgstr ""
+msgstr "소스의 최상단 모서리"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1317
-#, fuzzy
 msgid "Right edge of source"
-msgstr "소스"
+msgstr "소스의 오른쪽 모서리"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1318
 msgid "Bottom edge of source"
-msgstr ""
+msgstr "소스의 최하위 모서리"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1319
-#, fuzzy
 msgid "Source width"
-msgstr "소스"
+msgstr "소스 폭"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1320
-#, fuzzy
 msgid "Source height"
-msgstr "높이:"
+msgstr "소스 높이:"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1321
-#, fuzzy
 msgid "Destination width"
-msgstr "출력 목적지"
+msgstr "출력 "
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1322
-#, fuzzy
 msgid "Destination height"
-msgstr "ì¶\9cë ¥ ëª©ì \81ì§\80"
+msgstr "ì¶\9cë ¥ ë\86\92ì\9d´"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1323
 msgid "Resolution (dots per inch)"
-msgstr ""
+msgstr "해상도(DPI)"
 
 #. #########################################
 #. ## EXTRA WIDGET -- SOURCE SIDE
 #. #########################################
 #. ##### Export options buttons/spinners, etc
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1360
-#, fuzzy
 msgid "Document"
-msgstr "문서 저장됨."
+msgstr "문서"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1372
 #: ../share/extensions/color_custom.inx.h:3
-#, fuzzy
 msgid "Custom"
-msgstr "개인적(_C)"
+msgstr "사용자"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1412
 msgid "Cairo"
-msgstr ""
+msgstr "카이로"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1415
 msgid "Antialias"
-msgstr ""
+msgstr "부드럽게 처리"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1418
 msgid "Background"
-msgstr ""
+msgstr "배경"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1441
-#, fuzzy
 msgid "Destination"
-msgstr "ì¶\9cë ¥ ëª©ì \81ì§\80"
+msgstr "ì¶\9cë ¥ ë°©í\96¥"
 
 #: ../src/ui/dialog/filedialogimpl-win32.cpp:199
-#, fuzzy
 msgid "All Image Files"
-msgstr "내장 된 전체 이미지"
+msgstr "전체 이미지 파일"
 
 #: ../src/ui/dialog/filedialogimpl-win32.cpp:428
-#, fuzzy
 msgid "Show Preview"
-msgstr "미리보기"
+msgstr "미리보기 보이기"
 
 #: ../src/ui/dialog/filedialogimpl-win32.cpp:564
-#, fuzzy
 msgid "No file selected"
-msgstr "ì\96´ë\96 í\95\9c ë¬¸ì\84\9cë\8f\84 ì\84 í\83\9dë\90\98ì§\80 ì\95\8a음"
+msgstr "ì\84 í\83\9dë\90\9c í\8c\8cì\9d¼ì\9d´ ì\97\86음"
 
 #: ../src/ui/dialog/fill-and-stroke.cpp:53
 msgid "Fill"
@@ -9961,435 +9292,365 @@ msgstr "채움"
 
 #: ../src/ui/dialog/fill-and-stroke.cpp:54
 msgid "Stroke _paint"
-msgstr ""
+msgstr "윤곽선 칠하기(_P)"
 
 #: ../src/ui/dialog/fill-and-stroke.cpp:55
 msgid "Stroke st_yle"
-msgstr ""
+msgstr "윤곽선 스타일(_Y)"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:504
-msgid ""
-"This matrix determines a linear transform on colour space. Each line affects "
-"one of the color components. Each column determines how much of each color "
-"component from the input is passed to the output. The last column does not "
-"depend on input colors, so can be used to adjust a constant component value."
-msgstr ""
+msgid "This matrix determines a linear transform on colour space. Each line affects one of the color components. Each column determines how much of each color component from the input is passed to the output. The last column does not depend on input colors, so can be used to adjust a constant component value."
+msgstr "이 행렬은 색상 공간에서 선형 변형을 결정."
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:614
-#, fuzzy
 msgid "Image File"
-msgstr "이미지"
+msgstr "이미지 파일"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:617
-#, fuzzy
 msgid "Selected SVG Element"
-msgstr "ì\84 í\83\9dë\80ë¶\84 ì§\80ì\9a°ê¸°"
+msgstr "ì\84 í\83\9dë\90\9c SVG ì\9a\94ì\86\8c"
 
 #. TODO: any image, not justy svg
 #: ../src/ui/dialog/filter-effects-dialog.cpp:686
 msgid "Select an image to be used as feImage input"
-msgstr ""
+msgstr "feImage 입력으로 사용되는 이미지 선택"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:778
 msgid "This SVG filter effect does not require any parameters."
-msgstr ""
+msgstr "이 SVG 필터 효과는 다른 인자를 필요로 하지 않음"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:784
 msgid "This SVG filter effect is not yet implemented in Inkscape."
-msgstr ""
+msgstr "이 SVG 필터 효과는 Inkscape에서 아직 실행되지 않음."
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:975
-#, fuzzy
 msgid "Light Source:"
-msgstr "소스"
+msgstr "광원:"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:992
 msgid "Direction angle for the light source on the XY plane, in degrees"
-msgstr ""
+msgstr "XY 면상에서 광원의 방향 각도"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:993
 msgid "Direction angle for the light source on the YZ plane, in degrees"
-msgstr ""
+msgstr "YZ면에서 광원의 방향 각도"
 
 #. default x:
 #. default y:
 #. default z:
 #: ../src/ui/dialog/filter-effects-dialog.cpp:996
 #: ../src/ui/dialog/filter-effects-dialog.cpp:999
-#, fuzzy
 msgid "Location"
-msgstr "회전(_R)"
+msgstr "위치"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:996
 #: ../src/ui/dialog/filter-effects-dialog.cpp:999
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1002
-#, fuzzy
 msgid "X coordinate"
-msgstr "복사 객체"
+msgstr "X 좌표"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:996
 #: ../src/ui/dialog/filter-effects-dialog.cpp:999
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1002
-#, fuzzy
 msgid "Y coordinate"
-msgstr "복사 객체"
+msgstr "Y 좌표"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:996
 #: ../src/ui/dialog/filter-effects-dialog.cpp:999
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1002
-#, fuzzy
 msgid "Z coordinate"
-msgstr "복사 객체"
+msgstr "Z 좌표"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1002
-#, fuzzy
 msgid "Points At"
 msgstr "포인트"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1003
 msgid "Specular Exponent"
-msgstr ""
+msgstr "특별 지수"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1003
 msgid "Exponent value controlling the focus for the light source"
-msgstr ""
+msgstr "광원의 초점을 제어하기 위한 지수"
 
 #. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option.
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1005
-#, fuzzy
 msgid "Cone Angle"
-msgstr "각도"
+msgstr "원뿔 각도"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1005
-msgid ""
-"This is the angle between the spot light axis (i.e. the axis between the "
-"light source and the point to which it is pointing at) and the spot light "
-"cone. No light is projected outside this cone."
-msgstr ""
+msgid "This is the angle between the spot light axis (i.e. the axis between the light source and the point to which it is pointing at) and the spot light cone. No light is projected outside this cone."
+msgstr "이것은 스폿 광축 사이 각도임"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1065
 msgid "New light source"
-msgstr ""
+msgstr "새 빛 소스"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1106
-#, fuzzy
 msgid "_Duplicate"
-msgstr "ë³µì\82¬"
+msgstr "ë³µì \9c(_D)"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1132
-#, fuzzy
 msgid "_Filter"
-msgstr "밀리미터"
+msgstr "필터(_F)"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1146
-#, fuzzy
 msgid "R_ename"
-msgstr "이름변경(_R)"
+msgstr "다른 이름으로 저장(_E)"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1240
-#, fuzzy
 msgid "Rename filter"
-msgstr "채움 제거"
+msgstr "필터 다른 이름으로 저장"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1276
-#, fuzzy
 msgid "Apply filter"
-msgstr "레이어 추가"
+msgstr "필터 적용"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1352
-#, fuzzy
 msgid "Add filter"
-msgstr "레이어 추가"
+msgstr "필터 더하기"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1378
-#, fuzzy
 msgid "Duplicate filter"
-msgstr "노드 복사"
+msgstr "필터 복제"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1445
-#, fuzzy
 msgid "_Effect"
-msgstr "옵셋"
+msgstr "효과(_E)"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1453
-#, fuzzy
 msgid "Connections"
-msgstr "연결"
+msgstr "연결"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1569
 msgid "Remove filter primitive"
-msgstr ""
+msgstr "필터 초기치 제거"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:1940
-#, fuzzy
 msgid "Remove merge node"
-msgstr " 삭제(_m) "
+msgstr "병합 노드 제거"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2056
 msgid "Reorder filter primitive"
-msgstr ""
+msgstr "필터 초기치 재배열"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2092
-#, fuzzy
 msgid "Add Effect:"
-msgstr "옵셋"
+msgstr "효과 더하기:"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2093
-#, fuzzy
 msgid "No effect selected"
-msgstr "ì\96´ë\96 í\95\9c ë¬¸ì\84\9cë\8f\84 ì\84 í\83\9dë\90\98ì§\80 ì\95\8a음"
+msgstr "ì\84 í\83\9dë\90\9c í\9a¨ê³¼ ì\97\86음"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2094
-#, fuzzy
 msgid "No filter selected"
-msgstr "ì\96´ë\96 í\95\9c ë¬¸ì\84\9cë\8f\84 ì\84 í\83\9dë\90\98ì§\80 ì\95\8a음"
+msgstr "ì\84 í\83\9dë\90\9c í\95\84í\84° ì\97\86음"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2130
-#, fuzzy
 msgid "Effect parameters"
-msgstr "<b>사각형</b>"
+msgstr "효과 인자"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2131
 msgid "Filter General Settings"
-msgstr ""
+msgstr "필터 일반 설정"
 
 #. default x:
 #. default y:
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2187
-#, fuzzy
 msgid "Coordinates"
-msgstr "복사 객체"
+msgstr "좌표"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2187
 msgid "X coordinate of the left corners of filter effects region"
-msgstr ""
+msgstr "필터 효과 구간의 왼쪽 모서리 X 좌표"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2187
 msgid "Y coordinate of the upper corners of filter effects region"
-msgstr ""
+msgstr "필터 효과 구간의 위쪽 모서리 Y 좌표"
 
 #. default width:
 #. default height:
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2188
 #: ../share/extensions/dimension.inx.h:1
 msgid "Dimensions"
-msgstr ""
+msgstr "크기"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2188
-#, fuzzy
 msgid "Width of filter effects region"
-msgstr "점선 유형"
+msgstr "필터 효과 구간의 폭"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2188
 msgid "Height of filter effects region"
-msgstr ""
+msgstr "필터 효과 구간의 높이"
 
 #. # end multiple scan
 #. ## end mode page
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2191
-#: ../src/ui/dialog/tracedialog.cpp:553 ../src/widgets/toolbox.cpp:3328
+#: ../src/ui/dialog/tracedialog.cpp:553
+#: ../src/widgets/toolbox.cpp:3328
 #: ../share/extensions/triangle.inx.h:9
-#, fuzzy
 msgid "Mode"
-msgstr "이동(_M)"
+msgstr "모드"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2194
-msgid ""
-"Indicates the type of matrix operation. The keyword 'matrix' indicates that "
-"a full 5x4 matrix of values will be provided. The other keywords represent "
-"convenience shortcuts to allow commonly used color operations to be "
-"performed without specifying a complete matrix."
-msgstr ""
+msgid "Indicates the type of matrix operation. The keyword 'matrix' indicates that a full 5x4 matrix of values will be provided. The other keywords represent convenience shortcuts to allow commonly used color operations to be performed without specifying a complete matrix."
+msgstr "행렬식 형태 지시"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2195
 msgid "Value(s)"
-msgstr ""
+msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2209
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2250
-#, fuzzy
 msgid "Operator"
-msgstr "ì \9cì\9e\91ì\9e\90"
+msgstr "ì¡°ì\9e\91기"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2210
 msgid "K1"
-msgstr ""
+msgstr "K1"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2210
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2211
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2212
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2213
-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 ""
+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:2211
 msgid "K2"
-msgstr ""
+msgstr "K2"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2212
 msgid "K3"
-msgstr ""
+msgstr "K3"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2213
 msgid "K4"
-msgstr ""
+msgstr "K4"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2216
-#, fuzzy
 msgid "width of the convolve matrix"
-msgstr "점선 유형"
+msgstr "합성곱 행렬의 폭"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2216
-#, fuzzy
 msgid "height of the convolve matrix"
-msgstr "채운 사각형 높이"
+msgstr "합성곱 행렬의 높"
 
 #. default x:
 #. default y:
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2217
-#, fuzzy
 msgid "Target"
-msgstr "목적:"
+msgstr "목"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2217
-msgid ""
-"X coordinate of the target point in the convolve matrix. The convolution is "
-"applied to pixels around this point."
-msgstr ""
+msgid "X coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point."
+msgstr "합성곱 행렬에서 목표점의 X 좌표"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2217
-msgid ""
-"Y coordinate of the target point in the convolve matrix. The convolution is "
-"applied to pixels around this point."
-msgstr ""
+msgid "Y coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point."
+msgstr "합성곱 행렬에서 목표점의 Y 좌표"
 
 #. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix)
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2219
 msgid "Kernel"
-msgstr ""
+msgstr "커널"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2219
-msgid ""
-"This matrix describes the convolve operation that is applied to the input "
-"image in order to calculate the pixel colors at the output. Different "
-"arrangements of values in this matrix result in various possible visual "
-"effects. An identity matrix would lead to a motion blur effect (parallel to "
-"the matrix diagonal) while a matrix filled with a constant non-zero value "
-"would lead to a common blur effect."
-msgstr ""
+msgid "This matrix describes the convolve operation that is applied to the input image in order to calculate the pixel colors at the output. Different arrangements of values in this matrix result in various possible visual effects. An identity matrix would lead to a motion blur effect (parallel to the matrix diagonal) while a matrix filled with a constant non-zero value would lead to a common blur effect."
+msgstr "합성곱 행렬을 나타냄"
 
 #. TODO: svg spec: The default value is the sum of all values in kernelMatrix, with the exception that if the sum is zero, then the divisor is set to 1.
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2222
 msgid "Divisor"
-msgstr ""
+msgstr "나눗셈"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2222
-msgid ""
-"After applying the kernelMatrix to the input image to yield a number, that "
-"number is divided by divisor to yield the final destination color value. A "
-"divisor that is the sum of all the matrix values tends to have an evening "
-"effect on the overall color intensity of the result."
+msgid "After applying the kernelMatrix to the input image to yield a number, that number is divided by divisor to yield the final destination color value. A divisor that is the sum of all the matrix values tends to have an evening effect on the overall color intensity of the result."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2223
 msgid "Bias"
-msgstr ""
+msgstr "편향"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2223
-msgid ""
-"This value is added to each component. This is useful to define a constant "
-"value as the zero response of the filter."
-msgstr ""
+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:2224
-#, fuzzy
 msgid "Edge Mode"
-msgstr "이동(_M)"
+msgstr "모서리 모드"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2224
-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."
+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:2225
 msgid "Preserve Alpha"
-msgstr ""
+msgstr "알파 보존"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2225
 msgid "If set, the alpha channel won't be altered by this filter primitive."
-msgstr ""
+msgstr "설정시, 알파 채널은 이 필터 원본에 의하여 변경되지 않음."
 
 #. default: white
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2228
-#, fuzzy
 msgid "Diffuse Color"
-msgstr "색:"
+msgstr "확산 색상"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2228
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2261
 msgid "Defines the color of the light source"
-msgstr ""
+msgstr "광원의색상 지정"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2229
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2262
 msgid "Surface Scale"
-msgstr ""
+msgstr "표면 비율"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2229
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2262
-msgid ""
-"This value amplifies the heights of the bump map defined by the input alpha "
-"channel"
-msgstr ""
+msgid "This value amplifies the heights of the bump map defined by the input alpha channel"
+msgstr "이 값은 입력 알파 채널에 의해 정의된 충돌맵의 높이로 증폭됨."
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2230
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2263
-#, fuzzy
 msgid "Constant"
-msgstr "ì\97°ê²°"
+msgstr "ì\83\81ì\88\98"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2230
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2263
 msgid "This constant affects the Phong lighting model."
-msgstr ""
+msgstr "이 상수는 Phong 광원 모델에 영향을 미침."
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2231
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2265
 msgid "Kernel Unit Length"
-msgstr ""
+msgstr "커널 단위 길이"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2235
 msgid "This defines the intensity of the displacement effect."
-msgstr ""
+msgstr "이것은 변위 효과의 강도를 정의"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2236
-#, fuzzy
 msgid "X displacement"
-msgstr "새로운 요소 노드"
+msgstr "X 변위"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2236
 msgid "Color component that controls the displacement in the X direction"
-msgstr ""
+msgstr "X 방향에서 변위를 제어하기 위한 색상 요소"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2237
-#, fuzzy
 msgid "Y displacement"
-msgstr "새로운 요소 노드"
+msgstr "Y 변위"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2237
 msgid "Color component that controls the displacement in the Y direction"
-msgstr ""
+msgstr "Y 방향에서 변위를 제어하기 위한 색상 요소"
 
 #. default: black
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2240
-#, fuzzy
 msgid "Flood Color"
-msgstr "ì\83\89"
+msgstr "ì\8f\9fì\95\84ë¶\99기 ì\83\89ì\83\81"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2240
 msgid "The whole filter region will be filled with this color."
@@ -10397,11 +9658,11 @@ msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2244
 msgid "Standard Deviation"
-msgstr ""
+msgstr "표준 편차"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2244
 msgid "The standard deviation for the blur operation."
-msgstr ""
+msgstr "흐림 작업을 위한 표준 편차"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2250
 msgid ""
@@ -10410,23 +9671,20 @@ msgid ""
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2254
-#, fuzzy
 msgid "Source of Image"
-msgstr "단계 숫자"
+msgstr "이미지 소스"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2257
-#, fuzzy
 msgid "Delta X"
-msgstr "삭제(_D)"
+msgstr "델타 X"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2257
 msgid "This is how far the input image gets shifted to the right"
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2258
-#, fuzzy
 msgid "Delta Y"
-msgstr "삭제(_D)"
+msgstr "델타 Y"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2258
 msgid "This is how far the input image gets shifted downwards"
@@ -10435,35 +9693,32 @@ msgstr ""
 #. default: white
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2261
 msgid "Specular Color"
-msgstr ""
+msgstr "특정 색상"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2264
 #: ../share/extensions/interp.inx.h:2
 msgid "Exponent"
-msgstr ""
+msgstr "지수"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2264
 msgid "Exponent for specular term, larger is more \"shiny\"."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2273
-msgid ""
-"Indicates whether the filter primitive should perform a noise or turbulence "
-"function."
+msgid "Indicates whether the filter primitive should perform a noise or turbulence function."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2274
 msgid "Base Frequency"
-msgstr ""
+msgstr "기본 주파수"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2275
 msgid "Octaves"
-msgstr ""
+msgstr "8조"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2276
-#, fuzzy
 msgid "Seed"
-msgstr "ì\86\8dë\8f\84:"
+msgstr "ì\94¨ì\95\97"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2276
 msgid "The starting number for the pseudo random number generator."
@@ -10471,131 +9726,79 @@ msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2288
 msgid "Add filter primitive"
-msgstr ""
+msgstr "필터 원형을 더하기"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2304
-msgid ""
-"The <b>feBlend</b> filter primitive provides 4 image blending modes: screen, "
-"multiply, darken and lighten."
+msgid "The <b>feBlend</b> filter primitive provides 4 image blending modes: screen, multiply, darken and lighten."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2308
-msgid ""
-"The <b>feColorMatrix</b> filter primitive applies a matrix transformation to "
-"colour of each rendered pixel. This allows for effects like turning object "
-"to grayscale, modifying colour saturation and changing colour hue."
+msgid "The <b>feColorMatrix</b> filter primitive applies a matrix transformation to colour of each rendered pixel. This allows for effects like turning object to grayscale, modifying colour saturation and changing colour hue."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2312
-msgid ""
-"The <b>feComponentTransfer</b> filter primitive manipulates the input's "
-"color components (red, green, blue, and alpha) according to particular "
-"transfer functions, allowing operations like brightness and contrast "
-"adjustment, color balance, and thresholding."
+msgid "The <b>feComponentTransfer</b> filter primitive manipulates the input's color components (red, green, blue, and alpha) according to particular transfer functions, allowing operations like brightness and contrast adjustment, color balance, and thresholding."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2316
-msgid ""
-"The <b>feComposite</b> filter primitive composites two images using one of "
-"the Porter-Duff blending modes or the aritmetic mode described in SVG "
-"standard. Porter-Duff blending modes are essentially logical operations "
-"between the corresponding pixel values of the images."
+msgid "The <b>feComposite</b> filter primitive composites two images using one of the Porter-Duff blending modes or the aritmetic mode described in SVG standard. Porter-Duff blending modes are essentially logical operations between the corresponding pixel values of the images."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2320
-msgid ""
-"The <b>feConvolveMatrix</b> lets you specify a Convolution to be applied on "
-"the image. Common effects created using convolution matrices are blur, "
-"sharpening, embossing and edge detection. Note that while gaussian blur can "
-"be created using this filter primitive, the special gaussian blur primitive "
-"is faster and resolution-independent."
+msgid "The <b>feConvolveMatrix</b> lets you specify a Convolution to be applied on the image. Common effects created using convolution matrices are blur, sharpening, embossing and edge detection. Note that while gaussian blur can be created using this filter primitive, the special gaussian blur primitive is faster and resolution-independent."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2324
-msgid ""
-"The <b>feDiffuseLighting</b> and feSpecularLighting filter primitives create "
-"\"embossed\" shadings.  The input's alpha channel is used to provide depth "
-"information: higher opacity areas are raised toward the viewer and lower "
-"opacity areas recede away from the viewer."
+msgid "The <b>feDiffuseLighting</b> and feSpecularLighting filter primitives create \"embossed\" shadings.  The input's alpha channel is used to provide depth information: higher opacity areas are raised toward the viewer and lower opacity areas recede away from the viewer."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2328
-msgid ""
-"The <b>feDisplacementMap</b> filter primitive displaces the pixels in the "
-"first input using the second input as a displacement map, that shows from "
-"how far the pixel should come from. Classical examples are whirl and pinch "
-"effects."
+msgid "The <b>feDisplacementMap</b> filter primitive displaces the pixels in the first input using the second input as a displacement map, that shows from how far the pixel should come from. Classical examples are whirl and pinch effects."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2332
-msgid ""
-"The <b>feFlood</b> 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."
+msgid "The <b>feFlood</b> 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:2336
-msgid ""
-"The <b>feGaussianBlur</b> filter primitive uniformly blurs its input.  It is "
-"commonly used together with feOffset to create a drop shadow effect."
+msgid "The <b>feGaussianBlur</b> 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:2340
-msgid ""
-"The <b>feImage</b> filter primitive fills the region with an external image "
-"or another part of the document."
+msgid "The <b>feImage</b> filter primitive fills the region with an external image or another part of the document."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2344
-msgid ""
-"The <b>feMerge</b> filter primitive composites several temporary images "
-"inside the filter primitive to a single image. It uses normal alpha "
-"compositing for this. This is equivalent to using several feBlend primitives "
-"in 'normal' mode or several feComposite primitives in 'over' mode."
+msgid "The <b>feMerge</b> filter primitive composites several temporary images inside the filter primitive to a single image. It uses normal alpha compositing for this. This is equivalent to using several feBlend primitives in 'normal' mode or several feComposite primitives in 'over' mode."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2348
-msgid ""
-"The <b>feMorphology</b> filter primitive provides erode and dilate effects. "
-"For single-colour objects erode makes the object thinner and dilate makes it "
-"thicker."
+msgid "The <b>feMorphology</b> filter primitive provides erode and dilate effects. For single-colour objects erode makes the object thinner and dilate makes it thicker."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2352
-msgid ""
-"The <b>feOffset</b> 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."
+msgid "The <b>feOffset</b> 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:2356
-msgid ""
-"The feDiffuseLighting and <b>feSpecularLighting</b> filter primitives create "
-"\"embossed\" shadings.  The input's alpha channel is used to provide depth "
-"information: higher opacity areas are raised toward the viewer and lower "
-"opacity areas recede away from the viewer."
+msgid "The feDiffuseLighting and <b>feSpecularLighting</b> filter primitives create \"embossed\" shadings.  The input's alpha channel is used to provide depth information: higher opacity areas are raised toward the viewer and lower opacity areas recede away from the viewer."
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2360
-msgid ""
-"The <b>feTile</b> filter primitive tiles a region with its input graphic"
+msgid "The <b>feTile</b> filter primitive tiles a region with its input graphic"
 msgstr ""
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2364
-msgid ""
-"The <b>feTurbulence</b> 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."
+msgid "The <b>feTurbulence</b> 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:2382
 msgid "Duplicate filter primitive"
-msgstr ""
+msgstr "필터 원형 복제"
 
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2435
-#, fuzzy
 msgid "Set filter primitive attribute"
-msgstr "í\8a¹ì\84± ì\82­ì \9c"
+msgstr "í\95\84í\84° ì\9b\90í\98\95 ì\86\8dì\84± ì\84¤ì \95"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:147
 msgid "Mouse"
@@ -10603,7 +9806,7 @@ msgstr "마우스"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:149
 msgid "Grab sensitivity:"
-msgstr ""
+msgstr "붙이기 민감도:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:149
 #: ../src/ui/dialog/inkscape-preferences.cpp:152
@@ -10611,56 +9814,47 @@ msgstr ""
 #: ../src/ui/dialog/inkscape-preferences.cpp:172
 #: ../src/ui/dialog/inkscape-preferences.cpp:182
 msgid "pixels"
-msgstr "í\94½ì\85\80"
+msgstr "í\99\94ì\86\8c"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:150
-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 ""
+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:152
 msgid "Click/drag threshold:"
-msgstr ""
+msgstr "허용치 클릭/끌기:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:153
-msgid ""
-"Maximum mouse drag (in screen pixels) which is considered a click, not a drag"
-msgstr ""
+msgid "Maximum mouse drag (in screen pixels) which is considered a click, not a drag"
+msgstr "한번 클릭시 고려되는 최대 마우스 끌기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:155
 msgid "Use pressure-sensitive tablet (requires restart)"
-msgstr ""
+msgstr "압력 감지 타블렛 사용(재실행 필요)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:157
-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 ""
+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:159
 msgid "Switch tool based on tablet device (requires restart)"
-msgstr ""
+msgstr "타블렛 기기에 기반한 도구로 변경(재시작 필요)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:161
-msgid ""
-"Change tool as different devices are used on the tablet (pen, eraser, mouse)"
-msgstr ""
+msgid "Change tool as different devices are used on the tablet (pen, eraser, mouse)"
+msgstr "타블렛에서 사용한 다른 기기로 도구를 변경 (펜,지우개, 마우스)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:166
 msgid "Scrolling"
-msgstr "ì\8a¤í\81¬ë¡¤"
+msgstr "ì\9d´ë\8f\99"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:168
 msgid "Mouse wheel scrolls by:"
-msgstr "í\9c  ë§\88ì\9a°ì\8a¤ ì\8a¤í\81¬ë¡¤ì\97\90 ì\9d\98í\95\9c:"
+msgstr "í\9c  ë§\88ì\9a°ì\8a¤ ì\9d´ë\8f\99:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:169
-msgid ""
-"One mouse wheel notch scrolls by this distance in screen pixels "
-"(horizontally with Shift)"
-msgstr ""
+msgid "One mouse wheel notch scrolls by this distance in screen pixels (horizontally with Shift)"
+msgstr "마우스 윌 회전은 이 거리만큼 이동시킴"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:170
 msgid "Ctrl+arrows"
@@ -10668,69 +9862,59 @@ msgstr "Ctrl+방향키"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:172
 msgid "Scroll by:"
-msgstr "ì\8a¤í\81¬ë¡¤ì\97\90ì\9d\98í\95\9c:"
+msgstr "ì\9d´ë\8f\99:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:173
 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)"
-msgstr ""
+msgstr "Ctrl+화살표 키 루르면 이 거리만큼 이동"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:175
 msgid "Acceleration:"
 msgstr "가속:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:176
-msgid ""
-"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no "
-"acceleration)"
-msgstr ""
+msgid "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no acceleration)"
+msgstr "Ctrl+화살표키를 누르고 지속하면 점차 이동속도 증가(0은 가속 없음)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:177
 msgid "Autoscrolling"
-msgstr "ì\9e\90ë\8f\99 ì\8a¤í\81¬ë¡¤"
+msgstr "ì\9e\90ë\8f\99 ì\9d´ë\8f\99"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:179
 msgid "Speed:"
 msgstr "속도:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:180
-msgid ""
-"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn "
-"autoscroll off)"
-msgstr ""
+msgid "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn autoscroll off)"
+msgstr "캔버스상에서 자동 이동이 얼마나 빠른가를 나타냄(0은 자동이동 꺼짐)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:182
-#: ../src/ui/dialog/tracedialog.cpp:410 ../src/ui/dialog/tracedialog.cpp:443
-#: ../src/ui/dialog/tracedialog.cpp:586 ../src/widgets/toolbox.cpp:5741
+#: ../src/ui/dialog/tracedialog.cpp:410
+#: ../src/ui/dialog/tracedialog.cpp:443
+#: ../src/ui/dialog/tracedialog.cpp:586
+#: ../src/widgets/toolbox.cpp:5741
 msgid "Threshold:"
-msgstr ""
+msgstr "허용치:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:183
-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 ""
+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:184
 msgid "Left mouse button pans when Space is pressed"
-msgstr ""
+msgstr "Space를 누르고 왼쪽 마우스 버튼 누른 상태에서 작업영역 이동"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:186
-msgid ""
-"When on, pressing and holding Space and dragging with left mouse button pans "
-"canvas (as in Adobe Illustrator). When off, Space temporarily switches to "
-"Selector tool (default)."
-msgstr ""
+msgid "When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator). When off, Space temporarily switches to Selector tool (default)."
+msgstr "On시, Space를 누른 채 왼쪽 마우스 클기를 하면 캔버스가 이동, Off시, 일시적으로 공간은 선택 도구툴로 변경(기본값)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:187
-#, fuzzy
 msgid "Mouse wheel zooms by default"
-msgstr "휠 마우스 스크롤에 의한:"
+msgstr "체크시 중간 마우스 휠로 화면 비율 조정"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:189
-msgid ""
-"When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when "
-"off, it zooms with Ctrl and scrolls without Ctrl."
-msgstr ""
+msgid "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when off, it zooms with Ctrl and scrolls without Ctrl."
+msgstr "On시 Ctrl 누름없이 마우스 휠로 확대가능하고 Ctrl로 캔버스 이동; Off시 Ctrl 눌러 확대하고 Ctrl 없이 이동"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:194
 msgid "Steps"
@@ -10739,215 +9923,188 @@ msgstr "단계"
 #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here
 #: ../src/ui/dialog/inkscape-preferences.cpp:198
 msgid "Arrow keys move by:"
-msgstr ""
+msgstr "화살표 키 이동"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:199
-msgid ""
-"Pressing an arrow key moves selected object(s) or node(s) by this distance "
-"(in px units)"
-msgstr ""
+msgid "Pressing an arrow key moves selected object(s) or node(s) by this distance (in px units)"
+msgstr "지정거리만큼 화살표를 누름으로서 선택객체 또는 노드를 이동시킴"
 
 #. defaultscale is limited to 1000 in select-context.cpp: use the same limit here
 #: ../src/ui/dialog/inkscape-preferences.cpp:202
 msgid "> and < scale by:"
-msgstr "> 와 < 크기 조절:"
+msgstr ">키 & < 키 누름 비율:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:203
-msgid ""
-"Pressing > or < scales selection up or down by this increment (in px units)"
-msgstr ""
+msgid "Pressing > or < scales selection up or down by this increment (in px units)"
+msgstr "> 또는 < 눌러 증가값으로 선택을 확대 또는 축소"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:205
 msgid "Inset/Outset by:"
-msgstr ""
+msgstr "축소/확대 :"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:206
-msgid ""
-"Inset and Outset commands displace the path by this distance (in px units)"
-msgstr ""
+msgid "Inset and Outset commands displace the path by this distance (in px units)"
+msgstr "지정거리만큼 경로의 확대 또는 축소"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:207
 msgid "Compass-like display of angles"
-msgstr ""
+msgstr "각도를 나침판처럼 보이기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:209
-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 ""
+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 "On시, 각도는 북에서 0도부터 360도까지, 양의 값은 시계방향, 음의값은 반시계방향,"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:215
 msgid "Rotation snaps every:"
-msgstr ""
+msgstr "매 회전각: "
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:215
 msgid "degrees"
-msgstr ""
+msgstr ""
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:216
-msgid ""
-"Rotating with Ctrl pressed snaps every that much degrees; also, pressing "
-"[ or ] rotates by this amount"
-msgstr ""
+msgid "Rotating with Ctrl pressed snaps every that much degrees; also, pressing [ or ] rotates by this amount"
+msgstr "Ctrl을 누른 채 회전은 지정된 각도만큼 붙이기, []값은  지정된 양만큼 회전"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:218
 msgid "Zoom in/out by:"
-msgstr "확대 축소:"
+msgstr "확대/축소 비율:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:219
-msgid ""
-"Zoom tool click, +/- keys, and middle click zoom in and out by this "
-"multiplier"
-msgstr ""
+msgid "Zoom tool click, +/- keys, and middle click zoom in and out by this multiplier"
+msgstr "확대/축소 도구 클릭 +/- 키"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:225
 msgid "Show selection cue"
-msgstr ""
+msgstr "선택 큐 보이기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:226
-msgid ""
-"Whether selected objects display a selection cue (the same as in selector)"
-msgstr ""
+msgid "Whether selected objects display a selection cue (the same as in selector)"
+msgstr "선택 객체가 선택 큐에서 보일지를 지정(선택자와 동일)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:232
 msgid "Enable gradient editing"
-msgstr ""
+msgstr "그라디언트 편집 가능"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:233
 msgid "Whether selected objects display gradient editing controls"
-msgstr ""
+msgstr "선택 객체가 그라디언트 편집 제어를 보일지 지정"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:238
 msgid "Conversion to guides uses edges instead of bounding box"
-msgstr ""
+msgstr "경계상자 대신 안내선 변환은 모서리를 사용"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:239
-msgid ""
-"Converting an object to guides places these along the object's true edges "
-"(imitating the object's shape), not along the bounding box."
-msgstr ""
+msgid "Converting an object to guides places these along the object's true edges (imitating the object's shape), not along the bounding box."
+msgstr "객체가 안내선을 따라 변환되는 것은 객체의 모서리를 따라 위치함"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:246
 msgid "Ctrl+click dot size:"
-msgstr ""
+msgstr "Ctrl+클릭 점 크기:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:246
-#, fuzzy
 msgid "times current stroke width"
-msgstr "글자를 곡선으로 변환"
+msgstr "x 현재 윤곽선 폭"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:247
 msgid "Size of dots created with Ctrl+click (relative to current stroke width)"
-msgstr ""
+msgstr "Ctrl+클릭에 의해 생성된 점의 크기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:262
 msgid "<b>No objects selected</b> to take the style from."
-msgstr ""
+msgstr "스타일을 취할 선택 객체가 없음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:271
-msgid ""
-"<b>More than one object selected.</b>  Cannot take style from multiple "
-"objects."
-msgstr ""
+msgid "<b>More than one object selected.</b>  Cannot take style from multiple objects."
+msgstr "한 객체 이상 선택됨. 다수 객체로 부터 스타일을 얻을 수 없음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:305
 msgid "Create new objects with:"
-msgstr ""
+msgstr "새 객체 생성"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:307
 msgid "Last used style"
-msgstr ""
+msgstr "마지막 사용한 스타일"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:309
 msgid "Apply the style you last set on an object"
-msgstr ""
+msgstr "객체에서 마지막 설정된 스타일을 적용"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:314
 msgid "This tool's own style:"
-msgstr ""
+msgstr "이 도구 자체 스타일:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:318
-msgid ""
-"Each tool may store its own style to apply to the newly created objects. Use "
-"the button below to set it."
-msgstr ""
+msgid "Each tool may store its own style to apply to the newly created objects. Use the button below to set it."
+msgstr "각 도구는 새로이 생성된 객체를 적용하기 위하여 자체 스타일을 저장함"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:323
 msgid "Take from selection"
-msgstr ""
+msgstr "선택에서 취하기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:327
 msgid "This tool's style of new objects"
-msgstr ""
+msgstr "새 객체의 도구 스타일"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:335
 msgid "Remember the style of the (first) selected object as this tool's style"
-msgstr ""
+msgstr "선택된 객체의 스타일을 저장"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:340
 msgid "Tools"
-msgstr "도구"
+msgstr "도구"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:343
 msgid "Bounding box to use:"
-msgstr ""
+msgstr "사용할 경계 상자"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:344
 msgid "Visual bounding box"
-msgstr ""
+msgstr "시각적 경계 상자"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:346
 msgid "This bounding box includes stroke width, markers, filter margins, etc."
-msgstr ""
+msgstr "이 경계 상자는 윤곽선 폭, 마커, 필터 여백 등을 포함"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:347
 msgid "Geometric bounding box"
-msgstr ""
+msgstr "기하학적 경계 상자"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:349
 msgid "This bounding box includes only the bare path"
-msgstr ""
+msgstr "이 경계 상자는 단지 순수 경로만 포함"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:351
-#, fuzzy
 msgid "Conversion to guides:"
-msgstr "노드를 아래도"
+msgstr "안내선으로 변환:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:352
-#, fuzzy
 msgid "Keep objects after conversion to guides"
-msgstr "클론으로 만들 <b>객체</b>를 선택"
+msgstr "안내선으로 변환 후 객체 유지"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:354
-msgid ""
-"When converting an object to guides, don't delete the object after the "
-"conversion."
-msgstr ""
+msgid "When converting an object to guides, don't delete the object after the conversion."
+msgstr "객체가 안내선으로 변환시, 변환 후 객체를 삭제하지 않음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:355
-#, fuzzy
 msgid "Treat groups as a single object"
-msgstr "새 연결자 생성"
+msgstr "단일 객체처럼 그룹 취급"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:357
-msgid ""
-"Treat groups as a single object during conversion to guides rather than "
-"converting each child separately."
-msgstr ""
+msgid "Treat groups as a single object during conversion to guides rather than converting each child separately."
+msgstr "개별적으로 각 자식으로 변환하는 것 보다 안내선으로 변환하는 동안 단일 객체로서 그룹을 다룸"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:359
 msgid "Width is in absolute units"
-msgstr ""
+msgstr "폭은 절대 단위임"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:360
-#, fuzzy
 msgid "Select new path"
-msgstr "노드 삭제"
+msgstr "새 경로 선택"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:361
 msgid "Don't attach connectors to text objects"
-msgstr ""
+msgstr "연결자를 문자열 객체에 붙이지 않음"
 
 #. Selector
 #: ../src/ui/dialog/inkscape-preferences.cpp:364
@@ -10956,7 +10113,7 @@ msgstr "선택자"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:367
 msgid "When transforming, show:"
-msgstr ""
+msgstr "변형시, 보이기:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:368
 msgid "Objects"
@@ -10964,39 +10121,39 @@ msgstr "객체"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:370
 msgid "Show the actual objects when moving or transforming"
-msgstr ""
+msgstr "이동 또는 변환시 실제 객체 보이기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:371
 msgid "Box outline"
-msgstr "박스 외각선"
+msgstr "상자 윤곽선"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:373
 msgid "Show only a box outline of the objects when moving or transforming"
-msgstr ""
+msgstr "이동 또는 변환시 객체의 상자 윤곽선만 보이기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:374
 msgid "Per-object selection cue:"
-msgstr ""
+msgstr "기본설정-객체 선택 큐:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:377
 msgid "No per-object selection indication"
-msgstr ""
+msgstr "기본설정-객체 선택 지시"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:378
 msgid "Mark"
-msgstr "마크"
+msgstr "표시"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:380
 msgid "Each selected object has a diamond mark in the top left corner"
-msgstr ""
+msgstr "각 선택 객체는최상위 왼쪽 모서리에 마름모 표시가 있음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:381
 msgid "Box"
-msgstr "박스"
+msgstr "상자"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:383
 msgid "Each selected object displays its bounding box"
-msgstr ""
+msgstr "각 선택 객체는 경계 상자를 나타냄"
 
 #. Node
 #: ../src/ui/dialog/inkscape-preferences.cpp:386
@@ -11004,157 +10161,151 @@ msgid "Node"
 msgstr "노드"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:389
-#, fuzzy
 msgid "Path outline:"
-msgstr "박스 외각선"
+msgstr "경로 윤곽선"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:390
 #: ../src/ui/dialog/inkscape-preferences.cpp:391
-#, fuzzy
 msgid "Path outline color"
-msgstr "색 붙이기"
+msgstr "경계 윤곽선 색상"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:391
 msgid "Selects the color used for showing the path outline."
-msgstr ""
+msgstr "경로 윤곽선을 보이기 위하여 사용된 색상 선택"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:392
 msgid "Path outline flash on mouse-over"
-msgstr ""
+msgstr "마우스를 위에 둘 때 경로 윤곽선 보이기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:393
 msgid "When hovering over a path, briefly flash its outline."
-msgstr ""
+msgstr "경로상을 움직일 때, 간략히 윤곽선을 나타냄"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:395
 msgid "Flash time"
-msgstr ""
+msgstr "플래시 시간"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:395
-msgid ""
-"Specifies how long the path outline will be visible after a mouse-over (in "
-"milliseconds). Specify 0 to have the outline shown until mouse leaves the "
-"path."
-msgstr ""
+msgid "Specifies how long the path outline will be visible after a mouse-over (in milliseconds). Specify 0 to have the outline shown until mouse leaves the path."
+msgstr "마우스 위에 위치한 후 경로 윤곽선을 얼마나 오랫동안 볼 수 있는가를 나타냄(밀리초). 0은 마우스가 경로를 떠날 때까지 보임을 의미"
 
 #. Tweak
-#: ../src/ui/dialog/inkscape-preferences.cpp:398 ../src/verbs.cpp:2419
+#: ../src/ui/dialog/inkscape-preferences.cpp:398
+#: ../src/verbs.cpp:2419
 msgid "Tweak"
-msgstr ""
+msgstr "조정"
 
 #. Zoom
 #: ../src/ui/dialog/inkscape-preferences.cpp:403
-#: ../src/ui/view/edit-widget.cpp:1073 ../src/verbs.cpp:2441
+#: ../src/ui/view/edit-widget.cpp:1073
+#: ../src/verbs.cpp:2441
 #: ../src/widgets/desktop-widget.cpp:490
 #: ../share/extensions/render_alphabetsoup.inx.h:5
 msgid "Zoom"
-msgstr "확대 축소 보기"
+msgstr "비율"
 
 #. Shapes
 #: ../src/ui/dialog/inkscape-preferences.cpp:408
 msgid "Shapes"
-msgstr "형태"
+msgstr "모양"
 
 #. Pencil
-#: ../src/ui/dialog/inkscape-preferences.cpp:436 ../src/verbs.cpp:2431
+#: ../src/ui/dialog/inkscape-preferences.cpp:436
+#: ../src/verbs.cpp:2431
 msgid "Pencil"
 msgstr "연필"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:439
 #: ../src/ui/dialog/tracedialog.cpp:601
 msgid "Tolerance:"
-msgstr "내구력:"
+msgstr "허용치:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:440
-msgid ""
-"This value affects the amount of smoothing applied to freehand lines; lower "
-"values produce more uneven paths with more nodes"
-msgstr ""
+msgid "This value affects the amount of smoothing applied to freehand lines; lower values produce more uneven paths with more nodes"
+msgstr "이 값은 자유곡선에 적용된 양에 영향을 미침"
 
 #. Pen
-#: ../src/ui/dialog/inkscape-preferences.cpp:446 ../src/verbs.cpp:2433
+#: ../src/ui/dialog/inkscape-preferences.cpp:446
+#: ../src/verbs.cpp:2433
 msgid "Pen"
 msgstr "펜"
 
 #. Calligraphy
-#: ../src/ui/dialog/inkscape-preferences.cpp:452 ../src/verbs.cpp:2435
+#: ../src/ui/dialog/inkscape-preferences.cpp:452
+#: ../src/verbs.cpp:2435
 msgid "Calligraphy"
-msgstr "채도"
+msgstr "글씨체"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:456
-msgid ""
-"If on, pen width is in absolute units (px) independent of zoom; otherwise "
-"pen width depends on zoom so that it looks the same at any zoom"
-msgstr ""
+msgid "If on, pen width is in absolute units (px) independent of zoom; otherwise pen width depends on zoom so that it looks the same at any zoom"
+msgstr "On시, 확대와 무관한 펜 폭의 절대 단위(화소)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:458
-msgid ""
-"If on, each newly created object will be selected (deselecting previous "
-"selection)"
-msgstr ""
+msgid "If on, each newly created object will be selected (deselecting previous selection)"
+msgstr "On시, 새로이 생성된 객체를 선택함"
 
 #. Paint Bucket
-#: ../src/ui/dialog/inkscape-preferences.cpp:460 ../src/verbs.cpp:2447
-#, fuzzy
+#: ../src/ui/dialog/inkscape-preferences.cpp:460
+#: ../src/verbs.cpp:2447
 msgid "Paint Bucket"
-msgstr "문서 출력"
+msgstr "페인트통"
 
 #. Eraser
-#: ../src/ui/dialog/inkscape-preferences.cpp:465 ../src/verbs.cpp:2451
-#, fuzzy
+#: ../src/ui/dialog/inkscape-preferences.cpp:465
+#: ../src/verbs.cpp:2451
 msgid "Eraser"
-msgstr "반지름"
+msgstr "지우개"
 
 #. Gradient
-#: ../src/ui/dialog/inkscape-preferences.cpp:475 ../src/verbs.cpp:2439
+#: ../src/ui/dialog/inkscape-preferences.cpp:475
+#: ../src/verbs.cpp:2439
 msgid "Gradient"
-msgstr "색변화"
+msgstr "그라디언트"
 
 #. Connector
-#: ../src/ui/dialog/inkscape-preferences.cpp:479 ../src/verbs.cpp:2445
+#: ../src/ui/dialog/inkscape-preferences.cpp:479
+#: ../src/verbs.cpp:2445
 msgid "Connector"
 msgstr "연결자"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:482
 msgid "If on, connector attachment points will not be shown for text objects"
-msgstr ""
+msgstr "On시,연결자 붙임점은 문제열 객체에서 나타나지 않음"
 
 #. Dropper
-#: ../src/ui/dialog/inkscape-preferences.cpp:484 ../src/verbs.cpp:2443
+#: ../src/ui/dialog/inkscape-preferences.cpp:484
+#: ../src/verbs.cpp:2443
 msgid "Dropper"
-msgstr ""
+msgstr "색상 추출기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:491
 msgid "Save and restore window geometry for each document"
-msgstr ""
+msgstr "문서에 창 크기 및 위치를 저장 및 복원"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:492
-#, fuzzy
 msgid "Remember and use last window's geometry"
 msgstr "창 위치 저장"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:493
-#, fuzzy
 msgid "Don't save window geometry"
-msgstr "창 위치 저장"
+msgstr "창 크기 및 위치 저장하지 않음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:495
 #: ../src/ui/dialog/inkscape-preferences.cpp:515
-#, fuzzy
 msgid "Dockable"
-msgstr "확대/축소(_S)"
+msgstr "도크가능"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:498
 msgid "Dialogs are hidden in taskbar"
-msgstr "ì\9e\91ì\97\85ë°\94ì\97\90ì\84\9c ë\8c\80í\99\94ì\9e¥ 숨김"
+msgstr "ì\9e\91ì\97\85ë§\89ë\8c\80ì\97\90ì\84\9c ë\8c\80í\99\94ì°½ 숨김"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:499
 msgid "Zoom when window is resized"
-msgstr "창크기가 조정 되었을때 확대/축소 "
+msgstr "창 크기가 조정되었을 때 확대/축소 "
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:500
 msgid "Show close button on dialogs"
-msgstr "ë\8c\80í\99\94ì°½ì\97\90 ë\8b«ê¸° ë²\84í\8a¼ ë³´ì\9e\84"
+msgstr "ë\8c\80í\99\94ì°½ì\97\90 ë\8b«ê¸° ë²\84í\8a¼ ë³´ì\9d´ê¸°"
 
 #. consider moving this to an UI tab:
 #: ../src/ui/dialog/inkscape-preferences.cpp:502
@@ -11164,67 +10315,59 @@ msgstr "일반"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:503
 msgid "Aggressive"
-msgstr "공격적"
+msgstr "공격적"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:505
-#, fuzzy
 msgid "Saving window geometry (size and position):"
-msgstr "창 위치 저장"
+msgstr "창 크기 및 위치 저장"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:507
 msgid "Let the window manager determine placement of all windows"
-msgstr ""
+msgstr "창 관리자가 전체 창의 위치를 결정하도록 함"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:509
-msgid ""
-"Remember and use the last window's geometry (saves geometry to user "
-"preferences)"
-msgstr ""
+msgid "Remember and use the last window's geometry (saves geometry to user preferences)"
+msgstr "마지막 창 크기 및 위치 저장 및 사용 (창 설정을 사용자 기본설정으로 저장)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:511
-msgid ""
-"Save and restore window geometry for each document (saves geometry in the "
-"document)"
-msgstr ""
+msgid "Save and restore window geometry for each document (saves geometry in the document)"
+msgstr "문서에 창 크기 및 위치를 저장 및 복원(문서에 창 정보 저장)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:513
 msgid "Dialog behavior (requires restart):"
-msgstr ""
+msgstr "대화창 작동(재시작 필요):"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:520
 msgid "Dialogs on top:"
-msgstr "맨위에 대화창:"
+msgstr "상부에 대화창:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:523
 msgid "Dialogs are treated as regular windows"
-msgstr ""
+msgstr "대화창을 정규 창으로 다룸"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:525
 msgid "Dialogs stay on top of document windows"
-msgstr ""
+msgstr "대화창이 문서창의 최상단에 머물음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:527
 msgid "Same as Normal but may work better with some window managers"
-msgstr ""
+msgstr "일반과 같고 몇몇 창 관리자와 잘 작동"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:530
 msgid "Miscellaneous:"
-msgstr ""
+msgstr "기타:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:533
 msgid "Whether dialog windows are to be hidden in the window manager taskbar"
-msgstr ""
+msgstr "창 관리자 작업 막대에서 대화창이 숨겨져 있는지"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:536
-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 ""
+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:538
 msgid "Whether dialog windows have a close button (requires restart)"
-msgstr ""
+msgstr "대화창이 닫힘 단추를 가졌는지(재시작 필요)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:539
 msgid "Windows"
@@ -11232,19 +10375,19 @@ msgstr "창"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:544
 msgid "Move in parallel"
-msgstr ""
+msgstr "수평 이동"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:546
 msgid "Stay unmoved"
-msgstr ""
+msgstr "이동하지 않고 머물음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:548
 msgid "Move according to transform"
-msgstr ""
+msgstr "변형에 의한 이동"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:550
 msgid "Are unlinked"
-msgstr ""
+msgstr "링크해제됨"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:552
 msgid "Are deleted"
@@ -11252,254 +10395,229 @@ msgstr "삭제됨"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:555
 msgid "When the original moves, its clones and linked offsets:"
-msgstr ""
+msgstr "원본이 이동시, 복제 및 링크 옵셋:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:557
 msgid "Clones are translated by the same vector as their original."
-msgstr ""
+msgstr "복제물이 원본처럼 동일 벡터로서 변환"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:559
 msgid "Clones preserve their positions when their original is moved."
-msgstr ""
+msgstr "원본이 움직일 때 복제물은  그 위치를 유지"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:561
-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 ""
+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:562
 msgid "When the original is deleted, its clones:"
-msgstr ""
+msgstr "원본이 삭제시, 복제:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:564
 msgid "Orphaned clones are converted to regular objects."
-msgstr ""
+msgstr "잃은 복제물을 정규 객체로 변환"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:566
 msgid "Orphaned clones are deleted along with their original."
-msgstr ""
+msgstr "잃은 복제물을 원본과 함께 삭제"
 
 #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page
 #: ../src/ui/dialog/inkscape-preferences.cpp:569
 msgid "Clones"
-msgstr "ë³µì\82¬ 객체"
+msgstr "ë³µì \9c 객체"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:574
 msgid "When applying, use the topmost selected object as clippath/mask"
-msgstr ""
+msgstr "적용시 자르기 경로 &마스크로서 최상위 선택 객체 사용"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:576
-msgid ""
-"Uncheck this to use the bottom selected object as the clipping path or mask"
+msgid "Uncheck this to use the bottom selected object as the clipping path or mask"
 msgstr ""
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:577
 msgid "Remove clippath/mask object after applying"
-msgstr ""
+msgstr "적용 후 자르기 경로 & 마스크 제거"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:579
-msgid ""
-"After applying, remove the object used as the clipping path or mask from the "
-"drawing"
+msgid "After applying, remove the object used as the clipping path or mask from the drawing"
 msgstr ""
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:580
 msgid "Clippaths and masks"
-msgstr ""
+msgstr "자르기경로 & 마스크"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:585
 #: ../src/widgets/select-toolbar.cpp:524
 msgid "Scale stroke width"
-msgstr ""
+msgstr "윤곽선 폭 변경"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:586
 msgid "Scale rounded corners in rectangles"
-msgstr ""
+msgstr "직사각형에서 둥근 모서리 변경"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:587
 msgid "Transform gradients"
-msgstr ""
+msgstr "그라디언트 변형"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:588
 msgid "Transform patterns"
-msgstr ""
+msgstr "패턴 변형"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:589
 msgid "Optimized"
-msgstr "최적화"
+msgstr "최적화"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:590
 msgid "Preserved"
-msgstr ""
+msgstr "예약"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:593
 #: ../src/widgets/select-toolbar.cpp:525
 msgid "When scaling objects, scale the stroke width by the same proportion"
-msgstr ""
+msgstr "객체를 변경시 동일비율로 윤곽선 폭이 변경"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:595
 #: ../src/widgets/select-toolbar.cpp:536
 msgid "When scaling rectangles, scale the radii of rounded corners"
-msgstr ""
+msgstr "사각형 변경시 둥근 모서리 반경이 변함"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:597
 #: ../src/widgets/select-toolbar.cpp:547
 msgid "Move gradients (in fill or stroke) along with the objects"
-msgstr ""
+msgstr "객체를 따라 그라디언트(채움 또는 윤곽선) 이동"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:599
 #: ../src/widgets/select-toolbar.cpp:558
 msgid "Move patterns (in fill or stroke) along with the objects"
-msgstr ""
+msgstr "객체를 따라 패턴(채움 또는 윤곽선) 이동"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:600
 msgid "Store transformation:"
-msgstr "이동치 저장"
+msgstr "변환 저장:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:602
-msgid ""
-"If possible, apply transformation to objects without adding a transform= "
-"attribute"
-msgstr ""
+msgid "If possible, apply transformation to objects without adding a transform= attribute"
+msgstr "가능하다면 변환=속성을 더함이 ㅇㅂ서이 변환 적용"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:604
 msgid "Always store transformation as a transform= attribute on objects"
-msgstr ""
+msgstr "객체에서 변환=속성으로서 변환을 항상 저장"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:606
 msgid "Transforms"
-msgstr "이동"
+msgstr "변환"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:611
 msgid "Best quality (slowest)"
-msgstr ""
+msgstr "최고 질(아주 느림)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:613
 msgid "Better quality (slower)"
-msgstr ""
+msgstr "최적 질(느림)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:615
 msgid "Average quality"
-msgstr ""
+msgstr "평균 질"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:617
-#, fuzzy
 msgid "Lower quality (faster)"
-msgstr "ë\85¸ë\93\9c를 ì\95\84ë\9e\98ë\8f\84"
+msgstr "ë\82®ì\9d\80 ì§\88(ë¹ ë¦\84)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:619
 msgid "Lowest quality (fastest)"
-msgstr ""
+msgstr "아주 낮은 질(아주 빠름)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:622
 msgid "Gaussian blur quality for display:"
-msgstr ""
+msgstr "보이기 위한 가우시안 흐림 질:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:624
-msgid ""
-"Best quality, but display may be very slow at high zooms (bitmap export "
-"always uses best quality)"
-msgstr ""
+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:626
 msgid "Better quality, but slower display"
-msgstr ""
+msgstr "최적 질, 느리게 보임"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:628
 msgid "Average quality, acceptable display speed"
-msgstr ""
+msgstr "평균질, 속도가 적당"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:630
 msgid "Lower quality (some artifacts), but display is faster"
-msgstr ""
+msgstr "낮은 질, 빠르게 보임"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:632
 msgid "Lowest quality (considerable artifacts), but display is fastest"
-msgstr ""
+msgstr "아주 낮은 질, (상당히 인위적) 아주 빠르게 보임"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:634
-#, fuzzy
 msgid "Show filter primitives infobox"
-msgstr "í\8a¹ì\84± ì\82­ì \9c"
+msgstr "í\95\84í\84° ì´\88기 ì \95ë³´ì\83\81ì\9e\90 ë³´ì\9d´ê¸°"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:636
-msgid ""
-"Show icons and descriptions for the filter primitives available at the "
-"filter effects dialog."
-msgstr ""
+msgid "Show icons and descriptions for the filter primitives available at the filter effects dialog."
+msgstr "필터 원본에 대한 아이콘과 설명 보이기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:638
-#, fuzzy
 msgid "Filters"
-msgstr "밀리미터"
+msgstr "터"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:644
 msgid "Select in all layers"
-msgstr "모든 레이어 선택"
+msgstr "전체 레이어 선택"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:645
 msgid "Select only within current layer"
-msgstr ""
+msgstr "현재 레이어에서만 선택"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:646
 msgid "Select in current layer and sublayers"
-msgstr ""
+msgstr "현재 레이어와 하위 레이어에서 선택"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:647
-#, fuzzy
 msgid "Ignore hidden objects and layers"
-msgstr "ê°\90춰ì§\84 ê°\9dì²´ ë¬´ì\8b\9c"
+msgstr "ì\88¨ê¸´ ê°\9dì²´ì\99\80 ë \88ì\9d´ì\96´ ë¬´ì\8b\9c"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:648
-#, fuzzy
 msgid "Ignore locked objects and layers"
-msgstr "ì\9e ê²¨ì§\84 ê°\9dì²´ ë¬´ì\8b\9c"
+msgstr "ì\9e ê¸´ ê°\9dì²´ì\99\80 ë \88ì\9d´ì\96´ ë¬´ì\8b\9c"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:649
 msgid "Deselect upon layer change"
-msgstr ""
+msgstr "레이어 변경 선택 해제"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:651
 msgid "Ctrl+A, Tab, Shift+Tab:"
-msgstr "Ctrl+A, Tab, Shift+Tab:"
+msgstr "Ctrl+A키, Tab키, Shift+Tab키 :"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:653
 msgid "Make keyboard selection commands work on objects in all layers"
-msgstr ""
+msgstr "전체 레이어에서 키보드 선택 명령어가 객체상에서 작동하도록 만들기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:655
 msgid "Make keyboard selection commands work on objects in current layer only"
-msgstr ""
+msgstr "현재 레이어에서만 키보드 선택 명령어가 객체에 작동하도록 만들기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:657
-msgid ""
-"Make keyboard selection commands work on objects in current layer and all "
-"its sublayers"
-msgstr ""
+msgid "Make keyboard selection commands work on objects in current layer and all its sublayers"
+msgstr "현재 레이어와 전체 이의 하위 레이어에서 키보드 선택 명령어가 객체에 작동하도록 만들기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:659
-msgid ""
-"Uncheck this to be able to select objects that are hidden (either by "
-"themselves or by being in a hidden layer)"
-msgstr ""
+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:661
-msgid ""
-"Uncheck this to be able to select objects that are locked (either by "
-"themselves or by being in a locked layer)"
-msgstr ""
+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:664
-msgid ""
-"Uncheck this to be able to keep the current objects selected when the "
-"current layer changes"
-msgstr ""
+msgid "Uncheck this to be able to keep the current objects selected when the current layer changes"
+msgstr "현재 레이어가 변경시 현재 객체가 선택될 수 있도록 체크 해제"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:666
 msgid "Selecting"
-msgstr "선택"
+msgstr "선택"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:673
 msgid "Default export resolution:"
@@ -11507,21 +10625,19 @@ msgstr "기본 내보내기 해상도:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:674
 msgid "Default bitmap resolution (in dots per inch) in the Export dialog"
-msgstr "내보내기 대화창에서 기본 비트맵 해상도 (인치 마다의 도트수)"
+msgstr "내보내기 대화창에서 기본 비트맵 해상도 (DPI)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:676
 msgid "Open Clip Art Library Server Name:"
-msgstr ""
+msgstr "Open Clip Art 라이브러리 서버 이름:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:677
-msgid ""
-"The server name of the Open Clip Art Library webdav server. It's used by the "
-"Import and Export to OCAL function."
-msgstr ""
+msgid "The server name of the Open Clip Art Library webdav server. It's used by the Import and Export to OCAL function."
+msgstr "Open Clip Art 라이브러리 webdav 서버의 서버명"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:679
 msgid "Open Clip Art Library Username:"
-msgstr ""
+msgstr "Open Clip Art 라이브러리 사용자명:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:680
 msgid "The username used to log into Open Clip Art Library."
@@ -11529,30 +10645,28 @@ msgstr ""
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:682
 msgid "Open Clip Art Library Password:"
-msgstr ""
+msgstr "Open Clip Art 라이브러리 암호:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:683
 msgid "The password used to log into Open Clip Art Library."
-msgstr ""
+msgstr "Open Clip Art 라이브러리에 접속하기 위한 암호"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:685
-#, fuzzy
 msgid "Import/Export"
-msgstr "불러오기(_I)..."
+msgstr "불러오기/내보내기"
 
 #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm
 #: ../src/ui/dialog/inkscape-preferences.cpp:731
-#, fuzzy
 msgid "Perceptual"
-msgstr "퍼센트"
+msgstr "지각"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:731
 msgid "Relative Colorimetric"
-msgstr ""
+msgstr "상대 색상색도계"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:731
 msgid "Absolute Colorimetric"
-msgstr ""
+msgstr "절대 색상색도계"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:735
 msgid "(Note: Color management has been disabled in this build)"
@@ -11560,11 +10674,11 @@ msgstr ""
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:739
 msgid "Display adjustment"
-msgstr ""
+msgstr "조정 보이기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:741
 msgid "Display profile:"
-msgstr ""
+msgstr "프로파일 보이기:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:742
 msgid "The ICC profile to use to calibrate display output."
@@ -11572,140 +10686,132 @@ msgstr ""
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:744
 msgid "Retrieve profile from display"
-msgstr ""
+msgstr "보이기에서 프로파일 복구"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:747
 msgid "Retrieve profiles from those attached to displays via XICC."
-msgstr ""
+msgstr "XICC를 통하여 보이게 하기 위하여 더하여진 프로파일의 복구"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:749
 msgid "Retrieve profiles from those attached to displays."
-msgstr ""
+msgstr "보이기 위해 더하여진 프로파일 복구"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:754
 msgid "Display rendering intent:"
-msgstr ""
+msgstr "렌더링 의도 보이기:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:755
 #: ../src/ui/dialog/inkscape-preferences.cpp:778
 msgid "The rendering intent to use to calibrate display output."
-msgstr ""
+msgstr "보이기 출력을 조정하기 위해 사용된 렌더링 의도"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:757
-#, fuzzy
 msgid "Proofing"
-msgstr "포인트"
+msgstr "가공"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:759
 msgid "Simulate output on screen"
-msgstr ""
+msgstr "화면상 출력 모의실험"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:761
 msgid "Simulates output of target device."
-msgstr ""
+msgstr "해당 기기의 출력으로 모의실험"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:763
 msgid "Mark out of gamut colors"
-msgstr ""
+msgstr "색상 범위 이상 표시"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:765
 msgid "Highlights colors that are out of gamut for the target device."
-msgstr ""
+msgstr "목표 기기를 위한 범위 이상의 강조 색상"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:770
 msgid "Out of gamut warning color:"
-msgstr ""
+msgstr "경고 색상 이상 범위:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:771
 msgid "Selects the color used for out of gamut warning."
-msgstr ""
+msgstr "경고 범위 이상에서 사용되는 색상 선택"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:773
 msgid "Device profile:"
-msgstr ""
+msgstr "기기 프로파일:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:774
 msgid "The ICC profile to use to simulate device output."
-msgstr ""
+msgstr "기기 출력을 모의실험하기 위하여 사용된 ICC 프로파일"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:777
 msgid "Device rendering intent:"
-msgstr ""
+msgstr "기기 렌더링 의도:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:780
-#, fuzzy
 msgid "Black point compensation"
-msgstr "출력 목적지"
+msgstr "검은 점 보상"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:782
 msgid "Enables black point compensation."
-msgstr ""
+msgstr "검은 점 보상 가능"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:784
 msgid "Preserve black"
-msgstr ""
+msgstr "검은 점 보존"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:789
 msgid "(LittleCMS 1.15 or later required)"
-msgstr ""
+msgstr "(LittleCMS 1.15 이상 필요)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:791
 msgid "Preserve K channel in CMYK -> CMYK transforms"
-msgstr ""
+msgstr "CMYK -> CMYK 변환에서 K 채널 유지"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:804
-#, fuzzy
 msgid "<none>"
-msgstr "없음"
+msgstr "<없음>"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:850
 msgid "Color management"
-msgstr ""
+msgstr "색상 관리"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:855
 msgid "Major grid line emphasizing"
-msgstr ""
+msgstr "주 격자선 강조"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:857
 msgid "Don't emphasize gridlines when zoomed out"
-msgstr ""
+msgstr "축소시 격자선 강조하지 않음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:858
-msgid ""
-"If set and zoomed out, the gridlines will be shown in normal color instead "
-"of major grid line color."
-msgstr ""
+msgid "If set and zoomed out, the gridlines will be shown in normal color instead of major grid line color."
+msgstr "축소시, 안내선은 주 격자선 색상대신 일반 색상으로 나타남"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:860
 msgid "Default grid settings"
-msgstr ""
+msgstr "기본 격자 설정"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:866
 #: ../src/ui/dialog/inkscape-preferences.cpp:887
-#, fuzzy
 msgid "Grid units"
-msgstr "격자"
+msgstr "격자 단위"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:869
 #: ../src/ui/dialog/inkscape-preferences.cpp:890
 msgid "Origin X"
-msgstr ""
+msgstr "원 위치 X"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:870
 #: ../src/ui/dialog/inkscape-preferences.cpp:891
 msgid "Origin Y"
-msgstr ""
+msgstr "원 위치 Y"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:873
-#, fuzzy
 msgid "Spacing X"
-msgstr "간격:"
+msgstr "간격 X"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:874
 #: ../src/ui/dialog/inkscape-preferences.cpp:893
-#, fuzzy
 msgid "Spacing Y"
-msgstr "간격:"
+msgstr "간격 Y"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:877
 #: ../src/ui/dialog/inkscape-preferences.cpp:899
@@ -11720,66 +10826,59 @@ msgstr ""
 #: ../src/ui/dialog/inkscape-preferences.cpp:881
 #: ../src/ui/dialog/inkscape-preferences.cpp:903
 msgid "Major grid line every"
-msgstr ""
+msgstr "주 격자선 매번"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:882
 msgid "Show dots instead of lines"
-msgstr ""
+msgstr "선 대신 점으로 보이기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:896
-#, fuzzy
 msgid "Angle X"
-msgstr "각도"
+msgstr "각도 X"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:897
-#, fuzzy
 msgid "Angle Z"
-msgstr "각도"
+msgstr "각도 Z"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:910
-#, fuzzy
 msgid "Use named colors"
-msgstr "이름바뀐 레이어"
+msgstr "이름 색상 사용"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:911
 msgid "If set, write the CSS name of the color instead of it's numeric value."
-msgstr ""
+msgstr "설정시, 수치값대신 색상의 CSS 이름을 씀"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:913
 msgid "XML looks"
-msgstr ""
+msgstr "XML 보기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:915
-#, fuzzy
 msgid "Inline attributes"
-msgstr "속성 설정"
+msgstr "늘어섬 속성"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:916
-#, fuzzy
 msgid "Inline the XML attributes"
-msgstr "특성 삭제"
+msgstr "XML 속성을 늘어섬"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:919
-#, fuzzy
 msgid "Indent spaces"
-msgstr "곡선 간격 띄우기"
+msgstr "들여쓰기 간격"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:919
 msgid "The number of spaces to use for indentation."
-msgstr ""
+msgstr "들여쓰기 위해 사용된 공백 갯수"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:921
-#, fuzzy
 msgid "Path string"
-msgstr "반복무늬"
+msgstr "경로 문자열"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:923
 msgid "Allow relative coordinates"
-msgstr ""
+msgstr "상대 좌표 허용"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:924
 msgid "If set, relative coordinates may be used in path data"
-msgstr ""
+msgstr "설정시 상대 좌표를 경로 자료에서 사용됨"
 
 #. seems this is never used in Inkscape code
 #. _svgoutput_allowshorthands.init( _("Allow shorthands"), "options.svgoutput", "allowshorthands", true);
@@ -11787,68 +10886,54 @@ msgstr ""
 #.
 #: ../src/ui/dialog/inkscape-preferences.cpp:931
 msgid "Force repeat commands"
-msgstr ""
+msgstr "반복 명령어 강제"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:932
-msgid ""
-"If set, force repeating of the same command (i.e. output 'L 1,2 L 3,4' "
-"instead of 'L 1,2 3,4')."
-msgstr ""
+msgid "If set, force repeating of the same command (i.e. output 'L 1,2 L 3,4' instead of 'L 1,2 3,4')."
+msgstr "설정시 동일 명령어의 반복 강제(예 'L 1,2 3,4'대신 'L 1,2 L 3,4' 출력."
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:934
 msgid "Numeric data"
-msgstr ""
+msgstr "수치 자료"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:937
-#, fuzzy
 msgid "Numeric precision"
-msgstr "ì\84¤ëª\85"
+msgstr "ì\86\8cì\88«ì \90"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:937
 msgid "The number of digits to use behind the comma."
-msgstr ""
+msgstr "콤마 뒤에 사용되는 자릿수"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:940
-#, fuzzy
 msgid "Minimum exponent"
-msgstr "최소 크기"
+msgstr "최소 지수"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:940
-msgid ""
-"The minimum size of a number (10 to the power of this exponent), smaller "
-"numbers will be written as zero."
-msgstr ""
+msgid "The minimum size of a number (10 to the power of this exponent), smaller numbers will be written as zero."
+msgstr "최소 숫자 크기, 가장 작은 숫자는 0임"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:947
 msgid "Add label comments to printing output"
-msgstr ""
+msgstr "라벨 주석을 인쇄 출력에 더하기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:949
-msgid ""
-"When on, a comment will be added to the raw print output, marking the "
-"rendered output for an object with its label"
-msgstr ""
+msgid "When on, a comment will be added to the raw print output, marking the rendered output for an object with its label"
+msgstr "On시, 주석이 출력 결과물에 더하여짐"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:951
 msgid "Prevent sharing of gradient definitions"
-msgstr ""
+msgstr "그라디언트 정의 공유를 막음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:953
-msgid ""
-"When on, shared gradient definitions are automatically forked on change; "
-"uncheck to allow sharing of gradient definitions so that editing one object "
-"may affect other objects using the same gradient"
-msgstr ""
+msgid "When on, shared gradient definitions are automatically forked on change; uncheck to allow sharing of gradient definitions so that editing one object may affect other objects using the same gradient"
+msgstr "On시, 공유 그라디언트 정의가 자동으로 변경시 갈라짐"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:955
 msgid "Simplification threshold:"
-msgstr ""
+msgstr "단순화 허용치:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:956
-msgid ""
-"How strong is the 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."
+msgid "How strong is the 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:958
@@ -11869,81 +10954,72 @@ msgstr "16x16"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:962
 msgid "Oversample bitmaps:"
-msgstr ""
+msgstr "오버샘플 비트맵:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:972
-#, fuzzy
 msgid "Commands bar icon size"
-msgstr "ëª\85ë ¹ ë°\94"
+msgstr "ëª\85ë ¹ ë§\89ë\8c\80 ì\95\84ì\9d´ì½\98 í\81¬ê¸°"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:973
 msgid "Set the size for the commands toolbar to use (requires restart)"
-msgstr ""
+msgstr "사용하기 위하여 명령어 도구막대 크기 설정(재시작 필요)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:976
-#, fuzzy
 msgid "Tool controls bar icon size"
-msgstr "ë\8f\84구 ì¡°ì \95 ë°\94"
+msgstr "ë\8f\84구 ì \9cì\96´ ë§\89ë\8c\80 ì\95\84ì\9d´ì½\98 í\81¬ê¸°"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:977
 msgid "Set the size for the secondary toolbar to use (requires restart)"
-msgstr ""
+msgstr "사용하기 위해 두번째 도구막대의 크기 설정(재시작 필요)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:980
 msgid "Main toolbar icon size"
-msgstr ""
+msgstr "주 도구막대 아이콘 크기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:981
 msgid "Set the size for the main tools to use (requires restart)"
-msgstr ""
+msgstr "사용하기 위하여 주 도구 크기 설정(재시작 필요)"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:984
 msgid "Maximum number of recent documents:"
-msgstr ""
+msgstr "최근 문서의 최대 갯수:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:985
 msgid "The maximum length of the Open Recent list in the File menu"
-msgstr ""
+msgstr "파일 메뉴에서 열린 최근 파일 목록의 최대 길이"
 
 #. Autosave options
 #: ../src/ui/dialog/inkscape-preferences.cpp:990
 msgid "Enable auto-save of document"
-msgstr ""
+msgstr "문서 자동 저장 가능"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:991
-msgid ""
-"Automatically saves the current document to disk at a given interval, thus "
-"minimizing loss at a crash"
-msgstr ""
+msgid "Automatically saves the current document to disk at a given interval, thus minimizing loss at a crash"
+msgstr "자동으로 현재 문서를 디스크에 주어진 시간뒤에 저장, 이것은 프로그램 이상시 손실을 최소하시킬 수 있음"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:993
 msgid "Interval (in minutes):"
-msgstr ""
+msgstr "간격(분):"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:993
-msgid ""
-"Sets the interval (in minutes) at which a workspace will be automatically "
-"saved to disk"
-msgstr ""
+msgid "Sets the interval (in minutes) at which a workspace will be automatically saved to disk"
+msgstr "자동으로 저장되는 시간 간격(분) 설정"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:995
-#, fuzzy
 msgid "Path:"
-msgstr "곡ì\84 "
+msgstr "ê²½ë¡\9c:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:995
 msgid "Sets the directory where autosaves will be written"
-msgstr ""
+msgstr "자동으로 저장되는 폴더 설정"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:997
 msgid "Maximum number of autosaves"
-msgstr ""
+msgstr "자동 저장 최대 갯수"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:997
-msgid ""
-"Allows for limiting the space used by autosaves, by setting a maximum number "
-"of allowed files"
-msgstr ""
+msgid "Allows for limiting the space used by autosaves, by setting a maximum number of allowed files"
+msgstr "허용되는 파일의 최대 갯수를 설정함으로서 자동저장에 의하여 사용되는 공간 제한을 허용"
 
 #. When changing the interval or enabling/disabling the autosave function,
 #. * update our running configuration
@@ -11961,95 +11037,96 @@ msgstr ""
 #. -----------
 #: ../src/ui/dialog/inkscape-preferences.cpp:1015
 msgid "Automatically reload bitmaps"
-msgstr ""
+msgstr "자동으로 비트맵 다시 읽어오기"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:1017
 msgid "Enbles automatic reload of linked images when changed on disk."
-msgstr ""
+msgstr "디스크상 변경시 링크된 이미지의 자동 읽기 가능"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:1030
 msgid "Bitmap editor:"
-msgstr ""
+msgstr "비트맵 편집기:"
 
 #: ../src/ui/dialog/inkscape-preferences.cpp:1036
 msgid "Misc"
-msgstr ""
+msgstr "기타"
+
+#: ../src/ui/dialog/livepatheffect-editor.cpp:57
+msgid "_Apply"
+msgstr "적용(_A)"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:74
 msgid "Apply new effect"
-msgstr ""
+msgstr "새 효과 적용"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:75
 msgid "Current effect"
-msgstr ""
+msgstr "현재 효과"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:76
-#, fuzzy
 msgid "Effect list"
-msgstr "옵셋"
+msgstr "효과 목록"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:239
 msgid "Unknown effect is applied"
-msgstr ""
+msgstr "알려지지 않은 효과를 적용시킴"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:242
 msgid "No effect applied"
-msgstr ""
+msgstr "적용된 효과 없음"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:248
 msgid "Item is not a path or shape"
-msgstr ""
+msgstr "항목이 경로 또는 모양이 아님"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:252
 msgid "Only one item can be selected"
-msgstr ""
+msgstr "한 항목만 선택할 수 있음"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:256
-#, fuzzy
 msgid "Empty selection"
-msgstr "선택부분 지우기"
+msgstr "빈 선택"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:349
-#, fuzzy
 msgid "Remove path effect"
-msgstr " 삭제(_m) "
+msgstr "경로 효과 삭제"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:366
-#, fuzzy
 msgid "Move path effect up"
-msgstr " 삭제(_m) "
+msgstr "경로 효과 위로 이동"
 
 #: ../src/ui/dialog/livepatheffect-editor.cpp:384
-#, fuzzy
 msgid "Move path effect down"
-msgstr " 삭제(_m) "
+msgstr "경로 효과 아래로 이동"
 
 #: ../src/ui/dialog/memory.cpp:94
 msgid "Heap"
-msgstr ""
+msgstr ""
 
 #: ../src/ui/dialog/memory.cpp:95
 msgid "In Use"
-msgstr ""
+msgstr "사용 중"
 
 #. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused.
 #. More typical usage is to call this memory "free" rather than "slack".
 #: ../src/ui/dialog/memory.cpp:98
 msgid "Slack"
-msgstr ""
+msgstr "메모리 사용량"
 
 #: ../src/ui/dialog/memory.cpp:99
 msgid "Total"
-msgstr "총합"
+msgstr "합계"
 
-#: ../src/ui/dialog/memory.cpp:139 ../src/ui/dialog/memory.cpp:145
-#: ../src/ui/dialog/memory.cpp:152 ../src/ui/dialog/memory.cpp:184
+#: ../src/ui/dialog/memory.cpp:139
+#: ../src/ui/dialog/memory.cpp:145
+#: ../src/ui/dialog/memory.cpp:152
+#: ../src/ui/dialog/memory.cpp:184
 msgid "Unknown"
-msgstr "알수 없는"
+msgstr "알려지지 않음"
 
 #: ../src/ui/dialog/memory.cpp:165
 msgid "Combined"
-msgstr "조합"
+msgstr "조합"
 
 #: ../src/ui/dialog/memory.cpp:207
 msgid "Recalculate"
@@ -12060,98 +11137,86 @@ msgid "Ready."
 msgstr "준비."
 
 #: ../src/ui/dialog/messages.cpp:76
-msgid ""
-"Enable log display by setting dialogs.debug 'redirect' attribute to 1 in "
-"preferences.xml"
-msgstr ""
+msgid "Enable log display by setting dialogs.debug 'redirect' attribute to 1 in preferences.xml"
+msgstr "preferences.xml에서 dialogs.debug 'redirect' 속성을 1로 설정함으로 로그 보이기 가능"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:77
-#, fuzzy
 msgid "File"
-msgstr "파일(_F)"
+msgstr "파일"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:175
-#, fuzzy
 msgid "Username:"
-msgstr "사용자 이름(_U):"
+msgstr "사용자 이름:"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:176
-#, fuzzy
 msgid "Password:"
-msgstr "암호(_P):"
+msgstr "암호:"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:402
 msgid "Error while reading the Open Clip Art RSS feed"
-msgstr ""
+msgstr "Open Clip Art RSS feed 읽는 동안 오류"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:440
-msgid ""
-"Failed to receive the Open Clip Art Library RSS feed. Verify if the server "
-"name is correct in Configuration->Import/Export (e.g.: openclipart.org)"
-msgstr ""
+msgid "Failed to receive the Open Clip Art Library RSS feed. Verify if the server name is correct in Configuration->Import/Export (e.g.: openclipart.org)"
+msgstr "Open Clip Art RSS feed 읽어오기 실패!"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:454
 msgid "Server supplied malformed Clip Art feed"
-msgstr ""
+msgstr "서버가 malformed 클립 아트 피드를 지원"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:545
-#, fuzzy
 msgid "Search for:"
-msgstr "그룹 찾기"
+msgstr "찾기:"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:546
 msgid "No files matched your search"
-msgstr ""
+msgstr "일치하는 파일이 없음"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:557
-#, fuzzy
 msgid "Search"
-msgstr "그룹 찾기"
+msgstr "찾기"
 
 #: ../src/ui/dialog/ocaldialogs.cpp:574
 msgid "Files found"
-msgstr ""
+msgstr "파일을 찾음"
 
 #: ../src/ui/dialog/print.cpp:138
 msgid "Could not open temporary PNG for bitmap printing"
-msgstr ""
+msgstr "비트맵 출력을 위해 임시 PNG 파일을 열 수 없음"
 
 #: ../src/ui/dialog/print.cpp:173
 msgid "Could not set up Document"
-msgstr ""
+msgstr "문서 설정할 수 없음"
 
 #: ../src/ui/dialog/print.cpp:177
 msgid "Failed to set CairoRenderContext"
-msgstr ""
+msgstr "CairoRenderContext 설정 실패"
 
 #. set up dialog title, based on document name
 #: ../src/ui/dialog/print.cpp:217
-#, fuzzy
 msgid "SVG Document"
-msgstr "문서 저장됨."
+msgstr "SVG 문서"
 
 #: ../src/ui/dialog/print.cpp:218
-#, fuzzy
 msgid "Print"
-msgstr "포인트"
+msgstr "인쇄"
 
 #. build custom preferences tab
 #: ../src/ui/dialog/print.cpp:245
-#, fuzzy
 msgid "Rendering"
-msgstr "랜더"
+msgstr "랜더"
 
 #: ../src/ui/dialog/scriptdialog.cpp:211
 msgid "_Execute Javascript"
-msgstr ""
+msgstr "자바스크립트 실행(_E)"
 
 #: ../src/ui/dialog/scriptdialog.cpp:213
 msgid "_Execute Python"
-msgstr ""
+msgstr "파이썬 실행(_E)"
 
 #: ../src/ui/dialog/scriptdialog.cpp:215
 msgid "_Execute Ruby"
-msgstr ""
+msgstr "루비 실행(_E)"
 
 #: ../src/ui/dialog/scriptdialog.cpp:224
 msgid "Script"
@@ -12159,81 +11224,72 @@ msgstr "스크립트"
 
 #: ../src/ui/dialog/scriptdialog.cpp:234
 msgid "Output"
-msgstr "내보내기"
+msgstr "출력"
 
 #: ../src/ui/dialog/scriptdialog.cpp:244
 msgid "Errors"
-msgstr "ì\97\90ë\9d¼"
+msgstr "ì\98¤ë¥\98"
 
 #. Dialog organization
 #: ../src/ui/dialog/session-player.cpp:73
-#, fuzzy
 msgid "Session file"
-msgstr "세션 파일을 쓰시오(_W):"
+msgstr "세션 파일"
 
 #: ../src/ui/dialog/session-player.cpp:74
 msgid "Playback controls"
-msgstr ""
+msgstr "제어 재생"
 
 #: ../src/ui/dialog/session-player.cpp:75
-#, fuzzy
 msgid "Message information"
-msgstr "메모리 사용량 정보"
+msgstr "메세지 정보"
 
 #. Active session file display
 #. fixme: Does this mean the active file for the session, or the file for the active session?
 #. Please indicate which with a TRANSLATORS comment.
 #: ../src/ui/dialog/session-player.cpp:85
-#, fuzzy
 msgid "Active session file:"
-msgstr "세션 파일을 쓰시오(_W):"
+msgstr "활성 세션 파일"
 
 #: ../src/ui/dialog/session-player.cpp:86
 msgid "Delay (milliseconds):"
-msgstr ""
+msgstr "지연 (밀리초):"
 
 #. Unload/load buttons
 #: ../src/ui/dialog/session-player.cpp:94
-#, fuzzy
 msgid "Close file"
-msgstr "닫기(_C)"
+msgstr "파일 닫기"
 
 #: ../src/ui/dialog/session-player.cpp:95
-#, fuzzy
 msgid "Open new file"
-msgstr "ì±\84ì\9b\80 ì \9cê±°"
+msgstr "ì\83\88 í\8c\8cì\9d¼ ì\97´ê¸°"
 
 #: ../src/ui/dialog/session-player.cpp:96
-#, fuzzy
 msgid "Set delay"
 msgstr "지연 설정"
 
 #: ../src/ui/dialog/session-player.cpp:138
-#, fuzzy
 msgid "Rewind"
-msgstr "랜더"
+msgstr "감기"
 
 #: ../src/ui/dialog/session-player.cpp:139
 msgid "Go back one change"
-msgstr ""
+msgstr "바로 이전 변경으로 이동"
 
 #: ../src/ui/dialog/session-player.cpp:140
-#, fuzzy
 msgid "Pause"
-msgstr "붙이기(_P)"
+msgstr "잠시 대기"
 
 #: ../src/ui/dialog/session-player.cpp:141
 msgid "Go forward one change"
-msgstr ""
+msgstr "한 개 변경 앞으로"
 
 #: ../src/ui/dialog/session-player.cpp:142
 msgid "Play"
-msgstr ""
+msgstr "실행"
 
 #: ../src/ui/dialog/session-player.cpp:177
-#, fuzzy
 msgid "Open session file"
-msgstr "세션 파일을 쓰시오(_W):"
+msgstr "세션 파일 열기"
 
 #. #### begin left panel
 #. ### begin notebook
@@ -12241,36 +11297,34 @@ msgstr "세션 파일을 쓰시오(_W):"
 #. # begin single scan
 #. brightness
 #: ../src/ui/dialog/tracedialog.cpp:396
-#, fuzzy
 msgid "Brightness cutoff"
-msgstr "명도"
+msgstr "명도 차단"
 
 #: ../src/ui/dialog/tracedialog.cpp:400
 msgid "Trace by a given brightness level"
-msgstr ""
+msgstr "지정 명도 레벨 따르기"
 
 #: ../src/ui/dialog/tracedialog.cpp:408
 msgid "Brightness cutoff for black/white"
-msgstr ""
+msgstr "검은색/흰색 위한 명도 차단"
 
 #: ../src/ui/dialog/tracedialog.cpp:415
 msgid "Single scan: creates a path"
-msgstr ""
+msgstr "단일 스캔: 경로 생성"
 
 #. canny edge detection
 #. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method
 #: ../src/ui/dialog/tracedialog.cpp:420
-#, fuzzy
 msgid "Edge detection"
-msgstr "외각선 인식"
+msgstr "모서리 검출"
 
 #: ../src/ui/dialog/tracedialog.cpp:424
 msgid "Trace with optimal edge detection by J. Canny's algorithm"
-msgstr ""
+msgstr "J. Canny's 알고리즘에 의해 최적 모서리 탐지 따르기"
 
 #: ../src/ui/dialog/tracedialog.cpp:441
 msgid "Brightness cutoff for adjacent pixels (determines edge thickness)"
-msgstr ""
+msgstr "인접 화소의 명도 차단(모서리 두께 결정)"
 
 #. quantization
 #. TRANSLATORS: Color Quantization: the process of reducing the number
@@ -12278,7 +11332,7 @@ msgstr ""
 #. colors and then re-applying this reduced set to the original image.
 #: ../src/ui/dialog/tracedialog.cpp:453
 msgid "Color quantization"
-msgstr ""
+msgstr "색상 양자화"
 
 #: ../src/ui/dialog/tracedialog.cpp:457
 msgid "Trace along the boundaries of reduced colors"
@@ -12286,33 +11340,30 @@ msgstr ""
 
 #: ../src/ui/dialog/tracedialog.cpp:465
 msgid "The number of reduced colors"
-msgstr "감소 된 색 숫자"
+msgstr "감소 색상수"
 
 #: ../src/ui/dialog/tracedialog.cpp:467
 msgid "Colors:"
-msgstr "색:"
+msgstr "색:"
 
 #. swap black and white
 #: ../src/ui/dialog/tracedialog.cpp:473
-#, fuzzy
 msgid "Invert image"
-msgstr "반전"
+msgstr "이미지 반전"
 
 #: ../src/ui/dialog/tracedialog.cpp:478
-#, fuzzy
 msgid "Invert black and white regions"
-msgstr "단순 따오기을 위한 검정색과 백색 반전"
+msgstr "검은색과 흰색 구간 역으로"
 
 #. # end single scan
 #. # begin multiple scan
 #: ../src/ui/dialog/tracedialog.cpp:487
-#, fuzzy
 msgid "Brightness steps"
-msgstr "명도"
+msgstr "명도 단계"
 
 #: ../src/ui/dialog/tracedialog.cpp:491
 msgid "Trace the given number of brightness levels"
-msgstr ""
+msgstr "명도 레벨의 지정 갯수 따오기"
 
 #: ../src/ui/dialog/tracedialog.cpp:498
 msgid "Scans:"
@@ -12320,80 +11371,75 @@ msgstr "스캔:"
 
 #: ../src/ui/dialog/tracedialog.cpp:501
 msgid "The desired number of scans"
-msgstr ""
+msgstr "스캔 갯수"
 
 #: ../src/ui/dialog/tracedialog.cpp:505
-#, fuzzy
 msgid "Colors"
-msgstr "색:"
+msgstr "색"
 
 #: ../src/ui/dialog/tracedialog.cpp:509
 msgid "Trace the given number of reduced colors"
-msgstr ""
+msgstr "감소 색상의 지정 갯수 따오기"
 
 #: ../src/ui/dialog/tracedialog.cpp:513
 msgid "Grays"
-msgstr ""
+msgstr "회색"
 
 #: ../src/ui/dialog/tracedialog.cpp:517
 msgid "Same as Colors, but the result is converted to grayscale"
-msgstr ""
+msgstr "색상처럼 동일, 결과를 회색톤으로 변환"
 
 #. TRANSLATORS: "Smooth" is a verb here
 #: ../src/ui/dialog/tracedialog.cpp:522
 msgid "Smooth"
-msgstr "ë¶\80ë\93\9cë\9f¬ì\9b\80"
+msgstr "ë¶\80ë\93\9cë\9f½ê²\8c"
 
 #: ../src/ui/dialog/tracedialog.cpp:526
 msgid "Apply Gaussian blur to the bitmap before tracing"
-msgstr ""
+msgstr "따오기 전 가우시안 흐림을 비트맵으로 적용"
 
 #. TRANSLATORS: "Stack" is a verb here
 #: ../src/ui/dialog/tracedialog.cpp:529
 msgid "Stack scans"
-msgstr ""
+msgstr "스택 스캔"
 
 #: ../src/ui/dialog/tracedialog.cpp:532
-msgid ""
-"Stack scans on top of one another (no gaps) instead of tiling (usually with "
-"gaps)"
+msgid "Stack scans on top of one another (no gaps) instead of tiling (usually with gaps)"
 msgstr ""
 
 #: ../src/ui/dialog/tracedialog.cpp:535
 msgid "Remove background"
-msgstr ""
+msgstr "배경 제거"
 
 #: ../src/ui/dialog/tracedialog.cpp:540
 msgid "Remove bottom (background) layer when done"
-msgstr ""
+msgstr "완료시 최하단(배경) 제거"
 
 #: ../src/ui/dialog/tracedialog.cpp:544
 msgid "Multiple scans: creates a group of paths"
-msgstr ""
+msgstr "다수 스캔: 경로 그룹 생성"
 
 #. ## begin option page
 #. # potrace parameters
 #: ../src/ui/dialog/tracedialog.cpp:559
 msgid "Suppress speckles"
-msgstr ""
+msgstr "작은 점 제거"
 
 #: ../src/ui/dialog/tracedialog.cpp:561
 msgid "Ignore small spots (speckles) in the bitmap"
-msgstr ""
+msgstr "비트맵에서 작은 점 무시"
 
 #: ../src/ui/dialog/tracedialog.cpp:569
 msgid "Speckles of up to this many pixels will be suppressed"
 msgstr ""
 
 #: ../src/ui/dialog/tracedialog.cpp:571
-#, fuzzy
 msgid "Size:"
-msgstr "크기"
+msgstr "크기:"
 
 #: ../src/ui/dialog/tracedialog.cpp:574
-#, fuzzy
 msgid "Smooth corners"
-msgstr "ë¶\80ë\93\9cë\9f¬ì\9b\80"
+msgstr "ë¶\80ë\93\9cë\9f¬ì\9a´ ëª¨ì\84\9c리"
 
 #: ../src/ui/dialog/tracedialog.cpp:576
 msgid "Smooth out sharp corners of the trace"
@@ -12401,27 +11447,25 @@ msgstr ""
 
 #: ../src/ui/dialog/tracedialog.cpp:585
 msgid "Increase this to smooth corners more"
-msgstr ""
+msgstr "모서리를 더 부드럽게 하기 위하여 이것을 증가"
 
 #: ../src/ui/dialog/tracedialog.cpp:589
-#, fuzzy
 msgid "Optimize paths"
-msgstr "최적화됨"
+msgstr "경로 최적화"
 
 #: ../src/ui/dialog/tracedialog.cpp:592
 msgid "Try to optimize paths by joining adjacent Bezier curve segments"
 msgstr ""
 
 #: ../src/ui/dialog/tracedialog.cpp:600
-msgid ""
-"Increase this to reduce the number of nodes in the trace by more aggressive "
-"optimization"
+msgid "Increase this to reduce the number of nodes in the trace by more aggressive optimization"
 msgstr ""
 
 #. ## end option page
-#: ../src/ui/dialog/tracedialog.cpp:607 ../src/ui/dialog/tracedialog.cpp:613
+#: ../src/ui/dialog/tracedialog.cpp:607
+#: ../src/ui/dialog/tracedialog.cpp:613
 msgid "Options"
-msgstr ""
+msgstr "설정"
 
 #. ### credits
 #: ../src/ui/dialog/tracedialog.cpp:621
@@ -12430,14 +11474,13 @@ msgstr "피터 셀린저에 감사, http://potrace.sourceforge.net"
 
 #: ../src/ui/dialog/tracedialog.cpp:623
 msgid "Credits"
-msgstr ""
+msgstr "신용"
 
 #. #### begin right panel
 #. ## SIOX
 #: ../src/ui/dialog/tracedialog.cpp:637
-#, fuzzy
 msgid "SIOX foreground selection"
-msgstr "선택된 부분에서 찾기(_e)"
+msgstr "SIOX 전경 선택"
 
 #: ../src/ui/dialog/tracedialog.cpp:640
 msgid "Cover the area you want to select as the foreground"
@@ -12445,16 +11488,12 @@ msgstr ""
 
 #. ## preview
 #: ../src/ui/dialog/tracedialog.cpp:645
-#, fuzzy
 msgid "Update"
-msgstr "날짜"
+msgstr "업데이트"
 
 #: ../src/ui/dialog/tracedialog.cpp:651
-#, fuzzy
-msgid ""
-"Preview the intermediate bitmap with the current settings, without actual "
-"tracing"
-msgstr "완벽한 따오기 없이 미리보기 결과"
+msgid "Preview the intermediate bitmap with the current settings, without actual tracing"
+msgstr "실제 따오기 없이 현재 설정으로 중간 비트맵 미리보기"
 
 #: ../src/ui/dialog/tracedialog.cpp:655
 msgid "Preview"
@@ -12462,11 +11501,11 @@ msgstr "미리보기"
 
 #: ../src/ui/dialog/tracedialog.cpp:672
 msgid "Abort a trace in progress"
-msgstr ""
+msgstr "작업에서 따오기 취소"
 
 #: ../src/ui/dialog/tracedialog.cpp:676
 msgid "Execute the trace"
-msgstr ""
+msgstr "따오기 실행"
 
 #: ../src/ui/dialog/transformation.cpp:83
 #: ../src/ui/dialog/transformation.cpp:93
@@ -12500,7 +11539,7 @@ msgstr "높이(_H)"
 
 #: ../src/ui/dialog/transformation.cpp:89
 msgid "Vertical size (absolute or percentage of current)"
-msgstr ""
+msgstr "수직 크기 (현재의 절대값 또는 백분율)"
 
 #: ../src/ui/dialog/transformation.cpp:91
 msgid "A_ngle"
@@ -12508,81 +11547,71 @@ msgstr "각도(_n)"
 
 #: ../src/ui/dialog/transformation.cpp:91
 msgid "Rotation angle (positive = counterclockwise)"
-msgstr ""
+msgstr "회전각(양의 값= 반시계방향)"
 
 #: ../src/ui/dialog/transformation.cpp:93
-msgid ""
-"Horizontal skew angle (positive = counterclockwise), or absolute "
-"displacement, or percentage displacement"
-msgstr ""
+msgid "Horizontal skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"
+msgstr "수평 기울이기 각도 (양의 값= 반시계방향)"
 
 #: ../src/ui/dialog/transformation.cpp:95
-msgid ""
-"Vertical skew angle (positive = counterclockwise), or absolute displacement, "
-"or percentage displacement"
-msgstr ""
+msgid "Vertical skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"
+msgstr "수직 기울이기 각도 (양의 값= 반시계방향)"
 
 #: ../src/ui/dialog/transformation.cpp:98
 msgid "Transformation matrix element A"
-msgstr ""
+msgstr "변형 행렬 요소 A"
 
 #: ../src/ui/dialog/transformation.cpp:99
 msgid "Transformation matrix element B"
-msgstr ""
+msgstr "변형 행렬 요소 B"
 
 #: ../src/ui/dialog/transformation.cpp:100
 msgid "Transformation matrix element C"
-msgstr ""
+msgstr "변형 행렬 요소 C"
 
 #: ../src/ui/dialog/transformation.cpp:101
 msgid "Transformation matrix element D"
-msgstr ""
+msgstr "변형 행렬 요소 D"
 
 #: ../src/ui/dialog/transformation.cpp:102
 msgid "Transformation matrix element E"
-msgstr ""
+msgstr "변형 행렬 요소 E"
 
 #: ../src/ui/dialog/transformation.cpp:103
 msgid "Transformation matrix element F"
-msgstr ""
+msgstr "변형 행렬 요소 F"
 
 #: ../src/ui/dialog/transformation.cpp:105
 msgid "Rela_tive move"
-msgstr ""
+msgstr "상대적 이동(_T)"
 
 #: ../src/ui/dialog/transformation.cpp:105
-msgid ""
-"Add the specified relative displacement to the current position; otherwise, "
-"edit the current absolute position directly"
-msgstr ""
+msgid "Add the specified relative displacement to the current position; otherwise, edit the current absolute position directly"
+msgstr "지정된 상대 위치를 현재 위치로 더하기; 그렇지 않으면 현재 절대 위치를 직접 편집"
 
 #: ../src/ui/dialog/transformation.cpp:106
 msgid "Scale proportionally"
-msgstr ""
+msgstr "비례적으로 변경"
 
 #: ../src/ui/dialog/transformation.cpp:106
 msgid "Preserve the width/height ratio of the scaled objects"
-msgstr ""
+msgstr "변경된 객체의 폭/높이 비율 유지"
 
 #: ../src/ui/dialog/transformation.cpp:107
 msgid "Apply to each _object separately"
-msgstr ""
+msgstr "각 객체를 개별적으로 적용(_O)"
 
 #: ../src/ui/dialog/transformation.cpp:107
-msgid ""
-"Apply the scale/rotate/skew to each selected object separately; otherwise, "
-"transform the selection as a whole"
-msgstr ""
+msgid "Apply the scale/rotate/skew to each selected object separately; otherwise, transform the selection as a whole"
+msgstr "비율/회전/기울이기를 각 객체에 개별적으로 적용, 그렇지 않으면 선택을 전체로 변환"
 
 #: ../src/ui/dialog/transformation.cpp:108
 msgid "Edit c_urrent matrix"
-msgstr ""
+msgstr "현재 행렬 편집(_U)"
 
 #: ../src/ui/dialog/transformation.cpp:108
-msgid ""
-"Edit the current transform= matrix; otherwise, post-multiply transform= by "
-"this matrix"
-msgstr ""
+msgid "Edit the current transform= matrix; otherwise, post-multiply transform= by this matrix"
+msgstr "현재 변형=행렬 편집"
 
 #: ../src/ui/dialog/transformation.cpp:118
 msgid "_Move"
@@ -12590,7 +11619,7 @@ msgstr "이동(_M)"
 
 #: ../src/ui/dialog/transformation.cpp:121
 msgid "_Scale"
-msgstr "확대/축소(_S)"
+msgstr "비율(_S)"
 
 #: ../src/ui/dialog/transformation.cpp:124
 msgid "_Rotate"
@@ -12598,144 +11627,133 @@ msgstr "회전(_R)"
 
 #: ../src/ui/dialog/transformation.cpp:127
 msgid "Ske_w"
-msgstr ""
+msgstr "기울이기(_W)"
 
 #: ../src/ui/dialog/transformation.cpp:130
 msgid "Matri_x"
-msgstr ""
+msgstr "행렬(_X)"
 
 #: ../src/ui/dialog/transformation.cpp:153
 msgid "Reset the values on the current tab to defaults"
-msgstr ""
+msgstr "현재 탭의 값을 기본값으로 초기화"
 
 #: ../src/ui/dialog/transformation.cpp:160
 msgid "Apply transformation to selection"
-msgstr ""
+msgstr "변환을 선택으로 적용"
 
 #: ../src/ui/dialog/transformation.cpp:842
-#, fuzzy
 msgid "Edit transformation matrix"
-msgstr "이동치 저장"
+msgstr "변환 행렬 편집"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:44
 msgid "_Use SSL"
-msgstr ""
+msgstr "SSL 사용(_U)"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:44
-#, fuzzy
 msgid "_Register"
-msgstr "ë°\98ì§\80ë¦\84"
+msgstr "ë\93±ë¡\9d(_R)"
 
 #. Construct dialog interface
 #: ../src/ui/dialog/whiteboard-connect.cpp:75
-#, fuzzy
 msgid "_Server:"
-msgstr "되돌리기(_R)"
+msgstr "서버(_S):"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:76
-#, fuzzy
 msgid "_Username:"
 msgstr "사용자 이름(_U):"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:77
-#, fuzzy
 msgid "_Password:"
 msgstr "암호(_P):"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:78
-#, fuzzy
 msgid "P_ort:"
-msgstr "출력(_E):"
+msgstr "포트(_O):"
 
 #. Buttons
 #: ../src/ui/dialog/whiteboard-connect.cpp:113
-#, fuzzy
 msgid "Connect"
-msgstr "연결"
+msgstr "연결"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:144
 msgid "Establishing connection to Jabber server <b>%1</b>"
-msgstr ""
+msgstr "Jabber 서버 %1에 연결 중"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:171
 #: ../src/ui/dialog/whiteboard-connect.cpp:216
 #: ../src/ui/dialog/whiteboard-connect.cpp:254
 msgid "Failed to establish connection to Jabber server <b>%1</b>"
-msgstr ""
+msgstr "Jabber 서버 %1에 연결 실패"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:209
 msgid "Establishing connection to Jabber server <b>%1</b> as user <b>%2</b>"
-msgstr ""
+msgstr "Jabber 서버 <b>%1</b>에 사용자 <b>%2</b>가 연결 중"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:221
 msgid "Authentication failed on Jabber server <b>%1</b> as <b>%2</b>"
-msgstr ""
+msgstr "Jabber 서버 <b>%1</b>에 사용자 <b>%2</b>가 연결 실패"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:226
 #: ../src/ui/dialog/whiteboard-connect.cpp:264
 msgid "SSL initialization failed when connecting to Jabber server <b>%1</b>"
-msgstr ""
+msgstr "Jabber 서버 %1에 연결 중 SSL 초기화 실패"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:232
 #: ../src/ui/dialog/whiteboard-connect.cpp:270
 msgid "Connected to Jabber server <b>%1</b> as <b>%2</b>"
-msgstr ""
+msgstr "서버 <b>%1</b>에 사용자 <b>%2</b>가 연결됨"
 
 #: ../src/ui/dialog/whiteboard-connect.cpp:259
 msgid "Registration failed on Jabber server <b>%1</b> as <b>%2</b>"
-msgstr ""
+msgstr "서버 <b>%1</b>에 사용자 <b>%2</b> 등록 실패"
 
 #. Construct labels
 #: ../src/ui/dialog/whiteboard-sharewithchat.cpp:75
-#, fuzzy
 msgid "Chatroom _name:"
-msgstr "레이어 이름:"
+msgstr "채팅 이름(_N):"
 
 #: ../src/ui/dialog/whiteboard-sharewithchat.cpp:76
 msgid "Chatroom _server:"
-msgstr ""
+msgstr "채팅 서버(_S):"
 
 #: ../src/ui/dialog/whiteboard-sharewithchat.cpp:77
 msgid "Chatroom _password:"
-msgstr ""
+msgstr "채팅 암호(_P):"
 
 #: ../src/ui/dialog/whiteboard-sharewithchat.cpp:78
-#, fuzzy
 msgid "Chatroom _handle:"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì±\84í\8c\85 í\95¸ë\93¤(_H):"
 
 #. Button setup and callback registration
 #: ../src/ui/dialog/whiteboard-sharewithchat.cpp:102
-#, fuzzy
 msgid "Connect to chatroom"
-msgstr "ì\97°ê²°ì\9e\90"
+msgstr "ì±\84í\8c\85 ì\97°ê²°"
 
 #: ../src/ui/dialog/whiteboard-sharewithchat.cpp:137
 msgid "Synchronizing with chatroom <b>%1@%2</b> using the handle <b>%3</b>"
-msgstr ""
+msgstr "채팅 <b>%1@%2</b>에서 <b>%3</b>핸들 동기화 중"
 
 #. Construct dialog interface
 #: ../src/ui/dialog/whiteboard-sharewithuser.cpp:76
 msgid "_User's Jabber ID:"
-msgstr ""
+msgstr "사용자 Jabber ID(_U):"
 
 #. Buttons
 #: ../src/ui/dialog/whiteboard-sharewithuser.cpp:80
 msgid "_Invite user"
-msgstr ""
+msgstr "사용자 초대(_I)"
 
 #: ../src/ui/dialog/whiteboard-sharewithuser.cpp:81
-#, fuzzy
 msgid "_Cancel"
-msgstr "취소"
+msgstr "취소(_C)"
 
 #: ../src/ui/dialog/whiteboard-sharewithuser.cpp:92
 msgid "Buddy List"
-msgstr ""
+msgstr "버디 목록"
 
 #: ../src/ui/dialog/whiteboard-sharewithuser.cpp:181
 msgid "Sending whiteboard invitation to <b>%1</b>"
-msgstr ""
+msgstr "화이트보드 초대를 %1에 보내는 중"
 
 #. FIXME: strings are replaced by placeholders, NOT to be translated until the code is enabled
 #. See http://sourceforge.net/mailarchive/message.php?msg_id=11746016 for details
@@ -12753,275 +11771,386 @@ msgstr ""
 #. Node Tool controls
 #. Calligraphy Tool controls
 #. Session playback controls
-#: ../src/ui/stock-items.cpp:31 ../src/ui/stock-items.cpp:32
-#: ../src/ui/stock-items.cpp:33 ../src/ui/stock-items.cpp:34
-#: ../src/ui/stock-items.cpp:35 ../src/ui/stock-items.cpp:36
-#: ../src/ui/stock-items.cpp:37 ../src/ui/stock-items.cpp:38
-#: ../src/ui/stock-items.cpp:39 ../src/ui/stock-items.cpp:40
-#: ../src/ui/stock-items.cpp:41 ../src/ui/stock-items.cpp:42
-#: ../src/ui/stock-items.cpp:45 ../src/ui/stock-items.cpp:46
-#: ../src/ui/stock-items.cpp:47 ../src/ui/stock-items.cpp:48
-#: ../src/ui/stock-items.cpp:49 ../src/ui/stock-items.cpp:50
-#: ../src/ui/stock-items.cpp:51 ../src/ui/stock-items.cpp:52
-#: ../src/ui/stock-items.cpp:53 ../src/ui/stock-items.cpp:54
-#: ../src/ui/stock-items.cpp:55 ../src/ui/stock-items.cpp:56
-#: ../src/ui/stock-items.cpp:57 ../src/ui/stock-items.cpp:58
-#: ../src/ui/stock-items.cpp:61 ../src/ui/stock-items.cpp:62
-#: ../src/ui/stock-items.cpp:63 ../src/ui/stock-items.cpp:64
-#: ../src/ui/stock-items.cpp:65 ../src/ui/stock-items.cpp:66
-#: ../src/ui/stock-items.cpp:67 ../src/ui/stock-items.cpp:68
-#: ../src/ui/stock-items.cpp:69 ../src/ui/stock-items.cpp:70
-#: ../src/ui/stock-items.cpp:71 ../src/ui/stock-items.cpp:72
-#: ../src/ui/stock-items.cpp:73 ../src/ui/stock-items.cpp:74
-#: ../src/ui/stock-items.cpp:75 ../src/ui/stock-items.cpp:76
-#: ../src/ui/stock-items.cpp:77 ../src/ui/stock-items.cpp:78
-#: ../src/ui/stock-items.cpp:79 ../src/ui/stock-items.cpp:80
-#: ../src/ui/stock-items.cpp:81 ../src/ui/stock-items.cpp:82
-#: ../src/ui/stock-items.cpp:83 ../src/ui/stock-items.cpp:84
-#: ../src/ui/stock-items.cpp:85 ../src/ui/stock-items.cpp:86
-#: ../src/ui/stock-items.cpp:87 ../src/ui/stock-items.cpp:88
-#: ../src/ui/stock-items.cpp:91 ../src/ui/stock-items.cpp:92
-#: ../src/ui/stock-items.cpp:93 ../src/ui/stock-items.cpp:94
-#: ../src/ui/stock-items.cpp:95 ../src/ui/stock-items.cpp:96
-#: ../src/ui/stock-items.cpp:97 ../src/ui/stock-items.cpp:98
-#: ../src/ui/stock-items.cpp:99 ../src/ui/stock-items.cpp:100
-#: ../src/ui/stock-items.cpp:101 ../src/ui/stock-items.cpp:102
-#: ../src/ui/stock-items.cpp:103 ../src/ui/stock-items.cpp:104
-#: ../src/ui/stock-items.cpp:107 ../src/ui/stock-items.cpp:108
-#: ../src/ui/stock-items.cpp:109 ../src/ui/stock-items.cpp:110
-#: ../src/ui/stock-items.cpp:111 ../src/ui/stock-items.cpp:112
-#: ../src/ui/stock-items.cpp:113 ../src/ui/stock-items.cpp:114
-#: ../src/ui/stock-items.cpp:115 ../src/ui/stock-items.cpp:116
-#: ../src/ui/stock-items.cpp:117 ../src/ui/stock-items.cpp:118
-#: ../src/ui/stock-items.cpp:119 ../src/ui/stock-items.cpp:120
-#: ../src/ui/stock-items.cpp:121 ../src/ui/stock-items.cpp:122
-#: ../src/ui/stock-items.cpp:123 ../src/ui/stock-items.cpp:124
-#: ../src/ui/stock-items.cpp:125 ../src/ui/stock-items.cpp:126
-#: ../src/ui/stock-items.cpp:129 ../src/ui/stock-items.cpp:130
-#: ../src/ui/stock-items.cpp:131 ../src/ui/stock-items.cpp:132
-#: ../src/ui/stock-items.cpp:133 ../src/ui/stock-items.cpp:134
-#: ../src/ui/stock-items.cpp:135 ../src/ui/stock-items.cpp:136
-#: ../src/ui/stock-items.cpp:137 ../src/ui/stock-items.cpp:138
-#: ../src/ui/stock-items.cpp:139 ../src/ui/stock-items.cpp:140
-#: ../src/ui/stock-items.cpp:141 ../src/ui/stock-items.cpp:142
-#: ../src/ui/stock-items.cpp:143 ../src/ui/stock-items.cpp:144
-#: ../src/ui/stock-items.cpp:145 ../src/ui/stock-items.cpp:149
-#: ../src/ui/stock-items.cpp:150 ../src/ui/stock-items.cpp:151
-#: ../src/ui/stock-items.cpp:152 ../src/ui/stock-items.cpp:155
-#: ../src/ui/stock-items.cpp:156 ../src/ui/stock-items.cpp:157
-#: ../src/ui/stock-items.cpp:160 ../src/ui/stock-items.cpp:161
-#: ../src/ui/stock-items.cpp:162 ../src/ui/stock-items.cpp:163
-#: ../src/ui/stock-items.cpp:164 ../src/ui/stock-items.cpp:165
-#: ../src/ui/stock-items.cpp:166 ../src/ui/stock-items.cpp:167
-#: ../src/ui/stock-items.cpp:168 ../src/ui/stock-items.cpp:169
-#: ../src/ui/stock-items.cpp:170 ../src/ui/stock-items.cpp:171
-#: ../src/ui/stock-items.cpp:174 ../src/ui/stock-items.cpp:175
-#: ../src/ui/stock-items.cpp:176 ../src/ui/stock-items.cpp:177
-#: ../src/ui/stock-items.cpp:180 ../src/ui/stock-items.cpp:181
-#: ../src/ui/stock-items.cpp:182 ../src/ui/stock-items.cpp:183
-#: ../src/ui/stock-items.cpp:184 ../src/ui/stock-items.cpp:185
-#: ../src/ui/stock-items.cpp:186 ../src/ui/stock-items.cpp:187
-#: ../src/ui/stock-items.cpp:188 ../src/ui/stock-items.cpp:189
-#: ../src/ui/stock-items.cpp:190 ../src/ui/stock-items.cpp:193
-#: ../src/ui/stock-items.cpp:194 ../src/ui/stock-items.cpp:197
-#: ../src/ui/stock-items.cpp:198 ../src/ui/stock-items.cpp:199
-#: ../src/ui/stock-items.cpp:200 ../src/ui/stock-items.cpp:201
-#: ../src/ui/view/edit-widget.cpp:343 ../src/ui/view/edit-widget.cpp:348
-#: ../src/ui/view/edit-widget.cpp:356 ../src/ui/view/edit-widget.cpp:361
-#: ../src/ui/view/edit-widget.cpp:366 ../src/ui/view/edit-widget.cpp:371
-#: ../src/ui/view/edit-widget.cpp:376 ../src/ui/view/edit-widget.cpp:381
-#: ../src/ui/view/edit-widget.cpp:394 ../src/ui/view/edit-widget.cpp:399
-#: ../src/ui/view/edit-widget.cpp:413 ../src/ui/view/edit-widget.cpp:417
-#: ../src/ui/view/edit-widget.cpp:421 ../src/ui/view/edit-widget.cpp:425
-#: ../src/ui/view/edit-widget.cpp:429 ../src/ui/view/edit-widget.cpp:433
-#: ../src/ui/view/edit-widget.cpp:447 ../src/ui/view/edit-widget.cpp:451
-#: ../src/ui/view/edit-widget.cpp:455 ../src/ui/view/edit-widget.cpp:486
-#: ../src/ui/view/edit-widget.cpp:495 ../src/ui/view/edit-widget.cpp:499
-#: ../src/ui/view/edit-widget.cpp:503 ../src/ui/view/edit-widget.cpp:507
-#: ../src/ui/view/edit-widget.cpp:511 ../src/ui/view/edit-widget.cpp:515
-#: ../src/ui/view/edit-widget.cpp:519 ../src/ui/view/edit-widget.cpp:523
-#: ../src/ui/view/edit-widget.cpp:527 ../src/ui/view/edit-widget.cpp:531
-#: ../src/ui/view/edit-widget.cpp:535 ../src/ui/view/edit-widget.cpp:632
-#: ../src/ui/view/edit-widget.cpp:644 ../src/ui/view/edit-widget.cpp:648
-#: ../src/ui/view/edit-widget.cpp:652 ../src/ui/view/edit-widget.cpp:656
-#: ../src/ui/view/edit-widget.cpp:660 ../src/ui/view/edit-widget.cpp:664
-#: ../src/ui/view/edit-widget.cpp:668 ../src/ui/view/edit-widget.cpp:672
-#: ../src/ui/view/edit-widget.cpp:676 ../src/ui/view/edit-widget.cpp:680
-#: ../src/ui/view/edit-widget.cpp:684 ../src/ui/view/edit-widget.cpp:688
-#: ../src/ui/view/edit-widget.cpp:692 ../src/ui/view/edit-widget.cpp:696
-#: ../src/ui/view/edit-widget.cpp:700 ../src/ui/view/edit-widget.cpp:704
-#: ../src/ui/view/edit-widget.cpp:709 ../src/ui/view/edit-widget.cpp:715
-#: ../src/ui/view/edit-widget.cpp:719 ../src/ui/view/edit-widget.cpp:769
-#: ../src/ui/view/edit-widget.cpp:774 ../src/ui/view/edit-widget.cpp:810
-#: ../src/ui/view/edit-widget.cpp:815 ../src/ui/view/edit-widget.cpp:820
-#: ../src/ui/view/edit-widget.cpp:824 ../src/ui/view/edit-widget.cpp:828
-#: ../src/ui/view/edit-widget.cpp:832 ../src/ui/view/edit-widget.cpp:836
-#: ../src/ui/view/edit-widget.cpp:840 ../src/ui/view/edit-widget.cpp:844
-#: ../src/ui/view/edit-widget.cpp:848 ../src/ui/view/edit-widget.cpp:852
-#: ../src/ui/view/edit-widget.cpp:856 ../src/ui/view/edit-widget.cpp:861
-#: ../src/ui/view/edit-widget.cpp:865 ../src/ui/view/edit-widget.cpp:869
-#: ../src/ui/view/edit-widget.cpp:873 ../src/ui/view/edit-widget.cpp:878
-#: ../src/ui/view/edit-widget.cpp:882 ../src/ui/view/edit-widget.cpp:886
-#: ../src/ui/view/edit-widget.cpp:890 ../src/ui/view/edit-widget.cpp:894
-#: ../src/ui/view/edit-widget.cpp:898 ../src/ui/view/edit-widget.cpp:902
-#: ../src/ui/view/edit-widget.cpp:906 ../src/ui/view/edit-widget.cpp:910
-#: ../src/ui/view/edit-widget.cpp:914 ../src/ui/view/edit-widget.cpp:918
+#: ../src/ui/stock-items.cpp:31
+#: ../src/ui/stock-items.cpp:32
+#: ../src/ui/stock-items.cpp:33
+#: ../src/ui/stock-items.cpp:34
+#: ../src/ui/stock-items.cpp:35
+#: ../src/ui/stock-items.cpp:36
+#: ../src/ui/stock-items.cpp:37
+#: ../src/ui/stock-items.cpp:38
+#: ../src/ui/stock-items.cpp:39
+#: ../src/ui/stock-items.cpp:40
+#: ../src/ui/stock-items.cpp:41
+#: ../src/ui/stock-items.cpp:42
+#: ../src/ui/stock-items.cpp:45
+#: ../src/ui/stock-items.cpp:46
+#: ../src/ui/stock-items.cpp:47
+#: ../src/ui/stock-items.cpp:48
+#: ../src/ui/stock-items.cpp:49
+#: ../src/ui/stock-items.cpp:50
+#: ../src/ui/stock-items.cpp:51
+#: ../src/ui/stock-items.cpp:52
+#: ../src/ui/stock-items.cpp:53
+#: ../src/ui/stock-items.cpp:54
+#: ../src/ui/stock-items.cpp:55
+#: ../src/ui/stock-items.cpp:56
+#: ../src/ui/stock-items.cpp:57
+#: ../src/ui/stock-items.cpp:58
+#: ../src/ui/stock-items.cpp:61
+#: ../src/ui/stock-items.cpp:62
+#: ../src/ui/stock-items.cpp:63
+#: ../src/ui/stock-items.cpp:64
+#: ../src/ui/stock-items.cpp:65
+#: ../src/ui/stock-items.cpp:66
+#: ../src/ui/stock-items.cpp:67
+#: ../src/ui/stock-items.cpp:68
+#: ../src/ui/stock-items.cpp:69
+#: ../src/ui/stock-items.cpp:70
+#: ../src/ui/stock-items.cpp:71
+#: ../src/ui/stock-items.cpp:72
+#: ../src/ui/stock-items.cpp:73
+#: ../src/ui/stock-items.cpp:74
+#: ../src/ui/stock-items.cpp:75
+#: ../src/ui/stock-items.cpp:76
+#: ../src/ui/stock-items.cpp:77
+#: ../src/ui/stock-items.cpp:78
+#: ../src/ui/stock-items.cpp:79
+#: ../src/ui/stock-items.cpp:80
+#: ../src/ui/stock-items.cpp:81
+#: ../src/ui/stock-items.cpp:82
+#: ../src/ui/stock-items.cpp:83
+#: ../src/ui/stock-items.cpp:84
+#: ../src/ui/stock-items.cpp:85
+#: ../src/ui/stock-items.cpp:86
+#: ../src/ui/stock-items.cpp:87
+#: ../src/ui/stock-items.cpp:88
+#: ../src/ui/stock-items.cpp:91
+#: ../src/ui/stock-items.cpp:92
+#: ../src/ui/stock-items.cpp:93
+#: ../src/ui/stock-items.cpp:94
+#: ../src/ui/stock-items.cpp:95
+#: ../src/ui/stock-items.cpp:96
+#: ../src/ui/stock-items.cpp:97
+#: ../src/ui/stock-items.cpp:98
+#: ../src/ui/stock-items.cpp:99
+#: ../src/ui/stock-items.cpp:100
+#: ../src/ui/stock-items.cpp:101
+#: ../src/ui/stock-items.cpp:102
+#: ../src/ui/stock-items.cpp:103
+#: ../src/ui/stock-items.cpp:104
+#: ../src/ui/stock-items.cpp:107
+#: ../src/ui/stock-items.cpp:108
+#: ../src/ui/stock-items.cpp:109
+#: ../src/ui/stock-items.cpp:110
+#: ../src/ui/stock-items.cpp:111
+#: ../src/ui/stock-items.cpp:112
+#: ../src/ui/stock-items.cpp:113
+#: ../src/ui/stock-items.cpp:114
+#: ../src/ui/stock-items.cpp:115
+#: ../src/ui/stock-items.cpp:116
+#: ../src/ui/stock-items.cpp:117
+#: ../src/ui/stock-items.cpp:118
+#: ../src/ui/stock-items.cpp:119
+#: ../src/ui/stock-items.cpp:120
+#: ../src/ui/stock-items.cpp:121
+#: ../src/ui/stock-items.cpp:122
+#: ../src/ui/stock-items.cpp:123
+#: ../src/ui/stock-items.cpp:124
+#: ../src/ui/stock-items.cpp:125
+#: ../src/ui/stock-items.cpp:126
+#: ../src/ui/stock-items.cpp:129
+#: ../src/ui/stock-items.cpp:130
+#: ../src/ui/stock-items.cpp:131
+#: ../src/ui/stock-items.cpp:132
+#: ../src/ui/stock-items.cpp:133
+#: ../src/ui/stock-items.cpp:134
+#: ../src/ui/stock-items.cpp:135
+#: ../src/ui/stock-items.cpp:136
+#: ../src/ui/stock-items.cpp:137
+#: ../src/ui/stock-items.cpp:138
+#: ../src/ui/stock-items.cpp:139
+#: ../src/ui/stock-items.cpp:140
+#: ../src/ui/stock-items.cpp:141
+#: ../src/ui/stock-items.cpp:142
+#: ../src/ui/stock-items.cpp:143
+#: ../src/ui/stock-items.cpp:144
+#: ../src/ui/stock-items.cpp:145
+#: ../src/ui/stock-items.cpp:149
+#: ../src/ui/stock-items.cpp:150
+#: ../src/ui/stock-items.cpp:151
+#: ../src/ui/stock-items.cpp:152
+#: ../src/ui/stock-items.cpp:155
+#: ../src/ui/stock-items.cpp:156
+#: ../src/ui/stock-items.cpp:157
+#: ../src/ui/stock-items.cpp:160
+#: ../src/ui/stock-items.cpp:161
+#: ../src/ui/stock-items.cpp:162
+#: ../src/ui/stock-items.cpp:163
+#: ../src/ui/stock-items.cpp:164
+#: ../src/ui/stock-items.cpp:165
+#: ../src/ui/stock-items.cpp:166
+#: ../src/ui/stock-items.cpp:167
+#: ../src/ui/stock-items.cpp:168
+#: ../src/ui/stock-items.cpp:169
+#: ../src/ui/stock-items.cpp:170
+#: ../src/ui/stock-items.cpp:171
+#: ../src/ui/stock-items.cpp:174
+#: ../src/ui/stock-items.cpp:175
+#: ../src/ui/stock-items.cpp:176
+#: ../src/ui/stock-items.cpp:177
+#: ../src/ui/stock-items.cpp:180
+#: ../src/ui/stock-items.cpp:181
+#: ../src/ui/stock-items.cpp:182
+#: ../src/ui/stock-items.cpp:183
+#: ../src/ui/stock-items.cpp:184
+#: ../src/ui/stock-items.cpp:185
+#: ../src/ui/stock-items.cpp:186
+#: ../src/ui/stock-items.cpp:187
+#: ../src/ui/stock-items.cpp:188
+#: ../src/ui/stock-items.cpp:189
+#: ../src/ui/stock-items.cpp:190
+#: ../src/ui/stock-items.cpp:193
+#: ../src/ui/stock-items.cpp:194
+#: ../src/ui/stock-items.cpp:197
+#: ../src/ui/stock-items.cpp:198
+#: ../src/ui/stock-items.cpp:199
+#: ../src/ui/stock-items.cpp:200
+#: ../src/ui/stock-items.cpp:201
+#: ../src/ui/view/edit-widget.cpp:343
+#: ../src/ui/view/edit-widget.cpp:348
+#: ../src/ui/view/edit-widget.cpp:356
+#: ../src/ui/view/edit-widget.cpp:361
+#: ../src/ui/view/edit-widget.cpp:366
+#: ../src/ui/view/edit-widget.cpp:371
+#: ../src/ui/view/edit-widget.cpp:376
+#: ../src/ui/view/edit-widget.cpp:381
+#: ../src/ui/view/edit-widget.cpp:394
+#: ../src/ui/view/edit-widget.cpp:399
+#: ../src/ui/view/edit-widget.cpp:413
+#: ../src/ui/view/edit-widget.cpp:417
+#: ../src/ui/view/edit-widget.cpp:421
+#: ../src/ui/view/edit-widget.cpp:425
+#: ../src/ui/view/edit-widget.cpp:429
+#: ../src/ui/view/edit-widget.cpp:433
+#: ../src/ui/view/edit-widget.cpp:447
+#: ../src/ui/view/edit-widget.cpp:451
+#: ../src/ui/view/edit-widget.cpp:455
+#: ../src/ui/view/edit-widget.cpp:486
+#: ../src/ui/view/edit-widget.cpp:495
+#: ../src/ui/view/edit-widget.cpp:499
+#: ../src/ui/view/edit-widget.cpp:503
+#: ../src/ui/view/edit-widget.cpp:507
+#: ../src/ui/view/edit-widget.cpp:511
+#: ../src/ui/view/edit-widget.cpp:515
+#: ../src/ui/view/edit-widget.cpp:519
+#: ../src/ui/view/edit-widget.cpp:523
+#: ../src/ui/view/edit-widget.cpp:527
+#: ../src/ui/view/edit-widget.cpp:531
+#: ../src/ui/view/edit-widget.cpp:535
+#: ../src/ui/view/edit-widget.cpp:632
+#: ../src/ui/view/edit-widget.cpp:644
+#: ../src/ui/view/edit-widget.cpp:648
+#: ../src/ui/view/edit-widget.cpp:652
+#: ../src/ui/view/edit-widget.cpp:656
+#: ../src/ui/view/edit-widget.cpp:660
+#: ../src/ui/view/edit-widget.cpp:664
+#: ../src/ui/view/edit-widget.cpp:668
+#: ../src/ui/view/edit-widget.cpp:672
+#: ../src/ui/view/edit-widget.cpp:676
+#: ../src/ui/view/edit-widget.cpp:680
+#: ../src/ui/view/edit-widget.cpp:684
+#: ../src/ui/view/edit-widget.cpp:688
+#: ../src/ui/view/edit-widget.cpp:692
+#: ../src/ui/view/edit-widget.cpp:696
+#: ../src/ui/view/edit-widget.cpp:700
+#: ../src/ui/view/edit-widget.cpp:704
+#: ../src/ui/view/edit-widget.cpp:709
+#: ../src/ui/view/edit-widget.cpp:715
+#: ../src/ui/view/edit-widget.cpp:719
+#: ../src/ui/view/edit-widget.cpp:769
+#: ../src/ui/view/edit-widget.cpp:774
+#: ../src/ui/view/edit-widget.cpp:810
+#: ../src/ui/view/edit-widget.cpp:815
+#: ../src/ui/view/edit-widget.cpp:820
+#: ../src/ui/view/edit-widget.cpp:824
+#: ../src/ui/view/edit-widget.cpp:828
+#: ../src/ui/view/edit-widget.cpp:832
+#: ../src/ui/view/edit-widget.cpp:836
+#: ../src/ui/view/edit-widget.cpp:840
+#: ../src/ui/view/edit-widget.cpp:844
+#: ../src/ui/view/edit-widget.cpp:848
+#: ../src/ui/view/edit-widget.cpp:852
+#: ../src/ui/view/edit-widget.cpp:856
+#: ../src/ui/view/edit-widget.cpp:861
+#: ../src/ui/view/edit-widget.cpp:865
+#: ../src/ui/view/edit-widget.cpp:869
+#: ../src/ui/view/edit-widget.cpp:873
+#: ../src/ui/view/edit-widget.cpp:878
+#: ../src/ui/view/edit-widget.cpp:882
+#: ../src/ui/view/edit-widget.cpp:886
+#: ../src/ui/view/edit-widget.cpp:890
+#: ../src/ui/view/edit-widget.cpp:894
+#: ../src/ui/view/edit-widget.cpp:898
+#: ../src/ui/view/edit-widget.cpp:902
+#: ../src/ui/view/edit-widget.cpp:906
+#: ../src/ui/view/edit-widget.cpp:910
+#: ../src/ui/view/edit-widget.cpp:914
+#: ../src/ui/view/edit-widget.cpp:918
 #: ../src/ui/view/edit-widget.cpp:1003
 msgid "PLACEHOLDER, do not translate"
-msgstr ""
+msgstr "PLACEHOLDER 번역하지 않음"
 
-#: ../src/ui/view/edit-widget.cpp:1062 ../src/widgets/desktop-widget.cpp:381
+#: ../src/ui/view/edit-widget.cpp:1062
+#: ../src/widgets/desktop-widget.cpp:381
 msgid "Zoom drawing if window size changes"
-msgstr "만약 창 크기 가 바끼면 그림 확대"
+msgstr "만약 창 크기가 바뀌면 그림 확대"
 
-#: ../src/ui/view/edit-widget.cpp:1083 ../src/widgets/desktop-widget.cpp:510
+#: ../src/ui/view/edit-widget.cpp:1083
+#: ../src/widgets/desktop-widget.cpp:510
 msgid "Cursor coordinates"
-msgstr ""
+msgstr "커서 좌표"
 
 #. display the initial welcome message in the statusbar
-#: ../src/ui/view/edit-widget.cpp:1100 ../src/widgets/desktop-widget.cpp:558
-msgid ""
-"<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; "
-"use selector (arrow) to move or transform them."
-msgstr ""
+#: ../src/ui/view/edit-widget.cpp:1100
+#: ../src/widgets/desktop-widget.cpp:558
+msgid "<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; use selector (arrow) to move or transform them."
+msgstr "Inkscape에 어서 오세요! 객체를 생성하기 위하여 모양이나 자유곡선을 사용하세요; 이들을 이동이나 변형하기 위하여 선택자(화살표)를 사용하세요."
 
-#: ../src/ui/view/edit-widget.cpp:1211 ../src/widgets/desktop-widget.cpp:844
+#: ../src/ui/view/edit-widget.cpp:1211
+#: ../src/widgets/desktop-widget.cpp:844
 #, c-format
 msgid ""
-"<span weight=\"bold\" size=\"larger\">Save changes to document \"%s\" before "
-"closing?</span>\n"
+"<span weight=\"bold\" size=\"larger\">Save changes to document \"%s\" before closing?</span>\n"
 "\n"
 "If you close without saving, your changes will be discarded."
 msgstr ""
+"<span weight=\"bold\" size=\"larger\">닫기 전 \"%s\" 변경된 내용을 저장하시겠습니까?</span>\n"
+"\n"
+"저장 없이 닫기를 하면, 변경된 내용이 무시됩니다."
 
-#: ../src/ui/view/edit-widget.cpp:1222 ../src/ui/view/edit-widget.cpp:1269
-#: ../src/widgets/desktop-widget.cpp:851 ../src/widgets/desktop-widget.cpp:907
+#: ../src/ui/view/edit-widget.cpp:1222
+#: ../src/ui/view/edit-widget.cpp:1269
+#: ../src/widgets/desktop-widget.cpp:851
+#: ../src/widgets/desktop-widget.cpp:907
 msgid "Close _without saving"
-msgstr ""
+msgstr "저장하지 않고 닫기(_W)"
 
-#: ../src/ui/view/edit-widget.cpp:1257 ../src/widgets/desktop-widget.cpp:899
+#: ../src/ui/view/edit-widget.cpp:1257
+#: ../src/widgets/desktop-widget.cpp:899
 #, c-format
 msgid ""
-"<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a "
-"format (%s) that may cause data loss!</span>\n"
+"<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a format (%s) that may cause data loss!</span>\n"
 "\n"
 "Do you want to save this file as an Inkscape SVG?"
 msgstr ""
 
-#: ../src/ui/view/edit-widget.cpp:1272 ../src/widgets/desktop-widget.cpp:910
+#: ../src/ui/view/edit-widget.cpp:1272
+#: ../src/widgets/desktop-widget.cpp:910
 msgid "_Save as SVG"
-msgstr ""
+msgstr "SVG 저장(_S)"
 
 #: ../src/ui/widget/filter-effect-chooser.cpp:25
 msgid "_Blend mode:"
-msgstr ""
+msgstr "혼합 모드:(_B)"
 
 #: ../src/ui/widget/filter-effect-chooser.cpp:26
-#, fuzzy
 msgid "B_lur:"
-msgstr "í\8c\8cë\9e\91"
+msgstr "í\9d\90림(_L)"
 
 #: ../src/ui/widget/licensor.cpp:35
 msgid "Proprietary"
-msgstr ""
+msgstr "독점 소유"
 
 #: ../src/ui/widget/licensor.cpp:38
-#, fuzzy
 msgid "Other"
-msgstr "미터"
+msgstr "기타"
 
 #: ../src/ui/widget/object-composite-settings.cpp:51
 #: ../src/ui/widget/selected-style.cpp:1031
 #: ../src/ui/widget/selected-style.cpp:1032
-#, fuzzy
 msgid "Opacity, %"
-msgstr "불투명도"
+msgstr "불투명도, %"
 
 #: ../src/ui/widget/object-composite-settings.cpp:152
-#, fuzzy
 msgid "Change blur"
-msgstr "속성 설정"
+msgstr "흐림 변경"
 
 #: ../src/ui/widget/object-composite-settings.cpp:192
 #: ../src/ui/widget/selected-style.cpp:855
 #: ../src/ui/widget/selected-style.cpp:1149
-#, fuzzy
 msgid "Change opacity"
-msgstr "주 투명도"
+msgstr "불투명도 변경"
 
 #: ../src/ui/widget/page-sizer.cpp:190
 msgid "U_nits:"
-msgstr ""
+msgstr "단위(_N):"
 
 #: ../src/ui/widget/page-sizer.cpp:191
 msgid "Width of paper"
-msgstr ""
+msgstr "종이 폭"
 
 #: ../src/ui/widget/page-sizer.cpp:192
 msgid "_Height:"
-msgstr ""
+msgstr "높이(_H):"
 
 #: ../src/ui/widget/page-sizer.cpp:192
 msgid "Height of paper"
-msgstr ""
+msgstr "종이 높이"
 
 #: ../src/ui/widget/page-sizer.cpp:236
 msgid "P_age size:"
-msgstr ""
+msgstr "페이지 크기(_A):"
 
 #: ../src/ui/widget/page-sizer.cpp:244
 msgid "Page orientation:"
-msgstr ""
+msgstr "페이지 방향:"
 
 #: ../src/ui/widget/page-sizer.cpp:247
 msgid "_Landscape"
-msgstr ""
+msgstr "가로방향(_L)"
 
 #: ../src/ui/widget/page-sizer.cpp:252
 msgid "_Portrait"
-msgstr ""
+msgstr "세로방향(_P)"
 
 #. ## Set up custom size frame
 #: ../src/ui/widget/page-sizer.cpp:259
 msgid "Custom size"
-msgstr ""
+msgstr "사용자 크기"
 
 #: ../src/ui/widget/page-sizer.cpp:272
 msgid "_Fit page to selection"
-msgstr ""
+msgstr "페이지를 선택 크기로 조정(_F)"
 
 #: ../src/ui/widget/page-sizer.cpp:273
-msgid ""
-"Resize the page to fit the current selection, or the entire drawing if there "
-"is no selection"
+msgid "Resize the page to fit the current selection, or the entire drawing if there is no selection"
 msgstr ""
 
 #: ../src/ui/widget/page-sizer.cpp:331
-#, fuzzy
 msgid "Set page size"
-msgstr "도트 크기"
+msgstr "페이지 크기 설정"
 
 #: ../src/ui/widget/panel.cpp:121
 msgid "List"
 msgstr "목록"
 
 #: ../src/ui/widget/panel.cpp:144
-#, fuzzy
 msgid "swatches|Size"
-msgstr "도트 크기"
+msgstr "색상 막대| 높이"
 
 #: ../src/ui/widget/panel.cpp:148
 msgid "tiny"
-msgstr ""
+msgstr "아주 작음"
 
 #: ../src/ui/widget/panel.cpp:149
 msgid "small"
-msgstr ""
+msgstr "작음"
 
 #. TRANSLATORS: Translate only the word "medium". Indicates size of colour swatches
 #: ../src/ui/widget/panel.cpp:151
 msgid "swatchesHeight|medium"
-msgstr ""
+msgstr "중간"
 
 #: ../src/ui/widget/panel.cpp:152
 msgid "large"
@@ -13033,105 +12162,83 @@ msgstr "아주 크게"
 
 #: ../src/ui/widget/panel.cpp:175
 msgid "swatches|Width"
-msgstr ""
+msgstr "색상 막대| 폭"
 
 #: ../src/ui/widget/panel.cpp:179
-#, fuzzy
 msgid "narrower"
-msgstr "노드를 아래도"
+msgstr "아주 좁게"
 
 #: ../src/ui/widget/panel.cpp:180
 msgid "narrow"
-msgstr ""
+msgstr "좁게"
 
 #. TRANSLATORS: Translate only the word "medium". Indicates width of colour swatches
 #: ../src/ui/widget/panel.cpp:182
 msgid "swatchesWidth|medium"
-msgstr ""
+msgstr "중간"
 
 #: ../src/ui/widget/panel.cpp:183
-#, fuzzy
 msgid "wide"
-msgstr "숨기기(_H)"
+msgstr "넓게"
 
 #: ../src/ui/widget/panel.cpp:184
-#, fuzzy
 msgid "wider"
-msgstr "ì\88¨ê¸°ê¸°(_H)"
+msgstr "ì\95\84주 ë\84\93ê²\8c"
 
 #. TRANSLATORS: Translate only the word "Wrap". Indicates how colour swatches are displayed
 #: ../src/ui/widget/panel.cpp:215
 msgid "swatches|Wrap"
-msgstr ""
+msgstr "색상 막대| 고정"
 
 #: ../src/ui/widget/preferences-widget.cpp:278
-#, fuzzy
 msgid "Reset"
-msgstr " 리셋(_e) "
+msgstr "초기화"
 
 #: ../src/ui/widget/random.cpp:123
-msgid ""
-"Reseed the random number generator; this creates a different sequence of "
-"random numbers."
-msgstr ""
+msgid "Reseed the random number generator; this creates a different sequence of random numbers."
+msgstr "임의 숫자 생성기 재작동"
 
 #: ../src/ui/widget/rendering-options.cpp:39
-#, fuzzy
 msgid "Backend"
-msgstr "í\8c\8cë\9e\91"
+msgstr "í\9b\84미"
 
 #: ../src/ui/widget/rendering-options.cpp:40
-#, fuzzy
 msgid "Vector"
-msgstr "선택자"
+msgstr "벡터"
 
 #: ../src/ui/widget/rendering-options.cpp:41
 msgid "Bitmap"
-msgstr ""
+msgstr "비트맵"
 
 #: ../src/ui/widget/rendering-options.cpp:42
 msgid "Bitmap options"
-msgstr ""
+msgstr "비트맵 설정"
 
 #: ../src/ui/widget/rendering-options.cpp:44
 msgid "Preferred resolution of rendering, in dots per inch."
-msgstr ""
+msgstr "렌더링 설정 해상도"
 
 #: ../src/ui/widget/rendering-options.cpp:52
-#, fuzzy
-msgid ""
-"Render using Cairo vector operations.  The resulting image is usually "
-"smaller in file size and can be arbitrarily scaled, but some filter effects "
-"will not be correctly rendered."
-msgstr ""
-"PDF 백터 요소 사용. 이미지가 자유롭게 축소 확대 할수 있으면서 크기는 될것이지"
-"만 패턴은 없어질것임."
+msgid "Render using Cairo vector operations.  The resulting image is usually smaller in file size and can be arbitrarily scaled, but some filter effects will not be correctly rendered."
+msgstr "카이로 벡터 작동방식으로 렌더. 출력 이미지는 약간 파일 크기보다 작고 임의 비율이 될 것임. 그리고 몇몇 필터 효과는 정확히 렌더되지 않을 것임."
 
 #: ../src/ui/widget/rendering-options.cpp:57
-#, fuzzy
-msgid ""
-"Render everything as bitmap.  The resulting image is usually larger in file "
-"size and cannot be arbitrarily scaled without quality loss, but all objects "
-"will be rendered exactly as displayed."
-msgstr ""
-"PDF 백터 요소 사용. 이미지가 자유롭게 축소 확대 할수 있으면서 크기는 될것이지"
-"만 패턴은 없어질것임."
+msgid "Render everything as bitmap.  The resulting image is usually larger in file size and cannot be arbitrarily scaled without quality loss, but all objects will be rendered exactly as displayed."
+msgstr "비트맵으로 모든 것을 렌더. 출력이미지는 보통보다 파일크기가 더 클 것이며 질의 손실없이 임의대로 비율이 달라지지 않음, 그러나 전체 객체는 보이는 그대로 정확히 렌더될 것임"
 
 #: ../src/ui/widget/selected-style.cpp:106
 #: ../src/ui/widget/style-swatch.cpp:110
-#, fuzzy
 msgid "Fill:"
-msgstr "채움"
+msgstr "채움:"
 
 #: ../src/ui/widget/selected-style.cpp:107
 #: ../src/ui/widget/style-swatch.cpp:111
-#, fuzzy
 msgid "Stroke:"
-msgstr "ì\83\81í\83\9c:"
+msgstr "ì\9c¤ê³½ì\84 :"
 
 #: ../src/ui/widget/selected-style.cpp:108
 msgid "O:"
-msgstr "O:"
+msgstr "불투명도:"
 
 #: ../src/ui/widget/selected-style.cpp:150
 msgid "N/A"
@@ -13141,136 +12248,134 @@ msgstr "없음"
 #: ../src/ui/widget/selected-style.cpp:1024
 #: ../src/ui/widget/selected-style.cpp:1025
 msgid "Nothing selected"
-msgstr "ì\95\84무ê²\83ë\8f\84 ì\84 í\83\9d ë\90\98ì§\80 ì\95\8a음"
+msgstr "ì\84 í\83\9d ì\97\86음"
 
 #: ../src/ui/widget/selected-style.cpp:155
 #: ../src/ui/widget/style-swatch.cpp:328
-#, fuzzy
 msgid "<i>None</i>"
-msgstr "<b>ì\84 </b>"
+msgstr "<b>ì\97\86ì\9d\8c</b>"
 
 #: ../src/ui/widget/selected-style.cpp:158
 #: ../src/ui/widget/style-swatch.cpp:330
 msgid "No fill"
-msgstr "ì±\84ì\9a°ì§\80 ì\95\8a음"
+msgstr "ì±\84ì\9b\80 ì\97\86음"
 
 #: ../src/ui/widget/selected-style.cpp:158
 #: ../src/ui/widget/style-swatch.cpp:330
 msgid "No stroke"
-msgstr ""
+msgstr "윤곽선 없음"
 
 #: ../src/ui/widget/selected-style.cpp:160
-#: ../src/ui/widget/style-swatch.cpp:309 ../src/widgets/paint-selector.cpp:189
+#: ../src/ui/widget/style-swatch.cpp:309
+#: ../src/widgets/paint-selector.cpp:189
 msgid "Pattern"
-msgstr "반복무늬"
+msgstr "패턴"
 
 #: ../src/ui/widget/selected-style.cpp:163
-#: ../src/ui/widget/style-swatch.cpp:311 ../src/widgets/paint-selector.cpp:997
+#: ../src/ui/widget/style-swatch.cpp:311
+#: ../src/widgets/paint-selector.cpp:997
 msgid "Pattern fill"
-msgstr "반복 무늬 채움"
+msgstr "패턴 채움"
 
 #: ../src/ui/widget/selected-style.cpp:163
 #: ../src/ui/widget/style-swatch.cpp:311
 msgid "Pattern stroke"
-msgstr ""
+msgstr "패턴 윤곽선"
 
 #: ../src/ui/widget/selected-style.cpp:165
-#, fuzzy
 msgid "<b>L</b>"
-msgstr "<b>L:</b>"
+msgstr "<b>선형:</b>"
 
 #: ../src/ui/widget/selected-style.cpp:168
 #: ../src/ui/widget/style-swatch.cpp:303
 msgid "Linear gradient fill"
-msgstr ""
+msgstr "선형 그라디언트 채움"
 
 #: ../src/ui/widget/selected-style.cpp:168
 #: ../src/ui/widget/style-swatch.cpp:303
 msgid "Linear gradient stroke"
-msgstr ""
+msgstr "선형 그라디언트 윤곽선"
 
 #: ../src/ui/widget/selected-style.cpp:175
-#, fuzzy
 msgid "<b>R</b>"
-msgstr "<b>H:</b>"
+msgstr "<b>방사:</b>"
 
 #: ../src/ui/widget/selected-style.cpp:178
 #: ../src/ui/widget/style-swatch.cpp:307
 msgid "Radial gradient fill"
-msgstr ""
+msgstr "방사 그라디언트 채움"
 
 #: ../src/ui/widget/selected-style.cpp:178
 #: ../src/ui/widget/style-swatch.cpp:307
 msgid "Radial gradient stroke"
-msgstr ""
+msgstr "방사 그라디언트 윤곽선"
 
 #: ../src/ui/widget/selected-style.cpp:185
 msgid "Different"
-msgstr "ë\8b¤ë¦\84"
+msgstr "ì°¨ë³\84"
 
 #: ../src/ui/widget/selected-style.cpp:188
 msgid "Different fills"
-msgstr "다른 채움"
+msgstr "차별채움"
 
 #: ../src/ui/widget/selected-style.cpp:188
 msgid "Different strokes"
-msgstr ""
+msgstr "차별 윤곽선"
 
 #: ../src/ui/widget/selected-style.cpp:190
 #: ../src/ui/widget/style-swatch.cpp:333
-#, fuzzy
 msgid "<b>Unset</b>"
-msgstr "<b>ì\84 </b>"
+msgstr "<b>ì\84¤ì \95 ì\95\88í\95¨</b>"
 
 #: ../src/ui/widget/selected-style.cpp:196
 msgid "Flat color fill"
-msgstr ""
+msgstr "평면 색상 채움"
 
 #: ../src/ui/widget/selected-style.cpp:196
 msgid "Flat color stroke"
-msgstr ""
+msgstr "평면 색상 윤곽선"
 
 #. TRANSLATOR COMMENT: A means "Averaged"
 #: ../src/ui/widget/selected-style.cpp:199
 msgid "<b>a</b>"
-msgstr ""
+msgstr "<b>평균</b>"
 
 #: ../src/ui/widget/selected-style.cpp:202
 msgid "Fill is averaged over selected objects"
-msgstr ""
+msgstr "채움을 선택 객체 평균으로 함"
 
 #: ../src/ui/widget/selected-style.cpp:202
 msgid "Stroke is averaged over selected objects"
-msgstr ""
+msgstr "윤곽선를 선택 객체 평균으로 함"
 
 #. TRANSLATOR COMMENT: M means "Multiple"
 #: ../src/ui/widget/selected-style.cpp:205
 msgid "<b>m</b>"
-msgstr ""
+msgstr "<b>다수</b>"
 
 #: ../src/ui/widget/selected-style.cpp:208
 msgid "Multiple selected objects have the same fill"
-msgstr ""
+msgstr "다수 선택 객체가 동일 채움을 가짐"
 
 #: ../src/ui/widget/selected-style.cpp:208
 msgid "Multiple selected objects have the same stroke"
-msgstr ""
+msgstr "다수 선택 객체가 동일 윤곽선를 가짐"
 
 #: ../src/ui/widget/selected-style.cpp:210
 msgid "Edit fill..."
-msgstr ""
+msgstr "채움 편집..."
 
 #: ../src/ui/widget/selected-style.cpp:210
 msgid "Edit stroke..."
-msgstr ""
+msgstr "윤곽선 편집..."
 
 #: ../src/ui/widget/selected-style.cpp:214
 msgid "Last set color"
-msgstr ""
+msgstr "마지막 설정 색상"
 
 #: ../src/ui/widget/selected-style.cpp:218
 msgid "Last selected color"
-msgstr ""
+msgstr "마지막 선택된 색상"
 
 #: ../src/ui/widget/selected-style.cpp:222
 msgid "Invert"
@@ -13278,37 +12383,37 @@ msgstr "반전"
 
 #: ../src/ui/widget/selected-style.cpp:226
 msgid "White"
-msgstr "색"
+msgstr "색"
 
 #: ../src/ui/widget/selected-style.cpp:230
 #: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-scales.cpp:461
 #: ../src/widgets/sp-color-scales.cpp:462
 msgid "Black"
-msgstr "ê²\80ì \95색"
+msgstr "ê²\80ì\9d\80색"
 
 #: ../src/ui/widget/selected-style.cpp:234
 msgid "Copy color"
-msgstr "색 복사"
+msgstr "색 복사"
 
 #: ../src/ui/widget/selected-style.cpp:238
 msgid "Paste color"
-msgstr "색 붙이기"
+msgstr "색상 붙여넣기"
 
 #: ../src/ui/widget/selected-style.cpp:242
 #: ../src/ui/widget/selected-style.cpp:780
 msgid "Swap fill and stroke"
-msgstr ""
+msgstr "채움과 윤곽선 치환"
 
 #: ../src/ui/widget/selected-style.cpp:246
 #: ../src/ui/widget/selected-style.cpp:522
 #: ../src/ui/widget/selected-style.cpp:531
 msgid "Make fill opaque"
-msgstr ""
+msgstr "채움을 불투명으로 함"
 
 #: ../src/ui/widget/selected-style.cpp:246
 msgid "Make stroke opaque"
-msgstr ""
+msgstr "윤곽선를 불투명으로 함"
 
 #: ../src/ui/widget/selected-style.cpp:308
 msgid "Remove"
@@ -13316,356 +12421,323 @@ msgstr "제거"
 
 #: ../src/ui/widget/selected-style.cpp:543
 msgid "Apply last set color to fill"
-msgstr ""
+msgstr "마지막 설정 색상을 채움으로 적용"
 
 #: ../src/ui/widget/selected-style.cpp:555
 msgid "Apply last set color to stroke"
-msgstr ""
+msgstr "마지막 설정 색상을 윤곽선로 적용"
 
 #: ../src/ui/widget/selected-style.cpp:566
 msgid "Apply last selected color to fill"
-msgstr ""
+msgstr "마지막 설정 색상을 채움으로 적용"
 
 #: ../src/ui/widget/selected-style.cpp:577
 msgid "Apply last selected color to stroke"
-msgstr ""
+msgstr "마지막 선택 색상을 윤곽선로 적용"
 
 #: ../src/ui/widget/selected-style.cpp:597
-#, fuzzy
 msgid "Invert fill"
-msgstr "반전"
+msgstr "채움 반전"
 
 #: ../src/ui/widget/selected-style.cpp:617
-#, fuzzy
 msgid "Invert stroke"
-msgstr "반전"
+msgstr "윤곽선 반전"
 
 #: ../src/ui/widget/selected-style.cpp:629
-#, fuzzy
 msgid "White fill"
-msgstr "백색"
+msgstr "흰색 채움"
 
 #: ../src/ui/widget/selected-style.cpp:641
 msgid "White stroke"
-msgstr ""
+msgstr "흰색 윤곽선"
 
 #: ../src/ui/widget/selected-style.cpp:653
-#, fuzzy
 msgid "Black fill"
-msgstr "ê²\80ì \95ì\83\89"
+msgstr "ê²\80ì\9d\80ì\83\89 ì±\84ì\9b\80"
 
 #: ../src/ui/widget/selected-style.cpp:665
 msgid "Black stroke"
-msgstr ""
+msgstr "검은색 윤곽선"
 
 #: ../src/ui/widget/selected-style.cpp:708
-#, fuzzy
 msgid "Paste fill"
-msgstr "반복 무늬 채움"
+msgstr "채움 붙여넣기"
 
 #: ../src/ui/widget/selected-style.cpp:726
-#, fuzzy
 msgid "Paste stroke"
-msgstr "불이기 종류(_S)"
+msgstr "윤곽선 붙여넣기"
 
 #: ../src/ui/widget/selected-style.cpp:890
-#, fuzzy
 msgid "Change stroke width"
-msgstr "글자를 곡선으로 변환"
+msgstr "윤곽선 폭 변경"
 
 #: ../src/ui/widget/selected-style.cpp:985
 msgid ", drag to adjust"
-msgstr ""
+msgstr ", 조정하기 위하여 끌기"
 
 #: ../src/ui/widget/selected-style.cpp:1066
 #, c-format
 msgid "Stroke width: %.5g%s%s"
-msgstr ""
+msgstr "윤곽선 폭: %.5g%s%s"
 
 #: ../src/ui/widget/selected-style.cpp:1070
 msgid " (averaged)"
-msgstr ""
+msgstr "  (평균)"
 
 #: ../src/ui/widget/selected-style.cpp:1098
 msgid "0 (transparent)"
-msgstr ""
+msgstr "0 (투명)"
 
 #: ../src/ui/widget/selected-style.cpp:1122
 msgid "100% (opaque)"
-msgstr ""
+msgstr "100% (불투명)"
 
 #: ../src/ui/widget/selected-style.cpp:1271
-#, fuzzy
 msgid "Adjust saturation"
-msgstr "채도"
+msgstr "채도 조정"
 
 #: ../src/ui/widget/selected-style.cpp:1273
 #, c-format
-msgid ""
-"Adjusting <b>saturation</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with "
-"<b>Ctrl</b> to adjust lightness, without modifiers to adjust hue"
-msgstr ""
+msgid "Adjusting <b>saturation</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Ctrl</b> to adjust lightness, without modifiers to adjust hue"
+msgstr "채도 조정: %.3g, 현재 <b>%.3g</b> (차:%.3g) , Ctrl: 색조 조정 없이 명도 조정"
 
 #: ../src/ui/widget/selected-style.cpp:1277
-#, fuzzy
 msgid "Adjust lightness"
-msgstr "명도"
+msgstr "명도 조정"
 
 #: ../src/ui/widget/selected-style.cpp:1279
 #, c-format
-msgid ""
-"Adjusting <b>lightness</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with "
-"<b>Shift</b> to adjust saturation, without modifiers to adjust hue"
-msgstr ""
+msgid "Adjusting <b>lightness</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</b> to adjust saturation, without modifiers to adjust hue"
+msgstr "명도 조정: %.3g 현재 %.3g (차 %.3g); 색조 조정없이 채도를 조정하기 위하여 Shift"
 
 #: ../src/ui/widget/selected-style.cpp:1283
 msgid "Adjust hue"
-msgstr ""
+msgstr "색조 조정"
 
 #: ../src/ui/widget/selected-style.cpp:1285
 #, c-format
-msgid ""
-"Adjusting <b>hue</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</"
-"b> to adjust saturation, with <b>Ctrl</b> to adjust lightness"
-msgstr ""
+msgid "Adjusting <b>hue</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</b> to adjust saturation, with <b>Ctrl</b> to adjust lightness"
+msgstr "색조 조정: %.3g, 현재 <b>%.3g</b> (차 %.3g), Shift: 채도 조정, Ctrl: 명도 조정"
 
 #: ../src/ui/widget/selected-style.cpp:1391
 #: ../src/ui/widget/selected-style.cpp:1405
-#, fuzzy
 msgid "Adjust stroke width"
-msgstr "글자를 곡선으로 변환"
+msgstr "윤곽선 폭 조정"
 
 #: ../src/ui/widget/selected-style.cpp:1392
 #, c-format
 msgid "Adjusting <b>stroke width</b>: was %.3g, now <b>%.3g</b> (diff %.3g)"
-msgstr ""
+msgstr "윤곽선 폭 조정: %.3g, 현재 <b>%.3g</b> (차 %.3g)"
 
 #. TRANSLATORS: Only translate the word "Link" - means to _link_ two sliders together
 #: ../src/ui/widget/spin-slider.cpp:118
 msgid "sliders|Link"
-msgstr ""
+msgstr "슬라이더|링크"
 
 #: ../src/ui/widget/style-swatch.cpp:301
 msgid "L Gradient"
-msgstr ""
+msgstr "L 그라디언트"
 
 #: ../src/ui/widget/style-swatch.cpp:305
 msgid "R Gradient"
-msgstr ""
+msgstr "R 그라디언트"
 
 #: ../src/ui/widget/style-swatch.cpp:321
 #, c-format
 msgid "Fill: %06x/%.3g"
-msgstr ""
+msgstr "채움: %06x/%.3g"
 
 #: ../src/ui/widget/style-swatch.cpp:323
 #, c-format
 msgid "Stroke: %06x/%.3g"
-msgstr ""
+msgstr "윤곽선: %06x/%.3g"
 
 #: ../src/ui/widget/style-swatch.cpp:355
 #, c-format
 msgid "Stroke width: %.5g%s"
-msgstr ""
+msgstr "윤곽선 폭: %.5g%s"
 
 #: ../src/ui/widget/style-swatch.cpp:371
 #, c-format
 msgid "O:%.3g"
-msgstr ""
+msgstr "불투명도:%.3g"
 
 #: ../src/ui/widget/style-swatch.cpp:373
 #, c-format
 msgid "O:.%d"
-msgstr ""
+msgstr "불투명도:.%d"
 
 #: ../src/ui/widget/style-swatch.cpp:378
 #, c-format
 msgid "Opacity: %.3g"
-msgstr ""
+msgstr "불투명도: %.3g"
 
 #: ../src/vanishing-point.cpp:124
 msgid "Split vanishing points"
-msgstr ""
+msgstr "소멸 점 나누기"
 
 #: ../src/vanishing-point.cpp:169
 msgid "Merge vanishing points"
-msgstr ""
+msgstr "소멸 점 병합"
 
 #: ../src/vanishing-point.cpp:225
 msgid "3D box: Move vanishing point"
-msgstr ""
+msgstr "3D 상자: 소멸 점 이동"
 
 #: ../src/vanishing-point.cpp:306
 #, c-format
 msgid "<b>Finite</b> vanishing point shared by <b>%d</b> box"
-msgid_plural ""
-"<b>Finite</b> vanishing point shared by <b>%d</b> boxes; drag with <b>Shift</"
-"b> to separate selected box(es)"
+msgid_plural "<b>Finite</b> vanishing point shared by <b>%d</b> boxes; drag with <b>Shift</b> to separate selected box(es)"
 msgstr[0] ""
 msgstr[1] ""
 
 #. This won't make sense any more when infinite VPs are not shown on the canvas,
 #. but currently we update the status message anyway
 #: ../src/vanishing-point.cpp:313
-#, c-format
 msgid "<b>Infinite</b> vanishing point shared by <b>%d</b> box"
-msgid_plural ""
-"<b>Infinite</b> vanishing point shared by <b>%d</b> boxes; drag with "
-"<b>Shift</b> to separate selected box(es)"
+msgid_plural "<b>Infinite</b> vanishing point shared by <b>%d</b> boxes; drag with <b>Shift</b> to separate selected box(es)"
 msgstr[0] ""
 msgstr[1] ""
 
 #: ../src/vanishing-point.cpp:321
 #, c-format
-msgid ""
-"shared by <b>%d</b> box; drag with <b>Shift</b> to separate selected box(es)"
-msgid_plural ""
-"shared by <b>%d</b> boxes; drag with <b>Shift</b> to separate selected box"
-"(es)"
-msgstr[0] ""
-msgstr[1] ""
+msgid "shared by <b>%d</b> box; drag with <b>Shift</b> to separate selected box(es)"
+msgstr "%d 상자에 의해 공유; Shift: 선택 상자 분리"
 
 #: ../src/verbs.cpp:1134
-#, fuzzy
 msgid "Switch to next layer"
-msgstr "이름바뀐 레이어"
+msgstr "다음 레이어로 전환"
 
 #: ../src/verbs.cpp:1135
-#, fuzzy
 msgid "Switched to next layer."
-msgstr "이름바뀐 레이어"
+msgstr "다음 레이어로 전환"
 
 #: ../src/verbs.cpp:1137
 msgid "Cannot go past last layer."
-msgstr ""
+msgstr "마지막 레이어로 뒤로 이동할 수 없음."
 
 #: ../src/verbs.cpp:1146
-#, fuzzy
 msgid "Switch to previous layer"
-msgstr "ì\9d´ì \84 ë¬¸ì\84\9c ì°½ì\9c¼ë¡\9c ì \84í\99\98í\95\98기"
+msgstr "ì\9d´ì \84 ë \88ì\9d´ì\96´ë¡\9c ì \84í\99\98"
 
 #: ../src/verbs.cpp:1147
-#, fuzzy
 msgid "Switched to previous layer."
-msgstr "ì\9d´ì \84 ë¬¸ì\84\9c ì°½ì\9c¼ë¡\9c ì \84í\99\98í\95\98기"
+msgstr "ì\9d´ì \84 ë \88ì\9d´ì\96´ë¡\9c ì \84í\99\98"
 
 #: ../src/verbs.cpp:1149
 msgid "Cannot go before first layer."
-msgstr ""
+msgstr "첫 레이어 앞으로 이동할 수 없음"
 
-#: ../src/verbs.cpp:1166 ../src/verbs.cpp:1250
+#: ../src/verbs.cpp:1166
+#: ../src/verbs.cpp:1250
 msgid "No current layer."
-msgstr ""
+msgstr "현재 레이어 없음."
 
-#: ../src/verbs.cpp:1195 ../src/verbs.cpp:1199
+#: ../src/verbs.cpp:1195
+#: ../src/verbs.cpp:1199
 #, c-format
 msgid "Raised layer <b>%s</b>."
-msgstr ""
+msgstr "한 단계 올린 레이어 <b>%s</b>. "
 
 #: ../src/verbs.cpp:1196
-#, fuzzy
 msgid "Layer to top"
-msgstr "ë\85¸ë\93\9c ì\98¬ë¦¬ê¸°"
+msgstr "ë \88ì\9d´ì\96´ë¥¼ ìµ\9cì\83\81ë\8b¨ì\9c¼ë¡\9c"
 
 #: ../src/verbs.cpp:1200
-#, fuzzy
 msgid "Raise layer"
-msgstr "레이어 이름변경"
+msgstr "레이어 한 단계 올리기"
 
-#: ../src/verbs.cpp:1203 ../src/verbs.cpp:1207
+#: ../src/verbs.cpp:1203
+#: ../src/verbs.cpp:1207
 #, c-format
 msgid "Lowered layer <b>%s</b>."
-msgstr ""
+msgstr "한 단계 내린 레이어 <b>%s</b>."
 
 #: ../src/verbs.cpp:1204
-#, fuzzy
 msgid "Layer to bottom"
-msgstr "ë\85¸ë\93\9c ì\98¬ë¦¬ê¸°"
+msgstr "ë \88ì\9d´ì\96´ë¥¼ ìµ\9cí\95\98ë\8b¨ì\9c¼ë¡\9c"
 
 #: ../src/verbs.cpp:1208
-#, fuzzy
 msgid "Lower layer"
-msgstr "ë\85¸ë\93\9c를 ì\95\84ë\9e\98ë\8f\84"
+msgstr "ë \88ì\9d´ì\96´ í\95\9c ë\8b¨ê³\84 ë\82´ë¦¬ê¸°"
 
 #: ../src/verbs.cpp:1217
 msgid "Cannot move layer any further."
-msgstr ""
+msgstr "더 이상 이동할 레이어가 없음"
 
 #: ../src/verbs.cpp:1245
-#, fuzzy
 msgid "Delete layer"
-msgstr "삭제(_D)"
+msgstr "레이어 삭제"
 
 #. TRANSLATORS: this means "The layer has been deleted."
 #: ../src/verbs.cpp:1248
 msgid "Deleted layer."
-msgstr ""
+msgstr "삭제된 레이어."
 
 #: ../src/verbs.cpp:1330
-#, fuzzy
 msgid "Flip horizontally"
-msgstr "수평(_H)"
+msgstr "수평방향 거꾸로"
 
 #: ../src/verbs.cpp:1345
 msgid "Flip vertically"
-msgstr ""
+msgstr "수직방향 거꾸로"
 
 #. TRANSLATORS: If you have translated the tutorial-basic.svg file to your language,
 #. then translate this string as "tutorial-basic.LANG.svg" (where LANG is your language
 #. code); otherwise leave as "tutorial-basic.svg".
 #: ../src/verbs.cpp:1829
 msgid "tutorial-basic.svg"
-msgstr "tutorial-basic.svg"
+msgstr "지침서-기본.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
 #: ../src/verbs.cpp:1833
 msgid "tutorial-shapes.svg"
-msgstr "tutorial-shapes.svg"
+msgstr "지침서-모양.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
 #: ../src/verbs.cpp:1837
 msgid "tutorial-advanced.svg"
-msgstr "tutorial-advanced.svg"
+msgstr "지침서-고급.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
 #: ../src/verbs.cpp:1841
 msgid "tutorial-tracing.svg"
-msgstr "tutorial-tracing.svg"
+msgstr "지침서-따오기(복사).svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
 #: ../src/verbs.cpp:1845
 msgid "tutorial-calligraphy.svg"
-msgstr "tutorial-calligraphy.svg"
+msgstr "지침서-글씨체.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
 #: ../src/verbs.cpp:1849
 msgid "tutorial-elements.svg"
-msgstr "tutorial-elements.svg"
+msgstr "지침서-요소.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
 #: ../src/verbs.cpp:1853
 msgid "tutorial-tips.svg"
-msgstr "tutorial-tips.svg"
+msgstr "지침서-도구설명.svg"
 
-#: ../src/verbs.cpp:2129 ../src/verbs.cpp:2634
-#, fuzzy
+#: ../src/verbs.cpp:2129
+#: ../src/verbs.cpp:2634
 msgid "Unlock all objects in the current layer"
-msgstr "현재 레이어에서 만 찾기"
+msgstr "현재 레이어에서 전체 객체 잠금 해제"
 
-#: ../src/verbs.cpp:2133 ../src/verbs.cpp:2636
-#, fuzzy
+#: ../src/verbs.cpp:2133
+#: ../src/verbs.cpp:2636
 msgid "Unlock all objects in all layers"
-msgstr "모든 레이어 선택"
+msgstr "전체 레이어에서 전체 객체 잠금 해제"
 
-#: ../src/verbs.cpp:2137 ../src/verbs.cpp:2638
-#, fuzzy
+#: ../src/verbs.cpp:2137
+#: ../src/verbs.cpp:2638
 msgid "Unhide all objects in the current layer"
-msgstr "현재 레이어에서 만 찾기"
+msgstr "현재 레이어에서 전체 객체 보이기"
 
-#: ../src/verbs.cpp:2141 ../src/verbs.cpp:2640
-#, fuzzy
+#: ../src/verbs.cpp:2141
+#: ../src/verbs.cpp:2640
 msgid "Unhide all objects in all layers"
-msgstr "모든 레이어 선택"
+msgstr "전체 레이어에서 전체 객체 보이기"
 
 #: ../src/verbs.cpp:2156
 msgid "Does nothing"
@@ -13673,11 +12745,11 @@ msgstr "아무 작업도 하지 않음"
 
 #: ../src/verbs.cpp:2159
 msgid "Create new document from the default template"
-msgstr "기본 템플릿 바탕으로 새로운 문서를 생성"
+msgstr "기본 서식에서 새 문서 생성"
 
 #: ../src/verbs.cpp:2161
 msgid "_Open..."
-msgstr "열기(_O).."
+msgstr "열기(_O)..."
 
 #: ../src/verbs.cpp:2162
 msgid "Open an existing document"
@@ -13685,11 +12757,11 @@ msgstr "기존 문서 열기"
 
 #: ../src/verbs.cpp:2163
 msgid "Re_vert"
-msgstr "되돌리기(_v)"
+msgstr "되돌리기(_V)"
 
 #: ../src/verbs.cpp:2164
 msgid "Revert to the last saved version of document (changes will be lost)"
-msgstr "마지막 저장한 문서로 되돌리기 (변경 작업등 을 잃어 버립니다)"
+msgstr "마지막 저장된 문서로 되돌리기 (변경 내용을 잃어 버립니다)"
 
 #: ../src/verbs.cpp:2165
 msgid "_Save"
@@ -13701,48 +12773,44 @@ msgstr "문서 저장"
 
 #: ../src/verbs.cpp:2167
 msgid "Save _As..."
-msgstr "다른이름으로 저장..."
+msgstr "다른 이름으로 저장(_A)..."
 
 #: ../src/verbs.cpp:2168
 msgid "Save document under a new name"
-msgstr "새로운 이름으로 문서 저장"
+msgstr "새 이름으로 문서 저장"
 
 #: ../src/verbs.cpp:2169
-#, fuzzy
 msgid "Save a Cop_y..."
-msgstr "다른이름으로 저장..."
+msgstr "사본 저장(_Y)..."
 
 #: ../src/verbs.cpp:2170
-#, fuzzy
 msgid "Save a copy of the document under a new name"
 msgstr "새로운 이름으로 문서 저장"
 
 #: ../src/verbs.cpp:2171
 msgid "_Print..."
-msgstr "ì\9cë ¥(_P)..."
+msgstr "ì\9d¸ì\87\84(_P)..."
 
 #: ../src/verbs.cpp:2171
 msgid "Print document"
-msgstr "문ì\84\9c ì\9cë ¥"
+msgstr "문ì\84\9c ì\9d¸ì\87\84"
 
 #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions)
 #: ../src/verbs.cpp:2174
 msgid "Vac_uum Defs"
-msgstr "연계성 청소"
+msgstr "미사용 정의값 제거"
 
 #: ../src/verbs.cpp:2174
-msgid ""
-"Remove unused definitions (such as gradients or clipping paths) from the &lt;"
-"defs&gt; of the document"
-msgstr ""
+msgid "Remove unused definitions (such as gradients or clipping paths) from the &lt;defs&gt; of the document"
+msgstr "그라디언트 또는 경로 잘라내기등 사용하지 않는 정의 값 제거"
 
 #: ../src/verbs.cpp:2176
 msgid "Print Previe_w"
-msgstr ""
+msgstr "인쇄 미리보기(_W)"
 
 #: ../src/verbs.cpp:2177
 msgid "Preview document printout"
-msgstr ""
+msgstr "문서 출력물 미리보기 "
 
 #: ../src/verbs.cpp:2178
 msgid "_Import..."
@@ -13754,7 +12822,7 @@ msgstr "비트맵 이미지나 SVG 이미지를 이 문서로 불러오기"
 
 #: ../src/verbs.cpp:2180
 msgid "_Export Bitmap..."
-msgstr "비트맵 으로 내보내기(_E)..."
+msgstr "비트맵으로 내보내기(_E)..."
 
 #: ../src/verbs.cpp:2181
 msgid "Export this document or a selection as a bitmap image"
@@ -13762,40 +12830,39 @@ msgstr "이 문서나 선택 영역을 비트맵으로 내보내기"
 
 #: ../src/verbs.cpp:2182
 msgid "Import a document from Open Clip Art Library"
-msgstr ""
+msgstr "Open Clip Art 라이브러리 문서를 읽어오기"
 
 #: ../src/verbs.cpp:2183
 msgid "Export To Open Clip Art Library"
-msgstr ""
+msgstr "Open Clip Art 라이브러리로 내보내기"
 
 #: ../src/verbs.cpp:2183
-#, fuzzy
 msgid "Export this document to Open Clip Art Library"
-msgstr "ì\9d´ ë¬¸ì\84\9cë\82\98 ì\84 í\83\9d ì\98\81ì\97­ì\9d\84 ë¹\84í\8a¸ë§µì\9c¼로 내보내기"
+msgstr "ì\9d´ ë¬¸ì\84\9c를 Open Clip Art ë\9d¼ì\9d´ë¸\8cë\9f¬ë¦¬로 내보내기"
 
 #: ../src/verbs.cpp:2184
 msgid "N_ext Window"
-msgstr "다음 창(_e)"
+msgstr "다음 창(_E)"
 
 #: ../src/verbs.cpp:2185
 msgid "Switch to the next document window"
-msgstr "다음 문서 창으로 전환하기"
+msgstr "다음 문서 창으로 전환"
 
 #: ../src/verbs.cpp:2186
 msgid "P_revious Window"
-msgstr "이전 창(_r)"
+msgstr "이전 창(_R)"
 
 #: ../src/verbs.cpp:2187
 msgid "Switch to the previous document window"
-msgstr "이전 문서 창으로 전환하기"
+msgstr "이전 문서 창으로 전환"
 
 #: ../src/verbs.cpp:2188
 msgid "_Close"
-msgstr "닫기(_C)"
+msgstr "(_C)닫기"
 
 #: ../src/verbs.cpp:2189
 msgid "Close this document window"
-msgstr "이 문서창을 닫기"
+msgstr "문서창 닫기"
 
 #: ../src/verbs.cpp:2190
 msgid "_Quit"
@@ -13803,23 +12870,23 @@ msgstr "종료(_Q)"
 
 #: ../src/verbs.cpp:2190
 msgid "Quit Inkscape"
-msgstr "잉크스케이프 종료"
+msgstr "Inkscape 종료"
 
 #: ../src/verbs.cpp:2193
 msgid "Undo last action"
-msgstr "마지막 작업 되돌림"
+msgstr "마지막 작업 되돌림"
 
 #: ../src/verbs.cpp:2196
 msgid "Do again the last undone action"
-msgstr "마지막 되돌리기 한 것을 원래도 돌리기"
+msgstr "마지막 되돌리기 작업 재실행"
 
 #: ../src/verbs.cpp:2197
 msgid "Cu_t"
-msgstr "잘라내기(_t)"
+msgstr "잘라내기(_T)"
 
 #: ../src/verbs.cpp:2198
 msgid "Cut selection to clipboard"
-msgstr "선택된부분을 잘라서 클립보드에 보관"
+msgstr "선택을 클립보드로 잘라내기"
 
 #: ../src/verbs.cpp:2199
 msgid "_Copy"
@@ -13827,109 +12894,99 @@ msgstr "복사(_C)"
 
 #: ../src/verbs.cpp:2200
 msgid "Copy selection to clipboard"
-msgstr "선택부분을 복사해서 클립보드로 보관"
+msgstr "선택을 클립보드로 복사"
 
 #: ../src/verbs.cpp:2201
 msgid "_Paste"
-msgstr "ë¶\99ì\9d´기(_P)"
+msgstr "ë¶\99ì\97¬ë\84£기(_P)"
 
 #: ../src/verbs.cpp:2202
 msgid "Paste objects from clipboard to mouse point, or paste text"
-msgstr "클립보드에서 마우스 포인트가 있는곳에 객채를 붙이기, 또는 문자 붙이기"
+msgstr "클립보드부터 마우스 포인트로 객체를 붙여넣기, 또는 문자열 붙여넣기"
 
 #: ../src/verbs.cpp:2203
 msgid "Paste _Style"
-msgstr "불이기 종류(_S)"
+msgstr "스타일 붙여넣기(_S)"
 
 #: ../src/verbs.cpp:2204
 msgid "Apply the style of the copied object to selection"
-msgstr ""
+msgstr "복사 객체의 스타일을 선택에 적용"
 
 #: ../src/verbs.cpp:2206
 msgid "Scale selection to match the size of the copied object"
-msgstr ""
+msgstr "복사 객체의 크기를 일치시키기 위하여 선택을 변경"
 
 #: ../src/verbs.cpp:2207
 msgid "Paste _Width"
-msgstr ""
+msgstr "폭으로 붙여넣기(_W)"
 
 #: ../src/verbs.cpp:2208
 msgid "Scale selection horizontally to match the width of the copied object"
-msgstr ""
+msgstr "복사 객체의 폭에 일치시키기 위하여 수평방향 선택을 변경"
 
 #: ../src/verbs.cpp:2209
 msgid "Paste _Height"
-msgstr ""
+msgstr "높이로 붙여넣기(_H)"
 
 #: ../src/verbs.cpp:2210
 msgid "Scale selection vertically to match the height of the copied object"
-msgstr ""
+msgstr "복사 객체의 높이에 일치시키기 위하여 수직방향 선택을 변경"
 
 #: ../src/verbs.cpp:2211
 msgid "Paste Size Separately"
-msgstr ""
+msgstr "개별적 크기로 붙여넣기"
 
 #: ../src/verbs.cpp:2212
 msgid "Scale each selected object to match the size of the copied object"
-msgstr ""
+msgstr "복사 객체의 크기에 일치시키기 위하여 각 선택 객체를 변경"
 
 #: ../src/verbs.cpp:2213
 msgid "Paste Width Separately"
-msgstr ""
+msgstr "개별적 폭으로 붙여넣기"
 
 #: ../src/verbs.cpp:2214
-msgid ""
-"Scale each selected object horizontally to match the width of the copied "
-"object"
-msgstr ""
+msgid "Scale each selected object horizontally to match the width of the copied object"
+msgstr "복사 객체의 폭에 일치시키기 위하여 수평방향의 각 선택 객체를 변경"
 
 #: ../src/verbs.cpp:2215
 msgid "Paste Height Separately"
-msgstr ""
+msgstr "개별적 높이로 붙여넣기"
 
 #: ../src/verbs.cpp:2216
-msgid ""
-"Scale each selected object vertically to match the height of the copied "
-"object"
-msgstr ""
+msgid "Scale each selected object vertically to match the height of the copied object"
+msgstr "복사 객체의 높이에 일치시키기 위하여 수직방향의 각 선택 객체를 변경"
 
 #: ../src/verbs.cpp:2217
 msgid "Paste _In Place"
-msgstr ""
+msgstr "정위치에 붙여넣기(_I)"
 
 #: ../src/verbs.cpp:2218
 msgid "Paste objects from clipboard to the original location"
-msgstr ""
+msgstr "클립보드에서 원래 위치에 객체 붙여넣기"
 
 #: ../src/verbs.cpp:2219
-#, fuzzy
 msgid "Paste Path _Effect"
-msgstr "불이기 종류(_S)"
+msgstr "경로 효과 붙여넣기(_E)"
 
 #: ../src/verbs.cpp:2220
-#, fuzzy
 msgid "Apply the path effect of the copied object to selection"
-msgstr "캔버스를 현재 선택 크기로 조정"
+msgstr "복사 객체의 경로 효과를 선택에 적용"
 
 #: ../src/verbs.cpp:2221
-#, fuzzy
 msgid "Remove Path _Effect"
-msgstr " 삭제(_m) "
+msgstr "경로 효과 제거(_E)"
 
 #: ../src/verbs.cpp:2222
-#, fuzzy
 msgid "Remove any path effects from selected objects"
-msgstr "선택ë\90\80 ê°\9dì²´ì\9d\98 ë³µì\82¬ë³¸ ë§\8cë\93¤ê¸°"
+msgstr "선택 ê°\9dì²´ë¡\9cë¶\80í\84° ì\9e\84ì\9d\98 ê²½ë¡\9c í\9a¨ê³¼ ì \9cê±°"
 
 #: ../src/verbs.cpp:2223
-#, fuzzy
 msgid "Remove Filter"
-msgstr "채움 제거"
+msgstr "필터 제거"
 
 #: ../src/verbs.cpp:2224
-#, fuzzy
 msgid "Remove any filters from selected objects"
-msgstr "선택ë\90\80 ê°\9dì²´ì\9d\98 ë³µì\82¬ë³¸ ë§\8cë\93¤ê¸°"
+msgstr "선택 ê°\9dì²´ë¡\9cë¶\80í\84° ì\9e\84ì\9d\98 í\95\84í\84°ë¥¼ ì \9cê±°"
 
 #: ../src/verbs.cpp:2225
 msgid "_Delete"
@@ -13937,376 +12994,362 @@ msgstr "삭제(_D)"
 
 #: ../src/verbs.cpp:2226
 msgid "Delete selection"
-msgstr "선택부분 지우기"
+msgstr "선택 삭제"
 
 #: ../src/verbs.cpp:2227
 msgid "Duplic_ate"
-msgstr "복사본 만들기(_a)"
+msgstr "복사본 생성(_A)"
 
 #: ../src/verbs.cpp:2228
 msgid "Duplicate selected objects"
-msgstr "선택됀 객체의 복사본 만들기"
+msgstr "선택 객체 복사본 생성"
 
 #: ../src/verbs.cpp:2229
 msgid "Create Clo_ne"
-msgstr ""
+msgstr "복제 객체 생성(_N)"
 
 #: ../src/verbs.cpp:2230
 msgid "Create a clone (a copy linked to the original) of selected object"
-msgstr ""
+msgstr "복제 객체 생성"
 
 #: ../src/verbs.cpp:2231
 msgid "Unlin_k Clone"
-msgstr ""
+msgstr "복제 객체 링크해제(_K)"
 
 #: ../src/verbs.cpp:2232
-msgid ""
-"Cut the selected clone's link to its original, turning it into a standalone "
-"object"
-msgstr ""
+msgid "Cut the selected clone's link to its original, turning it into a standalone object"
+msgstr "선택 복제 링크를 원래 원본으로 잘라내기, 이것은 단독 객체로 됨"
 
 #: ../src/verbs.cpp:2233
 msgid "Select _Original"
-msgstr ""
+msgstr "원본 선택(_O)"
 
 #: ../src/verbs.cpp:2234
 msgid "Select the object to which the selected clone is linked"
-msgstr ""
+msgstr "선택 복제가 링크된 객체를 선택"
 
 #. TRANSLATORS: Convert selection to a line marker
 #: ../src/verbs.cpp:2236
-#, fuzzy
 msgid "Objects to _Marker"
-msgstr "점선 유형"
+msgstr "객체를 마커로 변환(_M)"
 
 #: ../src/verbs.cpp:2237
-#, fuzzy
 msgid "Convert selection to a line marker"
-msgstr "선택된부분을 잘라서 클립보드에 보관"
+msgstr "선택을 한 줄 마커로 변환"
 
 #. TRANSLATORS: Convert selection to a collection of guidelines
 #: ../src/verbs.cpp:2239
-#, fuzzy
 msgid "Objects to Gu_ides"
-msgstr "점선 유형"
+msgstr "객체를 안내선으로 변환(_I)"
 
 #: ../src/verbs.cpp:2240
-msgid ""
-"Convert selected objects to a collection of guidelines aligned with their "
-"edges"
-msgstr ""
+msgid "Convert selected objects to a collection of guidelines aligned with their edges"
+msgstr "선택된 객체를 안내선으로 변환"
 
 #. TRANSLATORS: Convert selection to a rectangle with tiled pattern fill
 #: ../src/verbs.cpp:2242
 msgid "Objects to Patter_n"
-msgstr ""
+msgstr "객체를 패턴으로(_N)"
 
 #: ../src/verbs.cpp:2243
 msgid "Convert selection to a rectangle with tiled pattern fill"
-msgstr ""
+msgstr "선택을 타일 패턴 채움으로 변환"
 
 #. TRANSLATORS: Extract objects from a tiled pattern fill
 #: ../src/verbs.cpp:2245
 msgid "Pattern to _Objects"
-msgstr ""
+msgstr "패턴을 객체로(_O)"
 
 #: ../src/verbs.cpp:2246
 msgid "Extract objects from a tiled pattern fill"
-msgstr ""
+msgstr "타일 패턴 채움으로부터 객체 추출"
 
 #: ../src/verbs.cpp:2247
 msgid "Clea_r All"
-msgstr ""
+msgstr "전체 제거(_R)"
 
 #: ../src/verbs.cpp:2248
 msgid "Delete all objects from document"
-msgstr ""
+msgstr "전체 객체 삭제"
 
 #: ../src/verbs.cpp:2249
 msgid "Select Al_l"
-msgstr ""
+msgstr "전체 선택(_L)"
 
 #: ../src/verbs.cpp:2250
 msgid "Select all objects or all nodes"
-msgstr ""
+msgstr "전체 객체 또는 전체 노드 선택"
 
 #: ../src/verbs.cpp:2251
 msgid "Select All in All La_yers"
-msgstr ""
+msgstr "전체 레이어에서 전체 선택(_Y)"
 
 #: ../src/verbs.cpp:2252
 msgid "Select all objects in all visible and unlocked layers"
-msgstr ""
+msgstr "볼 수 있고 잠김 해제에 있는 레이어에서 전체 객체 선택"
 
 #: ../src/verbs.cpp:2253
 msgid "In_vert Selection"
-msgstr ""
+msgstr "선택 반전"
 
 #: ../src/verbs.cpp:2254
 msgid "Invert selection (unselect what is selected and select everything else)"
-msgstr ""
+msgstr "선택 반전 (선택된 것은 선택해제 되고 그 밖의 것이 모두 선택)"
 
 #: ../src/verbs.cpp:2255
 msgid "Invert in All Layers"
-msgstr ""
+msgstr "전체 레이어에서 반전"
 
 #: ../src/verbs.cpp:2256
 msgid "Invert selection in all visible and unlocked layers"
 msgstr ""
 
 #: ../src/verbs.cpp:2257
-#, fuzzy
 msgid "Select Next"
-msgstr "ë\85¸ë\93\9c ì\82­ì \9c"
+msgstr "ë\8b¤ì\9d\8c ì\84 í\83\9d"
 
 #: ../src/verbs.cpp:2258
-#, fuzzy
 msgid "Select next object or node"
-msgstr "클론으로 만들 <b>객체</b>를 선택"
+msgstr "다음 객체 또는 노드 선택"
 
 #: ../src/verbs.cpp:2259
-#, fuzzy
 msgid "Select Previous"
-msgstr "선택"
+msgstr "ì\9d´ì \84 ì\84 í\83\9d"
 
 #: ../src/verbs.cpp:2260
-#, fuzzy
 msgid "Select previous object or node"
-msgstr "클론으로 만들 <b>객체</b>를 선택"
+msgstr "이전 객체 또는 노드 선택"
 
 #: ../src/verbs.cpp:2261
 msgid "D_eselect"
-msgstr ""
+msgstr "선택 해제(_E)"
 
 #: ../src/verbs.cpp:2262
 msgid "Deselect any selected objects or nodes"
-msgstr ""
+msgstr "임의 선택 객체나 노드를 선택해제"
 
 #: ../src/verbs.cpp:2263
 msgid "_Guides around page"
-msgstr ""
+msgstr "페이지 안내선(_G)"
 
 #: ../src/verbs.cpp:2264
 msgid "Create four guides aligned with the page borders"
 msgstr ""
 
 #: ../src/verbs.cpp:2265
-#, fuzzy
 msgid "Next Path Effect Parameter"
-msgstr "ë\88ì\9d´ê¸° ì¢\85ë¥\98(_S)"
+msgstr "ë\8b¤ì\9d\8c ê²½ë¡\9c í\9a¨ê³¼ ì\9d¸ì\9e\90"
 
 #: ../src/verbs.cpp:2266
 msgid "Show next Path Effect parameter for editing"
-msgstr ""
+msgstr "편집을 위한 다음 경로 효과 인자 보이기"
 
 #. Selection
 #: ../src/verbs.cpp:2269
 msgid "Raise to _Top"
-msgstr ""
+msgstr "최상위로 올리기(_T)"
 
 #: ../src/verbs.cpp:2270
 msgid "Raise selection to top"
-msgstr ""
+msgstr "선택 객체를 최상위로 올리기"
 
 #: ../src/verbs.cpp:2271
 msgid "Lower to _Bottom"
-msgstr ""
+msgstr "최하위로 내리기(_B)"
 
 #: ../src/verbs.cpp:2272
 msgid "Lower selection to bottom"
-msgstr ""
+msgstr "선택 객체를 최하위로 내리기"
 
 #: ../src/verbs.cpp:2273
 msgid "_Raise"
-msgstr ""
+msgstr "한 단계 위로 이동(_R)"
 
 #: ../src/verbs.cpp:2274
 msgid "Raise selection one step"
-msgstr ""
+msgstr "선택 객체를 한 단계 위로 이동"
 
 #: ../src/verbs.cpp:2275
 msgid "_Lower"
-msgstr ""
+msgstr "한 단계 아래로 이동(_L)"
 
 #: ../src/verbs.cpp:2276
 msgid "Lower selection one step"
-msgstr ""
+msgstr "선택 객체를 한 단계 아래로 이동"
 
 #: ../src/verbs.cpp:2277
 msgid "_Group"
-msgstr ""
+msgstr "그룹(_G)"
 
 #: ../src/verbs.cpp:2278
 msgid "Group selected objects"
-msgstr ""
+msgstr "선택 객체를 그룹화"
 
 #: ../src/verbs.cpp:2280
 msgid "Ungroup selected groups"
-msgstr ""
+msgstr "선택 그룹을 그룹해제"
 
 #: ../src/verbs.cpp:2282
 msgid "_Put on Path"
-msgstr ""
+msgstr "경로상에 놓기(_P)"
 
 #: ../src/verbs.cpp:2284
 msgid "_Remove from Path"
-msgstr ""
+msgstr "경로에서 제거(_R)"
 
 #: ../src/verbs.cpp:2286
 msgid "Remove Manual _Kerns"
-msgstr ""
+msgstr "수동 글자 장식꼬리 제거(_K)"
 
 #. 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:2289
 msgid "Remove all manual kerns and glyph rotations from a text object"
-msgstr ""
+msgstr "문자열 객체에서 전체 수동 글자 장식꼬리와 사용자 문자 회전을 제거"
 
 #: ../src/verbs.cpp:2291
 msgid "_Union"
-msgstr ""
+msgstr "합(_U)"
 
 #: ../src/verbs.cpp:2292
 msgid "Create union of selected paths"
-msgstr ""
+msgstr "선택 경로의 합을 생성"
 
 #: ../src/verbs.cpp:2293
 msgid "_Intersection"
-msgstr ""
+msgstr "교차(_I)"
 
 #: ../src/verbs.cpp:2294
 msgid "Create intersection of selected paths"
-msgstr ""
+msgstr "선택 경로의 교차 생성"
 
 #: ../src/verbs.cpp:2295
 msgid "_Difference"
-msgstr ""
+msgstr "차(_D)"
 
 #: ../src/verbs.cpp:2296
 msgid "Create difference of selected paths (bottom minus top)"
-msgstr ""
+msgstr "선택 경로의 차를 생성(최하단에서 최상단방향)"
 
 #: ../src/verbs.cpp:2297
 msgid "E_xclusion"
-msgstr ""
+msgstr "제외(_X)"
 
 #: ../src/verbs.cpp:2298
-msgid ""
-"Create exclusive OR of selected paths (those parts that belong to only one "
-"path)"
-msgstr ""
+msgid "Create exclusive OR of selected paths (those parts that belong to only one path)"
+msgstr "선택 경로의 XOR 생성"
 
 #: ../src/verbs.cpp:2299
 msgid "Di_vision"
-msgstr ""
+msgstr "나누기(_V)"
 
 #: ../src/verbs.cpp:2300
 msgid "Cut the bottom path into pieces"
-msgstr ""
+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:2303
 msgid "Cut _Path"
-msgstr ""
+msgstr "경로 잘라내기(_P)"
 
 #: ../src/verbs.cpp:2304
 msgid "Cut the bottom path's stroke into pieces, removing fill"
-msgstr ""
+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:2308
 msgid "Outs_et"
-msgstr ""
+msgstr "경로 늘리기(_E)"
 
 #: ../src/verbs.cpp:2309
 msgid "Outset selected paths"
-msgstr ""
+msgstr "선택 경로 늘리기"
 
 #: ../src/verbs.cpp:2311
 msgid "O_utset Path by 1 px"
-msgstr ""
+msgstr "1화소씩 경로 늘리기(_U)"
 
 #: ../src/verbs.cpp:2312
 msgid "Outset selected paths by 1 px"
-msgstr ""
+msgstr "1화소씩 선택 경로 늘리기"
 
 #: ../src/verbs.cpp:2314
 msgid "O_utset Path by 10 px"
-msgstr ""
+msgstr "10화소씩 경로 늘리기(_U)"
 
 #: ../src/verbs.cpp:2315
 msgid "Outset selected paths by 10 px"
-msgstr ""
+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:2319
 msgid "I_nset"
-msgstr ""
+msgstr "경로 줄이기(_N)"
 
 #: ../src/verbs.cpp:2320
 msgid "Inset selected paths"
-msgstr ""
+msgstr "선택 경로 줄이기"
 
 #: ../src/verbs.cpp:2322
 msgid "I_nset Path by 1 px"
-msgstr ""
+msgstr "1화소씩 경로 줄이기"
 
 #: ../src/verbs.cpp:2323
 msgid "Inset selected paths by 1 px"
-msgstr ""
+msgstr "1화소씩 선택 경로 줄이기"
 
 #: ../src/verbs.cpp:2325
 msgid "I_nset Path by 10 px"
-msgstr ""
+msgstr "10화소씩 선택 경로 줄이기"
 
 #: ../src/verbs.cpp:2326
 msgid "Inset selected paths by 10 px"
-msgstr ""
+msgstr "10화소씩 선택 경로 줄이기"
 
 #: ../src/verbs.cpp:2328
 msgid "D_ynamic Offset"
-msgstr ""
+msgstr "동적 옵셋(_Y)"
 
 #: ../src/verbs.cpp:2328
 msgid "Create a dynamic offset object"
-msgstr ""
+msgstr "동적 옵셋 객체 생성"
 
 #: ../src/verbs.cpp:2330
 msgid "_Linked Offset"
-msgstr ""
+msgstr "링크 옵셋(_L)"
 
 #: ../src/verbs.cpp:2331
 msgid "Create a dynamic offset object linked to the original path"
-msgstr ""
+msgstr "원래 경로와 링크된 동적 옵셋 객체 생성"
 
 #: ../src/verbs.cpp:2333
 msgid "_Stroke to Path"
-msgstr ""
+msgstr "윤곽선를 경로로(_S)"
 
 #: ../src/verbs.cpp:2334
 msgid "Convert selected object's stroke to paths"
-msgstr ""
+msgstr "선택 객체 윤곽선를 경로로 변환"
 
 #: ../src/verbs.cpp:2335
 msgid "Si_mplify"
-msgstr "단순화(_m)"
+msgstr "단순화(_M)"
 
 #: ../src/verbs.cpp:2336
 msgid "Simplify selected paths (remove extra nodes)"
-msgstr "ì\84 í\83\9dë\90\9c ê³¡ì\84 ì\9d\84 ë\8b¨ì\88\9cí\99\94(ì¶\94ê°\80 ë\85¸ë\93\9c삭제)"
+msgstr "ì\84 í\83\9dë\90\9c ê²½ë¡\9c ë\8b¨ì\88\9cí\99\94(ì¶\94ê°\80 ë\85¸ë\93\9c 삭제)"
 
 #: ../src/verbs.cpp:2337
 msgid "_Reverse"
-msgstr "되돌리기(_R)"
+msgstr "거꾸로(_R)"
 
 #: ../src/verbs.cpp:2338
 msgid "Reverse the direction of selected paths (useful for flipping markers)"
-msgstr "선택된 경로의 방향을 바꾸기(플림 마크에 유용)"
+msgstr "선택된 경로의 방향 역으로(거꾸로 마커에 유용)"
 
 #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
 #: ../src/verbs.cpp:2340
@@ -14315,516 +13358,504 @@ msgstr "비트맴 따오기(_T)..."
 
 #: ../src/verbs.cpp:2341
 msgid "Create one or more paths from a bitmap by tracing it"
-msgstr "비트맴 이미지 따올때 하나 또는 여러 곡선으로 생성하기"
+msgstr "비트맴 이미지 따올때 하나이상 경로 생성"
 
 #: ../src/verbs.cpp:2342
 msgid "_Make a Bitmap Copy"
-msgstr "비트맵 복사본 만들기(_M)"
+msgstr "비트맵 복사본 생성(_M)"
 
 #: ../src/verbs.cpp:2343
 msgid "Export selection to a bitmap and insert it into document"
-msgstr ""
+msgstr "선택을 비트맵으로 내보내기 문서로 삽입함"
 
 #: ../src/verbs.cpp:2344
 msgid "_Combine"
-msgstr "합치기(_C)"
+msgstr "결합(_C)"
 
 #: ../src/verbs.cpp:2345
 msgid "Combine several paths into one"
-msgstr ""
+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:2348
 msgid "Break _Apart"
-msgstr ""
+msgstr "떼어놓기(_A)"
 
 #: ../src/verbs.cpp:2349
 msgid "Break selected paths into subpaths"
-msgstr ""
+msgstr "선택된 경로를 하위경로로 떼어놓기"
 
 #: ../src/verbs.cpp:2350
-#, fuzzy
 msgid "Rows and Columns..."
-msgstr "줄, 열: "
+msgstr "줄과 열 설정..."
 
 #: ../src/verbs.cpp:2351
-#, fuzzy
 msgid "Arrange selected objects in a table"
-msgstr "선택한 객체 배분"
+msgstr "표에서 선택 객체 배열"
 
 #. Layer
 #: ../src/verbs.cpp:2353
 msgid "_Add Layer..."
-msgstr "레이어 추가(_A)..."
+msgstr "레이어 추가(_A)..."
 
 #: ../src/verbs.cpp:2354
 msgid "Create a new layer"
-msgstr ""
+msgstr "새 레이어를 생성"
 
 #: ../src/verbs.cpp:2355
 msgid "Re_name Layer..."
-msgstr ""
+msgstr "레이어를 다른 이름으로(_N)..."
 
 #: ../src/verbs.cpp:2356
 msgid "Rename the current layer"
-msgstr ""
+msgstr "현재 레이어를 다른 이름으로"
 
 #: ../src/verbs.cpp:2357
 msgid "Switch to Layer Abov_e"
-msgstr ""
+msgstr "위 레이어로 이동(_E)"
 
 #: ../src/verbs.cpp:2358
 msgid "Switch to the layer above the current"
-msgstr ""
+msgstr "현재보다 위 레이어로 이동"
 
 #: ../src/verbs.cpp:2359
 msgid "Switch to Layer Belo_w"
-msgstr ""
+msgstr "아래 레어어로 이동(_W)"
 
 #: ../src/verbs.cpp:2360
 msgid "Switch to the layer below the current"
-msgstr ""
+msgstr "현재보다 아래 레이어로 이동"
 
 #: ../src/verbs.cpp:2361
 msgid "Move Selection to Layer Abo_ve"
-msgstr ""
+msgstr "위 레어어로 선택 이동"
 
 #: ../src/verbs.cpp:2362
 msgid "Move selection to the layer above the current"
-msgstr ""
+msgstr "현재보다 위 레이어로 선택 이동"
 
 #: ../src/verbs.cpp:2363
 msgid "Move Selection to Layer Bel_ow"
-msgstr ""
+msgstr "아래 레이어로 선택 이동"
 
 #: ../src/verbs.cpp:2364
 msgid "Move selection to the layer below the current"
-msgstr ""
+msgstr "현재보다 아래 레이어로 선택 이동"
 
 #: ../src/verbs.cpp:2365
 msgid "Layer to _Top"
-msgstr ""
+msgstr "최상단 레이어로 이동(_T)"
 
 #: ../src/verbs.cpp:2366
 msgid "Raise the current layer to the top"
-msgstr ""
+msgstr "현재 레이어를 최상단으로 이동"
 
 #: ../src/verbs.cpp:2367
 msgid "Layer to _Bottom"
-msgstr ""
+msgstr "최하단 레이어로 이동(_B)"
 
 #: ../src/verbs.cpp:2368
 msgid "Lower the current layer to the bottom"
-msgstr ""
+msgstr "현재 레이어를 최하단으로 이동"
 
 #: ../src/verbs.cpp:2369
 msgid "_Raise Layer"
-msgstr ""
+msgstr "레이어 위로 이동(_R)"
 
 #: ../src/verbs.cpp:2370
 msgid "Raise the current layer"
-msgstr ""
+msgstr "현재 레이어 위로 이동"
 
 #: ../src/verbs.cpp:2371
 msgid "_Lower Layer"
-msgstr ""
+msgstr "레이어 아래로 이동(_L)"
 
 #: ../src/verbs.cpp:2372
 msgid "Lower the current layer"
-msgstr ""
+msgstr "현재 레이어 아래로 이동"
 
 #: ../src/verbs.cpp:2373
 msgid "_Delete Current Layer"
-msgstr ""
+msgstr "현재 레이어 삭제(_D)"
 
 #: ../src/verbs.cpp:2374
 msgid "Delete the current layer"
-msgstr ""
+msgstr "현재 레이어 삭제"
 
 #. Object
 #: ../src/verbs.cpp:2377
 msgid "Rotate _90&#176; CW"
-msgstr ""
+msgstr "90&#176; 시계방향 회전(_9)"
 
 #. This is shared between tooltips and statusbar, so they
 #. must use UTF-8, not HTML entities for special characters.
 #: ../src/verbs.cpp:2380
-#, fuzzy
 msgid "Rotate selection 90° clockwise"
-msgstr "ì\8b\9cê³\84ë°©í\96¥ì\9c¼ë¡\9c 회전"
+msgstr "ì\84 í\83\9dê°\9d체를 90ë\8f\84 ì\8b\9cê³\84ë°©í\96¥ 회전"
 
 #: ../src/verbs.cpp:2381
 msgid "Rotate 9_0&#176; CCW"
-msgstr ""
+msgstr "90&#176; 반시계방향 회전(_0)"
 
 #. This is shared between tooltips and statusbar, so they
 #. must use UTF-8, not HTML entities for special characters.
 #: ../src/verbs.cpp:2384
-#, fuzzy
 msgid "Rotate selection 90° counter-clockwise"
-msgstr "ì\8b\9cê³\84ë°©í\96¥ì\9c¼ë¡\9c 회전"
+msgstr "ì\84 í\83\9dê°\9d체를 90ë\8f\84 ë°\98ì\8b\9cê³\84ë°©í\96¥ 회전"
 
 #: ../src/verbs.cpp:2385
 msgid "Remove _Transformations"
-msgstr ""
+msgstr "변환 제거(_T)"
 
 #: ../src/verbs.cpp:2386
 msgid "Remove transformations from object"
-msgstr ""
+msgstr "객체로부터 변환 제거"
 
 #: ../src/verbs.cpp:2387
 msgid "_Object to Path"
-msgstr ""
+msgstr "객체를 경로로(_O)"
 
 #: ../src/verbs.cpp:2388
 msgid "Convert selected object to path"
-msgstr ""
+msgstr "선택 객체를 경로로 변환"
 
 #: ../src/verbs.cpp:2389
 msgid "_Flow into Frame"
-msgstr ""
+msgstr "문자열을 프레임에 삽입(_F)"
 
 #: ../src/verbs.cpp:2390
-msgid ""
-"Put text into a frame (path or shape), creating a flowed text linked to the "
-"frame object"
-msgstr ""
+msgid "Put text into a frame (path or shape), creating a flowed text linked to the frame object"
+msgstr "문자열을 프레임에 삽입(경로 또는 모양), 문자열을 프레임 객체에 생성"
 
 #: ../src/verbs.cpp:2391
 msgid "_Unflow"
-msgstr ""
+msgstr "문자열을 프레임에서 제거(_U)"
 
 #: ../src/verbs.cpp:2392
 msgid "Remove text from frame (creates a single-line text object)"
-msgstr ""
+msgstr "문자열을 프레임에서 제거(단일 문자열 객체를 생성)"
 
 #: ../src/verbs.cpp:2393
 msgid "_Convert to Text"
-msgstr ""
+msgstr "문자열로 변환(_C)"
 
 #: ../src/verbs.cpp:2394
 msgid "Convert flowed text to regular text object (preserves appearance)"
-msgstr ""
+msgstr "문자열을 정규 문자열 객체로 변환(외형 유지)"
 
 #: ../src/verbs.cpp:2396
 msgid "Flip _Horizontal"
-msgstr ""
+msgstr "수평 뒤집기(_H)"
 
 #: ../src/verbs.cpp:2396
 msgid "Flip selected objects horizontally"
-msgstr ""
+msgstr "선택 객체를 수평으로 뒤집기"
 
 #: ../src/verbs.cpp:2399
 msgid "Flip _Vertical"
-msgstr ""
+msgstr "수직 뒤집기(_V)"
 
 #: ../src/verbs.cpp:2399
 msgid "Flip selected objects vertically"
-msgstr ""
+msgstr "선택 객체를 수직으로 뒤집기"
 
 #: ../src/verbs.cpp:2402
 msgid "Apply mask to selection (using the topmost object as mask)"
-msgstr ""
+msgstr "마스크를 선택에 적용(마스크로 최상위 객체 사용)"
 
 #: ../src/verbs.cpp:2404
-#, fuzzy
 msgid "Edit mask"
-msgstr "ë³\84"
+msgstr "ë§\88ì\8a¤í\81¬ í\8e¸ì§\91"
 
-#: ../src/verbs.cpp:2405 ../src/verbs.cpp:2411
+#: ../src/verbs.cpp:2405
+#: ../src/verbs.cpp:2411
 msgid "_Release"
-msgstr ""
+msgstr "마스크 해제(_R)"
 
 #: ../src/verbs.cpp:2406
 msgid "Remove mask from selection"
-msgstr ""
+msgstr "선택으로부터 마스크 제거"
 
 #: ../src/verbs.cpp:2408
-msgid ""
-"Apply clipping path to selection (using the topmost object as clipping path)"
-msgstr ""
+msgid "Apply clipping path to selection (using the topmost object as clipping path)"
+msgstr "자르기 경로를 선택으로 적용 ( 자르기 경로로서 최상위 객체를 사용)"
 
-#: ../src/verbs.cpp:2410 ../src/widgets/toolbox.cpp:1222
-#, fuzzy
+#: ../src/verbs.cpp:2410
+#: ../src/widgets/toolbox.cpp:1222
 msgid "Edit clipping path"
-msgstr "경로 닫는중."
+msgstr "자르기 경로 편집"
 
 #: ../src/verbs.cpp:2412
 msgid "Remove clipping path from selection"
-msgstr ""
+msgstr "선택으로부터 자르기 경로 제거"
 
 #. Tools
 #: ../src/verbs.cpp:2415
 msgid "Select"
-msgstr ""
+msgstr "선택"
 
 #: ../src/verbs.cpp:2416
 msgid "Select and transform objects"
-msgstr ""
+msgstr "선택과 변형 객체"
 
 #: ../src/verbs.cpp:2417
 msgid "Node Edit"
-msgstr ""
+msgstr "노드 편집"
 
 #: ../src/verbs.cpp:2418
 msgid "Edit paths by nodes"
-msgstr ""
+msgstr "노드 경로 편집"
 
 #: ../src/verbs.cpp:2420
 msgid "Tweak objects by sculpting or painting"
-msgstr ""
+msgstr "조각 또는 칠하기에 의한 객체 모양 조정"
 
 #: ../src/verbs.cpp:2422
 msgid "Create rectangles and squares"
-msgstr ""
+msgstr "직사각형 및 정사각형 생성"
 
 #: ../src/verbs.cpp:2424
-#, fuzzy
 msgid "Create 3D boxes"
-msgstr "중심선"
+msgstr "3D 상자 생성"
 
 #: ../src/verbs.cpp:2426
 msgid "Create circles, ellipses, and arcs"
-msgstr ""
+msgstr "원, 타원, 호 생성"
 
 #: ../src/verbs.cpp:2428
 msgid "Create stars and polygons"
-msgstr ""
+msgstr "별과 다각형 생성"
 
 #: ../src/verbs.cpp:2430
 msgid "Create spirals"
-msgstr ""
+msgstr "나선 생성"
 
 #: ../src/verbs.cpp:2432
 msgid "Draw freehand lines"
-msgstr ""
+msgstr "자유곡선 그리기"
 
 #: ../src/verbs.cpp:2434
 msgid "Draw Bezier curves and straight lines"
-msgstr ""
+msgstr "베지어선 및 직선 그리기"
 
 #: ../src/verbs.cpp:2436
-#, fuzzy
 msgid "Draw calligraphic or brush strokes"
-msgstr "중심선"
+msgstr "글자체 또는 붓 윤곽선 그리기"
 
 #: ../src/verbs.cpp:2438
 msgid "Create and edit text objects"
-msgstr ""
+msgstr "문자열 생성 및 편집"
 
 #: ../src/verbs.cpp:2440
 msgid "Create and edit gradients"
-msgstr ""
+msgstr "그라디언트 생성 및 편집"
 
 #: ../src/verbs.cpp:2442
 msgid "Zoom in or out"
-msgstr ""
+msgstr "확대/축소"
 
 #: ../src/verbs.cpp:2444
 msgid "Pick colors from image"
-msgstr ""
+msgstr "이미지에서 색상 추출"
 
 #: ../src/verbs.cpp:2446
-#, fuzzy
 msgid "Create diagram connectors"
-msgstr "새 연결자 생성"
+msgstr "도표 연결자 생성 생성"
 
 #: ../src/verbs.cpp:2448
 msgid "Fill bounded areas"
-msgstr ""
+msgstr "경계 구간 채우기"
 
 #: ../src/verbs.cpp:2449
 msgid "LPE Edit"
-msgstr ""
+msgstr "LPE 편집"
 
 #: ../src/verbs.cpp:2450
-#, fuzzy
 msgid "Edit Live Path Effect parameters"
-msgstr "ë\88ì\9d´ê¸° ì¢\85ë¥\98(_S)"
+msgstr "ë\9d¼ì\9d´ë¸\8c ê²½ë¡\9c í\9a¨ê³¼ ì\9d¸ì\9e\90 í\8e¸ì§\91"
 
 #: ../src/verbs.cpp:2452
-#, fuzzy
 msgid "Erase existing paths"
-msgstr "되돌리기(_R)"
+msgstr "기존 경로 삭제"
 
 #. Tool prefs
 #: ../src/verbs.cpp:2454
 msgid "Selector Preferences"
-msgstr ""
+msgstr "선택자 기본설정"
 
 #: ../src/verbs.cpp:2455
 msgid "Open Preferences for the Selector tool"
-msgstr ""
+msgstr "선택자 도구를 위한 기본설정 열기"
 
 #: ../src/verbs.cpp:2456
 msgid "Node Tool Preferences"
-msgstr ""
+msgstr "노드 도구 기본설정"
 
 #: ../src/verbs.cpp:2457
 msgid "Open Preferences for the Node tool"
-msgstr ""
+msgstr "노드 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2458
 msgid "Tweak Tool Preferences"
-msgstr ""
+msgstr "조정 도구 기본설정"
 
 #: ../src/verbs.cpp:2459
 msgid "Open Preferences for the Tweak tool"
-msgstr ""
+msgstr "조정 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2460
 msgid "Rectangle Preferences"
-msgstr ""
+msgstr "직사각형 기본설정"
 
 #: ../src/verbs.cpp:2461
 msgid "Open Preferences for the Rectangle tool"
-msgstr ""
+msgstr "직사각형 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2462
 msgid "3D Box Preferences"
-msgstr ""
+msgstr "3D 상자 기본설정"
 
 #: ../src/verbs.cpp:2463
 msgid "Open Preferences for the 3D Box tool"
-msgstr ""
+msgstr "3D 상자 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2464
 msgid "Ellipse Preferences"
-msgstr ""
+msgstr "타원 기본설정"
 
 #: ../src/verbs.cpp:2465
 msgid "Open Preferences for the Ellipse tool"
-msgstr ""
+msgstr "타원도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2466
 msgid "Star Preferences"
-msgstr ""
+msgstr "별 기본설정"
 
 #: ../src/verbs.cpp:2467
 msgid "Open Preferences for the Star tool"
-msgstr ""
+msgstr "별 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2468
 msgid "Spiral Preferences"
-msgstr ""
+msgstr "나선 기본설정"
 
 #: ../src/verbs.cpp:2469
 msgid "Open Preferences for the Spiral tool"
-msgstr ""
+msgstr "나선 두구 기본설정 열기"
 
 #: ../src/verbs.cpp:2470
 msgid "Pencil Preferences"
-msgstr ""
+msgstr "연필 기본설정"
 
 #: ../src/verbs.cpp:2471
 msgid "Open Preferences for the Pencil tool"
-msgstr ""
+msgstr "연필 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2472
 msgid "Pen Preferences"
-msgstr ""
+msgstr "펜 기본설정"
 
 #: ../src/verbs.cpp:2473
 msgid "Open Preferences for the Pen tool"
-msgstr ""
+msgstr "펜 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2474
 msgid "Calligraphic Preferences"
-msgstr ""
+msgstr "글자체 기본설정"
 
 #: ../src/verbs.cpp:2475
 msgid "Open Preferences for the Calligraphy tool"
-msgstr ""
+msgstr "글자체 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2476
 msgid "Text Preferences"
-msgstr ""
+msgstr "문자열 기본설정"
 
 #: ../src/verbs.cpp:2477
 msgid "Open Preferences for the Text tool"
-msgstr ""
+msgstr "문자열 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2478
 msgid "Gradient Preferences"
-msgstr ""
+msgstr "그라디언트 기본설정"
 
 #: ../src/verbs.cpp:2479
 msgid "Open Preferences for the Gradient tool"
-msgstr ""
+msgstr "그라디언트 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2480
 msgid "Zoom Preferences"
-msgstr ""
+msgstr "확대/축소 기본설정"
 
 #: ../src/verbs.cpp:2481
 msgid "Open Preferences for the Zoom tool"
-msgstr ""
+msgstr "확대/축소 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2482
 msgid "Dropper Preferences"
-msgstr ""
+msgstr "추출기 기본설정"
 
 #: ../src/verbs.cpp:2483
 msgid "Open Preferences for the Dropper tool"
-msgstr ""
+msgstr "추출기 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2484
 msgid "Connector Preferences"
-msgstr ""
+msgstr "연결자 기본설정"
 
 #: ../src/verbs.cpp:2485
 msgid "Open Preferences for the Connector tool"
-msgstr ""
+msgstr "연결자 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2486
 msgid "Paint Bucket Preferences"
-msgstr ""
+msgstr "페인트통 기본설정"
 
 #: ../src/verbs.cpp:2487
 msgid "Open Preferences for the Paint Bucket tool"
-msgstr ""
+msgstr "페인트통 도구 기본설정 열기"
 
 #: ../src/verbs.cpp:2488
 msgid "Eraser Preferences"
-msgstr ""
+msgstr "지우개 기본설정"
 
 #: ../src/verbs.cpp:2489
 msgid "Open Preferences for the Eraser tool"
-msgstr ""
+msgstr "지우개 도구 기본설정 열기"
 
 #. Zoom/View
 #: ../src/verbs.cpp:2492
 msgid "Zoom In"
-msgstr "확대해 보기"
+msgstr "확대"
 
 #: ../src/verbs.cpp:2492
 msgid "Zoom in"
-msgstr "확대해 보기"
+msgstr "확대"
 
 #: ../src/verbs.cpp:2493
 msgid "Zoom Out"
-msgstr "축소해 보기"
+msgstr "축소"
 
 #: ../src/verbs.cpp:2493
 msgid "Zoom out"
-msgstr "축소해 보기"
+msgstr "축소"
 
 #: ../src/verbs.cpp:2494
 msgid "_Rulers"
-msgstr "눈금 자(_R)"
+msgstr "눈금자(_R)"
 
 #: ../src/verbs.cpp:2494
 msgid "Show or hide the canvas rulers"
-msgstr "캔버스에 자(눈금)을 보이거나 감추기"
+msgstr "눈금자 보이기/숨기기"
 
 #: ../src/verbs.cpp:2495
 msgid "Scroll_bars"
-msgstr "ì\8a¤í\81¬ë¡¤ ë°\94(_b)"
+msgstr "ì\9d´ë\8f\99 ë§\89ë\8c\80(_B)"
 
 #: ../src/verbs.cpp:2495
 msgid "Show or hide the canvas scrollbars"
-msgstr "ìº\94ë²\84ì\8a¤ ì\8a¤í\81¬ë¡¤ ë°\94를 ë³´ì\9d´ê±°ë\82\98 ê°\90ì¶\94기"
+msgstr "ì\9d´ë\8f\99ë°\94 ë³´ì\9d´ê¸°/ì\88¨ê¸°기"
 
 #: ../src/verbs.cpp:2496
 msgid "_Grid"
@@ -14832,51 +13863,51 @@ msgstr "격자(_G)"
 
 #: ../src/verbs.cpp:2496
 msgid "Show or hide the grid"
-msgstr "격ì\9e\90 ë³´ì\9d´ê±°ë\82\98 ê°\90ì¶\94기"
+msgstr "격ì\9e\90 ë³´ì\9d´ê¸°/ì\88¨ê¸°기"
 
 #: ../src/verbs.cpp:2497
 msgid "G_uides"
-msgstr "가이드(_u)"
+msgstr "안내선(_U)"
 
 #: ../src/verbs.cpp:2497
 msgid "Show or hide guides (drag from a ruler to create a guide)"
-msgstr ""
+msgstr "안내선 보이기/숨기기(안내선을 생성하기 위하여 눈금자에서 끌기)"
 
 #: ../src/verbs.cpp:2499
 msgid "Nex_t Zoom"
-msgstr ""
+msgstr "다음 비율(_T)"
 
 #: ../src/verbs.cpp:2499
 msgid "Next zoom (from the history of zooms)"
-msgstr ""
+msgstr "다음 비율(비율 작업내역에서)"
 
 #: ../src/verbs.cpp:2501
 msgid "Pre_vious Zoom"
-msgstr ""
+msgstr "이전 비율(_V)"
 
 #: ../src/verbs.cpp:2501
 msgid "Previous zoom (from the history of zooms)"
-msgstr ""
+msgstr "이전 비율(비율 작업내역에서)"
 
 #: ../src/verbs.cpp:2503
 msgid "Zoom 1:_1"
-msgstr ""
+msgstr "1:1 기본(_1)"
 
 #: ../src/verbs.cpp:2503
 msgid "Zoom to 1:1"
-msgstr "1:1 학대"
+msgstr "1:1 기본"
 
 #: ../src/verbs.cpp:2505
 msgid "Zoom 1:_2"
-msgstr ""
+msgstr "1:2로 축소(_2)"
 
 #: ../src/verbs.cpp:2505
 msgid "Zoom to 1:2"
-msgstr "1:2 로 확대"
+msgstr "1:2 로 축소"
 
 #: ../src/verbs.cpp:2507
 msgid "_Zoom 2:1"
-msgstr ""
+msgstr "2:1로 확대(_Z)"
 
 #: ../src/verbs.cpp:2507
 msgid "Zoom to 2:1"
@@ -14884,15 +13915,15 @@ msgstr "2:1 로 확대"
 
 #: ../src/verbs.cpp:2510
 msgid "_Fullscreen"
-msgstr ""
+msgstr "전체화면(_F)"
 
 #: ../src/verbs.cpp:2510
 msgid "Stretch this document window to full screen"
-msgstr ""
+msgstr "문서 창을 전체화면으로 확대"
 
 #: ../src/verbs.cpp:2513
 msgid "Duplic_ate Window"
-msgstr ""
+msgstr "작업창 복제(_A)"
 
 #: ../src/verbs.cpp:2513
 msgid "Open a new window with the same document"
@@ -14900,80 +13931,76 @@ msgstr ""
 
 #: ../src/verbs.cpp:2515
 msgid "_New View Preview"
-msgstr ""
+msgstr "새 보기 미리보기(_N)"
 
 #: ../src/verbs.cpp:2516
 msgid "New View Preview"
-msgstr ""
+msgstr "새 보기 미리보기"
 
 #. "view_new_preview"
 #: ../src/verbs.cpp:2518
 msgid "_Normal"
-msgstr ""
+msgstr "일반(_N)"
 
 #: ../src/verbs.cpp:2519
 msgid "Switch to normal display mode"
-msgstr ""
+msgstr "일반 보기 모드로 전환"
 
 #: ../src/verbs.cpp:2520
-#, fuzzy
 msgid "No _Filters"
-msgstr "밀리미터"
+msgstr "필터 없음"
 
 #: ../src/verbs.cpp:2521
 msgid "Switch to normal display without filters"
-msgstr ""
+msgstr "필터 없이 일반 보기로 전환"
 
 #: ../src/verbs.cpp:2522
 msgid "_Outline"
-msgstr ""
+msgstr "윤곽선(_O)"
 
 #: ../src/verbs.cpp:2523
 msgid "Switch to outline (wireframe) display mode"
-msgstr ""
+msgstr "윤곽선 (줄 프레임) 보기 모드로 전환"
 
 #: ../src/verbs.cpp:2524
-#, fuzzy
 msgid "_Toggle"
-msgstr "각도(_n)"
+msgstr "토글(_T)"
 
 #: ../src/verbs.cpp:2525
 msgid "Toggle between normal and outline display modes"
-msgstr ""
+msgstr "일반과 윤곽선 보기 모드 사이 토글"
 
 #: ../src/verbs.cpp:2527
 msgid "Color-managed view"
-msgstr ""
+msgstr "색상-관리 보기"
 
 #: ../src/verbs.cpp:2528
-#, fuzzy
 msgid "Toggle color-managed display for this document window"
-msgstr "이 문서창을 닫기"
+msgstr "이 문서창을 위한 색상-관리 보이기 토글"
 
 #: ../src/verbs.cpp:2530
-#, fuzzy
 msgid "Ico_n Preview..."
-msgstr "미리보기 없음"
+msgstr "아이콘 미리보기(_N)..."
 
 #: ../src/verbs.cpp:2531
 msgid "Open a window to preview objects at different icon resolutions"
-msgstr ""
+msgstr "객체를 다른 아이콘 해상도로 미리보기위해 창 열기"
 
 #: ../src/verbs.cpp:2533
 msgid "Zoom to fit page in window"
-msgstr ""
+msgstr "창에서 페이지에 맞게 확대"
 
 #: ../src/verbs.cpp:2534
 msgid "Page _Width"
-msgstr ""
+msgstr "페이지 폭(_W)"
 
 #: ../src/verbs.cpp:2535
 msgid "Zoom to fit page width in window"
-msgstr ""
+msgstr "창에서 페이지 폭에 맞게 확대"
 
 #: ../src/verbs.cpp:2537
 msgid "Zoom to fit drawing in window"
-msgstr ""
+msgstr "창에서 그리기 적합하게 확대"
 
 #: ../src/verbs.cpp:2539
 msgid "Zoom to fit selection in window"
@@ -14982,97 +14009,96 @@ msgstr "선택된 객체 전체 보기"
 #. Dialogs
 #: ../src/verbs.cpp:2542
 msgid "In_kscape Preferences..."
-msgstr ""
+msgstr "Inkscape 기본설정(_K)..."
 
 #: ../src/verbs.cpp:2543
 msgid "Edit global Inkscape preferences"
-msgstr ""
+msgstr "Inkscape 기본설정 편집"
 
 #: ../src/verbs.cpp:2544
 msgid "_Document Properties..."
-msgstr ""
+msgstr "문서 속성(_D)..."
 
 #: ../src/verbs.cpp:2545
 msgid "Edit properties of this document (to be saved with the document)"
-msgstr ""
+msgstr "문서의 속성 편집"
 
 #: ../src/verbs.cpp:2546
 msgid "Document _Metadata..."
-msgstr ""
+msgstr "문서 정보(_M)..."
 
 #: ../src/verbs.cpp:2547
 msgid "Edit document metadata (to be saved with the document)"
-msgstr ""
+msgstr "문서 정보 편집"
 
 #: ../src/verbs.cpp:2548
 msgid "_Fill and Stroke..."
-msgstr ""
+msgstr "채움/윤곽선(_F)..."
 
 #: ../src/verbs.cpp:2549
-msgid ""
-"Edit objects' colors, gradients, stroke width, arrowheads, dash patterns..."
-msgstr ""
+msgid "Edit objects' colors, gradients, stroke width, arrowheads, dash patterns..."
+msgstr "객체 색상, 그라디언트, 윤곽선 폭, 화살표 머리, 실선 패턴 편집..."
 
 #. TRANSLATORS: "Swatches" means: color samples
 #: ../src/verbs.cpp:2551
 msgid "S_watches..."
-msgstr ""
+msgstr "색상 막대(_W)..."
 
 #: ../src/verbs.cpp:2552
 msgid "Select colors from a swatches palette"
-msgstr ""
+msgstr "색상 막대 팔레트에서 색상 선택"
 
 #: ../src/verbs.cpp:2553
 msgid "Transfor_m..."
-msgstr ""
+msgstr "변환(_M)..."
 
 #: ../src/verbs.cpp:2554
 msgid "Precisely control objects' transformations"
-msgstr ""
+msgstr "정확히 객체 변형을 제어"
 
 #: ../src/verbs.cpp:2555
 msgid "_Align and Distribute..."
-msgstr ""
+msgstr "배열/정렬(_A)..."
 
 #: ../src/verbs.cpp:2556
 msgid "Align and distribute objects"
-msgstr ""
+msgstr "객체를 배열 및 정렬"
 
 #: ../src/verbs.cpp:2557
 msgid "Undo _History..."
-msgstr ""
+msgstr "작업내역 되돌리기(_H)..."
 
 #: ../src/verbs.cpp:2558
 msgid "Undo History"
-msgstr ""
+msgstr "작업내역 되돌리기"
 
 #: ../src/verbs.cpp:2559
 msgid "_Text and Font..."
-msgstr ""
+msgstr "문자열/글꼴(_T)..."
 
 #: ../src/verbs.cpp:2560
 msgid "View and select font family, font size and other text properties"
-msgstr ""
+msgstr "글꼴 모음, 글꼴 크기, 그리고 다른 문자열 속성을 보기와 선택하기"
 
 #: ../src/verbs.cpp:2561
 msgid "_XML Editor..."
-msgstr ""
+msgstr "XML 편집기(_X)..."
 
 #: ../src/verbs.cpp:2562
 msgid "View and edit the XML tree of the document"
-msgstr ""
+msgstr "문서의 XML 구조를 보기 및 편집"
 
 #: ../src/verbs.cpp:2563
 msgid "_Find..."
-msgstr ""
+msgstr "찾기(_F)..."
 
 #: ../src/verbs.cpp:2564
 msgid "Find objects in document"
-msgstr ""
+msgstr "문서에서 객체 찾기"
 
 #: ../src/verbs.cpp:2565
 msgid "_Messages..."
-msgstr ""
+msgstr "메세지(_M)..."
 
 #: ../src/verbs.cpp:2566
 msgid "View debug messages"
@@ -15080,115 +14106,113 @@ msgstr "디버그 메세지 보기"
 
 #: ../src/verbs.cpp:2567
 msgid "S_cripts..."
-msgstr ""
+msgstr "스크립트(_C)..."
 
 #: ../src/verbs.cpp:2568
 msgid "Run scripts"
-msgstr ""
+msgstr "스크립트 실행"
 
 #: ../src/verbs.cpp:2569
 msgid "Show/Hide D_ialogs"
-msgstr ""
+msgstr "대화창 보이기/안보이기(_I)"
 
 #: ../src/verbs.cpp:2570
 msgid "Show or hide all open dialogs"
-msgstr ""
+msgstr "전체 열린 대화창 보이기 또는 숨기기"
 
 #: ../src/verbs.cpp:2571
 msgid "Create Tiled Clones..."
-msgstr ""
+msgstr "타일 복제 생성..."
 
 #: ../src/verbs.cpp:2572
-msgid ""
-"Create multiple clones of selected object, arranging them into a pattern or "
-"scattering"
-msgstr ""
+msgid "Create multiple clones of selected object, arranging them into a pattern or scattering"
+msgstr "선택 객체의 다수 복제물을 생성, 복제물들을 패턴이나 타일로 배열"
 
 #: ../src/verbs.cpp:2573
 msgid "_Object Properties..."
-msgstr ""
+msgstr "객체 속성(_O)..."
 
 #: ../src/verbs.cpp:2574
 msgid "Edit the ID, locked and visible status, and other object properties"
-msgstr ""
+msgstr "ID, 잠금, 보이기 상태, 그리고 다른 객체 속성 편집"
 
 #: ../src/verbs.cpp:2577
 msgid "_Instant Messaging..."
-msgstr ""
+msgstr "인스턴트 메세징(_I)..."
 
 #: ../src/verbs.cpp:2577
 msgid "Jabber Instant Messaging Client"
-msgstr ""
+msgstr "Jabber 인스턴트 메세징 클라이언트"
 
 #: ../src/verbs.cpp:2579
 msgid "_Input Devices..."
-msgstr ""
+msgstr "입력 장치(_I)..."
 
-#: ../src/verbs.cpp:2580 ../src/verbs.cpp:2582
+#: ../src/verbs.cpp:2580
+#: ../src/verbs.cpp:2582
 msgid "Configure extended input devices, such as a graphics tablet"
-msgstr ""
+msgstr "그래픽 타블렛과 같은 확장 입력 기기를 설정"
 
 #: ../src/verbs.cpp:2581
 msgid "_Input Devices (new)..."
-msgstr ""
+msgstr "입력 장치(새로)(_I)..."
 
 #: ../src/verbs.cpp:2583
 msgid "_Extensions..."
-msgstr ""
+msgstr "확장자(_E)..."
 
 #: ../src/verbs.cpp:2584
 msgid "Query information about extensions"
-msgstr ""
+msgstr "확장자에 대한 정보 문의"
 
 #: ../src/verbs.cpp:2585
 msgid "Layer_s..."
-msgstr "레이어들(_s)..."
+msgstr "레이어 목록(_S)..."
 
 #: ../src/verbs.cpp:2586
 msgid "View Layers"
 msgstr "레이어 보기"
 
 #: ../src/verbs.cpp:2587
-#, fuzzy
 msgid "Path Effects..."
-msgstr "옵셋"
+msgstr "경로 효과..."
 
 #: ../src/verbs.cpp:2588
 msgid "Manage path effects"
-msgstr ""
+msgstr "경로 효과 관리"
 
 #: ../src/verbs.cpp:2589
 msgid "Filter Effects..."
-msgstr ""
+msgstr "필터 효과..."
 
 #: ../src/verbs.cpp:2590
 msgid "Manage SVG filter effects"
-msgstr ""
+msgstr "SVG 필터 효과 관리"
 
 #. Help
 #: ../src/verbs.cpp:2593
 msgid "About E_xtensions"
-msgstr ""
+msgstr "확장자에 대하여(_X)"
 
 #: ../src/verbs.cpp:2594
 msgid "Information on Inkscape extensions"
-msgstr ""
+msgstr "Inkscape 확장자에 대한 정보"
 
 #: ../src/verbs.cpp:2595
 msgid "About _Memory"
-msgstr "메모리에 대하여(_M)"
+msgstr "메모리 사용량(_M)"
 
 #: ../src/verbs.cpp:2596
 msgid "Memory usage information"
-msgstr "메모리 사용 정보"
+msgstr "메모리 사용 정보"
 
 #: ../src/verbs.cpp:2597
 msgid "_About Inkscape"
-msgstr "잉크 스케이프에 대하여(_A)"
+msgstr "Inkscape에 대하여(_A)"
 
 #: ../src/verbs.cpp:2598
 msgid "Inkscape version, authors, license"
-msgstr "잉크스케이프 버전, 저자, 라이센스"
+msgstr "Inkscape 버전, 저자, 저작권"
 
 #. "help_about"
 #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"),
@@ -15196,64 +14220,64 @@ msgstr "잉크스케이프 버전, 저자, 라이센스"
 #. Tutorials
 #: ../src/verbs.cpp:2603
 msgid "Inkscape: _Basic"
-msgstr "잉크스케이프: 기본(_B)"
+msgstr "Inkscape: 기본(_B)"
 
 #: ../src/verbs.cpp:2604
 msgid "Getting started with Inkscape"
-msgstr "잉크스케이프로 새로 시작"
+msgstr "Inkscape 시작"
 
 #. "tutorial_basic"
 #: ../src/verbs.cpp:2605
 msgid "Inkscape: _Shapes"
-msgstr "잉크스케이프: 모양(_S)"
+msgstr "Inkscape: 모양(_S)"
 
 #: ../src/verbs.cpp:2606
 msgid "Using shape tools to create and edit shapes"
-msgstr "형태를 만들고 수정하기 위해 모양툴 사용"
+msgstr "모양을 생성 및 편집하기 위해 모양 도구 사용"
 
 #: ../src/verbs.cpp:2607
 msgid "Inkscape: _Advanced"
-msgstr "잉크스케이프: 고급(_A)"
+msgstr "Inkscape: 고급(_A)"
 
 #: ../src/verbs.cpp:2608
 msgid "Advanced Inkscape topics"
-msgstr "고급 잉크스케이프 주제"
+msgstr "고급 Inkscape 주제"
 
 #. "tutorial_advanced"
 #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
 #: ../src/verbs.cpp:2610
 msgid "Inkscape: T_racing"
-msgstr "잉크스케이프: 따오기(_r)"
+msgstr "Inkscape: 따오기(_R)"
 
 #: ../src/verbs.cpp:2611
 msgid "Using bitmap tracing"
-msgstr "ë¹\84í\8a¸ë§´ ì\9d´ë¯¸ì§\80 따오기 사용"
+msgstr "ë¹\84í\8a¸ë§µ 따오기 사용"
 
 #. "tutorial_tracing"
 #: ../src/verbs.cpp:2612
 msgid "Inkscape: _Calligraphy"
-msgstr ""
+msgstr "Inkscape: 글씨체(_C)"
 
 #: ../src/verbs.cpp:2613
 msgid "Using the Calligraphy pen tool"
-msgstr ""
+msgstr "글씨체 펜 도구를 사용 중"
 
 #: ../src/verbs.cpp:2614
 msgid "_Elements of Design"
-msgstr "디자인 개체(_E)"
+msgstr "디자인 요소(_E)"
 
 #: ../src/verbs.cpp:2615
 msgid "Principles of design in the tutorial form"
-msgstr "튜터리얼에 있는 디자인 원리"
+msgstr "지침서 양식의 디자인 원리"
 
 #. "tutorial_design"
 #: ../src/verbs.cpp:2616
 msgid "_Tips and Tricks"
-msgstr "팁 과 트랙(_T)"
+msgstr "도구 설명과 기술(_T)"
 
 #: ../src/verbs.cpp:2617
 msgid "Miscellaneous tips and tricks"
-msgstr ""
+msgstr "다양한 ㄷ구 설명과 기술"
 
 #. "tutorial_tips"
 #. Effect
@@ -15263,7 +14287,7 @@ msgstr "이전 효과"
 
 #: ../src/verbs.cpp:2621
 msgid "Repeat the last effect with the same settings"
-msgstr "이전 설정 상태 그대로 마지막 효과 재 사용 "
+msgstr "동일 설정 상태 그대로 마지막 효과 반복"
 
 #: ../src/verbs.cpp:2622
 msgid "Previous Effect Settings..."
@@ -15271,105 +14295,90 @@ msgstr "이전 효과 설정..."
 
 #: ../src/verbs.cpp:2623
 msgid "Repeat the last effect with new settings"
-msgstr "새로운 설정으로 마지막 효과 재 사용"
+msgstr "새로운 설정으로 마지막 효과 반복"
 
 #. Fit Page
 #: ../src/verbs.cpp:2626
-#, fuzzy
 msgid "Fit Page to Selection"
-msgstr "캔버스를 선택영역크기로 조정"
+msgstr "페이지를 선택 크기로 조정"
 
 #: ../src/verbs.cpp:2627
-#, fuzzy
 msgid "Fit the page to the current selection"
-msgstr "캔버스를 현재 선택 크기로 조정"
+msgstr "페이지를 현재 선택크기로 조정"
 
 #: ../src/verbs.cpp:2628
-#, fuzzy
 msgid "Fit Page to Drawing"
-msgstr "캔버스를 그림 크기로 조정"
+msgstr "페이지를 그림 크기로 조정"
 
 #: ../src/verbs.cpp:2629
-#, fuzzy
 msgid "Fit the page to the drawing"
-msgstr "캔버스를 그림 크리고 조정"
+msgstr "페이지를 그림으로 조정"
 
 #: ../src/verbs.cpp:2630
-#, fuzzy
 msgid "Fit Page to Selection or Drawing"
-msgstr "캔버스를 선택영역이나 그림 크리고 조정"
+msgstr "페이지를 선택 또는 그림으로 조정"
 
 #: ../src/verbs.cpp:2631
-#, fuzzy
-msgid ""
-"Fit the page to the current selection or the drawing if there is no selection"
-msgstr ""
-"캔버스 크기를 현재 선택 영역이나,  만약 아무 선택을 하지 않았다면 그램 크기"
-"로 조정"
+msgid "Fit the page to the current selection or the drawing if there is no selection"
+msgstr "페이지를 현재 선택으로 조정하거나 현재 선택이 없다면 그리기"
 
 #. LockAndHide
 #: ../src/verbs.cpp:2633
-#, fuzzy
 msgid "Unlock All"
-msgstr "노드를 아래도"
+msgstr "전체 레이어 잠금 해제"
 
 #: ../src/verbs.cpp:2635
-#, fuzzy
 msgid "Unlock All in All Layers"
-msgstr "노드를 아래도"
+msgstr "전체 레이어 잠금 해제"
 
 #: ../src/verbs.cpp:2637
-#, fuzzy
 msgid "Unhide All"
-msgstr "레이어 이름변경"
+msgstr "전체 레이어 나타내기"
 
 #: ../src/verbs.cpp:2639
-#, fuzzy
 msgid "Unhide All in All Layers"
-msgstr "레이어 이름변경"
+msgstr "전체 레이어 나타내기"
 
 #: ../src/widgets/calligraphic-profile-rename.cpp:34
-#, fuzzy
 msgid "Profile name:"
-msgstr "í\8c\8cì\9d¼ì\9d´ë¦\84 ì\84¤ì \95"
+msgstr "í\94\84ë¡\9cí\8c\8cì\9d¼ ì\9d´ë¦\84:"
 
 #: ../src/widgets/calligraphic-profile-rename.cpp:48
-#, fuzzy
 msgid "Save"
-msgstr "저장(_S)"
+msgstr "저장"
 
 #: ../src/widgets/dash-selector.cpp:106
 msgid "Dash pattern"
-msgstr "ì \90ì\84  ì\9c í\98\95"
+msgstr "ì\8b¤ì\84  í\8c¨í\84´"
 
 #: ../src/widgets/dash-selector.cpp:121
 msgid "Pattern offset"
-msgstr "간격띄우기 유형"
+msgstr "패턴 옵셋"
 
 #: ../src/widgets/desktop-widget.cpp:620
-#, fuzzy, c-format
+#, c-format
 msgid "%s: %d (outline) - Inkscape"
-msgstr "%s: %d - 잉크스케이프"
+msgstr "%s: %d (윤곽선) - Inkscape"
 
 #: ../src/widgets/desktop-widget.cpp:622
 #, c-format
 msgid "%s: %d - Inkscape"
-msgstr "%s: %d - 잉크스케이프"
+msgstr "%s: %d - Inkscape"
 
 #: ../src/widgets/desktop-widget.cpp:626
-#, fuzzy, c-format
+#, c-format
 msgid "%s (outline) - Inkscape"
-msgstr "%s - 잉크스케이프"
+msgstr "%s (윤곽선) - Inkscape"
 
 #: ../src/widgets/desktop-widget.cpp:628
 #, c-format
 msgid "%s - Inkscape"
-msgstr "%s - 잉크스케이프"
+msgstr "%s - Inkscape"
 
 #. Family frame
 #: ../src/widgets/font-selector.cpp:154
 msgid "Font family"
-msgstr "글꼴 패밀리"
+msgstr "글꼴 모음"
 
 #. Style frame
 #: ../src/widgets/font-selector.cpp:185
@@ -15385,27 +14394,24 @@ msgstr "글꼴 크기:"
 #. * text has been entered) to get a preview of the font.  Choose
 #. * some representative characters that users of your locale will be
 #. * interested in.
-#: ../src/widgets/font-selector.cpp:636 ../src/widgets/toolbox.cpp:5123
+#: ../src/widgets/font-selector.cpp:636
+#: ../src/widgets/toolbox.cpp:5123
 msgid "AaBbCcIiPpQq12369$€¢?.;/()"
 msgstr "AaBbCcIiPpQq12369$€¢?.;/()"
 
 #: ../src/widgets/gradient-selector.cpp:139
 #: ../src/widgets/gradient-toolbar.cpp:462
 msgid "Edit..."
-msgstr "수정..."
+msgstr "편집..."
 
 #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute
 #: ../src/widgets/gradient-selector.cpp:156
-msgid ""
-"Whether to fill with flat color beyond the ends of the gradient vector "
-"(spreadMethod=\"pad\"), or repeat the gradient in the same direction "
-"(spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite "
-"directions (spreadMethod=\"reflect\")"
-msgstr ""
+msgid "Whether to fill with flat color beyond the ends of the gradient vector (spreadMethod=\"pad\"), or repeat the gradient in the same direction (spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite directions (spreadMethod=\"reflect\")"
+msgstr "그라디언트 벡터의 끝 너머 평면 색상으로 채울 지(확장방법=\"pad\") 또는 동일방향에서 그라디언트를 반복할 지(확장방법=\"repeat\"), 또는 반대 방향에서 그라디언트를 반복할 지(확장방법=\"reflect\")"
 
 #: ../src/widgets/gradient-selector.cpp:166
 msgid "reflected"
-msgstr ""
+msgstr "반사"
 
 #: ../src/widgets/gradient-selector.cpp:170
 msgid "direct"
@@ -15416,418 +14422,404 @@ msgid "Repeat:"
 msgstr "반복:"
 
 #: ../src/widgets/gradient-toolbar.cpp:151
-#, fuzzy
 msgid "Assign gradient to object"
-msgstr "ê°\84격ë\9d\84ì\9a°ê¸° ì\9c í\98\95"
+msgstr "ê·¸ë\9d¼ë\94\94ì\96¸í\8a¸ë¥¼ ê°\9dì²´ì\97\90 í\95 ë\8b¹"
 
 #: ../src/widgets/gradient-toolbar.cpp:185
 msgid "<small>No gradients</small>"
-msgstr ""
+msgstr "<small>그라디언트 없음</small>"
 
 #: ../src/widgets/gradient-toolbar.cpp:194
 msgid "<small>Nothing selected</small>"
-msgstr ""
+msgstr "<small>선택된 것 없음</small>"
 
 #: ../src/widgets/gradient-toolbar.cpp:205
 msgid "<small>No gradients in selection</small>"
-msgstr ""
+msgstr "<small>선택에서 그라디언트 없음</small>"
 
 #: ../src/widgets/gradient-toolbar.cpp:215
 msgid "<small>Multiple gradients</small>"
-msgstr ""
+msgstr "<small>다수 그라디언트</small>"
 
 #: ../src/widgets/gradient-toolbar.cpp:463
 msgid "Edit the stops of the gradient"
-msgstr ""
-
-#: ../src/widgets/gradient-toolbar.cpp:522 ../src/widgets/toolbox.cpp:1936
-#: ../src/widgets/toolbox.cpp:2010 ../src/widgets/toolbox.cpp:2340
-#: ../src/widgets/toolbox.cpp:2378 ../src/widgets/toolbox.cpp:2992
-#: ../src/widgets/toolbox.cpp:3016 ../src/widgets/toolbox.cpp:4110
+msgstr "그라디언트 조절점 편집"
+
+#: ../src/widgets/gradient-toolbar.cpp:522
+#: ../src/widgets/toolbox.cpp:1936
+#: ../src/widgets/toolbox.cpp:2010
+#: ../src/widgets/toolbox.cpp:2340
+#: ../src/widgets/toolbox.cpp:2378
+#: ../src/widgets/toolbox.cpp:2992
+#: ../src/widgets/toolbox.cpp:3016
+#: ../src/widgets/toolbox.cpp:4110
 #: ../src/widgets/toolbox.cpp:4137
 msgid "<b>New:</b>"
-msgstr ""
+msgstr "<b>새 객체:</b>"
 
 #: ../src/widgets/gradient-toolbar.cpp:535
 msgid "Create linear gradient"
-msgstr ""
+msgstr "선형 그라디언트 생성"
 
 #: ../src/widgets/gradient-toolbar.cpp:549
 msgid "Create radial (elliptic or circular) gradient"
-msgstr ""
+msgstr "방사 (타원 또는 원형) 그라디언트 생성"
 
 #: ../src/widgets/gradient-toolbar.cpp:564
 msgid "on"
-msgstr ""
+msgstr "On"
 
 #: ../src/widgets/gradient-toolbar.cpp:577
 msgid "Create gradient in the fill"
-msgstr ""
+msgstr "채움 그라디언트 생성"
 
 #: ../src/widgets/gradient-toolbar.cpp:591
 msgid "Create gradient in the stroke"
-msgstr ""
+msgstr "윤곽선 그라디언트 생성"
 
 #. FIXME: implement averaging of all parameters for multiple selected
 #. gtk_label_set_markup(GTK_LABEL(l), _("<b>Average:</b>"));
-#: ../src/widgets/gradient-toolbar.cpp:605 ../src/widgets/toolbox.cpp:1938
-#: ../src/widgets/toolbox.cpp:2348 ../src/widgets/toolbox.cpp:2366
-#: ../src/widgets/toolbox.cpp:2994 ../src/widgets/toolbox.cpp:3005
-#: ../src/widgets/toolbox.cpp:4113 ../src/widgets/toolbox.cpp:4124
+#: ../src/widgets/gradient-toolbar.cpp:605
+#: ../src/widgets/toolbox.cpp:1938
+#: ../src/widgets/toolbox.cpp:2348
+#: ../src/widgets/toolbox.cpp:2366
+#: ../src/widgets/toolbox.cpp:2994
+#: ../src/widgets/toolbox.cpp:3005
+#: ../src/widgets/toolbox.cpp:4113
+#: ../src/widgets/toolbox.cpp:4124
 msgid "<b>Change:</b>"
-msgstr ""
+msgstr "<b>변경:</b>"
 
 #: ../src/widgets/gradient-vector.cpp:270
 msgid "No gradients in document"
-msgstr ""
+msgstr "문서에 그라디언트 없음"
 
 #: ../src/widgets/gradient-vector.cpp:276
 msgid "No gradient selected"
-msgstr ""
+msgstr "선택 그라디언트 없음"
 
 #: ../src/widgets/gradient-vector.cpp:538
 msgid "No stops in gradient"
-msgstr ""
+msgstr "그라디언트에서 조절점 없음"
 
 #: ../src/widgets/gradient-vector.cpp:661
 msgid "Change gradient stop offset"
-msgstr ""
+msgstr "그라디언트 조절점 옵셋 변경"
 
 #. TRANSLATORS: "Stop" means: a "phase" of a gradient
 #: ../src/widgets/gradient-vector.cpp:803
 msgid "Add stop"
-msgstr ""
+msgstr "조절점 더하기"
 
 #: ../src/widgets/gradient-vector.cpp:806
 msgid "Add another control stop to gradient"
-msgstr ""
+msgstr "다른 제어 조절점을 그라디언트에 더하기"
 
 #: ../src/widgets/gradient-vector.cpp:808
 msgid "Delete stop"
-msgstr ""
+msgstr "조절점 삭제"
 
 #: ../src/widgets/gradient-vector.cpp:811
 msgid "Delete current control stop from gradient"
-msgstr ""
+msgstr "그라디언트에서 현재 제어 조절점을 삭제"
 
 #. Label
 #: ../src/widgets/gradient-vector.cpp:822
 msgid "Offset:"
-msgstr ""
+msgstr "옵셋:"
 
 #. TRANSLATORS: "Stop" means: a "phase" of a gradient
 #: ../src/widgets/gradient-vector.cpp:867
 msgid "Stop Color"
-msgstr ""
+msgstr "조절점 색상"
 
 #: ../src/widgets/gradient-vector.cpp:896
 msgid "Gradient editor"
-msgstr ""
+msgstr "그라디언트 편집기"
 
 #: ../src/widgets/gradient-vector.cpp:1171
 msgid "Change gradient stop color"
-msgstr ""
+msgstr "그라디언트 조절점 색상 변경"
 
 #: ../src/widgets/layer-selector.cpp:115
 msgid "Toggle current layer visibility"
-msgstr ""
+msgstr "현재 레이어 보기 토글"
 
 #: ../src/widgets/layer-selector.cpp:135
 msgid "Lock or unlock current layer"
-msgstr ""
+msgstr "현재 레이어 잠금 또는 잠금해제"
 
 #: ../src/widgets/layer-selector.cpp:138
 msgid "Current layer"
-msgstr ""
+msgstr "현재 레이어"
 
 #: ../src/widgets/layer-selector.cpp:566
 msgid "(root)"
-msgstr ""
+msgstr "(루트)"
 
-#: ../src/widgets/paint-selector.cpp:181 ../src/widgets/paint-selector.cpp:564
+#: ../src/widgets/paint-selector.cpp:181
+#: ../src/widgets/paint-selector.cpp:564
 msgid "No paint"
-msgstr ""
+msgstr "칠하기 없음"
 
-#: ../src/widgets/paint-selector.cpp:183 ../src/widgets/paint-selector.cpp:636
+#: ../src/widgets/paint-selector.cpp:183
+#: ../src/widgets/paint-selector.cpp:636
 msgid "Flat color"
-msgstr ""
+msgstr "평면 색상"
 
-#: ../src/widgets/paint-selector.cpp:185 ../src/widgets/paint-selector.cpp:707
+#: ../src/widgets/paint-selector.cpp:185
+#: ../src/widgets/paint-selector.cpp:707
 msgid "Linear gradient"
-msgstr ""
+msgstr "선형 그라디언트"
 
-#: ../src/widgets/paint-selector.cpp:187 ../src/widgets/paint-selector.cpp:710
+#: ../src/widgets/paint-selector.cpp:187
+#: ../src/widgets/paint-selector.cpp:710
 msgid "Radial gradient"
-msgstr ""
+msgstr "방사 그라디언트"
 
 #: ../src/widgets/paint-selector.cpp:191
 msgid "Unset paint (make it undefined so it can be inherited)"
-msgstr ""
+msgstr "칠하기 설정 안함(정의를 하지 않으면 상속될 수 있음)"
 
 #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
 #: ../src/widgets/paint-selector.cpp:203
-msgid ""
-"Any path self-intersections or subpaths create holes in the fill (fill-rule: "
-"evenodd)"
-msgstr ""
+msgid "Any path self-intersections or subpaths create holes in the fill (fill-rule: evenodd)"
+msgstr "경로 자체-교차 또는 하위 경로는 채움에서 구멍을 생성(채움 규칙:반반)"
 
 #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
 #: ../src/widgets/paint-selector.cpp:214
-msgid ""
-"Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)"
-msgstr ""
+msgid "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)"
+msgstr "하위경로가 반대방향이 아니라면 채움은 단색(채움 규칙: 0이 아님)"
 
 #: ../src/widgets/paint-selector.cpp:531
 msgid "No objects"
-msgstr ""
+msgstr "객체 없음"
 
 #: ../src/widgets/paint-selector.cpp:542
 msgid "Multiple styles"
-msgstr ""
+msgstr "다수 스타일"
 
 #: ../src/widgets/paint-selector.cpp:553
 msgid "Paint is undefined"
-msgstr ""
+msgstr "칠하기가 정의되지 않음"
 
 #: ../src/widgets/paint-selector.cpp:984
-msgid ""
-"Use the <b>Node tool</b> to adjust position, scale, and rotation of the "
-"pattern on canvas. Use <b>Object &gt; Pattern &gt; Objects to Pattern</b> to "
-"create a new pattern from selection."
-msgstr ""
+msgid "Use the <b>Node tool</b> to adjust position, scale, and rotation of the pattern on canvas. Use <b>Object &gt; Pattern &gt; Objects to Pattern</b> to create a new pattern from selection."
+msgstr "캔버스에서 패턴의 위치,비율, 회전을 조정하기 위하여 노드 도구를 사용. 선택으로부터 새 패턴을 생성하기 위하여 객체 패턴 사용"
 
 #: ../src/widgets/select-toolbar.cpp:244
-#, fuzzy
 msgid "Transform by toolbar"
-msgstr "이동"
+msgstr "도구막대에 의한 변형"
 
 #: ../src/widgets/select-toolbar.cpp:299
 msgid "Now <b>stroke width</b> is <b>scaled</b> when objects are scaled."
-msgstr ""
+msgstr "지금 객체가 변하면 윤곽선 폭의 비율이 변함"
 
 #: ../src/widgets/select-toolbar.cpp:301
 msgid "Now <b>stroke width</b> is <b>not scaled</b> when objects are scaled."
-msgstr ""
+msgstr "지금 객체가 변하면 윤곽선 폭의 비율이 변하지 않음"
 
 #: ../src/widgets/select-toolbar.cpp:310
-msgid ""
-"Now <b>rounded rectangle corners</b> are <b>scaled</b> when rectangles are "
-"scaled."
-msgstr ""
+msgid "Now <b>rounded rectangle corners</b> are <b>scaled</b> when rectangles are scaled."
+msgstr "지금 직사각형이 변하면 둥근 직사각형 모서리 비율이 변함"
 
 #: ../src/widgets/select-toolbar.cpp:312
-msgid ""
-"Now <b>rounded rectangle corners</b> are <b>not scaled</b> when rectangles "
-"are scaled."
-msgstr ""
+msgid "Now <b>rounded rectangle corners</b> are <b>not scaled</b> when rectangles are scaled."
+msgstr "지금 직사각형이 변하면 둥근 직사각형 모서리 비율이 변하지 않음"
 
 #: ../src/widgets/select-toolbar.cpp:321
-msgid ""
-"Now <b>gradients</b> are <b>transformed</b> along with their objects when "
-"those are transformed (moved, scaled, rotated, or skewed)."
-msgstr ""
+msgid "Now <b>gradients</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."
+msgstr "지금 객체가 변하면(이동,비율,회전, 기울이기등) 객체를 따라 그라디언트가 변함"
 
 #: ../src/widgets/select-toolbar.cpp:323
-msgid ""
-"Now <b>gradients</b> remain <b>fixed</b> when objects are transformed "
-"(moved, scaled, rotated, or skewed)."
-msgstr ""
+msgid "Now <b>gradients</b> remain <b>fixed</b> when objects are transformed (moved, scaled, rotated, or skewed)."
+msgstr "지금 객체가 변하면(이동,비율,회전, 기울이기등) 객체를 따라 그라디언트가 고정"
 
 #: ../src/widgets/select-toolbar.cpp:332
-msgid ""
-"Now <b>patterns</b> are <b>transformed</b> along with their objects when "
-"those are transformed (moved, scaled, rotated, or skewed)."
-msgstr ""
+msgid "Now <b>patterns</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."
+msgstr "지금 객체가 변하면(이동,비율,회전, 기울이기등) 객체를 따라 패턴이 변함"
 
 #: ../src/widgets/select-toolbar.cpp:334
-msgid ""
-"Now <b>patterns</b> remain <b>fixed</b> when objects are transformed (moved, "
-"scaled, rotated, or skewed)."
-msgstr ""
+msgid "Now <b>patterns</b> remain <b>fixed</b> when objects are transformed (moved, scaled, rotated, or skewed)."
+msgstr "지금 객체가 변하면(이동,비율,회전, 기울이기등) 객체를 따라 패턴이 고정"
 
 #. four spinbuttons
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
 #: ../src/widgets/select-toolbar.cpp:446
 msgid "select_toolbar|X position"
-msgstr ""
+msgstr "선택_도구막대|X 위치"
 
 #: ../src/widgets/select-toolbar.cpp:446
 msgid "select_toolbar|X"
-msgstr ""
+msgstr "선택_도구막대|X 위치"
 
 #: ../src/widgets/select-toolbar.cpp:448
 msgid "Horizontal coordinate of selection"
-msgstr ""
+msgstr "선택 객체의 수평 좌표"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
 #: ../src/widgets/select-toolbar.cpp:454
 msgid "select_toolbar|Y position"
-msgstr ""
+msgstr "선택_도구막대|Y 위치"
 
 #: ../src/widgets/select-toolbar.cpp:454
 msgid "select_toolbar|Y"
-msgstr ""
+msgstr "선택_도구막대|Y 위치"
 
 #: ../src/widgets/select-toolbar.cpp:456
 msgid "Vertical coordinate of selection"
-msgstr ""
+msgstr "선택 객체의 수직 좌표"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
 #: ../src/widgets/select-toolbar.cpp:462
 msgid "select_toolbar|Width"
-msgstr ""
+msgstr "선택_도구막대|폭"
 
 #: ../src/widgets/select-toolbar.cpp:462
 msgid "select_toolbar|W"
-msgstr ""
+msgstr "선택_도구막대|폭"
 
 #: ../src/widgets/select-toolbar.cpp:464
 msgid "Width of selection"
-msgstr ""
+msgstr "선택 객체의 폭"
 
 #: ../src/widgets/select-toolbar.cpp:471
-#, fuzzy
 msgid "Lock width and height"
-msgstr "폭, 높이: "
+msgstr "폭과 높이를 잠금"
 
 #: ../src/widgets/select-toolbar.cpp:472
 msgid "When locked, change both width and height by the same proportion"
-msgstr ""
+msgstr "잠금시, 동일비율로 폭과 높이 변경"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
 #: ../src/widgets/select-toolbar.cpp:483
 msgid "select_toolbar|Height"
-msgstr ""
+msgstr "선택_도구막대|높이"
 
 #: ../src/widgets/select-toolbar.cpp:483
 msgid "select_toolbar|H"
-msgstr ""
+msgstr "선택_도구막대|높이"
 
 #: ../src/widgets/select-toolbar.cpp:485
 msgid "Height of selection"
-msgstr ""
+msgstr "선택 객체 높이"
 
 #: ../src/widgets/select-toolbar.cpp:516
-#, fuzzy
 msgid "Affect:"
-msgstr "옵셋"
+msgstr "효과:"
 
 #: ../src/widgets/select-toolbar.cpp:535
-#, fuzzy
 msgid "Scale rounded corners"
-msgstr "ë\85¸ë\93\9c ì\98¬ë¦¬ê¸°"
+msgstr "ë\91¥ê·¼ ëª¨ì\84\9c리 ë³\80ê²½"
 
 #: ../src/widgets/select-toolbar.cpp:546
-#, fuzzy
 msgid "Move gradients"
-msgstr "임의의 노드 관리"
+msgstr "그라디언트 이동"
 
 #: ../src/widgets/select-toolbar.cpp:557
-#, fuzzy
 msgid "Move patterns"
-msgstr "반복무늬"
+msgstr "패턴 이동"
 
 #: ../src/widgets/sp-color-gtkselector.cpp:50
 msgid "System"
-msgstr ""
+msgstr "시스템"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:110
 msgid "CMS"
-msgstr ""
+msgstr "색상관리시스템"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:219
 #: ../src/widgets/sp-color-scales.cpp:397
 msgid "_R"
-msgstr ""
+msgstr "빨강(_R)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:219
 #: ../src/widgets/sp-color-icc-selector.cpp:220
 #: ../src/widgets/sp-color-scales.cpp:400
 msgid "_G"
-msgstr "_G"
+msgstr "녹색(_G)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:219
 #: ../src/widgets/sp-color-scales.cpp:403
 msgid "_B"
-msgstr "_B"
+msgstr "청색(_B)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:221
 #: ../src/widgets/sp-color-icc-selector.cpp:222
 #: ../src/widgets/sp-color-scales.cpp:423
 msgid "_H"
-msgstr "_H"
+msgstr "색조(_H)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:221
 #: ../src/widgets/sp-color-icc-selector.cpp:222
 #: ../src/widgets/sp-color-scales.cpp:426
 msgid "_S"
-msgstr "_S"
+msgstr "채도(_S)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:222
 #: ../src/widgets/sp-color-scales.cpp:429
 msgid "_L"
-msgstr "_L"
+msgstr "명도(_L)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-icc-selector.cpp:224
 #: ../src/widgets/sp-color-scales.cpp:451
 msgid "_C"
-msgstr "_C"
+msgstr "청녹색(_C)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-icc-selector.cpp:224
 #: ../src/widgets/sp-color-scales.cpp:454
 msgid "_M"
-msgstr ""
+msgstr "자홍색(_M)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-icc-selector.cpp:224
 #: ../src/widgets/sp-color-scales.cpp:457
 msgid "_Y"
-msgstr ""
+msgstr "노랑색(_Y)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-scales.cpp:460
 msgid "_K"
-msgstr ""
+msgstr "검은색(_K)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:234
-#, fuzzy
 msgid "Gray"
-msgstr "그룹"
+msgstr "회색"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-icc-selector.cpp:238
 #: ../src/widgets/sp-color-scales.cpp:452
 #: ../src/widgets/sp-color-scales.cpp:453
 msgid "Cyan"
-msgstr ""
+msgstr "청록색"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-icc-selector.cpp:238
 #: ../src/widgets/sp-color-scales.cpp:455
 #: ../src/widgets/sp-color-scales.cpp:456
 msgid "Magenta"
-msgstr ""
+msgstr "자홍색"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-icc-selector.cpp:238
 #: ../src/widgets/sp-color-scales.cpp:458
 #: ../src/widgets/sp-color-scales.cpp:459
 msgid "Yellow"
-msgstr ""
+msgstr "노랑색"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:295
 msgid "Fix"
-msgstr ""
+msgstr "고정"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:298
 msgid "Fix RGB fallback to match icc-color() value."
-msgstr ""
+msgstr "ICC 색상 값을 일치시키기 위하여 RGB 대체 색상 고정"
 
 #. Label
 #: ../src/widgets/sp-color-icc-selector.cpp:379
@@ -15836,7 +14828,7 @@ msgstr ""
 #: ../src/widgets/sp-color-scales.cpp:463
 #: ../src/widgets/sp-color-wheel-selector.cpp:134
 msgid "_A"
-msgstr "_A"
+msgstr "알파(_A)"
 
 #: ../src/widgets/sp-color-icc-selector.cpp:389
 #: ../src/widgets/sp-color-icc-selector.cpp:401
@@ -15853,1205 +14845,1115 @@ msgstr "알파 (불투명도)"
 
 #: ../src/widgets/sp-color-notebook.cpp:329
 msgid "RGBA_:"
-msgstr ""
+msgstr "RGB(적녹청)+알파값:"
 
 #: ../src/widgets/sp-color-notebook.cpp:337
 msgid "Hexadecimal RGBA value of the color"
-msgstr ""
+msgstr "16진수 RGBA 색상값"
 
 #: ../src/widgets/sp-color-scales.cpp:77
 msgid "RGB"
-msgstr ""
+msgstr "RGB"
 
 #: ../src/widgets/sp-color-scales.cpp:77
 msgid "HSL"
-msgstr ""
+msgstr "HSL"
 
 #: ../src/widgets/sp-color-scales.cpp:77
 msgid "CMYK"
-msgstr ""
+msgstr "CMYK"
 
 #: ../src/widgets/sp-color-selector.cpp:64
 msgid "Unnamed"
-msgstr ""
+msgstr "이름 없음"
 
 #: ../src/widgets/sp-color-wheel-selector.cpp:61
 msgid "Wheel"
-msgstr ""
+msgstr "색상판"
 
 #: ../src/widgets/sp-xmlview-attr-list.cpp:46
 msgid "Attribute"
-msgstr ""
+msgstr "속성"
 
 #: ../src/widgets/sp-xmlview-attr-list.cpp:47
 #: ../share/extensions/perfectboundcover.inx.h:19
 msgid "Value"
-msgstr ""
+msgstr ""
 
 #: ../src/widgets/sp-xmlview-content.cpp:169
 msgid "Type text in a text node"
-msgstr ""
+msgstr "문자열 노드에서 문자열을 입력"
 
 #: ../src/widgets/toolbox.cpp:187
 msgid "Color/opacity used for color tweaking"
-msgstr ""
+msgstr "색상 조정에 사용된 색상/불투명도"
 
 #: ../src/widgets/toolbox.cpp:191
 msgid "Style of new stars"
-msgstr ""
+msgstr "새 별의 스타일"
 
 #: ../src/widgets/toolbox.cpp:193
-#, fuzzy
 msgid "Style of new rectangles"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì\83\88 ì\82¬ê°\81í\98\95 ì\8a¤í\83\80ì\9d¼"
 
 #: ../src/widgets/toolbox.cpp:195
-#, fuzzy
 msgid "Style of new 3D boxes"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì\83\88 3D ì\83\81ì\9e\90ì\9d\98 ì\8a¤í\83\80ì\9d¼"
 
 #: ../src/widgets/toolbox.cpp:197
 msgid "Style of new ellipses"
-msgstr ""
+msgstr "새 타원의 스타일"
 
 #: ../src/widgets/toolbox.cpp:199
 msgid "Style of new spirals"
-msgstr ""
+msgstr "새 나선의 스타일"
 
 #: ../src/widgets/toolbox.cpp:201
 msgid "Style of new paths created by Pencil"
-msgstr ""
+msgstr "연필에 의해 생성된 새 경로의 스타일"
 
 #: ../src/widgets/toolbox.cpp:203
 msgid "Style of new paths created by Pen"
-msgstr ""
+msgstr "펜에 의해 생성된 새 경로의 스타일"
 
 #: ../src/widgets/toolbox.cpp:205
-#, fuzzy
 msgid "Style of new calligraphic strokes"
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì\83\88 ê¸\80ì\9e\90ì²´ ì\9c¤ê³½ì\84 ì\9d\98 ì\8a¤í\83\80ì\9d¼"
 
 #: ../src/widgets/toolbox.cpp:207
 msgid "TBD"
-msgstr ""
+msgstr "TBD"
 
 #: ../src/widgets/toolbox.cpp:217
 msgid "Style of Paint Bucket fill objects"
-msgstr ""
+msgstr "페인트통 채움 객체 스타일"
 
 #: ../src/widgets/toolbox.cpp:1075
-#, fuzzy
 msgid "Insert node"
-msgstr "ë°\98ì \84"
+msgstr "ë\85¸ë\93\9c ì\82½ì\9e\85"
 
 #: ../src/widgets/toolbox.cpp:1076
 msgid "Insert new nodes into selected segments"
-msgstr ""
+msgstr "새 노드를 선택 세그먼트에 삽입"
 
 #: ../src/widgets/toolbox.cpp:1079
-#, fuzzy
 msgid "Insert"
-msgstr "반전"
+msgstr "삽입"
 
 #: ../src/widgets/toolbox.cpp:1087
 msgid "Delete selected nodes"
-msgstr ""
+msgstr "선택 노드 삭제"
 
 #: ../src/widgets/toolbox.cpp:1097
-#, fuzzy
 msgid "Join endnodes"
-msgstr "임의의 노드"
+msgstr "끝 노드 결합"
 
 #: ../src/widgets/toolbox.cpp:1098
 msgid "Join selected endnodes"
-msgstr ""
+msgstr "선택 끝 노드 결합"
 
 #: ../src/widgets/toolbox.cpp:1101
-#, fuzzy
 msgid "Join"
-msgstr "합체:"
+msgstr "결합"
 
 #: ../src/widgets/toolbox.cpp:1108
-#, fuzzy
 msgid "Break nodes"
-msgstr "노드를 아래도"
+msgstr "노드 나누기"
 
 #: ../src/widgets/toolbox.cpp:1109
 msgid "Break path at selected nodes"
-msgstr ""
+msgstr "선택 노드에서 경로를 나누기"
 
 #: ../src/widgets/toolbox.cpp:1119
-#, fuzzy
 msgid "Join with segment"
-msgstr "ì\84 í\83\9dë¶\80ë¶\84 ì§\80ì\9a°ê¸°"
+msgstr "ì\84¸ê·¸ë¨¼í\8a¸ë¡\9c ê²°í\95©"
 
 #: ../src/widgets/toolbox.cpp:1120
 msgid "Join selected endnodes with a new segment"
-msgstr ""
+msgstr "선택 끝 노드를 새 세그먼트로 결합"
 
 #: ../src/widgets/toolbox.cpp:1130
 msgid "Delete segment between two non-endpoint nodes"
-msgstr ""
+msgstr "두 끝점이 아닌 노드 사이 세그먼트 삭제"
 
 #: ../src/widgets/toolbox.cpp:1139
-#, fuzzy
 msgid "Node Cusp"
-msgstr "노드"
+msgstr "노드 날카롭게"
 
 #: ../src/widgets/toolbox.cpp:1140
 msgid "Make selected nodes corner"
-msgstr ""
+msgstr "선택 노드 모서리 생성"
 
 #: ../src/widgets/toolbox.cpp:1149
-#, fuzzy
 msgid "Node Smooth"
-msgstr "ë\80ë\93\9cë\9f¬ì\9b\80"
+msgstr "ë\85¸ë\93\9c ë¶\80ë\93\9cë\9f½ê²\8c"
 
 #: ../src/widgets/toolbox.cpp:1150
 msgid "Make selected nodes smooth"
-msgstr ""
+msgstr "선택 노드를 부드럽게"
 
 #: ../src/widgets/toolbox.cpp:1159
 msgid "Node Symmetric"
-msgstr ""
+msgstr "노드 대칭"
 
 #: ../src/widgets/toolbox.cpp:1160
 msgid "Make selected nodes symmetric"
-msgstr ""
+msgstr "선택 노드들을 대칭으로"
 
 #: ../src/widgets/toolbox.cpp:1169
-#, fuzzy
 msgid "Node Line"
-msgstr "중심선"
+msgstr "노드 선"
 
 #: ../src/widgets/toolbox.cpp:1170
 msgid "Make selected segments lines"
-msgstr ""
+msgstr "선택 세크먼트를 선으로"
 
 #: ../src/widgets/toolbox.cpp:1179
-#, fuzzy
 msgid "Node Curve"
-msgstr "미리보기 ì\97\86ì\9d\8c"
+msgstr "ë\85¸ë\93\9c ê³¡ì\84 "
 
 #: ../src/widgets/toolbox.cpp:1180
 msgid "Make selected segments curves"
-msgstr ""
+msgstr "선택 세그먼트를 곡선으로"
 
 #: ../src/widgets/toolbox.cpp:1189
-#, fuzzy
 msgid "Show Handles"
-msgstr "임의의 노드 관리"
+msgstr "핸들 보이기"
 
 #: ../src/widgets/toolbox.cpp:1190
 msgid "Show the Bezier handles of selected nodes"
-msgstr ""
+msgstr "선택 노드의 베지어 핸들 보이기"
 
 #: ../src/widgets/toolbox.cpp:1200
-#, fuzzy
 msgid "Show Outline"
-msgstr "박스 외각선"
+msgstr "윤곽선 보이기"
 
 #: ../src/widgets/toolbox.cpp:1201
-#, fuzzy
 msgid "Show the outline of the path"
-msgstr "점선 유형"
+msgstr "경로의 윤곽선 보이기"
 
 #: ../src/widgets/toolbox.cpp:1211
-#, fuzzy
 msgid "Next path effect parameter"
-msgstr "ë\88ì\9d´ê¸° ì¢\85ë¥\98(_S)"
+msgstr "ë\8b¤ì\9d\8c ê²½ë¡\9c í\9a¨ê³¼ ì\9d¸ì\9e\90"
 
 #: ../src/widgets/toolbox.cpp:1212
-#, fuzzy
 msgid "Show next path effect parameter for editing"
-msgstr "불이기 종류(_S)"
+msgstr "편집을 위해 다음 경로 효과 인자 보이기"
 
 #: ../src/widgets/toolbox.cpp:1223
-#, fuzzy
 msgid "Edit the clipping path of the object"
-msgstr "ê²½ë¡\9c ë\8b«ë\8a\94ì¤\91."
+msgstr "ê°\9dì²´ ì\9e\90르기 ê²½ë¡\9c í\8e¸ì§\91"
 
 #: ../src/widgets/toolbox.cpp:1233
-#, fuzzy
 msgid "Edit mask path"
-msgstr "ë³\84"
+msgstr "ë§\88ì\8a¤í\81¬ ê²½ë¡\9c í\8e¸ì§\91"
 
 #: ../src/widgets/toolbox.cpp:1234
-#, fuzzy
 msgid "Edit the mask of the object"
-msgstr "선택됀 객체의 복사본 만들기"
+msgstr "객체 마스크 편집"
 
 #: ../src/widgets/toolbox.cpp:1248
 msgid "X coordinate:"
-msgstr ""
+msgstr "X 좌표:"
 
 #: ../src/widgets/toolbox.cpp:1248
-#, fuzzy
 msgid "X coordinate of selected node(s)"
-msgstr "선택됀 객체의 복사본 만들기"
+msgstr "선택 노드의 X 좌표"
 
 #: ../src/widgets/toolbox.cpp:1266
 msgid "Y coordinate:"
-msgstr ""
+msgstr "Y 좌표:"
 
 #: ../src/widgets/toolbox.cpp:1266
-#, fuzzy
 msgid "Y coordinate of selected node(s)"
-msgstr "선택됀 객체의 복사본 만들기"
+msgstr "선택 노드의 Y 좌표"
 
 #: ../src/widgets/toolbox.cpp:1688
 msgid "Star: Change number of corners"
-msgstr ""
+msgstr "별: 모서리 갯수 변경"
 
 #: ../src/widgets/toolbox.cpp:1730
-#, fuzzy
 msgid "Star: Change spoke ratio"
-msgstr "이동치 저장"
+msgstr "별 : 부채살 비율 변경"
 
 #: ../src/widgets/toolbox.cpp:1773
-#, fuzzy
 msgid "Make polygon"
-msgstr "완전히 만들기"
+msgstr "다각형 생성"
 
 #: ../src/widgets/toolbox.cpp:1773
-#, fuzzy
 msgid "Make star"
-msgstr "중심선"
+msgstr "별 생성"
 
 #: ../src/widgets/toolbox.cpp:1808
 msgid "Star: Change rounding"
-msgstr ""
+msgstr "별: 둥긂 정도 변경"
 
 #: ../src/widgets/toolbox.cpp:1842
-#, fuzzy
 msgid "Star: Change randomization"
-msgstr "이동치 저장"
+msgstr "별: 무작위 변경"
 
 #: ../src/widgets/toolbox.cpp:2029
 msgid "Regular polygon (with one handle) instead of a star"
-msgstr ""
+msgstr "별 대신 한 개의 핸들을 가진 정규 다각형"
 
 #: ../src/widgets/toolbox.cpp:2036
 msgid "Star instead of a regular polygon (with one handle)"
-msgstr ""
+msgstr "정규 다각형 대신 한 개의 핸들을 가진 별"
 
 #: ../src/widgets/toolbox.cpp:2057
 msgid "triangle/tri-star"
-msgstr ""
+msgstr "3각형/3-점 별"
 
 #: ../src/widgets/toolbox.cpp:2057
 msgid "square/quad-star"
-msgstr ""
+msgstr "4각형/4-점 별"
 
 #: ../src/widgets/toolbox.cpp:2057
 msgid "pentagon/five-pointed star"
-msgstr ""
+msgstr "5각형/5-점 별"
 
 #: ../src/widgets/toolbox.cpp:2057
 msgid "hexagon/six-pointed star"
-msgstr ""
+msgstr "6각형/6-점 별"
 
 #: ../src/widgets/toolbox.cpp:2060
-#, fuzzy
 msgid "Corners"
-msgstr "ë³µì\82¬ ê°\9dì²´"
+msgstr "모ì\84\9c리"
 
 #: ../src/widgets/toolbox.cpp:2060
 msgid "Corners:"
-msgstr ""
+msgstr "모서리:"
 
 #: ../src/widgets/toolbox.cpp:2060
 msgid "Number of corners of a polygon or star"
-msgstr ""
+msgstr "다각형 또는 별의 모서리 갯수"
 
 #: ../src/widgets/toolbox.cpp:2073
 msgid "thin-ray star"
-msgstr ""
+msgstr "얇은 빛 별"
 
 #: ../src/widgets/toolbox.cpp:2073
-msgid "pentagram"
-msgstr ""
+msgid "pentagrampentagram"
+msgstr "5각별"
 
 #: ../src/widgets/toolbox.cpp:2073
 msgid "hexagram"
-msgstr ""
+msgstr "6각별"
 
 #: ../src/widgets/toolbox.cpp:2073
 msgid "heptagram"
-msgstr ""
+msgstr "7각별"
 
 #: ../src/widgets/toolbox.cpp:2073
 msgid "octagram"
-msgstr ""
+msgstr "8각별"
 
 #: ../src/widgets/toolbox.cpp:2073
-#, fuzzy
 msgid "regular polygon"
-msgstr "ì\99\84ì \84í\9e\88 ë§\8cë\93¤ê¸°"
+msgstr "ì \95ê·\9c ë\8b¤ê°\81í\98\95"
 
 #: ../src/widgets/toolbox.cpp:2076
-#, fuzzy
 msgid "Spoke ratio"
-msgstr "ë³\86"
+msgstr "ë\80ì±\84ì\82´ ë¹\84ì\9c¨"
 
 #: ../src/widgets/toolbox.cpp:2076
 msgid "Spoke ratio:"
-msgstr ""
+msgstr "바퀴살 비율:"
 
 #. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle.
 #. Base radius is the same for the closest handle.
 #: ../src/widgets/toolbox.cpp:2079
 msgid "Base radius to tip radius ratio"
-msgstr ""
+msgstr "기본 반경을 정점 반경 비율로"
 
 #: ../src/widgets/toolbox.cpp:2097
 msgid "stretched"
-msgstr ""
+msgstr "확장"
 
 #: ../src/widgets/toolbox.cpp:2097
 msgid "twisted"
-msgstr ""
+msgstr "휘기"
 
 #: ../src/widgets/toolbox.cpp:2097
 msgid "slightly pinched"
-msgstr ""
+msgstr "약간 꼬집기"
 
 #: ../src/widgets/toolbox.cpp:2097
 msgid "NOT rounded"
-msgstr ""
+msgstr "둥글지 않음"
 
 #: ../src/widgets/toolbox.cpp:2097
 msgid "slightly rounded"
-msgstr ""
+msgstr "약간 둥긂"
 
 #: ../src/widgets/toolbox.cpp:2097
 msgid "visibly rounded"
-msgstr ""
+msgstr "둥긂"
 
 #: ../src/widgets/toolbox.cpp:2097
 msgid "well rounded"
-msgstr ""
+msgstr "아주 둥긂"
 
 #: ../src/widgets/toolbox.cpp:2097
 msgid "amply rounded"
-msgstr ""
+msgstr "둥긂 확대"
 
-#: ../src/widgets/toolbox.cpp:2097 ../src/widgets/toolbox.cpp:2112
+#: ../src/widgets/toolbox.cpp:2097
+#: ../src/widgets/toolbox.cpp:2112
 msgid "blown up"
-msgstr ""
+msgstr "확대"
 
 #: ../src/widgets/toolbox.cpp:2100
-#, fuzzy
 msgid "Rounded"
-msgstr "ë\88ë\9f¬ë\93¤ì\9e\84"
+msgstr "ë\91¥ê¸\82"
 
 #: ../src/widgets/toolbox.cpp:2100
 msgid "Rounded:"
-msgstr ""
+msgstr "둥긂:"
 
 #: ../src/widgets/toolbox.cpp:2100
 msgid "How much rounded are the corners (0 for sharp)"
-msgstr ""
+msgstr "모서리가 얼마나 둥근가 (날카로움은 0)"
 
 #: ../src/widgets/toolbox.cpp:2112
-#, fuzzy
 msgid "NOT randomized"
-msgstr "ë\9e¨ë\8d¤:"
+msgstr "무ì\9e\91ì\9c\84 ì\95\84ë\8b\98"
 
 #: ../src/widgets/toolbox.cpp:2112
 msgid "slightly irregular"
-msgstr ""
+msgstr "약간 불규칙"
 
 #: ../src/widgets/toolbox.cpp:2112
-#, fuzzy
 msgid "visibly randomized"
-msgstr "ì\9e\84ì\9d\98ì\9d\98 ë°\98ì§\80ë¦\84"
+msgstr "ë³¼ ì\88\98 ì\9e\88ë\8a\94 ë¬´ì\9e\91ì\9c\84"
 
 #: ../src/widgets/toolbox.cpp:2112
 msgid "strongly randomized"
-msgstr ""
+msgstr "강한 무작위"
 
 #: ../src/widgets/toolbox.cpp:2115
-#, fuzzy
 msgid "Randomized"
-msgstr "ë\9e¨ë\8d¤:"
+msgstr "무ì\9e\91ì\9c\84"
 
 #: ../src/widgets/toolbox.cpp:2115
 msgid "Randomized:"
-msgstr ""
+msgstr "무작위:"
 
 #: ../src/widgets/toolbox.cpp:2115
 msgid "Scatter randomly the corners and angles"
-msgstr ""
+msgstr "무작위로 모서리와 각도를 흩뜨림"
 
-#: ../src/widgets/toolbox.cpp:2130 ../src/widgets/toolbox.cpp:3067
-#: ../src/widgets/toolbox.cpp:3847 ../src/widgets/toolbox.cpp:5804
+#: ../src/widgets/toolbox.cpp:2130
+#: ../src/widgets/toolbox.cpp:3067
+#: ../src/widgets/toolbox.cpp:3847
+#: ../src/widgets/toolbox.cpp:5804
 msgid "Defaults"
-msgstr ""
+msgstr "기본값"
 
-#: ../src/widgets/toolbox.cpp:2131 ../src/widgets/toolbox.cpp:3068
-msgid ""
-"Reset shape parameters to defaults (use Inkscape Preferences > Tools to "
-"change defaults)"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2131
+#: ../src/widgets/toolbox.cpp:3068
+msgid "Reset shape parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
+msgstr "기본값으로 모양 초기화(기본값을 변경하기 위하여 Inkscape 기본설정 > 도구 사용)"
 
 #: ../src/widgets/toolbox.cpp:2203
-#, fuzzy
 msgid "Change rectangle"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì§\81ì\82¬ê°\81í\98\95 ë³\80ê²½"
 
 #: ../src/widgets/toolbox.cpp:2396
 msgid "W:"
-msgstr ""
+msgstr "폭:"
 
 #: ../src/widgets/toolbox.cpp:2396
 msgid "Width of rectangle"
-msgstr ""
+msgstr "사각형 폭"
 
 #: ../src/widgets/toolbox.cpp:2413
 msgid "H:"
-msgstr ""
+msgstr "높이:"
 
 #: ../src/widgets/toolbox.cpp:2413
 msgid "Height of rectangle"
-msgstr ""
+msgstr "사각형 높이"
 
-#: ../src/widgets/toolbox.cpp:2427 ../src/widgets/toolbox.cpp:2442
+#: ../src/widgets/toolbox.cpp:2427
+#: ../src/widgets/toolbox.cpp:2442
 msgid "not rounded"
-msgstr ""
+msgstr "둥글지 않음"
 
 #: ../src/widgets/toolbox.cpp:2430
-#, fuzzy
 msgid "Horizontal radius"
-msgstr "수평 간격"
+msgstr "수평 반경"
 
 #: ../src/widgets/toolbox.cpp:2430
 msgid "Rx:"
-msgstr ""
+msgstr "X 반경:"
 
 #: ../src/widgets/toolbox.cpp:2430
 msgid "Horizontal radius of rounded corners"
-msgstr ""
+msgstr "둥근 모서리의 수평 반경"
 
 #: ../src/widgets/toolbox.cpp:2445
-#, fuzzy
 msgid "Vertical radius"
-msgstr "수직 간격"
+msgstr "수직 반경"
 
 #: ../src/widgets/toolbox.cpp:2445
 msgid "Ry:"
-msgstr ""
+msgstr "Y 반경:"
 
 #: ../src/widgets/toolbox.cpp:2445
 msgid "Vertical radius of rounded corners"
-msgstr ""
+msgstr "둥근 모서리의 수직 반경"
 
 #: ../src/widgets/toolbox.cpp:2464
 msgid "Not rounded"
-msgstr ""
+msgstr "둥글지 않음"
 
 #: ../src/widgets/toolbox.cpp:2465
 msgid "Make corners sharp"
-msgstr ""
+msgstr "모서리를 날카롭게 만듦"
 
 #. TODO: use the correct axis here, too
 #: ../src/widgets/toolbox.cpp:2654
 msgid "3D Box: Change perspective (angle of infinite axis)"
-msgstr ""
+msgstr "3D 상자: 원근 변경 (무한 축 각도)"
 
 #: ../src/widgets/toolbox.cpp:2723
 msgid "Angle in X direction"
-msgstr ""
+msgstr "X 방향 각도"
 
 #. Translators: PL is short for 'perspective line'
 #: ../src/widgets/toolbox.cpp:2725
 msgid "Angle of PLs in X direction"
-msgstr ""
+msgstr "X방향의 원근선 각도"
 
 #. Translators: VP is short for 'vanishing point'
 #: ../src/widgets/toolbox.cpp:2747
 msgid "State of VP in X direction"
-msgstr ""
+msgstr "X 방향의 소멸점 상태"
 
 #: ../src/widgets/toolbox.cpp:2748
 msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)"
-msgstr ""
+msgstr "유한과 무한 사이 X 방향에서 소멸점 토글(병렬)"
 
 #: ../src/widgets/toolbox.cpp:2763
 msgid "Angle in Y direction"
-msgstr ""
+msgstr "Y 방향 각도"
 
 #: ../src/widgets/toolbox.cpp:2763
-#, fuzzy
 msgid "Angle Y:"
-msgstr "각도"
+msgstr "각도 Y:"
 
 #. Translators: PL is short for 'perspective line'
 #: ../src/widgets/toolbox.cpp:2765
 msgid "Angle of PLs in Y direction"
-msgstr ""
+msgstr "Y 방향 원근선 각도"
 
 #. Translators: VP is short for 'vanishing point'
 #: ../src/widgets/toolbox.cpp:2786
 msgid "State of VP in Y direction"
-msgstr ""
+msgstr "Y 방향 소멸점 상태"
 
 #: ../src/widgets/toolbox.cpp:2787
 msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)"
-msgstr ""
+msgstr "유한과 무한 사이 Y 방향에서 소멸점 토글(병렬)"
 
 #: ../src/widgets/toolbox.cpp:2802
 msgid "Angle in Z direction"
-msgstr ""
+msgstr "Z 방향 각도"
 
 #. Translators: PL is short for 'perspective line'
 #: ../src/widgets/toolbox.cpp:2804
 msgid "Angle of PLs in Z direction"
-msgstr ""
+msgstr "Z 방향 원근선 각도"
 
 #. Translators: VP is short for 'vanishing point'
 #: ../src/widgets/toolbox.cpp:2825
 msgid "State of VP in Z direction"
-msgstr ""
+msgstr "Z 방향 소멸점 상태"
 
 #: ../src/widgets/toolbox.cpp:2826
 msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)"
-msgstr ""
+msgstr "유한과 무한 사이 Z 방향에서 소멸점 토글(병렬)"
 
 #: ../src/widgets/toolbox.cpp:2883
-#, fuzzy
 msgid "Change spiral"
-msgstr "중심선"
+msgstr "나선 변경"
 
 #: ../src/widgets/toolbox.cpp:3024
 msgid "just a curve"
-msgstr ""
+msgstr "곡선만"
 
 #: ../src/widgets/toolbox.cpp:3024
-#, fuzzy
 msgid "one full revolution"
-msgstr "기본 내보내기 해상도:"
+msgstr "한바퀴 전체 회전"
 
 #: ../src/widgets/toolbox.cpp:3027
-#, fuzzy
 msgid "Number of turns"
-msgstr "줄 숫자:"
+msgstr "회전 수"
 
 #: ../src/widgets/toolbox.cpp:3027
 msgid "Turns:"
-msgstr ""
+msgstr "회전수:"
 
 #: ../src/widgets/toolbox.cpp:3027
 msgid "Number of revolutions"
-msgstr ""
+msgstr "회전수"
 
 #: ../src/widgets/toolbox.cpp:3038
-#, fuzzy
 msgid "circle"
 msgstr "원"
 
 #: ../src/widgets/toolbox.cpp:3038
 msgid "edge is much denser"
-msgstr ""
+msgstr "모서리가 더 조밀"
 
 #: ../src/widgets/toolbox.cpp:3038
 msgid "edge is denser"
-msgstr ""
+msgstr "모서리가 조밀"
 
 #: ../src/widgets/toolbox.cpp:3038
-#, fuzzy
 msgid "even"
-msgstr "녹색"
+msgstr "짝수"
 
 #: ../src/widgets/toolbox.cpp:3038
-#, fuzzy
 msgid "center is denser"
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì¤\91ì\95\99ì\9d´ ë°\80ì§\91"
 
 #: ../src/widgets/toolbox.cpp:3038
 msgid "center is much denser"
-msgstr ""
+msgstr "중앙이 더 조밀"
 
 #: ../src/widgets/toolbox.cpp:3041
-#, fuzzy
 msgid "Divergence"
-msgstr "다름"
+msgstr "확산"
 
 #: ../src/widgets/toolbox.cpp:3041
 msgid "Divergence:"
-msgstr ""
+msgstr "확산:"
 
 #: ../src/widgets/toolbox.cpp:3041
 msgid "How much denser/sparser are outer revolutions; 1 = uniform"
-msgstr ""
+msgstr "바깥 회전 방향으로 얼마나 조밀/희박한가; 1= 균일"
 
 #: ../src/widgets/toolbox.cpp:3052
-#, fuzzy
 msgid "starts from center"
-msgstr "프린터 선택"
+msgstr "중앙으로부터 시작"
 
 #: ../src/widgets/toolbox.cpp:3052
 msgid "starts mid-way"
-msgstr ""
+msgstr "중간에서 시작"
 
 #: ../src/widgets/toolbox.cpp:3052
 msgid "starts near edge"
-msgstr ""
+msgstr "가까운 모서리에서 시작"
 
 #: ../src/widgets/toolbox.cpp:3055
-#, fuzzy
 msgid "Inner radius"
-msgstr "김프 색변화(Gradients)"
+msgstr "안쪽 반경"
 
 #: ../src/widgets/toolbox.cpp:3055
 msgid "Inner radius:"
-msgstr ""
+msgstr "안쪽 반경:"
 
 #: ../src/widgets/toolbox.cpp:3055
 msgid "Radius of the innermost revolution (relative to the spiral size)"
-msgstr ""
+msgstr "가장 안쪽 회전 반경(나선 크기와 관련)"
 
 #: ../src/widgets/toolbox.cpp:3101
-#, fuzzy
 msgid "<b>Mode:</b>"
-msgstr "<b>H:</b>"
+msgstr "<b>모드:</b>"
 
 #: ../src/widgets/toolbox.cpp:3121
 msgid "Bézier"
-msgstr ""
+msgstr "베지어"
 
 #: ../src/widgets/toolbox.cpp:3122
 msgid "Regular Bézier mode"
-msgstr ""
+msgstr "정규 베지어 모드"
 
 #: ../src/widgets/toolbox.cpp:3128
-#, fuzzy
 msgid "Spiro"
-msgstr "나선"
+msgstr "나선"
 
 #: ../src/widgets/toolbox.cpp:3129
-#, fuzzy
 msgid "Spiro splines mode"
-msgstr "임의의 노드"
+msgstr "나선 스프라인 모드"
 
 #. Width
 #: ../src/widgets/toolbox.cpp:3238
 msgid "(pinch tweak)"
-msgstr ""
+msgstr "(꼬집기 조정)"
 
-#: ../src/widgets/toolbox.cpp:3238 ../src/widgets/toolbox.cpp:3254
-#: ../src/widgets/toolbox.cpp:3420 ../src/widgets/toolbox.cpp:3642
-#: ../src/widgets/toolbox.cpp:3674 ../src/widgets/toolbox.cpp:4315
-#, fuzzy
+#: ../src/widgets/toolbox.cpp:3238
+#: ../src/widgets/toolbox.cpp:3254
+#: ../src/widgets/toolbox.cpp:3420
+#: ../src/widgets/toolbox.cpp:3642
+#: ../src/widgets/toolbox.cpp:3674
+#: ../src/widgets/toolbox.cpp:4315
 msgid "(default)"
-msgstr "기본"
+msgstr "(기본)"
 
 #: ../src/widgets/toolbox.cpp:3238
-#, fuzzy
 msgid "(broad tweak)"
-msgstr "불이기 종류(_S)"
+msgstr "(넓은 조정)"
 
 #: ../src/widgets/toolbox.cpp:3241
 msgid "The width of the tweak area (relative to the visible canvas area)"
-msgstr ""
+msgstr "조정 구간의 폭(볼 수 있는 캔버스 구간에 상대적임)"
 
 #. Force
 #: ../src/widgets/toolbox.cpp:3254
 msgid "(minimum force)"
-msgstr ""
+msgstr "(최소 힘)"
 
 #: ../src/widgets/toolbox.cpp:3254
 msgid "(maximum force)"
-msgstr ""
+msgstr "(최대 힘)"
 
 #: ../src/widgets/toolbox.cpp:3257
-#, fuzzy
 msgid "Force"
-msgstr "소스"
+msgstr ""
 
 #: ../src/widgets/toolbox.cpp:3257
-#, fuzzy
 msgid "Force:"
-msgstr "소스"
+msgstr "힘:"
 
 #: ../src/widgets/toolbox.cpp:3257
 msgid "The force of the tweak action"
-msgstr ""
+msgstr "조절 강도"
 
 #: ../src/widgets/toolbox.cpp:3274
 msgid "Push mode"
-msgstr ""
+msgstr "밀기 모드"
 
 #: ../src/widgets/toolbox.cpp:3275
 msgid "Push parts of paths in any direction"
-msgstr ""
+msgstr "임의 방향에서 경로부분 밀기"
 
 #: ../src/widgets/toolbox.cpp:3281
-#, fuzzy
 msgid "Shrink mode"
-msgstr "ì\9e\84ì\9d\98ì\9d\98 ë\85¸드"
+msgstr "ì\95ì\86\8c ëª¨드"
 
 #: ../src/widgets/toolbox.cpp:3282
 msgid "Shrink (inset) parts of paths"
-msgstr ""
+msgstr "경로부분 축소"
 
 #: ../src/widgets/toolbox.cpp:3288
-#, fuzzy
 msgid "Grow mode"
-msgstr "노드를 아래도"
+msgstr "확대 모드"
 
 #: ../src/widgets/toolbox.cpp:3289
 msgid "Grow (outset) parts of paths"
-msgstr ""
+msgstr "경로부분 확대"
 
 #: ../src/widgets/toolbox.cpp:3295
-#, fuzzy
 msgid "Attract mode"
-msgstr "ì\86\8dì\84± ì\9d´ë¦\84"
+msgstr "ì\9c ì\9d¸ ëª¨ë\93\9c"
 
 #: ../src/widgets/toolbox.cpp:3296
 msgid "Attract parts of paths towards cursor"
-msgstr ""
+msgstr "커서 방향으로 경로부분을 끌기"
 
 #: ../src/widgets/toolbox.cpp:3302
-#, fuzzy
 msgid "Repel mode"
-msgstr "제거"
+msgstr "반발 모드"
 
 #: ../src/widgets/toolbox.cpp:3303
 msgid "Repel parts of paths from cursor"
-msgstr ""
+msgstr "커서에서 경로부분이 분리"
 
 #: ../src/widgets/toolbox.cpp:3309
 msgid "Roughen mode"
-msgstr ""
+msgstr "거침 모드"
 
 #: ../src/widgets/toolbox.cpp:3310
 msgid "Roughen parts of paths"
-msgstr ""
+msgstr "거친 경로 부분"
 
 #: ../src/widgets/toolbox.cpp:3316
 msgid "Color paint mode"
-msgstr ""
+msgstr "색상 칠하기 모드"
 
 #: ../src/widgets/toolbox.cpp:3317
-#, fuzzy
 msgid "Paint the tool's color upon selected objects"
-msgstr "선택됀 객체의 복사본 만들기"
+msgstr "선택 객체에서 도구 색상 칠하기"
 
 #: ../src/widgets/toolbox.cpp:3323
-#, fuzzy
 msgid "Color jitter mode"
-msgstr "노드 올리기"
+msgstr "색상 전이 모드"
 
 #: ../src/widgets/toolbox.cpp:3324
-#, fuzzy
 msgid "Jitter the colors of selected objects"
-msgstr "선택됀 객체의 복사본 만들기"
+msgstr "선택 객체 색상을 조금씩 변하게 함"
 
 #: ../src/widgets/toolbox.cpp:3329
-#, fuzzy
 msgid "Mode:"
-msgstr "이동(_M)"
+msgstr "모드:"
 
 #: ../src/widgets/toolbox.cpp:3350
-#, fuzzy
 msgid "Channels:"
-msgstr "ì·¨ì\86\8c"
+msgstr "ì±\84ë\84\90:"
 
 #: ../src/widgets/toolbox.cpp:3361
 msgid "In color mode, act on objects' hue"
-msgstr ""
+msgstr "색상모드에서 객체 색조 작동"
 
 #. TRANSLATORS:  "H" here stands for hue
 #: ../src/widgets/toolbox.cpp:3365
-#, fuzzy
 msgid "H"
-msgstr "_H"
+msgstr "색조"
 
 #: ../src/widgets/toolbox.cpp:3376
 msgid "In color mode, act on objects' saturation"
-msgstr ""
+msgstr "색상모드에서 객체 채도 작동"
 
 #. TRANSLATORS: "S" here stands for Saturation
 #: ../src/widgets/toolbox.cpp:3380
-#, fuzzy
 msgid "S"
-msgstr "_S"
+msgstr "채도"
 
 #: ../src/widgets/toolbox.cpp:3391
 msgid "In color mode, act on objects' lightness"
-msgstr ""
+msgstr "색상모드에서 객체 명도 작동"
 
 #. TRANSLATORS: "L" here stands for Lightness
 #: ../src/widgets/toolbox.cpp:3395
-#, fuzzy
 msgid "L"
-msgstr "_L"
+msgstr "명도"
 
 #: ../src/widgets/toolbox.cpp:3406
 msgid "In color mode, act on objects' opacity"
-msgstr ""
+msgstr "색상모드에서 객체 불투명도 작동"
 
 #. TRANSLATORS: "O" here stands for Opacity
 #: ../src/widgets/toolbox.cpp:3410
-#, fuzzy
 msgid "O"
-msgstr "O:"
+msgstr "불투명도"
 
 #. Fidelity
 #: ../src/widgets/toolbox.cpp:3420
 msgid "(rough, simplified)"
-msgstr ""
+msgstr "(거침, 단순)"
 
 #: ../src/widgets/toolbox.cpp:3420
 msgid "(fine, but many nodes)"
-msgstr ""
+msgstr "(세밀, 많은 노드)"
 
 #: ../src/widgets/toolbox.cpp:3423
-#, fuzzy
 msgid "Fidelity"
-msgstr "구별자"
+msgstr "충실도"
 
 #: ../src/widgets/toolbox.cpp:3423
 msgid "Fidelity:"
-msgstr ""
+msgstr "충실도:"
 
 #: ../src/widgets/toolbox.cpp:3424
-msgid ""
-"Low fidelity simplifies paths; high fidelity preserves path features but may "
-"generate a lot of new nodes"
-msgstr ""
+msgid "Low fidelity simplifies paths; high fidelity preserves path features but may generate a lot of new nodes"
+msgstr "낮은 충실도는 경로를 단순화함; 높은 충실도는 많은 노드를 생성함."
 
-#: ../src/widgets/toolbox.cpp:3441 ../src/widgets/toolbox.cpp:3789
+#: ../src/widgets/toolbox.cpp:3441
+#: ../src/widgets/toolbox.cpp:3789
 msgid "Pressure"
-msgstr ""
+msgstr "압력"
 
 #: ../src/widgets/toolbox.cpp:3442
 msgid "Use the pressure of the input device to alter the force of tweak action"
-msgstr ""
+msgstr "조절 힘을 변경하기 위하여 입력 기기의 압력을 사용"
 
 #. Width
-#: ../src/widgets/toolbox.cpp:3642 ../src/widgets/toolbox.cpp:4315
+#: ../src/widgets/toolbox.cpp:3642
+#: ../src/widgets/toolbox.cpp:4315
 msgid "(hairline)"
-msgstr ""
+msgstr "(머리털선)"
 
-#: ../src/widgets/toolbox.cpp:3642 ../src/widgets/toolbox.cpp:4315
-#, fuzzy
+#: ../src/widgets/toolbox.cpp:3642
+#: ../src/widgets/toolbox.cpp:4315
 msgid "(broad stroke)"
-msgstr "불이기 종류(_S)"
+msgstr "(넓은 윤곽선)"
 
-#: ../src/widgets/toolbox.cpp:3645 ../src/widgets/toolbox.cpp:4318
-#, fuzzy
+#: ../src/widgets/toolbox.cpp:3645
+#: ../src/widgets/toolbox.cpp:4318
 msgid "Pen Width"
-msgstr " 폭"
+msgstr " 폭"
 
 #: ../src/widgets/toolbox.cpp:3646
 msgid "The width of the calligraphic pen (relative to the visible canvas area)"
-msgstr ""
+msgstr "글자체 펜 폭(보이는 캐버스 구간에 상대적임)"
 
 #. Thinning
 #: ../src/widgets/toolbox.cpp:3658
 msgid "(speed blows up stroke)"
-msgstr ""
+msgstr "(속도가 윤곽선 확장)"
 
 #: ../src/widgets/toolbox.cpp:3658
 msgid "(slight widening)"
-msgstr ""
+msgstr "(약간 넓어짐)"
 
 #: ../src/widgets/toolbox.cpp:3658
-#, fuzzy
 msgid "(constant width)"
-msgstr "출력 목적지"
+msgstr "(상수 폭)"
 
 #: ../src/widgets/toolbox.cpp:3658
 msgid "(slight thinning, default)"
-msgstr ""
+msgstr "(약간 얇음, 기본)"
 
 #: ../src/widgets/toolbox.cpp:3658
 msgid "(speed deflates stroke)"
-msgstr ""
+msgstr "(속도가 윤곽선을 축소)"
 
 #: ../src/widgets/toolbox.cpp:3661
-#, fuzzy
 msgid "Stroke Thinning"
-msgstr ""
+msgstr "윤곽선 폭"
 
 #: ../src/widgets/toolbox.cpp:3661
 msgid "Thinning:"
-msgstr ""
+msgstr "윤곽선 폭:"
 
 #: ../src/widgets/toolbox.cpp:3662
-msgid ""
-"How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 "
-"makes them broader, 0 makes width independent of velocity)"
-msgstr ""
+msgid "How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 makes them broader, 0 makes width independent of velocity)"
+msgstr "속도에 따른 윤곽선 폭 지정(0 이상은 윤곽선 얇게, 0 이하는 넓게 , 0은 속도와 무관한 폭 생성"
 
 #. Angle
 #: ../src/widgets/toolbox.cpp:3674
 msgid "(left edge up)"
-msgstr ""
+msgstr "(왼쪽 모서리 위로)"
 
 #: ../src/widgets/toolbox.cpp:3674
-#, fuzzy
 msgid "(horizontal)"
-msgstr "수평(_H)"
+msgstr "(수평)"
 
 #: ../src/widgets/toolbox.cpp:3674
 msgid "(right edge up)"
-msgstr ""
+msgstr "(오른쪽 모서리 위로)"
 
 #: ../src/widgets/toolbox.cpp:3677
-#, fuzzy
 msgid "Pen Angle"
-msgstr "각도"
+msgstr "펜 각도"
 
 #: ../src/widgets/toolbox.cpp:3677
 msgid "Angle:"
-msgstr ""
+msgstr "각도:"
 
 #: ../src/widgets/toolbox.cpp:3678
-msgid ""
-"The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if "
-"fixation = 0)"
-msgstr ""
+msgid "The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if fixation = 0)"
+msgstr "펜촉 각도 (0= 수평; 0이라면 효과 없음)"
 
 #. Fixation
 #: ../src/widgets/toolbox.cpp:3692
 msgid "(perpendicular to stroke, \"brush\")"
-msgstr ""
+msgstr "(윤곽선에 수직, \"붓\")"
 
 #: ../src/widgets/toolbox.cpp:3692
 msgid "(almost fixed, default)"
-msgstr ""
+msgstr "(거의 고정, 기본값)"
 
 #: ../src/widgets/toolbox.cpp:3692
 msgid "(fixed by Angle, \"pen\")"
-msgstr ""
+msgstr "(각도 고정,\"펜\")"
 
 #: ../src/widgets/toolbox.cpp:3695
-#, fuzzy
 msgid "Fixation"
-msgstr "회전(_R)"
+msgstr "고정"
 
 #: ../src/widgets/toolbox.cpp:3695
 msgid "Fixation:"
-msgstr ""
+msgstr "고정:"
 
 #: ../src/widgets/toolbox.cpp:3696
-msgid ""
-"Angle behavior (0 = nib always perpendicular to stroke direction, 1 = fixed "
-"angle)"
-msgstr ""
+msgid "Angle behavior (0 = nib always perpendicular to stroke direction, 1 = fixed angle)"
+msgstr "각도 작동 (0 = 윤곽선 방향에 항상 수직, 1= 각도 고정)"
 
 #. Cap Rounding
 #: ../src/widgets/toolbox.cpp:3708
-#, fuzzy
 msgid "(blunt caps, default)"
-msgstr "기본 으로 설정"
+msgstr "(뭉뚝한 끝점, 기본)"
 
 #: ../src/widgets/toolbox.cpp:3708
 msgid "(slightly bulging)"
-msgstr ""
+msgstr "(약간 팽창)"
 
 #: ../src/widgets/toolbox.cpp:3708
 msgid "(approximately round)"
-msgstr ""
+msgstr "(거의 둥긂)"
 
 #: ../src/widgets/toolbox.cpp:3708
 msgid "(long protruding caps)"
-msgstr ""
+msgstr "(길게 돌출한 끝점)"
 
 #: ../src/widgets/toolbox.cpp:3712
 msgid "Cap rounding"
-msgstr ""
+msgstr "끝점 둥긂"
 
 #: ../src/widgets/toolbox.cpp:3712
 msgid "Caps:"
-msgstr ""
+msgstr "끝점:"
 
 #: ../src/widgets/toolbox.cpp:3713
-msgid ""
-"Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = "
-"round caps)"
-msgstr ""
+msgid "Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = round caps)"
+msgstr "윤곽선 끝점에서 더 돌출하게 하기 위하여 증가(0= 끝점 없음, 1= 둥근 끝점)"
 
 #. Tremor
 #: ../src/widgets/toolbox.cpp:3725
 msgid "(smooth line)"
-msgstr ""
+msgstr "(부드러운 선)"
 
 #: ../src/widgets/toolbox.cpp:3725
 msgid "(slight tremor)"
-msgstr ""
+msgstr "(약한 진동)"
 
 #: ../src/widgets/toolbox.cpp:3725
 msgid "(noticeable tremor)"
-msgstr ""
+msgstr "(인지할 수 있는 진동)"
 
 #: ../src/widgets/toolbox.cpp:3725
 msgid "(maximum tremor)"
-msgstr ""
+msgstr "(최대 진동)"
 
 #: ../src/widgets/toolbox.cpp:3728
-#, fuzzy
 msgid "Stroke Tremor"
-msgstr "ì\83\89 ë¶\99ì\9d´ê¸°"
+msgstr "ì\9c¤ê³½ì\84  ì§\84ë\8f\99"
 
 #: ../src/widgets/toolbox.cpp:3728
 msgid "Tremor:"
-msgstr ""
+msgstr "진동:"
 
 #: ../src/widgets/toolbox.cpp:3729
 msgid "Increase to make strokes rugged and trembling"
-msgstr ""
+msgstr "윤곽선을 거칠고 진동을 만들기 위하여 증가"
 
 #. Wiggle
 #: ../src/widgets/toolbox.cpp:3742
 msgid "(no wiggle)"
-msgstr ""
+msgstr "(흔들림 없음)"
 
 #: ../src/widgets/toolbox.cpp:3742
-#, fuzzy
 msgid "(slight deviation)"
-msgstr "출력 목적지"
+msgstr "(약간 편향)"
 
 #: ../src/widgets/toolbox.cpp:3742
 msgid "(wild waves and curls)"
-msgstr ""
+msgstr "(거친 파동과 곱슬)"
 
 #: ../src/widgets/toolbox.cpp:3745
-#, fuzzy
 msgid "Pen Wiggle"
-msgstr "제목:"
+msgstr "펜 흔들림"
 
 #: ../src/widgets/toolbox.cpp:3745
-#, fuzzy
 msgid "Wiggle:"
-msgstr "제목:"
+msgstr "흔들림:"
 
 #: ../src/widgets/toolbox.cpp:3746
 msgid "Increase to make the pen waver and wiggle"
-msgstr ""
+msgstr "펜 파동과 흔들림 생성하기 위하여 증가"
 
 #. Mass
 #: ../src/widgets/toolbox.cpp:3758
-#, fuzzy
 msgid "(no inertia)"
-msgstr "(널포인트(_p))"
+msgstr "(활성)"
 
 #: ../src/widgets/toolbox.cpp:3758
 msgid "(slight smoothing, default)"
-msgstr ""
+msgstr "(약간 부드러움, 기본)"
 
 #: ../src/widgets/toolbox.cpp:3758
 msgid "(noticeable lagging)"
-msgstr ""
+msgstr "(뚜렷이 느림"
 
 #: ../src/widgets/toolbox.cpp:3758
 msgid "(maximum inertia)"
-msgstr ""
+msgstr "(최대 불활성)"
 
 #: ../src/widgets/toolbox.cpp:3761
 msgid "Pen Mass"
-msgstr ""
+msgstr "펜 무게"
 
 #: ../src/widgets/toolbox.cpp:3761
 msgid "Mass:"
-msgstr ""
+msgstr "무게:"
 
 #: ../src/widgets/toolbox.cpp:3762
 msgid "Increase to make the pen drag behind, as if slowed by inertia"
-msgstr ""
+msgstr "불활성에 의해 느려지는 것처럼, 펜을 뒷 방향에서 끌기 위하여 증가"
 
 #: ../src/widgets/toolbox.cpp:3776
 msgid "Trace Background"
-msgstr ""
+msgstr "배경 따르기"
 
 #: ../src/widgets/toolbox.cpp:3777
-msgid ""
-"Trace the lightness of the background by the width of the pen (white - "
-"minimum width, black - maximum width)"
-msgstr ""
+msgid "Trace the lightness of the background by the width of the pen (white - minimum width, black - maximum width)"
+msgstr "펜 폭에 의하여 배경 명도 따오기 (흰색 - 최소 폭, 검은색 - 최대 폭)"
 
 #: ../src/widgets/toolbox.cpp:3790
 msgid "Use the pressure of the input device to alter the width of the pen"
-msgstr ""
+msgstr "펜의 폭 변경 위하여 입력 기기 압력을 사용"
 
 #: ../src/widgets/toolbox.cpp:3802
-#, fuzzy
 msgid "Tilt"
-msgstr "제목"
+msgstr "경사"
 
 #: ../src/widgets/toolbox.cpp:3803
 msgid "Use the tilt of the input device to alter the angle of the pen's nib"
-msgstr ""
+msgstr "펜촉의 각도를 변경하기 위하여 입력 기기의 경사를 이용"
 
 #: ../src/widgets/toolbox.cpp:3821
-#, fuzzy
 msgid "No preset"
-msgstr "미리보기"
+msgstr "기본설정 없음"
 
 #: ../src/widgets/toolbox.cpp:3836
-#, fuzzy
 msgid "Change calligraphic profile"
-msgstr "중심선"
+msgstr "글자체 프로파일 변경"
 
 #: ../src/widgets/toolbox.cpp:3848
-#, fuzzy
 msgid "Save current settings as new profile"
-msgstr "새로운 이름으로 문서 저장"
+msgstr "현재 설정을 새 프로파일로서 저장"
 
 #: ../src/widgets/toolbox.cpp:3933
 msgid "Arc: Change start/end"
-msgstr ""
+msgstr "호: 시작/끝 변경"
 
 #: ../src/widgets/toolbox.cpp:4022
 msgid "Arc: Change open/closed"
-msgstr ""
+msgstr "호: 열기/닫기 변경"
 
 #: ../src/widgets/toolbox.cpp:4146
-#, fuzzy
 msgid "Start"
-msgstr ""
+msgstr "시작"
 
 #: ../src/widgets/toolbox.cpp:4146
 msgid "Start:"
-msgstr ""
+msgstr "시작:"
 
 #: ../src/widgets/toolbox.cpp:4147
 msgid "The angle (in degrees) from the horizontal to the arc's start point"
-msgstr ""
+msgstr "수평에서 호 시작점까지 각도"
 
 #: ../src/widgets/toolbox.cpp:4159
 msgid "End"
-msgstr ""
+msgstr ""
 
 #: ../src/widgets/toolbox.cpp:4159
 msgid "End:"
-msgstr ""
+msgstr "끝:"
 
 #: ../src/widgets/toolbox.cpp:4160
 msgid "The angle (in degrees) from the horizontal to the arc's end point"
-msgstr ""
+msgstr "수평에서 호 끝점까지 각도"
 
 #: ../src/widgets/toolbox.cpp:4176
-#, fuzzy
 msgid "Closed arc"
-msgstr "청소(_C)"
+msgstr "닫힌 호"
 
 #: ../src/widgets/toolbox.cpp:4177
 msgid "Switch to segment (closed shape with two radii)"
-msgstr ""
+msgstr "세그먼트로 변경(두 반경을 가진 닫힌 모양)"
 
 #: ../src/widgets/toolbox.cpp:4183
-#, fuzzy
 msgid "Open Arc"
-msgstr "원 호 열기"
+msgstr "호 열기"
 
 #: ../src/widgets/toolbox.cpp:4184
 msgid "Switch to arc (unclosed shape)"
-msgstr ""
+msgstr "호로 변경 (열린 모양)"
 
 #: ../src/widgets/toolbox.cpp:4208
 msgid "Make whole"
@@ -17062,130 +15964,112 @@ msgid "Make the shape a whole ellipse, not arc or segment"
 msgstr "원호나 일부가 아닌 완전한 타원형으로 만들기"
 
 #: ../src/widgets/toolbox.cpp:4275
-#, fuzzy
 msgid "Opacity:"
-msgstr "불투명도"
+msgstr "불투명도:"
 
 #: ../src/widgets/toolbox.cpp:4282
-#, fuzzy
 msgid "Pick opacity"
-msgstr "불투명도"
+msgstr "불투명도 조정"
 
 #: ../src/widgets/toolbox.cpp:4283
-msgid ""
-"Pick both the color and the alpha (transparency) under cursor; otherwise, "
-"pick only the visible color premultiplied by alpha"
-msgstr ""
+msgid "Pick both the color and the alpha (transparency) under cursor; otherwise, pick only the visible color premultiplied by alpha"
+msgstr "커서 아래 색상과 알파(투명도) 고르기: 그렇지 않으면 알파에 의해 더하여진 볼수 있는 색상만 고르기"
 
 #: ../src/widgets/toolbox.cpp:4286
-#, fuzzy
 msgid "Pick"
-msgstr "경로"
+msgstr "조정"
 
 #: ../src/widgets/toolbox.cpp:4295
-#, fuzzy
 msgid "Assign opacity"
-msgstr "주 투명도"
+msgstr "불투명도 할당"
 
 #: ../src/widgets/toolbox.cpp:4296
-msgid ""
-"If alpha was picked, assign it to selection as fill or stroke transparency"
-msgstr ""
+msgid "If alpha was picked, assign it to selection as fill or stroke transparency"
+msgstr "알파가 조정되면, 이를 채움 또는 윤곽선 투명도와 같이 선택을 할당"
 
 #: ../src/widgets/toolbox.cpp:4299
-#, fuzzy
 msgid "Assign"
-msgstr "정열:"
+msgstr "할당"
 
 #: ../src/widgets/toolbox.cpp:4319
 msgid "The width of the eraser pen (relative to the visible canvas area)"
-msgstr ""
+msgstr "지우개 펜의 폭 (볼 수 있는 캔버스 구간에 상대적임)"
 
 #: ../src/widgets/toolbox.cpp:4336
 msgid "Delete objects touched by the eraser"
-msgstr ""
+msgstr "지우개에 의해 지워진 객체 삭제"
 
 #: ../src/widgets/toolbox.cpp:4342
-#, fuzzy
 msgid "Cut"
-msgstr "잘라내기(_t)"
+msgstr "잘라내기"
 
 #: ../src/widgets/toolbox.cpp:4343
-#, fuzzy
 msgid "Cut out from objects"
-msgstr "ê°\84격ë\9d\84ì\9a°ê¸° ì\9c í\98\95"
+msgstr "ê°\9dì²´ë¡\9cë¶\80í\84° ì\9e\98ë\9d¼ë\82´ê¸°"
 
 #: ../src/widgets/toolbox.cpp:4678
 msgid "Text: Change font family"
-msgstr ""
+msgstr "문자열: 글꼴 모음 변경"
 
 #: ../src/widgets/toolbox.cpp:4763
 msgid "Text: Change alignment"
-msgstr ""
+msgstr "문자열: 정렬 변경"
 
 #: ../src/widgets/toolbox.cpp:4846
 msgid "Text: Change font style"
-msgstr ""
+msgstr "문자열: 글꼴 스타일 변경"
 
 #: ../src/widgets/toolbox.cpp:4893
 msgid "Text: Change orientation"
-msgstr ""
+msgstr "문자열: 방향 변경"
 
 #: ../src/widgets/toolbox.cpp:4992
 msgid "Text: Change font size"
-msgstr ""
+msgstr "문자열: 글꼴 크기 변경"
 
 #: ../src/widgets/toolbox.cpp:5232
-msgid ""
-"This font is currently not installed on your system. Inkscape will use the "
-"default font instead."
-msgstr ""
+msgid "This font is currently not installed on your system. Inkscape will use the default font instead."
+msgstr "이 글꼴은 현재 시스템에 설치되지 않음. Inkscape은 대신 기본 글꼴을 사용."
 
 #: ../src/widgets/toolbox.cpp:5271
-#, fuzzy
 msgid "Align left"
-msgstr "왼쪽으로 정렬"
+msgstr "왼쪽 정렬"
 
 #: ../src/widgets/toolbox.cpp:5282
-#, fuzzy
 msgid "Center"
-msgstr "Y 중심"
+msgstr "중앙"
 
 #: ../src/widgets/toolbox.cpp:5293
-#, fuzzy
 msgid "Align right"
-msgstr "오른쪽으로 정렬"
+msgstr "오른쪽 정렬"
 
 #: ../src/widgets/toolbox.cpp:5304
 msgid "Justify"
-msgstr ""
+msgstr "자리 맞추기"
 
 #: ../src/widgets/toolbox.cpp:5320
 msgid "Bold"
-msgstr "볼드"
+msgstr "진하게"
 
 #: ../src/widgets/toolbox.cpp:5331
 msgid "Italic"
-msgstr "ì\9d´í\85\94릭"
+msgstr "ì\9d´í\83\9c릭"
 
 #: ../src/widgets/toolbox.cpp:5465
-#, fuzzy
 msgid "Change connector spacing"
-msgstr "ì \91ì\86\8d ì·¨ì\86\8c"
+msgstr "ì\97°ê²°ì\9e\90 ê°\84격 ë³\80ê²½"
 
 #: ../src/widgets/toolbox.cpp:5553
 msgid "Avoid"
-msgstr ""
+msgstr "피하기"
 
 #: ../src/widgets/toolbox.cpp:5563
-#, fuzzy
 msgid "Ignore"
-msgstr "없음"
+msgstr "무시"
 
 #: ../src/widgets/toolbox.cpp:5575
-#, fuzzy
 msgid "Connector Spacing"
-msgstr "ì \91ì\86\8d ì·¨ì\86\8c"
+msgstr "ì\97°ê²°ì\9e\90 ê°\84격"
 
 #: ../src/widgets/toolbox.cpp:5575
 msgid "Spacing:"
@@ -17193,172 +16077,143 @@ msgstr "간격:"
 
 #: ../src/widgets/toolbox.cpp:5576
 msgid "The amount of space left around objects by auto-routing connectors"
-msgstr ""
+msgstr "자동 루트 연결자에 의하여 객체 주변 공백 왼쪽 양"
 
 #: ../src/widgets/toolbox.cpp:5587
-#, fuzzy
 msgid "Graph"
-msgstr "그룹"
+msgstr "그림"
 
 #: ../src/widgets/toolbox.cpp:5597
-#, fuzzy
 msgid "Connector Length"
-msgstr "연결자"
+msgstr "연결자 길이"
 
 #: ../src/widgets/toolbox.cpp:5597
 msgid "Length:"
-msgstr ""
+msgstr "길이:"
 
 #: ../src/widgets/toolbox.cpp:5598
 msgid "Ideal length for connectors when layout is applied"
-msgstr ""
+msgstr "외형 적용시 연결자의 이상적인 길이"
 
 #: ../src/widgets/toolbox.cpp:5610
 msgid "Downwards"
-msgstr ""
+msgstr "아래 방향"
 
 #: ../src/widgets/toolbox.cpp:5611
 msgid "Make connectors with end-markers (arrows) point downwards"
-msgstr ""
+msgstr "끝-마커 연결자(화살표) 점을 아래방향으로 만듦"
 
 #: ../src/widgets/toolbox.cpp:5627
 msgid "Do not allow overlapping shapes"
-msgstr ""
+msgstr "중첩 모양을 허용하지 않음"
 
 #: ../src/widgets/toolbox.cpp:5728
-#, fuzzy
 msgid "Fill by"
 msgstr "채움"
 
 #: ../src/widgets/toolbox.cpp:5729
-#, fuzzy
 msgid "Fill by:"
-msgstr "채움"
+msgstr "채움:"
 
 #: ../src/widgets/toolbox.cpp:5741
 msgid "Fill Threshold"
-msgstr ""
+msgstr "채움 허용치"
 
 #: ../src/widgets/toolbox.cpp:5742
-msgid ""
-"The maximum allowed difference between the clicked pixel and the neighboring "
-"pixels to be counted in the fill"
-msgstr ""
+msgid "The maximum allowed difference between the clicked pixel and the neighboring pixels to be counted in the fill"
+msgstr "채움에서 선택 화소와 이웃 화소 사이 최대 허용치"
 
 #: ../src/widgets/toolbox.cpp:5766
 msgid "Grow/shrink by"
-msgstr ""
+msgstr "확대/축소"
 
 #: ../src/widgets/toolbox.cpp:5766
 msgid "Grow/shrink by:"
-msgstr ""
+msgstr "확대/축소:"
 
 #: ../src/widgets/toolbox.cpp:5767
-msgid ""
-"The amount to grow (positive) or shrink (negative) the created fill path"
-msgstr ""
+msgid "The amount to grow (positive) or shrink (negative) the created fill path"
+msgstr "생성된 채움 경로의 확대 또는 축소 양"
 
 #: ../src/widgets/toolbox.cpp:5792
-#, fuzzy
 msgid "Close gaps"
-msgstr "ì²­ì\86\8c(_C)"
+msgstr "ì\97¬ë°± ë\8b«ê¸°"
 
 #: ../src/widgets/toolbox.cpp:5793
-#, fuzzy
 msgid "Close gaps:"
-msgstr "ì²­ì\86\8c(_C)"
+msgstr "ì\97¬ë°± ë\8b«ê¸°:"
 
 #: ../src/widgets/toolbox.cpp:5805
-msgid ""
-"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools "
-"to change defaults)"
-msgstr ""
+msgid "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
+msgstr "페인트통 인자를 기본값으로 재설정 ( 기본값을 변경하기 위하여 Inkscape 기본설정 > 도구 )"
 
 #: ../share/extensions/dimension.py:97
 msgid "Unable to process this object.  Try changing it into a path first."
-msgstr ""
+msgstr "이 객체를 실행할 수 없음. 이 객체를 경로 첫째로 변경시키도록 함."
 
 #: ../share/extensions/embedimage.py:79
-msgid ""
-"No xlink:href or sodipodi:absref attributes found, or they do not point to "
-"an existing file! Unable to embed image."
-msgstr ""
+msgid "No xlink:href or sodipodi:absref attributes found, or they do not point to an existing file! Unable to embed image."
+msgstr "xlink 없음: href 또는 sodipodi: absref 속성 있음"
 
 #: ../share/extensions/embedimage.py:104
 #, python-format
-msgid ""
-"%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, "
-"or image/x-icon"
-msgstr ""
+msgid "%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, or image/x-icon"
+msgstr "%s 가 png,jpeg,bmp,gif,tiff,x-icon 형태가 아님"
 
 #: ../share/extensions/embedimage.py:106
 #, python-format
 msgid "Sorry we could not locate %s"
-msgstr ""
+msgstr "미안합니다. %s에 위치시킬 수 없음"
 
 #: ../share/extensions/export_gimp_palette.py:14
-msgid ""
-"The export_gpl.py module requires PyXML.  Please download the latest version "
-"from http://pyxml.sourceforge.net/."
-msgstr ""
+msgid "The export_gpl.py module requires PyXML.  Please download the latest version from http://pyxml.sourceforge.net/."
+msgstr "내보내기_gpl.py 모듈은 PyXML을 필요로 함. http://pyxml.sourceforge.net/에서 최신 버전을 다운받으시오."
 
 #: ../share/extensions/extractimage.py:66
 msgid "Difficulty finding the image data."
-msgstr ""
+msgstr "이미지 자료를 찾기 어려움."
 
 #: ../share/extensions/inkex.py:61
-msgid ""
-"The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore "
-"this extension. Please download and install the latest version from http://"
-"cheeseshop.python.org/pypi/lxml/, or install it through your package manager "
-"by a command like: sudo apt-get install python-lxml"
+msgid "The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension. Please download and install the latest version from http://cheeseshop.python.org/pypi/lxml/, or install it through your package manager by a command like: sudo apt-get install python-lxml"
 msgstr ""
 
 #: ../share/extensions/inkex.py:187
 #, python-format
 msgid "No matching node for expression: %s"
-msgstr ""
+msgstr "수식에 일치하는 노드 없음: %s"
 
 #: ../share/extensions/markers_strokepaint.py:41
 #, python-format
 msgid "No style attribute found for id: %s"
-msgstr ""
+msgstr "ID 스타일 속성을 찾을 수 없음: %s"
 
 #: ../share/extensions/markers_strokepaint.py:56
 #, python-format
 msgid "unable to locate marker: %s"
-msgstr ""
+msgstr "마커를 위치시킬 수 없음: %s"
 
 #: ../share/extensions/pathalongpath.py:197
 #: ../share/extensions/pathscatter.py:208
 #: ../share/extensions/perspective.py:55
 #: ../share/extensions/summersnight.py:30
 msgid "This extension requires two selected paths."
-msgstr ""
+msgstr "이 확장자는 2개의 선택 경로를 필요로 함"
 
 #: ../share/extensions/pathmodifier.py:229
 #, python-format
 msgid "Please first convert objects to paths!  (Got [%s].)"
-msgstr ""
+msgstr "우선 객체를 경로로 변환시키세요!  ( [%s].)"
 
 #: ../share/extensions/perspective.py:29
-msgid ""
-"Failed to import the numpy or numpy.linalg modules. These modules are "
-"required by this extension. Please install them and try again.  On a Debian-"
-"like system this can be done with the command, sudo apt-get install python-"
-"numpy."
+msgid "Failed to import the numpy or numpy.linalg modules. These modules are required by this extension. Please install them and try again.  On a Debian-like system this can be done with the command, sudo apt-get install python-numpy."
 msgstr ""
 
 #: ../share/extensions/perspective.py:64
-msgid ""
-"This extension requires that the second selected path be four nodes long."
+msgid "This extension requires that the second selected path be four nodes long."
 msgstr ""
 
 #: ../share/extensions/polyhedron_3d.py:60
-msgid ""
-"Failed to import the numpy module. This module is required by this "
-"extension. Please install them and try again.  On a Debian-like system this "
-"can be done with the command, sudo apt-get install python-numpy."
+msgid "Failed to import the numpy module. This module is required by this extension. Please install them and try again.  On a Debian-like system this can be done with the command, sudo apt-get install python-numpy."
 msgstr ""
 
 #: ../share/extensions/summersnight.py:32
@@ -17366,77 +16221,71 @@ msgid "The second path must be exactly four nodes long."
 msgstr ""
 
 #: ../share/extensions/svg_and_media_zip_output.py:103
-#, fuzzy, python-format
 msgid "Could not locate file: %s"
-msgstr "%s 파일명으로 생성을 할수 없습니다.\n"
+msgstr "파일을 위치시킬 수 없습니다: %s"
 
 #. vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 encoding=utf-8 textwidth=99
 #: ../share/extensions/addnodes.inx.h:1
 msgid "Add Nodes"
-msgstr "노드 추가"
+msgstr "노드 더하기"
 
 #: ../share/extensions/addnodes.inx.h:2
 msgid "By max. segment length"
-msgstr ""
+msgstr "최대 세그먼트 길이"
 
 #: ../share/extensions/addnodes.inx.h:3
-#, fuzzy
 msgid "By number of segments"
-msgstr "단계 숫자"
+msgstr "세그먼트 숫자"
 
 #: ../share/extensions/addnodes.inx.h:4
 msgid "Division method"
-msgstr ""
+msgstr "나누기 방법"
 
 #: ../share/extensions/addnodes.inx.h:5
 msgid "Maximum segment length (px)"
-msgstr ""
+msgstr "최대 세그먼트 길이 (화소)"
 
-#: ../share/extensions/addnodes.inx.h:6 ../share/extensions/edge3d.inx.h:6
-#: ../share/extensions/flatten.inx.h:3 ../share/extensions/fractalize.inx.h:2
+#: ../share/extensions/addnodes.inx.h:6
+#: ../share/extensions/edge3d.inx.h:6
+#: ../share/extensions/flatten.inx.h:3
+#: ../share/extensions/fractalize.inx.h:2
 #: ../share/extensions/markers_strokepaint.inx.h:2
 #: ../share/extensions/perspective.inx.h:1
 #: ../share/extensions/radiusrand.inx.h:4
 #: ../share/extensions/rubberstretch.inx.h:3
 #: ../share/extensions/straightseg.inx.h:2
-#: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:2
+#: ../share/extensions/summersnight.inx.h:2
+#: ../share/extensions/whirl.inx.h:2
 msgid "Modify Path"
-msgstr "곡ì\84  ì\88\98ì \95"
+msgstr "ê²½ë¡\9c í\8e¸ì§\91"
 
 #: ../share/extensions/addnodes.inx.h:7
-#, fuzzy
 msgid "Number of segments"
-msgstr "단계 숫자"
+msgstr "세그먼트 숫자"
 
 #: ../share/extensions/ai_input.inx.h:1
-#, fuzzy
 msgid "AI 8.0 Input"
-msgstr "AI SVG 입력"
+msgstr "AI 8.0 입력"
 
 #: ../share/extensions/ai_input.inx.h:2
-#, fuzzy
 msgid "Adobe Illustrator 8.0 and below (*.ai)"
-msgstr "아도비 일러스트 (*.ai)"
+msgstr "Adobe Illustrator 8.0 이하 버전(*.ai)"
 
 #: ../share/extensions/ai_input.inx.h:3
-#, fuzzy
 msgid "Open files saved with Adobe Illustrator 8.0 or older"
-msgstr "열린 파일이 아도비 일러스트 파일로 저장됨"
+msgstr "Adobe Illustrator 8.0 또는 이전 버전으로 저장된 파일 열기"
 
 #: ../share/extensions/ai_output.inx.h:1
-#, fuzzy
 msgid "AI 8.0 Output"
-msgstr "ZIP 생성"
+msgstr "AI 8.0 출력"
 
 #: ../share/extensions/ai_output.inx.h:2
-#, fuzzy
 msgid "Adobe Illustrator 8.0 (*.ai)"
-msgstr "아도비 일러스트 (*.ai)"
+msgstr "Adobe Illustrator 8.0 (*.ai"
 
 #: ../share/extensions/ai_output.inx.h:3
-#, fuzzy
 msgid "Write Adobe Illustrator 8.0 (Postscript-based)"
-msgstr "아도비 일러 파일로 쓰기"
+msgstr "Adobe Illustrator 8.0 (포스트스크립트 기반) 쓰기"
 
 #: ../share/extensions/aisvg.inx.h:1
 msgid "AI SVG Input"
@@ -17444,262 +16293,231 @@ msgstr "AI SVG 입력"
 
 #: ../share/extensions/aisvg.inx.h:2
 msgid "Adobe Illustrator SVG (*.ai.svg)"
-msgstr "아도비 일러스트 SVG(*.ai.svg)"
+msgstr "Adobe 일러스트레이트 SVG (*.ai.svg)"
 
 #: ../share/extensions/aisvg.inx.h:3
 msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening"
-msgstr ""
+msgstr "열기 전 Adobe Illustrator SVG에서 불필요한 것 제거"
 
 #: ../share/extensions/ccx_input.inx.h:1
 msgid "Corel DRAW Compressed Exchange files (.ccx)"
-msgstr ""
+msgstr "Corel DRAW 압축 교환 파일 (.ccx)"
 
 #: ../share/extensions/ccx_input.inx.h:2
 msgid "Corel DRAW Compressed Exchange files input"
-msgstr ""
+msgstr "Corel DRAW 압축 교환 파일 입력"
 
 #: ../share/extensions/ccx_input.inx.h:3
 msgid "Open compressed exchange files saved in Corel DRAW"
-msgstr ""
+msgstr "Corel DRAW에서 저장된 압축 교환 파일 열기"
 
 #: ../share/extensions/cdr_input.inx.h:1
 msgid "Corel DRAW 7-X4 files (*.cdr)"
-msgstr ""
+msgstr "Corel DRAW 7-X4 파일 (*.cdr)"
 
 #: ../share/extensions/cdr_input.inx.h:2
 msgid "Corel DRAW Input"
-msgstr ""
+msgstr "Corel DRAW 입력"
 
 #: ../share/extensions/cdr_input.inx.h:3
-#, fuzzy
 msgid "Open files saved in Corel DRAW 7-X4"
-msgstr "XFIG 로 저장된 파일 열기"
+msgstr "Corel DRAW 7-X4 파일 열기"
 
 #: ../share/extensions/cdt_input.inx.h:1
 msgid "Corel DRAW 7-13 template files (.cdt)"
-msgstr ""
+msgstr "Corel DRAW 7-13 서식 파일 (.cdt)"
 
 #: ../share/extensions/cdt_input.inx.h:2
 msgid "Corel DRAW templates input"
-msgstr ""
+msgstr "Corel DRAW 서식 입력"
 
 #: ../share/extensions/cdt_input.inx.h:3
-#, fuzzy
 msgid "Open files saved in Corel DRAW 7-13"
-msgstr "XFIG 로 저장된 파일 열기"
+msgstr "Corel DRAW 7-13 파일 열기"
 
 #: ../share/extensions/cgm_input.inx.h:1
 msgid "Computer Graphics Metafile files (.cgm)"
-msgstr ""
+msgstr "컴퓨터 그래픽 메타파일  (.cgm)"
 
 #: ../share/extensions/cgm_input.inx.h:2
 msgid "Computer Graphics Metafile files input"
-msgstr ""
+msgstr "컴퓨터 그래픽 메타파일 입력"
 
 #: ../share/extensions/cgm_input.inx.h:3
 msgid "Open Computer Graphics Metafile files"
-msgstr ""
+msgstr "컴퓨터 그래픽 메타파일 열기"
 
 #: ../share/extensions/cmx_input.inx.h:1
 msgid "Corel DRAW Presentation Exchange files (.cmx)"
-msgstr ""
+msgstr "Corel DRAW 프리젠테이션 교환 파일 (.cmx)"
 
 #: ../share/extensions/cmx_input.inx.h:2
 msgid "Corel DRAW Presentation Exchange files input"
-msgstr ""
+msgstr "Corel DRAW 프리젠테이션 교환 파일 입력"
 
 #: ../share/extensions/cmx_input.inx.h:3
 msgid "Open presentation exchange files saved in Corel DRAW"
-msgstr ""
+msgstr "Corel DRAW에서 저장된 프리젠테이션 교환 파일 열기"
 
 #: ../share/extensions/color_brighter.inx.h:1
-#, fuzzy
 msgid "Brighter"
-msgstr "ëª\85ë\8f\84"
+msgstr "ë\8d\94 ë°\9dê²\8c"
 
 #: ../share/extensions/color_custom.inx.h:1
-#, fuzzy
 msgid "Blue Function"
-msgstr "기능"
+msgstr "청색 기능"
 
 #: ../share/extensions/color_custom.inx.h:4
-#, fuzzy
 msgid "Green Function"
-msgstr "기능"
+msgstr "녹색 기능"
 
 #: ../share/extensions/color_custom.inx.h:5
-#, fuzzy
 msgid "Red Function"
-msgstr "기능"
+msgstr "적색 기능"
 
 #: ../share/extensions/color_darker.inx.h:2
-#, fuzzy
 msgid "Darker"
-msgstr "날짜"
+msgstr "어둡게"
 
 #: ../share/extensions/color_desaturate.inx.h:2
-#, fuzzy
 msgid "Desaturate"
-msgstr "ë¹\84 í\99\9cì\84±í\99\94"
+msgstr "무ì±\84ì\83\89"
 
 #: ../share/extensions/color_grayscale.inx.h:2
 msgid "Grayscale"
-msgstr ""
+msgstr "회색톤"
 
 #: ../share/extensions/color_lesshue.inx.h:2
 msgid "Less Hue"
-msgstr ""
+msgstr "더 적은 색조"
 
 #: ../share/extensions/color_lesslight.inx.h:2
 msgid "Less Light"
-msgstr ""
+msgstr "더 적은 빛"
 
 #: ../share/extensions/color_lesssaturation.inx.h:2
-#, fuzzy
 msgid "Less Saturation"
-msgstr "채도"
+msgstr "더 적은 채도"
 
 #: ../share/extensions/color_morehue.inx.h:2
-#, fuzzy
 msgid "More Hue"
-msgstr "ë\85¸ë\93\9c를 ì\95\84ë\9e\98ë\8f\84"
+msgstr "ë\8d\94 ë§\8eì\9d\80 ì\83\89ì¡°"
 
 #: ../share/extensions/color_morelight.inx.h:2
-#, fuzzy
 msgid "More Light"
-msgstr "같은 높이"
+msgstr "더 밝은 빛"
 
 #: ../share/extensions/color_moresaturation.inx.h:2
-#, fuzzy
 msgid "More Saturation"
-msgstr "채도"
+msgstr "더 많은 채도"
 
 #: ../share/extensions/color_negative.inx.h:2
-#, fuzzy
 msgid "Negative"
-msgstr "ë¹\84 í\99\9cì\84±í\99\94"
+msgstr "ë\84¤ê±°í\8b°ë¸\8c"
 
 #: ../share/extensions/color_randomize.inx.h:4
-#, fuzzy
 msgid "Randomize"
-msgstr "ë\9e¨ë\8d¤:"
+msgstr "무ì\9e\91ì\9c\84"
 
 #: ../share/extensions/color_removeblue.inx.h:2
-#, fuzzy
 msgid "Remove Blue"
-msgstr "ì±\84ì\9b\80 제거"
+msgstr "ì²­ì\83\89 제거"
 
 #: ../share/extensions/color_removegreen.inx.h:2
-#, fuzzy
 msgid "Remove Green"
-msgstr " 삭제(_m) "
+msgstr "녹색 제거"
 
 #: ../share/extensions/color_removered.inx.h:2
-#, fuzzy
 msgid "Remove Red"
-msgstr "제거"
+msgstr "ì \81ì\83\89 ì \9cê±°"
 
 #: ../share/extensions/color_replace.inx.h:1
 msgid "By color (RRGGBB hex):"
-msgstr ""
+msgstr "색상(RRGGBB 16진수):"
 
 #: ../share/extensions/color_replace.inx.h:3
-#, fuzzy
 msgid "Replace color"
-msgstr "색 붙이기"
+msgstr "색상 치환"
 
 #: ../share/extensions/color_replace.inx.h:4
 msgid "Replace color (RRGGBB hex):"
-msgstr ""
+msgstr "색상 치환 (RRGGBB 16진수):"
 
 #: ../share/extensions/color_rgbbarrel.inx.h:2
 msgid "RGB Barrel"
-msgstr ""
+msgstr "RGB 바렐"
 
 #: ../share/extensions/dia.inx.h:1
 msgid "A diagram created with the program Dia"
-msgstr ""
+msgstr "Dia 생성 도표"
 
 #: ../share/extensions/dia.inx.h:2
 msgid "Dia Diagram (*.dia)"
-msgstr "다이아 다이어그램 (*.dia)"
+msgstr "Dia 도표 (*.dia)"
 
 #: ../share/extensions/dia.inx.h:3
 msgid "Dia Input"
-msgstr "다이아 내보내기"
+msgstr "Dia 입력"
 
 #: ../share/extensions/dia.inx.h:4
-#, fuzzy
-msgid ""
-"In order to import Dia files, Dia itself must be installed.  You can get Dia "
-"at http://live.gnome.org/Dia"
-msgstr ""
-"다이아 파일을 읽어들이기 위해서는, 다이아 프로그램이 설치 되어 있어야 합니"
-"다. http://www.gnome.org/projects/dia 에서 다이아 프로그램을 구하실수 있습니"
-"다."
+msgid "In order to import Dia files, Dia itself must be installed.  You can get Dia at http://live.gnome.org/Dia"
+msgstr "다이아 파일을 읽기 위하여,  Dia가 설치 되어 있어야 합니다. http://www.gnome.org/projects/dia 에서 다운받음"
 
 #: ../share/extensions/dia.inx.h:5
-msgid ""
-"The dia2svg.sh script should be installed with your Inkscape distribution.  "
-"If you do not have it, there is likely to be something wrong with your "
-"Inkscape installation."
-msgstr ""
+msgid "The dia2svg.sh script should be installed with your Inkscape distribution.  If you do not have it, there is likely to be something wrong with your Inkscape installation."
+msgstr "dia2svg.sh 스크립트는 Inkscape 배포판과 함께 설치됩니다."
 
-#: ../share/extensions/dimension.inx.h:2 ../share/extensions/dots.inx.h:4
-#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:11
+#: ../share/extensions/dimension.inx.h:2
+#: ../share/extensions/dots.inx.h:4
+#: ../share/extensions/handles.inx.h:2
+#: ../share/extensions/measure.inx.h:11
 msgid "Visualize Path"
-msgstr ""
+msgstr "경로 시각화"
 
 #: ../share/extensions/dimension.inx.h:3
-#, fuzzy
 msgid "X Offset"
-msgstr "옵셋"
+msgstr "옵셋"
 
 #: ../share/extensions/dimension.inx.h:4
-#, fuzzy
 msgid "Y Offset"
-msgstr "옵셋"
+msgstr "옵셋"
 
 #: ../share/extensions/dots.inx.h:1
 msgid "Dot size"
-msgstr "도트 크기"
+msgstr " 크기"
 
 #: ../share/extensions/dots.inx.h:2
 msgid "Font size"
-msgstr "글 크기"
+msgstr "글 크기"
 
 #: ../share/extensions/dots.inx.h:3
 msgid "Number Nodes"
-msgstr "노드 숫자"
+msgstr "숫자 노드"
 
 #: ../share/extensions/dxf_input.inx.h:1
 #: ../share/extensions/dxf_output.inx.h:1
 msgid "AutoCAD DXF (*.dxf)"
-msgstr "오트캐드 DXF (*.dxf)"
+msgstr "AutoCAD DXF (*.dxf)"
 
 #: ../share/extensions/dxf_input.inx.h:2
 msgid "DXF Input"
-msgstr "DXF 불러오기"
+msgstr "DXF 입력"
 
 #: ../share/extensions/dxf_input.inx.h:3
 msgid "Import AutoCAD's Document Exchange Format"
-msgstr "오토캐드의 문서 교환 포멧 불러오기"
+msgstr "DXF 불러오기"
 
 #: ../share/extensions/dxf_input.inx.h:4
-msgid ""
-"dxf2svg may come with Inkscape, but is also at http://dxf-svg-convert."
-"sourceforge.net/"
-msgstr ""
-"dxf2svg 가 아마도 잉크스케이프와 함께 제공 되었을것입니다, 그렇지 않다면"
-"http://dxf-svg-convert.sourceforge.net/ 을 참고 하세요."
+msgid "dxf2svg may come with Inkscape, but is also at http://dxf-svg-convert.sourceforge.net/"
+msgstr "dxf2svg 가 Inkscape에 제공되었을 것입니다, 그리고 http://dxf-svg-convert.sourceforge.net/ 을 참고 하세요."
 
 #: ../share/extensions/dxf_outlines.inx.h:1
 msgid "Desktop Cutting Plotter"
-msgstr ""
+msgstr "데스크톱 커팅 플로터"
 
 #: ../share/extensions/dxf_outlines.inx.h:2
 msgid "Desktop Cutting Plotter (*.DXF)"
-msgstr ""
+msgstr "데스크톱 커팅 플로터 (*.DXF)"
 
 #: ../share/extensions/dxf_output.inx.h:2
 msgid "DXF Output"
@@ -17707,66 +16525,59 @@ msgstr "DXF 내보내기"
 
 #: ../share/extensions/dxf_output.inx.h:3
 msgid "DXF file written by pstoedit"
-msgstr ""
+msgstr "pstoedit에 의해 쓰여진 DXF 파일"
 
 #: ../share/extensions/dxf_output.inx.h:4
 msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit"
-msgstr ""
+msgstr "pstoedit은 http://www.pstoedit.net/pstoedit에서 다운받아 설치합니다"
 
 #: ../share/extensions/edge3d.inx.h:1
-#, fuzzy
 msgid "Blur height"
-msgstr "높이:"
+msgstr "흐림 높이"
 
 #: ../share/extensions/edge3d.inx.h:2
-#, fuzzy
 msgid "Blur stdDeviation"
-msgstr "출력 목적지"
+msgstr "흐림 표준편차"
 
 #: ../share/extensions/edge3d.inx.h:3
-#, fuzzy
 msgid "Blur width"
-msgstr "í\8f­ì\9d\84 ê°\99ê²\8c"
+msgstr "í\9d\90림 í\8f­"
 
 #: ../share/extensions/edge3d.inx.h:4
-#, fuzzy
 msgid "Edge 3D"
-msgstr "이동(_M)"
+msgstr "모서리 3D"
 
 #: ../share/extensions/edge3d.inx.h:5
 msgid "Illumination Angle"
-msgstr ""
+msgstr "조명 각도"
 
 #: ../share/extensions/edge3d.inx.h:7
-#, fuzzy
 msgid "Only black and white"
-msgstr "단순 따오기을 위한 검정색과 백색 반전"
+msgstr "검은색과 흰색만"
 
 #: ../share/extensions/edge3d.inx.h:8
-#, fuzzy
 msgid "Shades"
-msgstr "형태"
+msgstr "음영"
 
 #: ../share/extensions/embedimage.inx.h:1
 msgid "Embed All Images"
-msgstr "내장 된 전체 이미지"
+msgstr "내장 전체 이미지"
 
 #: ../share/extensions/embedimage.inx.h:2
-#, fuzzy
 msgid "Embed only selected images"
-msgstr "내장 된 전체 이미지"
+msgstr "내장된 선택 이미지만"
 
 #: ../share/extensions/eps_input.inx.h:1
 msgid "EPS Input"
-msgstr "EPS 내보내기"
+msgstr "EPS 입력"
 
 #: ../share/extensions/eps_input.inx.h:2
 msgid "Encapsulated Postscript"
-msgstr "캡ì\8a\90í\99\94ë\90\9c í\8f¬ì\8a¤í\8a¸ 스크립트"
+msgstr "ì\9d¸ìº¡ì\8a\90ë \88ì\9d´í\8a¸ í\8f¬ì\8a¤í\8a¸스크립트"
 
 #: ../share/extensions/epsi_output.inx.h:1
 msgid "EPSI Output"
-msgstr "EPSI 내보내기"
+msgstr "EPSI 출력"
 
 #: ../share/extensions/epsi_output.inx.h:2
 msgid "Encapsulated Postscript Interchange (*.epsi)"
@@ -17774,186 +16585,166 @@ msgstr ""
 
 #: ../share/extensions/epsi_output.inx.h:3
 msgid "Encapsulated Postscript with a thumbnail"
-msgstr ""
+msgstr "썸네일이 있는 Encapsulated Postscript"
 
 #: ../share/extensions/eqtexsvg.inx.h:1
 msgid "LaTeX formula"
-msgstr "라텍스 수식"
+msgstr "LaTeX수식"
 
 #: ../share/extensions/eqtexsvg.inx.h:2
 msgid "LaTeX formula: "
-msgstr "라덱스 수식:"
+msgstr "LaTeX수식: "
 
 #: ../share/extensions/export_gimp_palette.inx.h:1
 msgid "Export as GIMP Palette"
-msgstr ""
+msgstr "Gimp 팔레트로 내보내기"
 
 #: ../share/extensions/export_gimp_palette.inx.h:2
 msgid "Exports the colors of this document as GIMP Palette"
-msgstr ""
+msgstr "이 문서의 색상을 Gimp 팔레트로 내보내기"
 
 #: ../share/extensions/export_gimp_palette.inx.h:3
-#, fuzzy
 msgid "GIMP Palette (*.gpl)"
-msgstr "김프 색변화(Gradient) (*.ggr)"
+msgstr "김프 팔레트 (*.gpl)"
 
 #: ../share/extensions/extractimage.inx.h:1
-msgid "Extract One Image"
-msgstr ""
+msgid "Extract One Image..."
+msgstr "한 개 이미지 추출..."
 
 #: ../share/extensions/extractimage.inx.h:3
 msgid "Note: The file extension is appended automatically."
-msgstr ""
+msgstr "주의: 파일 확장자는 자동으로 더해집니다."
 
 #: ../share/extensions/extractimage.inx.h:4
 msgid "Path to save image"
-msgstr ""
+msgstr "이미지 저장 경로"
 
 #: ../share/extensions/fig_input.inx.h:1
 msgid "Open files saved with XFIG"
-msgstr "XFIG 로 저장된 파일 열기"
+msgstr "XFIG로 저장된 파일 열기"
 
 #: ../share/extensions/fig_input.inx.h:2
-#, fuzzy
 msgid "XFIG Graphics File (*.fig)"
 msgstr "XFIG 그래픽 파일(*.fig)"
 
 #: ../share/extensions/fig_input.inx.h:3
 msgid "XFIG Input"
-msgstr "XFIG 불러오기"
+msgstr "XFIG 입력"
 
 #: ../share/extensions/flatten.inx.h:1
 msgid "Flatness"
-msgstr ""
+msgstr "평면화"
 
 #: ../share/extensions/flatten.inx.h:2
 msgid "Flatten Beziers"
-msgstr ""
+msgstr "평면 베지어"
 
 #: ../share/extensions/fractalize.inx.h:1
 msgid "Fractalize"
-msgstr ""
+msgstr "프랙탈화"
 
 #: ../share/extensions/fractalize.inx.h:3
-#, fuzzy
 msgid "Smoothness"
 msgstr "부드러움"
 
 #: ../share/extensions/fractalize.inx.h:4
 msgid "Subdivisions"
-msgstr ""
+msgstr "하위분할"
 
 #: ../share/extensions/funcplot.inx.h:1
 msgid "Calculate first derivative numerically"
-msgstr ""
+msgstr "수치상 첫 유도함수 계산 "
 
 #: ../share/extensions/funcplot.inx.h:2
 msgid "Draw Axes"
-msgstr ""
+msgstr "축 그리기"
 
 #: ../share/extensions/funcplot.inx.h:3
 msgid "End X value"
-msgstr ""
+msgstr "끝 X 값"
 
 #: ../share/extensions/funcplot.inx.h:4
 msgid "First derivative"
-msgstr ""
+msgstr "첫 유도함수"
 
 #: ../share/extensions/funcplot.inx.h:5
-#, fuzzy
 msgid "Function"
 msgstr "기능"
 
 #: ../share/extensions/funcplot.inx.h:6
 msgid "Function Plotter"
-msgstr ""
+msgstr "기능 플로터"
 
 #: ../share/extensions/funcplot.inx.h:7
-#, fuzzy
 msgid "Functions"
 msgstr "기능"
 
 #: ../share/extensions/funcplot.inx.h:8
-msgid "Isotropic scaling (uses smallest of width/xrange or height/yrange)"
-msgstr ""
+msgid "Isotropic scaling (uses smallest: width/xrange or height/yrange)"
+msgstr "동일 비율 (가장 작은 값 사용: 폭/X 범위 또는 높이/Y 범위)"
 
 #: ../share/extensions/funcplot.inx.h:9
-msgid "Multiply range by 2*pi"
-msgstr ""
+msgid "Multiply x-range by 2*pi"
+msgstr "2*pi 와 X 범위 곱하기"
 
 #: ../share/extensions/funcplot.inx.h:10
-msgid "Range and sampling"
-msgstr ""
+msgid "Range and Sampling"
+msgstr "범위 및 샘플링"
 
 #: ../share/extensions/funcplot.inx.h:11
-#, fuzzy
 msgid "Remove rectangle"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì\82¬ê°\81í\98\95 ì \9cê±°"
 
 #: ../share/extensions/funcplot.inx.h:13
-#, fuzzy
 msgid "Samples"
-msgstr "형태"
+msgstr "샘플"
 
 #: ../share/extensions/funcplot.inx.h:14
-msgid ""
-"Select a rectangle before calling the extension, it will determine X and Y "
-"scales. With polar coordinates: Start and end X values define the angle "
-"range in radians. X scale is set so that left and right edges of rectangle "
-"are at +/-1. Isotropic scaling is disabled. First derivative is always "
-"determined numerically."
-msgstr ""
+msgid "Select a rectangle before calling the extension, it will determine X and Y scales. With polar coordinates: Start and end X values define the angle range in radians. X scale is set so that left and right edges of rectangle are at +/-1. Isotropic scaling is disabled. First derivative is always determined numerically."
+msgstr "확장을 호출하기 전 직사각형 선택, 이것은 X,Y 비율을 결정한다"
 
 #: ../share/extensions/funcplot.inx.h:15
-msgid ""
-"Standard Python math functions are available: ceil(x); fabs(x); floor(x); "
-"fmod(x,y); frexp(x); ldexp(x,i); modf(x); exp(x); log(x [, base]); log10(x); "
-"pow(x,y); sqrt(x); acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); cos"
-"(x); sin(x); tan(x); degrees(x); radians(x); cosh(x); sinh(x); tanh(x). The "
-"constants pi and e are also available."
-msgstr ""
+msgid "Standard Python math functions are available: ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); cos(x); sin(x); tan(x); degrees(x); radians(x); cosh(x); sinh(x); tanh(x). The constants pi and e are also available."
+msgstr "표준 파이썬에서 사용가능한 수학 함수:  ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); cos(x); sin(x); tan(x); degrees(x); radians(x); cosh(x); sinh(x); tanh(x). The constants pi and e are also available."
 
 #: ../share/extensions/funcplot.inx.h:16
-#, fuzzy
-msgid "Start X value"
-msgstr "속성 값"
+msgid "Start x-value"
+msgstr "시작 X 값"
+
+msgid "End x-value"
+msgstr "끝 X 값"
 
 #: ../share/extensions/funcplot.inx.h:17
 msgid "Use"
-msgstr ""
+msgstr "사용"
 
 #: ../share/extensions/funcplot.inx.h:18
 msgid "Use polar coordinates"
-msgstr ""
+msgstr "극 좌표 사용"
 
 #: ../share/extensions/funcplot.inx.h:19
-#, fuzzy
-msgid "Y value of rectangle's bottom"
-msgstr "사각형 찾기"
+msgid "y-value of rectangle's bottom"
+msgstr "사각형 최하단 Y 값"
 
 #: ../share/extensions/funcplot.inx.h:20
-#, fuzzy
-msgid "Y value of rectangle's top"
-msgstr "사각형 찾기"
+msgid "y-value of rectangle's top"
+msgstr "사각형 최상단 Y 값"
 
 #: ../share/extensions/gears.inx.h:1
 msgid "Circular pitch, px"
-msgstr ""
+msgstr "순환 간격, 화소"
 
 #: ../share/extensions/gears.inx.h:2
-#, fuzzy
 msgid "Gear"
-msgstr "청소(_C)"
+msgstr "톱니"
 
 #: ../share/extensions/gears.inx.h:3
-#, fuzzy
 msgid "Number of teeth"
-msgstr "단계 숫자"
+msgstr "톱니 갯수"
 
 #: ../share/extensions/gears.inx.h:4
-#, fuzzy
 msgid "Pressure angle"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "ì\95\95ë ¥ ê°\81ë\8f\84"
 
 #: ../share/extensions/gimp_xcf.inx.h:1
 msgid "GIMP XCF"
@@ -17961,251 +16752,243 @@ msgstr "김프 XCF"
 
 #: ../share/extensions/gimp_xcf.inx.h:2
 msgid "GIMP XCF maintaining layers (*.XCF)"
-msgstr ""
+msgstr "GIMP XCF 레이어 유지 (*.XCF)"
 
 #: ../share/extensions/gimp_xcf.inx.h:3
 msgid "Save Grid:"
-msgstr ""
+msgstr "격자 저장:"
 
 #: ../share/extensions/gimp_xcf.inx.h:4
-#, fuzzy
 msgid "Save Guides:"
-msgstr "가이드(_u)"
+msgstr "안내선 저장:"
 
 #: ../share/extensions/grid_cartesian.inx.h:1
 msgid "Border Thickness / px"
-msgstr ""
+msgstr "경계 두께 / 화소"
 
 #: ../share/extensions/grid_cartesian.inx.h:2
-#, fuzzy
 msgid "Cartesian Grid"
-msgstr "ì¤\91ì\8b¬ì\84 "
+msgstr "ì¹´í\85\8cì\8b\9cì\95\88 ê²©ì\9e\90"
 
 #: ../share/extensions/grid_cartesian.inx.h:3
 msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only)"
-msgstr ""
+msgstr "X 절반을 하위분할, 'n' 하위분할 후 주파수 (log만)"
 
 #: ../share/extensions/grid_cartesian.inx.h:4
 msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only)"
-msgstr ""
+msgstr "Y 절반을 하위분할, 'n' 하위분할 후 주파수 (log만)"
 
 #: ../share/extensions/grid_cartesian.inx.h:5
 msgid "Logarithmic X Subdiv. (Base given by entry above)"
-msgstr ""
+msgstr "로그 X 하위분할"
 
 #: ../share/extensions/grid_cartesian.inx.h:6
 msgid "Logarithmic Y Subdiv. (Base given by entry above)"
-msgstr ""
+msgstr "로그 Y 하위분할"
 
 #: ../share/extensions/grid_cartesian.inx.h:7
 msgid "Major X Division Thickness / px"
-msgstr ""
+msgstr "주 X 분할 두께 / 화소"
 
 #: ../share/extensions/grid_cartesian.inx.h:8
 msgid "Major X Divisions"
-msgstr ""
+msgstr "주 X 분할"
 
 #: ../share/extensions/grid_cartesian.inx.h:9
 msgid "Major X Divsion Spacing / px"
-msgstr ""
+msgstr "주 X 분할 간격 / 화소"
 
 #: ../share/extensions/grid_cartesian.inx.h:10
-#, fuzzy
 msgid "Major Y Division Spacing"
-msgstr "ì\88\98í\8f\89 간격"
+msgstr "주 Y ë¶\84í\95  간격"
 
 #: ../share/extensions/grid_cartesian.inx.h:11
 msgid "Major Y Division Thickness / px"
-msgstr ""
+msgstr "주 Y 분할 두께 / 화소"
 
 #: ../share/extensions/grid_cartesian.inx.h:12
 msgid "Major Y Divisions"
-msgstr ""
+msgstr "주 Y 분할"
 
 #: ../share/extensions/grid_cartesian.inx.h:13
 msgid "Minor X Division Thickness / px"
-msgstr ""
+msgstr "부 X 분할 두께 / 화소"
 
 #: ../share/extensions/grid_cartesian.inx.h:14
 msgid "Minor Y Division Thickness / px"
-msgstr ""
+msgstr "부 Y 분할 두께 / 화소"
 
 #: ../share/extensions/grid_cartesian.inx.h:16
 msgid "Subdivisions per Major X Division"
-msgstr ""
+msgstr "주 X 분할 당 하위분할"
 
 #: ../share/extensions/grid_cartesian.inx.h:17
 msgid "Subdivisions per Major Y Division"
-msgstr ""
+msgstr "주 Y 분할 당 하위분할"
 
 #: ../share/extensions/grid_cartesian.inx.h:18
 msgid "Subminor X Division Thickness / px"
-msgstr ""
+msgstr "하위 부 X 분할 두께 / 화소"
 
 #: ../share/extensions/grid_cartesian.inx.h:19
 msgid "Subminor Y Division Thickness / px"
-msgstr ""
+msgstr "하위 부 Y 분할 두께 / 화소"
 
 #: ../share/extensions/grid_cartesian.inx.h:20
 msgid "Subsubdivs. per X Subdiv."
-msgstr ""
+msgstr "X 하위분할 당 하위 하위분할"
 
 #: ../share/extensions/grid_cartesian.inx.h:21
 msgid "Subsubdivs. per Y Subdivision"
-msgstr ""
+msgstr "Y 하위분할 당 하위 하위분할"
 
 #: ../share/extensions/grid_polar.inx.h:1
 msgid "Angle Divisions"
-msgstr ""
+msgstr "각도 분할"
 
 #: ../share/extensions/grid_polar.inx.h:2
 msgid "Angle Divisions at Centre"
-msgstr ""
+msgstr "중앙에서 각도 분할"
 
 #: ../share/extensions/grid_polar.inx.h:3
 msgid "Centre Dot Diameter / px"
-msgstr ""
+msgstr "중앙 점 직경 / 화소"
 
 #: ../share/extensions/grid_polar.inx.h:4
 msgid "Circumferential Label Outset / px"
-msgstr ""
+msgstr "원주 라벨 확대 / 화소"
 
 #: ../share/extensions/grid_polar.inx.h:5
 msgid "Circumferential Label Size / px"
-msgstr ""
+msgstr "원주 라벨 크기 / 화소"
 
 #: ../share/extensions/grid_polar.inx.h:6
 msgid "Circumferential Labels"
-msgstr ""
+msgstr "원주 라벨"
 
 #: ../share/extensions/grid_polar.inx.h:8
 msgid "Logarithmic Subdiv. (Base given by entry above)"
-msgstr ""
+msgstr "로그 하위분할"
 
 #: ../share/extensions/grid_polar.inx.h:9
 msgid "Major Angular Division Thickness / px"
-msgstr ""
+msgstr "주 각도 분할 두께 / 화소"
 
 #: ../share/extensions/grid_polar.inx.h:10
 msgid "Major Circular Division Thickness / px"
-msgstr ""
+msgstr "주 원형 분할 두께 / 화소"
 
 #: ../share/extensions/grid_polar.inx.h:11
 msgid "Major Circular Divisions"
-msgstr ""
+msgstr "주 원형 분할"
 
 #: ../share/extensions/grid_polar.inx.h:12
 msgid "Major Circular Divsion Spacing / px"
-msgstr ""
+msgstr "주 원형 분할 간격 / 화소"
 
 #: ../share/extensions/grid_polar.inx.h:13
 msgid "Minor Angle Division End 'n' Divs. Before Centre"
-msgstr ""
+msgstr "부 각도 분할 끝 'n' 분할"
 
 #: ../share/extensions/grid_polar.inx.h:14
 msgid "Minor Angular Division Thickness / px"
-msgstr ""
+msgstr "부 각도 분할 두께 / 화소 "
 
 #: ../share/extensions/grid_polar.inx.h:15
 msgid "Minor Circular Division Thickness / px"
-msgstr ""
+msgstr "부 원형 분할 두께 / 화소"
 
 #: ../share/extensions/grid_polar.inx.h:17
 msgid "Polar Grid"
-msgstr ""
+msgstr "극좌표 격자"
 
 #: ../share/extensions/grid_polar.inx.h:19
 msgid "Subdivisions per Major Angular Division"
-msgstr ""
+msgstr "주 각도 분할 당 하위 분할"
 
 #: ../share/extensions/grid_polar.inx.h:20
 msgid "Subdivisions per Major Circular Division"
-msgstr ""
+msgstr "주 원형 분할 당 하위분할"
 
 #: ../share/extensions/handles.inx.h:1
 msgid "Draw Handles"
-msgstr ""
+msgstr "핸들 그리기"
 
 #: ../share/extensions/hpgl_output.inx.h:1
 msgid "Export to an HP Graphics Language file"
-msgstr ""
+msgstr "HP 그래픽 언어 파일로 내보내기"
 
 #: ../share/extensions/hpgl_output.inx.h:2
-#, fuzzy
 msgid "HP Graphics Language file (*.hpgl)"
-msgstr "XFIG 그래픽 파일(*.fig)"
+msgstr "HP 그래픽 언어 파일 (*.hpgl)"
 
 #: ../share/extensions/hpgl_output.inx.h:3
-#, fuzzy
 msgid "HPGL Output"
-msgstr "SVG 출력"
+msgstr "HPGL 출력"
 
 #: ../share/extensions/inkscape_help_askaquestion.inx.h:1
 msgid "Ask Us a Question"
-msgstr ""
+msgstr "질문 문의"
 
 #: ../share/extensions/inkscape_help_commandline.inx.h:1
-#, fuzzy
 msgid "Command Line Options"
-msgstr "임의의 위치"
+msgstr "명령어 설정 도움말"
 
 #: ../share/extensions/inkscape_help_faq.inx.h:1
 msgid "FAQ"
-msgstr ""
+msgstr "자주 묻는 질문"
 
 #: ../share/extensions/inkscape_help_keys.inx.h:1
 msgid "Keys and Mouse Reference"
-msgstr ""
+msgstr "키와 마우스 참조사항"
 
 #: ../share/extensions/inkscape_help_manual.inx.h:1
-#, fuzzy
 msgid "Inkscape Manual"
-msgstr "잉크스케이프: 따오기(_r)"
+msgstr "Inkscape 매뉴얼"
 
 #: ../share/extensions/inkscape_help_relnotes.inx.h:1
 msgid "New in This Version"
-msgstr ""
+msgstr "이 버전의 새로운 내용"
 
 #: ../share/extensions/inkscape_help_reportabug.inx.h:1
 msgid "Report a Bug"
-msgstr ""
+msgstr "버그 보고"
 
 #: ../share/extensions/inkscape_help_svgspec.inx.h:1
 msgid "SVG 1.1 Specification"
-msgstr ""
+msgstr "SVG 1.1 설명"
 
 #: ../share/extensions/interp.inx.h:1
 msgid "Duplicate endpaths"
-msgstr ""
+msgstr "끝 경로 복제"
 
 #: ../share/extensions/interp.inx.h:4
 msgid "Interpolate"
-msgstr ""
+msgstr "삽입"
 
 #: ../share/extensions/interp.inx.h:5
-#, fuzzy
-msgid "Interpolate style"
-msgstr "불이기 종류(_S)"
+msgid "Interpolate style (experimental)"
+msgstr "스타일 삽입(경험치)"
 
 #: ../share/extensions/interp.inx.h:6
 msgid "Interpolation method"
-msgstr ""
+msgstr "삽입 방법"
 
 #: ../share/extensions/interp.inx.h:7
 msgid "Interpolation steps"
-msgstr ""
+msgstr "삽입 단계"
 
 #: ../share/extensions/lindenmayer.inx.h:1
 msgid "Axiom"
-msgstr ""
+msgstr "공리"
 
 #: ../share/extensions/lindenmayer.inx.h:2
 msgid "Axiom and rules"
-msgstr ""
+msgstr "공리 및 규칙"
 
 #: ../share/extensions/lindenmayer.inx.h:4
 msgid "L-system"
-msgstr ""
+msgstr "L-시스템"
 
 #: ../share/extensions/lindenmayer.inx.h:5
 msgid "Left angle"
@@ -18214,12 +16997,12 @@ msgstr "왼쪽 각"
 #: ../share/extensions/lindenmayer.inx.h:8
 #, no-c-format
 msgid "Randomize angle (%)"
-msgstr "램덤 각 (%)"
+msgstr "임의 각도 (%)"
 
 #: ../share/extensions/lindenmayer.inx.h:10
 #, no-c-format
 msgid "Randomize step (%)"
-msgstr "램덤 단계 (%)"
+msgstr "임의 비율 (%)"
 
 #: ../share/extensions/lindenmayer.inx.h:12
 msgid "Right angle"
@@ -18231,644 +17014,563 @@ msgstr "규칙"
 
 #: ../share/extensions/lindenmayer.inx.h:14
 msgid "Step length (px)"
-msgstr ""
+msgstr "단계 길이(화소)"
 
 #: ../share/extensions/lindenmayer.inx.h:15
-msgid ""
-"The path is generated by applying the substitutions of Rules to the Axiom, "
-"Order times. The following commands are recognized in Axiom and Rules: Any "
-"of A,B,C,D,E,F: draw forward Any of G,H,I,J,K,L: move forward +: turn left "
-"-: turn right |: turn 180 degrees [: remember poing ]: return to remembered "
-"point"
+msgid "The path is generated by applying the substitutions of Rules to the Axiom, Order times. The following commands are recognized in Axiom and Rules: Any of A,B,C,D,E,F: draw forward Any of G,H,I,J,K,L: move forward +: turn left -: turn right |: turn 180 degrees [: remember poing ]: return to remembered point"
 msgstr ""
 
 #: ../share/extensions/lorem_ipsum.inx.h:1
 msgid "Lorem ipsum"
-msgstr ""
+msgstr "로렘 입섬"
 
 #: ../share/extensions/lorem_ipsum.inx.h:2
-#, fuzzy
 msgid "Number of paragraphs"
-msgstr "줄 숫자:"
+msgstr "문단 수"
 
 #: ../share/extensions/lorem_ipsum.inx.h:3
 msgid "Paragraph length fluctuation (sentences)"
-msgstr ""
+msgstr "문단 길이 변동(문장)"
 
 #: ../share/extensions/lorem_ipsum.inx.h:4
 msgid "Sentences per paragraph"
-msgstr ""
+msgstr "문단 당 문장"
 
 #: ../share/extensions/lorem_ipsum.inx.h:6
-msgid ""
-"This effect creates the standard \"Lorem Ipsum\" pseudolatin placeholder "
-"text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a "
-"new flowed text object, the size of the page, is created in a new layer."
+msgid "This effect creates the standard \"Lorem Ipsum\" pseudolatin placeholder text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a new flowed text object, the size of the page, is created in a new layer."
 msgstr ""
 
 #: ../share/extensions/markers_strokepaint.inx.h:1
 msgid "Color Markers to Match Stroke"
-msgstr ""
+msgstr "색상 마커를 윤곽선과 일치"
 
 #: ../share/extensions/measure.inx.h:1
-#, fuzzy
 msgid "Font size [px]"
-msgstr "글콘 크기"
+msgstr "글꼴 크기[화소]"
 
 #. <param name="unit" type="string" _gui-text="Unit {km|m|cm|mm|in|px|pt}">mm</param>
 #: ../share/extensions/measure.inx.h:4
 msgid "Length Unit: "
-msgstr ""
+msgstr "길이 단위: "
 
 #: ../share/extensions/measure.inx.h:5
 msgid "Measure"
-msgstr ""
+msgstr "측정"
 
 #: ../share/extensions/measure.inx.h:6
 msgid "Measure Path"
-msgstr ""
+msgstr "측정 경로"
 
 #: ../share/extensions/measure.inx.h:7
-#, fuzzy
 msgid "Offset [px]"
-msgstr "곡선 간격 띄우기"
+msgstr "옵셋 [화소]"
 
 #: ../share/extensions/measure.inx.h:8
-#, fuzzy
 msgid "Precision"
-msgstr "ì\84¤ëª\85"
+msgstr "ì \95ë°\80ë\8f\84"
 
 #: ../share/extensions/measure.inx.h:9
 msgid "Scale Factor (Drawing:Real Length) = 1:"
-msgstr ""
+msgstr "비율 요소 (그리기:실제 길이) = 1 :"
 
 #: ../share/extensions/measure.inx.h:10
-msgid ""
-"This effect measures the length of the selected path and adds it as a text-"
-"on-path object with the selected unit. The number of significant digits can "
-"be controlled by the Precision field. The Offset field controls the distance "
-"from the text to the path. The Scale factor can be used to make measurements "
-"in scaled drawings. For example, if 1 cm in the drawing equals 2.5 m in the "
-"real world, Scale must be set to 250."
+msgid "This effect measures the length of the selected path and adds it as a text-on-path object with the selected unit. The number of significant digits can be controlled by the Precision field. The Offset field controls the distance from the text to the path. The Scale factor can be used to make measurements in scaled drawings. For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale must be set to 250."
 msgstr ""
 
 #: ../share/extensions/motion.inx.h:2
 msgid "Extrude"
-msgstr ""
+msgstr "밀어내기"
 
 #: ../share/extensions/motion.inx.h:4
 msgid "Magnitude"
-msgstr ""
+msgstr "크기"
 
 #: ../share/extensions/outline2svg.inx.h:1
 msgid "ASCII Text with outline markup"
-msgstr ""
+msgstr "윤곽선 마크업 있는 ASCII 문자열"
 
 #: ../share/extensions/outline2svg.inx.h:2
-#, fuzzy
 msgid "Text Outline File (*.outline)"
-msgstr "텍스트 파일 (*.txt)"
+msgstr "문자열 윤곽선 파일 (*.outline)"
 
 #: ../share/extensions/outline2svg.inx.h:3
-#, fuzzy
 msgid "Text Outline Input"
-msgstr "텍스트 입력"
+msgstr "문자열 윤곽선 입력"
 
 #: ../share/extensions/pathalongpath.inx.h:1
-#, fuzzy
 msgid "Copies of the pattern:"
-msgstr "점선 유형"
+msgstr "패턴 복사 갯수:"
 
 #: ../share/extensions/pathalongpath.inx.h:2
-#, fuzzy
 msgid "Deformation type:"
-msgstr "정보"
+msgstr "변형 형태:"
 
 #: ../share/extensions/pathalongpath.inx.h:3
 #: ../share/extensions/pathscatter.inx.h:3
 msgid "Duplicate the pattern before deformation"
-msgstr ""
+msgstr "변형 전 패턴을 복제"
 
 #: ../share/extensions/pathalongpath.inx.h:6
-#, fuzzy
 msgid "Pattern along Path"
-msgstr "ê°\84격ë\9d\84ì\9a°ê¸° ì\9c í\98\95"
+msgstr "ê²½ë¡\9cì\97\90 ë\94°ë¥¸ í\8c¨í\84´"
 
 #: ../share/extensions/pathalongpath.inx.h:10
 msgid "Ribbon"
-msgstr ""
+msgstr "리본"
 
 #: ../share/extensions/pathalongpath.inx.h:13
-#, fuzzy
 msgid "Snake"
-msgstr "ë\8b¨ê³\84"
+msgstr "ë±\80"
 
 #: ../share/extensions/pathalongpath.inx.h:14
 #: ../share/extensions/pathscatter.inx.h:11
 msgid "Space between copies:"
-msgstr ""
+msgstr "복사본 사이 공백:"
 
 #: ../share/extensions/pathalongpath.inx.h:16
-msgid ""
-"This effect bends a pattern object along arbitrary \"skeleton\" paths. The "
-"pattern is the top most object in the selection. (groups of paths/shapes/"
-"clones... allowed)"
+msgid "This effect bends a pattern object along arbitrary \"skeleton\" paths. The pattern is the top most object in the selection. (groups of paths/shapes/clones... allowed)"
 msgstr ""
 
 #: ../share/extensions/pathscatter.inx.h:1
-#, fuzzy
 msgid "Cloned"
-msgstr "ë³µì\82¬ 객체"
+msgstr "ë³µì \9c 객체"
 
 #: ../share/extensions/pathscatter.inx.h:2
-#, fuzzy
 msgid "Copied"
-msgstr "ì¡°í\95©ë\90\9c"
+msgstr "ì\82¬ë³¸"
 
 #: ../share/extensions/pathscatter.inx.h:4
 msgid "Follow path orientation."
-msgstr ""
+msgstr "경로 방향을 따르기."
 
 #: ../share/extensions/pathscatter.inx.h:6
-#, fuzzy
 msgid "Moved"
-msgstr "이동(_M)"
+msgstr "이동"
 
 #: ../share/extensions/pathscatter.inx.h:8
-#, fuzzy
 msgid "Original pattern will be:"
-msgstr "간격띄우기 유형"
+msgstr "원래 패턴임:"
 
 #: ../share/extensions/pathscatter.inx.h:10
-#, fuzzy
 msgid "Scatter"
-msgstr "반복무늬"
+msgstr "흩뿌리기"
 
 #: ../share/extensions/pathscatter.inx.h:12
 msgid "Stretch spaces to fit skeleton length"
-msgstr ""
+msgstr "골격 길이에 적합하도록 공백 확장"
 
 #: ../share/extensions/pathscatter.inx.h:14
-msgid ""
-"This effect scatters a pattern along arbitrary \"skeleton\" paths. The "
-"pattern is the top most object in the selection. (groups of paths/shapes/"
-"clones... allowed)"
+msgid "This effect scatters a pattern along arbitrary \"skeleton\" paths. The pattern is the top most object in the selection. (groups of paths/shapes/clones... allowed)"
 msgstr ""
 
 #: ../share/extensions/perfectboundcover.inx.h:1
 msgid "Bleed (in)"
-msgstr ""
+msgstr "물림재단(인치)"
 
 #: ../share/extensions/perfectboundcover.inx.h:2
 msgid "Bond Weight #"
-msgstr ""
+msgstr "제본 폭 #"
 
 #: ../share/extensions/perfectboundcover.inx.h:3
 msgid "Book Height (inches)"
-msgstr ""
+msgstr "책 높이(인치)"
 
 #: ../share/extensions/perfectboundcover.inx.h:4
-#, fuzzy
 msgid "Book Properties"
-msgstr "ì\9cë ¥ ì\84¤ì \95"
+msgstr "ì±\85 ì\86\8dì\84±"
 
 #: ../share/extensions/perfectboundcover.inx.h:5
 msgid "Book Width (inches)"
-msgstr ""
+msgstr "책 폭(인치)"
 
 #: ../share/extensions/perfectboundcover.inx.h:6
 msgid "Caliper (inches)"
-msgstr ""
+msgstr "종이 두께(인치)"
 
 #: ../share/extensions/perfectboundcover.inx.h:7
-#, fuzzy
 msgid "Cover"
 msgstr "표지"
 
 #: ../share/extensions/perfectboundcover.inx.h:8
 msgid "Cover Thickness Measurement"
-msgstr ""
+msgstr "표지 두께 측정"
 
 #: ../share/extensions/perfectboundcover.inx.h:9
-#, fuzzy
 msgid "Generate Template"
-msgstr "곡선으로 부터 만들어냄"
+msgstr "서식 생성"
 
 #: ../share/extensions/perfectboundcover.inx.h:10
-#, fuzzy
 msgid "Interior Pages"
-msgstr "반전"
+msgstr "안쪽 페이지"
 
 #: ../share/extensions/perfectboundcover.inx.h:11
 msgid "Note: Bond Weight # calculations are a best-guess estimate."
-msgstr ""
+msgstr "알림: 재단 폭 # 계산은 최적의 어림 추정입니다."
 
 #: ../share/extensions/perfectboundcover.inx.h:12
-#, fuzzy
 msgid "Number of Pages"
-msgstr "단계 숫자"
+msgstr "페이지 번호"
 
 #: ../share/extensions/perfectboundcover.inx.h:13
 msgid "Pages Per Inch (PPI)"
-msgstr ""
+msgstr "인치당 페이지(PPI)"
 
 #: ../share/extensions/perfectboundcover.inx.h:14
 msgid "Paper Thickness Measurement"
-msgstr ""
+msgstr "종이 두께 측정"
 
 #: ../share/extensions/perfectboundcover.inx.h:15
 msgid "Perfect-Bound Cover"
-msgstr ""
+msgstr "완전-제본 표지"
 
 #: ../share/extensions/perfectboundcover.inx.h:17
-#, fuzzy
 msgid "Remove existing guides"
-msgstr "ì\82¬ê°\81í\98\95 ì°¾ê¸°"
+msgstr "기존 ì\95\88ë\82´ì\84  ì \9cê±°"
 
 #: ../share/extensions/perfectboundcover.inx.h:18
-#, fuzzy
 msgid "Specify Width"
-msgstr "선 폭"
+msgstr "폭 지정"
 
 #: ../share/extensions/perspective.inx.h:2
-#, fuzzy
 msgid "Perspective"
-msgstr "ì\84 í\83\9d"
+msgstr "ì\9b\90ê·¼"
 
 #: ../share/extensions/polyhedron_3d.inx.h:1
-#, fuzzy
 msgid "3D Polyhedron"
-msgstr "폴리곤"
+msgstr "3D 다면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:2
-#, fuzzy
 msgid "Clockwise Wound Object"
-msgstr "ì\9e ê²¨ì§\84 ê°\9dì²´ ë¬´ì\8b\9c"
+msgstr "ì\8b\9cê³\84ë°©í\96¥ ê°\90겨ì§\84 ê°\9dì²´"
 
 #: ../share/extensions/polyhedron_3d.inx.h:3
 msgid "Cube"
-msgstr ""
+msgstr "사면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:4
 msgid "Cuboctohedron"
-msgstr ""
+msgstr "8면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:5
 msgid "Dodecahedron"
-msgstr ""
+msgstr "10면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:6
 msgid "Draw Back-Facing Polygons"
-msgstr ""
+msgstr "후면 다면체 그리기"
 
 #: ../share/extensions/polyhedron_3d.inx.h:7
 msgid "Edge-Specified"
-msgstr ""
+msgstr "모서리-지정"
 
 #: ../share/extensions/polyhedron_3d.inx.h:8
-#, fuzzy
 msgid "Edges"
-msgstr "이동(_M)"
+msgstr "모서리"
 
 #: ../share/extensions/polyhedron_3d.inx.h:9
 msgid "Face-Specified"
-msgstr ""
+msgstr "면-지정"
 
 #: ../share/extensions/polyhedron_3d.inx.h:10
-#, fuzzy
 msgid "Faces"
-msgstr "소스"
+msgstr ""
 
 #: ../share/extensions/polyhedron_3d.inx.h:11
-#, fuzzy
 msgid "Filename:"
-msgstr "파일이름 설정"
+msgstr "파일 이름:"
 
 #: ../share/extensions/polyhedron_3d.inx.h:12
 msgid "Fill Colour (Blue)"
-msgstr ""
+msgstr "채움 색상(청)"
 
 #: ../share/extensions/polyhedron_3d.inx.h:13
 msgid "Fill Colour (Green)"
-msgstr ""
+msgstr "채움 색상(녹)"
 
 #: ../share/extensions/polyhedron_3d.inx.h:14
 msgid "Fill Colour (Red)"
-msgstr ""
+msgstr "채움 색상(적)"
 
 #: ../share/extensions/polyhedron_3d.inx.h:16
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Fill Opacity/ %"
-msgstr "불투명도"
+msgstr "채움 불투명도/ %"
 
 #: ../share/extensions/polyhedron_3d.inx.h:17
 msgid "Great Dodecahedron"
-msgstr ""
+msgstr "큰 12면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:18
 msgid "Great Stellated Dodecahedron"
-msgstr ""
+msgstr "큰 12면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:19
 msgid "Icosahedron"
-msgstr ""
+msgstr "20면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:20
-#, fuzzy
 msgid "Light x-Position"
-msgstr "위치:"
+msgstr "빛 X-위치"
 
 #: ../share/extensions/polyhedron_3d.inx.h:21
-#, fuzzy
 msgid "Light y-Position"
-msgstr "위치:"
+msgstr "빛 Y-위치"
 
 #: ../share/extensions/polyhedron_3d.inx.h:22
-#, fuzzy
 msgid "Light z-Position"
-msgstr "위치:"
+msgstr "빛 Z-위치:"
 
 #: ../share/extensions/polyhedron_3d.inx.h:23
 msgid "Line Thickness / px"
-msgstr ""
+msgstr "선 두께 / 화소"
 
 #: ../share/extensions/polyhedron_3d.inx.h:24
 msgid "Load From File"
-msgstr ""
+msgstr "파일에서 읽어오기"
 
 #: ../share/extensions/polyhedron_3d.inx.h:25
 msgid "Maximum"
-msgstr ""
+msgstr "최대"
 
 #: ../share/extensions/polyhedron_3d.inx.h:26
 msgid "Mean"
-msgstr ""
+msgstr "중간"
 
 #: ../share/extensions/polyhedron_3d.inx.h:27
-#, fuzzy
 msgid "Minimum"
-msgstr "최소 크기"
+msgstr "최소"
 
 #: ../share/extensions/polyhedron_3d.inx.h:28
-#, fuzzy
 msgid "Model File"
-msgstr "모ë\93  í\98\95í\83\9c"
+msgstr "모ë\8d¸ í\8c\8cì\9d¼"
 
 #: ../share/extensions/polyhedron_3d.inx.h:29
-#, fuzzy
 msgid "Object Type"
-msgstr "객체"
+msgstr "객체 형태"
 
 #: ../share/extensions/polyhedron_3d.inx.h:30
-#, fuzzy
 msgid "Object:"
-msgstr "객체"
+msgstr "객체:"
 
 #: ../share/extensions/polyhedron_3d.inx.h:31
-#, fuzzy
 msgid "Octahedron"
-msgstr "미터"
+msgstr "8면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:33
-#, fuzzy
 msgid "Report Normal Vector Information"
-msgstr "메모리 사용량 정보"
+msgstr "정규 벡터 정보 보고"
 
 #: ../share/extensions/polyhedron_3d.inx.h:34
-#, fuzzy
 msgid "Rotate Around:"
-msgstr "노드 올리기"
+msgstr "회전:"
 
 #: ../share/extensions/polyhedron_3d.inx.h:35
-#, fuzzy
 msgid "Rotation / Degrees"
-msgstr "회전(_R)"
+msgstr "회전 / 각도"
 
 #: ../share/extensions/polyhedron_3d.inx.h:36
-#, fuzzy
 msgid "Scaling Factor"
-msgstr "선택자"
+msgstr "비율 요소"
 
 #: ../share/extensions/polyhedron_3d.inx.h:37
-#, fuzzy
 msgid "Shading"
-msgstr "간격:"
+msgstr "음영"
 
 #: ../share/extensions/polyhedron_3d.inx.h:39
 msgid "Small Triambic Icosahedron"
-msgstr ""
+msgstr "작은 Triambic 20면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:40
 msgid "Snub Cube"
-msgstr ""
+msgstr "팽팽한 6면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:41
 msgid "Snub Dodecahedron"
-msgstr ""
+msgstr "팽팽한 12면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:43
-#, fuzzy, no-c-format
 msgid "Stroke Opacity/ %"
-msgstr ""
+msgstr "윤곽선 불투명도/ %"
 
 #: ../share/extensions/polyhedron_3d.inx.h:45
 msgid "Tetrahedron"
-msgstr ""
+msgstr "사면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:46
 msgid "Then Rotate Around:"
-msgstr ""
+msgstr "그 때 회전:"
 
 #: ../share/extensions/polyhedron_3d.inx.h:47
 msgid "Truncated Cube"
-msgstr ""
+msgstr "잘린 6면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:48
 msgid "Truncated Dodecahedron"
-msgstr ""
+msgstr "잘린 12면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:49
 msgid "Truncated Icosahedron"
-msgstr ""
+msgstr "잘린 20면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:50
 msgid "Truncated Octahedron"
-msgstr ""
+msgstr "잘린 8면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:51
 msgid "Truncated Tetrahedron"
-msgstr ""
+msgstr "잘린 사면체"
 
 #: ../share/extensions/polyhedron_3d.inx.h:52
-#, fuzzy
 msgid "Vertices"
-msgstr "수직(_V)"
+msgstr "꼭지점"
 
 #: ../share/extensions/polyhedron_3d.inx.h:53
 msgid "View"
-msgstr ""
+msgstr "보기"
 
 #: ../share/extensions/polyhedron_3d.inx.h:54
 msgid "X-Axis"
-msgstr ""
+msgstr "X-축"
 
 #: ../share/extensions/polyhedron_3d.inx.h:55
 msgid "Y-Axis"
-msgstr ""
+msgstr "Y-축"
 
 #: ../share/extensions/polyhedron_3d.inx.h:56
 msgid "Z-Axis"
-msgstr ""
+msgstr "Z-축"
 
 #: ../share/extensions/polyhedron_3d.inx.h:57
 msgid "Z-Sort Faces By:"
-msgstr ""
+msgstr "Z-정렬 면:"
 
 #: ../share/extensions/ps_input.inx.h:1
 msgid "Postscript"
-msgstr "포스트 스크립트"
+msgstr "포스트스크립트"
 
 #: ../share/extensions/ps_input.inx.h:2
 msgid "Postscript (*.ps)"
-msgstr "포스트스크립 (*.ps)"
+msgstr "포스트스크립 (*.ps)"
 
 #: ../share/extensions/ps_input.inx.h:3
 msgid "Postscript Input"
-msgstr "포스트 스크립트 입력"
+msgstr "포스트스크립트 입력"
 
 #: ../share/extensions/radiusrand.inx.h:1
-#, fuzzy
 msgid "Jitter nodes"
-msgstr "노드 올리기"
+msgstr "노드를 조금씩 움직임"
 
 #: ../share/extensions/radiusrand.inx.h:2
-#, fuzzy
-msgid "Maximum displacement in X, px"
-msgstr "새로운 요소 노드"
+msgid "Maximum displacement, px"
+msgstr "X의 최대 위치, 화소"
 
 #: ../share/extensions/radiusrand.inx.h:3
-#, fuzzy
 msgid "Maximum displacement in Y, px"
-msgstr "새로운 요소 노드"
+msgstr "Y의 최대 위치, 화소"
 
 #: ../share/extensions/radiusrand.inx.h:5
-#, fuzzy
 msgid "Shift node handles"
-msgstr "임의의 노드 관리"
+msgstr "노드 핸들 이동"
 
 #: ../share/extensions/radiusrand.inx.h:6
-#, fuzzy
 msgid "Shift nodes"
-msgstr "임의의 노드"
+msgstr "노드 이동"
 
 #: ../share/extensions/radiusrand.inx.h:7
-msgid ""
-"This effect randomly shifts the nodes (and optionally node handles) of the "
-"selected path."
-msgstr ""
+msgid "This effect randomly shifts the nodes (and optionally node handles) of the selected path."
+msgstr "이 효과는 무작위로 선택 경로의 노드(그리고 부가 노드 핸들)를 이동시킴."
 
 #: ../share/extensions/radiusrand.inx.h:8
 msgid "Use normal distribution"
-msgstr "ì\9d¼ë°\98 ë°°í\8f¬í\8c\90 사용"
+msgstr "ì\9d¼ë°\98 ë\84ë°° 사용"
 
 #: ../share/extensions/render_alphabetsoup.inx.h:1
 msgid "Alphabet Soup"
-msgstr ""
+msgstr "알파벳 수프"
 
 #: ../share/extensions/render_alphabetsoup.inx.h:2
-#, fuzzy
 msgid "Random Seed"
-msgstr "임의의 트리"
+msgstr "임의 씨앗"
 
 #: ../share/extensions/render_barcode.inx.h:1
-#, fuzzy
 msgid "Bar Height:"
-msgstr "높이:"
+msgstr "ë§\89ë\8c\80 ë\86\92ì\9d´:"
 
 #: ../share/extensions/render_barcode.inx.h:2
 msgid "Barcode"
-msgstr ""
+msgstr "바코드"
 
 #: ../share/extensions/render_barcode.inx.h:3
 msgid "Barcode Data:"
-msgstr ""
+msgstr "바코드 자료:"
 
 #: ../share/extensions/render_barcode.inx.h:4
-#, fuzzy
 msgid "Barcode Type:"
-msgstr "  타입: "
+msgstr "바코드 타입:"
 
 #: ../share/extensions/restack.inx.h:2
-#, fuzzy
 msgid "Arbitrary Angle:"
-msgstr "각도"
+msgstr "임의 각도:"
 
 #: ../share/extensions/restack.inx.h:4
-#, fuzzy
 msgid "Bottom"
-msgstr "확대 축소 보기"
+msgstr "최하단"
 
 #: ../share/extensions/restack.inx.h:5
 msgid "Bottom to Top (90)"
-msgstr ""
+msgstr "최하단에서 최상단 (90)"
 
 #: ../share/extensions/restack.inx.h:6
-#, fuzzy
 msgid "Horizontal Point:"
-msgstr "수평 글자"
+msgstr "수평 점:"
 
 #: ../share/extensions/restack.inx.h:7
 msgid "Left"
-msgstr ""
+msgstr "왼쪽"
 
 #: ../share/extensions/restack.inx.h:8
 msgid "Left to Right (0)"
-msgstr ""
+msgstr "왼쪽에서 오른쪽으로 (0)"
 
 #: ../share/extensions/restack.inx.h:9
-#, fuzzy
 msgid "Middle"
-msgstr "ì \9c목"
+msgstr "ì¤\91ê°\84"
 
 #: ../share/extensions/restack.inx.h:10
 msgid "Radial Inward"
-msgstr ""
+msgstr "방사 안쪽"
 
 #: ../share/extensions/restack.inx.h:11
 msgid "Radial Outward"
-msgstr ""
+msgstr "방사 바깥쪽"
 
 #: ../share/extensions/restack.inx.h:12
-#, fuzzy
 msgid "Restack"
-msgstr " 리셋(_e) "
+msgstr "다시쌓기"
 
 #: ../share/extensions/restack.inx.h:13
-#, fuzzy
 msgid "Restack Direction:"
-msgstr "설명"
+msgstr "다시쌓기 방향:"
 
 #: ../share/extensions/restack.inx.h:14
-#, fuzzy
 msgid "Right"
-msgstr "높이:"
+msgstr "오른쪽"
 
 #: ../share/extensions/restack.inx.h:15
 msgid "Right to Left (180)"
-msgstr ""
+msgstr "오른쪽에서 왼쪽 (180)"
 
 #: ../share/extensions/restack.inx.h:17
 msgid "Top to Bottom (270)"
-msgstr ""
+msgstr "최상단에서 최하단으로 (270)"
 
 #: ../share/extensions/restack.inx.h:18
-#, fuzzy
 msgid "Vertical Point:"
-msgstr "수직 글자"
+msgstr "수직 점:"
 
 #: ../share/extensions/rtree.inx.h:1
 msgid "Initial size"
-msgstr "크기 인식"
+msgstr "초기 크기"
 
 #: ../share/extensions/rtree.inx.h:2
 msgid "Minimum size"
@@ -18876,500 +17578,248 @@ msgstr "최소 크기"
 
 #: ../share/extensions/rtree.inx.h:3
 msgid "Random Tree"
-msgstr "임의의 트리"
+msgstr "임의 분기"
 
 #: ../share/extensions/rubberstretch.inx.h:2
 #, no-c-format
 msgid "Curve (%):"
-msgstr ""
+msgstr "곡선 (%):"
 
 #: ../share/extensions/rubberstretch.inx.h:4
-#, fuzzy
 msgid "Rubber Stretch"
-msgstr "단계 숫자"
+msgstr "고무 확장"
 
 #: ../share/extensions/rubberstretch.inx.h:6
 #, no-c-format
 msgid "Strength (%):"
-msgstr ""
+msgstr "힘 (%):"
 
 #: ../share/extensions/sk1_input.inx.h:1
-#, fuzzy
 msgid "Open files saved in sK1 vector graphics editor"
-msgstr "SVG 벡터 일러스터 잉크스케이프"
+msgstr "sK1 벡터 그래픽 파일 열기"
 
 #: ../share/extensions/sk1_input.inx.h:2
 msgid "sK1 vector graphics files (.sk1)"
-msgstr ""
+msgstr "sK1 벡터 그래픽 파일 (.sk1)"
 
 #: ../share/extensions/sk1_input.inx.h:3
 msgid "sK1 vector graphics files input"
-msgstr ""
+msgstr "sK1벡터 그래픽 파일 입력"
 
 #: ../share/extensions/sk_input.inx.h:1
 msgid "A diagram created with the program Sketch"
-msgstr ""
+msgstr "프로그램 스케치로 생성된 도표"
 
 #: ../share/extensions/sk_input.inx.h:2
 msgid "Sketch Diagram (*.sk)"
-msgstr "스케치 아이어 그램 (*.sk)"
+msgstr "스케치 도표 (*.sk)"
 
 #: ../share/extensions/sk_input.inx.h:3
 msgid "Sketch Input"
-msgstr "스케치 들여오기"
+msgstr "스케치 입력"
 
 #: ../share/extensions/spirograph.inx.h:1
 msgid "Gear Placement"
-msgstr ""
+msgstr "톱니 위치"
 
 #: ../share/extensions/spirograph.inx.h:2
 msgid "Inside (Hypotrochoid)"
-msgstr ""
+msgstr "안쪽 (하이포트로코이드)"
 
 #: ../share/extensions/spirograph.inx.h:3
 msgid "Outside (Epitrochoid)"
-msgstr ""
+msgstr "바깥쪽 (에피트로코이드)"
 
 #: ../share/extensions/spirograph.inx.h:4
 msgid "Quality (Default = 16)"
-msgstr ""
+msgstr "질 (기본값 = 16)"
 
 #: ../share/extensions/spirograph.inx.h:5
 msgid "R - Ring Radius (px)"
-msgstr ""
+msgstr "R - 링 반경 (화소)"
 
 #: ../share/extensions/spirograph.inx.h:7
-#, fuzzy
 msgid "Rotation (deg)"
-msgstr "회전(_R)"
+msgstr "회전 (각도)"
 
 #: ../share/extensions/spirograph.inx.h:8
 msgid "Spirograph"
-msgstr ""
+msgstr "스피로그래피"
 
 #: ../share/extensions/spirograph.inx.h:9
 msgid "d - Pen Radius (px)"
-msgstr ""
+msgstr "d - 펜 반경 (화소)"
 
 #: ../share/extensions/spirograph.inx.h:10
 msgid "r - Gear Radius (px)"
-msgstr ""
+msgstr "r - 톱니 반경 (화소)"
 
 #: ../share/extensions/straightseg.inx.h:1
 msgid "Behavior"
-msgstr "동"
+msgstr "동"
 
 #: ../share/extensions/straightseg.inx.h:4
 msgid "Straighten Segments"
-msgstr ""
+msgstr "곧은 세그먼트"
 
 #: ../share/extensions/summersnight.inx.h:1
 msgid "Envelope"
-msgstr ""
+msgstr "봉투"
 
-#: ../share/extensions/svg2xaml.inx.h:1 ../share/extensions/xaml2svg.inx.h:1
+#: ../share/extensions/svg2xaml.inx.h:1
+#: ../share/extensions/xaml2svg.inx.h:1
 msgid "Microsoft XAML (*.xaml)"
-msgstr ""
+msgstr "마이크로소프트 XAML (*.xaml)"
 
-#: ../share/extensions/svg2xaml.inx.h:2 ../share/extensions/xaml2svg.inx.h:2
+#: ../share/extensions/svg2xaml.inx.h:2
+#: ../share/extensions/xaml2svg.inx.h:2
 msgid "Microsoft's GUI definition format"
-msgstr ""
+msgstr "마이크로소프트 GUI 정의 형식"
 
 #: ../share/extensions/svg2xaml.inx.h:3
-#, fuzzy
 msgid "XAML Output"
-msgstr "DXF 내보내기"
+msgstr "XAML 생성"
 
 #: ../share/extensions/svg_and_media_zip_output.inx.h:1
 msgid "Compressed Inkscape SVG with media (*.zip)"
-msgstr "미디어와 함께 압축된 잉크스케이프 SVG (*.zip)"
+msgstr "미디어와 함께 압축된 Inkscape SVG (*.zip)"
 
 #: ../share/extensions/svg_and_media_zip_output.inx.h:2
-msgid ""
-"Inkscape's native file format compressed with Zip and including all media "
-"files"
-msgstr ""
+msgid "Inkscape's native file format compressed with Zip and including all media files"
+msgstr "Inkscape 파일 Zip 압축 형식과 전체 미디어 파일 포함"
 
 #: ../share/extensions/svg_and_media_zip_output.inx.h:3
 msgid "ZIP Output"
 msgstr "ZIP 생성"
 
 #: ../share/extensions/text_braille.inx.h:1
-#, fuzzy
 msgid "Convert to Braille"
-msgstr "반전"
+msgstr "점자(브라유)로 반전"
 
 #: ../share/extensions/text_flipcase.inx.h:2
 msgid "fLIP cASE"
-msgstr ""
+msgstr "대소문자 뒤바꿈"
 
 #: ../share/extensions/text_lowercase.inx.h:2
-#, fuzzy
 msgid "lowercase"
-msgstr "노드를 아래도"
+msgstr "소문자"
 
 #: ../share/extensions/text_randomcase.inx.h:2
 msgid "rANdOm CasE"
-msgstr ""
+msgstr "임의 대소문자"
 
 #: ../share/extensions/text_replace.inx.h:1
 msgid "By:"
-msgstr ""
+msgstr "로:"
 
 #: ../share/extensions/text_replace.inx.h:2
-#, fuzzy
 msgid "Replace text"
-msgstr "ë\85¸ë\93\9c ì\82­ì \9c"
+msgstr "문ì\9e\90ì\97´ ì¹\98í\99\98"
 
 #: ../share/extensions/text_replace.inx.h:3
-#, fuzzy
 msgid "Replace:"
-msgstr "반복:"
+msgstr "치환:"
 
 #: ../share/extensions/text_sentencecase.inx.h:1
 msgid "Sentence case"
-msgstr ""
+msgstr "문장 대소문자"
 
 #: ../share/extensions/text_titlecase.inx.h:2
-#, fuzzy
 msgid "Title Case"
-msgstr "제목"
+msgstr "제목 대소문자"
 
 #: ../share/extensions/text_uppercase.inx.h:2
 msgid "UPPERCASE"
-msgstr ""
+msgstr "대문자"
 
 #: ../share/extensions/triangle.inx.h:1
-#, fuzzy
 msgid "Angle a / deg"
-msgstr "각도"
+msgstr "각도 a / 각"
 
 #: ../share/extensions/triangle.inx.h:2
-#, fuzzy
 msgid "Angle b / deg"
-msgstr "각도"
+msgstr "각도 b / 각"
 
 #: ../share/extensions/triangle.inx.h:3
-#, fuzzy
 msgid "Angle c / deg"
-msgstr "각도"
+msgstr "각도 c / 각"
 
 #: ../share/extensions/triangle.inx.h:4
 msgid "From Side a and Angles a, b"
-msgstr ""
+msgstr "a 면과 각도 a, b로 부터"
 
 #: ../share/extensions/triangle.inx.h:5
 msgid "From Side c and Angles a, b"
-msgstr ""
+msgstr "c 면과 각도 a, b로 부터"
 
 #: ../share/extensions/triangle.inx.h:6
 msgid "From Sides a, b and Angle a"
-msgstr ""
+msgstr "a ,b 면과 각도 a로 부터"
 
 #: ../share/extensions/triangle.inx.h:7
 msgid "From Sides a, b and Angle c"
-msgstr ""
+msgstr "a,b 면과 각도 c로 부터"
 
 #: ../share/extensions/triangle.inx.h:8
 msgid "From Three Sides"
-msgstr ""
+msgstr "3면으로 부터"
 
 #: ../share/extensions/triangle.inx.h:11
 msgid "Side Length a / px"
-msgstr ""
+msgstr "면 길이 a / 화소"
 
 #: ../share/extensions/triangle.inx.h:12
 msgid "Side Length b / px"
-msgstr ""
+msgstr "면 길이 b / 화소"
 
 #: ../share/extensions/triangle.inx.h:13
 msgid "Side Length c / px"
-msgstr ""
+msgstr "면 길이 c / 화소"
 
 #: ../share/extensions/triangle.inx.h:14
-#, fuzzy
 msgid "Triangle"
-msgstr "각도"
+msgstr "삼각형"
 
 #: ../share/extensions/txt2svg.inx.h:1
 msgid "ASCII Text"
-msgstr "아스키 텍스트"
+msgstr "ASCII 문자열"
 
 #: ../share/extensions/txt2svg.inx.h:2
 msgid "Text File (*.txt)"
-msgstr "텍스트 파일 (*.txt)"
+msgstr "문자열 파일 (*.txt)"
 
 #: ../share/extensions/txt2svg.inx.h:3
 msgid "Text Input"
-msgstr "텍스트 입력"
+msgstr "문자열 입력"
 
 #: ../share/extensions/whirl.inx.h:1
 msgid "Amount of whirl"
-msgstr ""
+msgstr "회오리 정도"
 
 #: ../share/extensions/whirl.inx.h:3
 msgid "Rotation is clockwise"
-msgstr "시계방향으로 회전"
+msgstr "시계방향 회전"
 
 #: ../share/extensions/whirl.inx.h:4
 msgid "Whirl"
-msgstr ""
+msgstr "회오리"
 
 #: ../share/extensions/wmf_input.inx.h:1
 msgid "A popular graphics file format for clipart"
-msgstr "í\81´ë¦½ì\95\84í\8a¸ë¥¼ ì\9c\84í\95\9c ì\9c ëª\85í\95\9c ê·¸ë\9e\98í\94½ í\8c\8cì\9d¼ í\8f¬ë©§"
+msgstr "í\81´ë¦½ì\95\84í\8a¸ë¥¼ ì\9c\84í\95\9c ì\9c ëª\85í\95\9c ê·¸ë\9e\98í\94½ í\8c\8cì\9d¼ í\98\95ì\8b\9d"
 
 #: ../share/extensions/wmf_input.inx.h:2
 msgid "Windows Metafile (*.wmf)"
-msgstr ""
+msgstr "윈도우 메타파일 (*.wmf)"
 
 #: ../share/extensions/wmf_input.inx.h:3
 msgid "Windows Metafile Input"
-msgstr "윈도우즈 메타파일 불러오기"
+msgstr "윈도우즈 메타파일 입력"
 
 #: ../share/extensions/xaml2svg.inx.h:3
-#, fuzzy
 msgid "XAML Input"
-msgstr "DXF 불러오기"
-
-#~ msgid ""
-#~ "Cannot set <b>%s</b>: Another element with value <b>%s</b> already exists!"
-#~ msgstr ""
-#~ "<b>%s</b>로 설정할수 없음: 다른 개체가 <b>%s</b> 값을 이미 가지고 있음!"
-
-#, fuzzy
-#~ msgid "Bend Path"
-#~ msgstr "곡선"
-
-#, fuzzy
-#~ msgid "Space between copies of the pattern"
-#~ msgstr "점선 유형"
-
-#, fuzzy
-#~ msgid "Nothing in the clipboard."
-#~ msgstr "클립보드에 아무것도 없음"
-
-#, fuzzy
-#~ msgid "Nothing on the style clipboard."
-#~ msgstr "클립보드에 아무것도 없음"
-
-#, fuzzy
-#~ msgid "<b>Snapping to special nodes</b>"
-#~ msgstr "<b>선</b>"
-
-#, fuzzy
-#~ msgid "Shape"
-#~ msgstr "형태"
-
-#, fuzzy
-#~ msgid "Tall"
-#~ msgstr "제목"
-
-#, fuzzy
-#~ msgid "Square"
-#~ msgstr "소스"
-
-#, fuzzy
-#~ msgid "Wide"
-#~ msgstr "숨기기(_H)"
-
-#, fuzzy
-#~ msgid "Delete Segment"
-#~ msgstr "선택부분 지우기"
-
-#, fuzzy
-#~ msgid "Custom..."
-#~ msgstr "개인적(_C)"
-
-#, fuzzy
-#~ msgid "Select option: "
-#~ msgstr "선택"
-
-#, fuzzy
-#~ msgid "Select second option: "
-#~ msgstr "열 화일을 선택하시오"
-
-#~ msgid "Random Point"
-#~ msgstr "램덤 포인트:"
-
-#~ msgid "Random Position"
-#~ msgstr "임의의 위치"
-
-#, fuzzy
-#~ msgid "X Channel"
-#~ msgstr "취소"
-
-#, fuzzy
-#~ msgid "Y Channel"
-#~ msgstr "취소"
-
-#, fuzzy
-#~ msgid "Search Tag"
-#~ msgstr "이미지 찾기"
-
-#, fuzzy
-#~ msgid "Degrees:"
-#~ msgstr "삭제(_D)"
-
-#, fuzzy
-#~ msgid "PostScript 3"
-#~ msgstr "포스트 스크립트"
-
-#, fuzzy
-#~ msgid "Start point jitter"
-#~ msgstr "채도"
-
-#, fuzzy
-#~ msgid "Slope"
-#~ msgstr "확대/축소(_S)"
-
-#, fuzzy
-#~ msgid "Intercept"
-#~ msgstr "선택"
-
-#, fuzzy
-#~ msgid "Snap at specified d_istance"
-#~ msgstr "잉크스케이프: 고급(_A)"
-
-#, fuzzy
-#~ msgid "Snap at specified dis_tance"
-#~ msgstr "잉크스케이프: 고급(_A)"
-
-#, fuzzy
-#~ msgid "Snap at specified distan_ce"
-#~ msgstr "잉크스케이프: 고급(_A)"
-
-#, fuzzy
-#~ msgid "_Include the object's rotation center"
-#~ msgstr "숨겨진 객체를 포함해 찾기"
-
-#, fuzzy
-#~ msgid "<b>Miscellaneous</b>"
-#~ msgstr "<b>원</b>"
-
-#, fuzzy
-#~ msgid "Date:"
-#~ msgstr "날짜"
-
-#, fuzzy
-#~ msgid "Format:"
-#~ msgstr "포멧"
-
-#, fuzzy
-#~ msgid "Creator:"
-#~ msgstr "제작자"
-
-#, fuzzy
-#~ msgid "Publisher:"
-#~ msgstr "출판자"
-
-#, fuzzy
-#~ msgid "Identifier:"
-#~ msgstr "구별자"
-
-#, fuzzy
-#~ msgid "Source:"
-#~ msgstr "소스"
-
-#, fuzzy
-#~ msgid "Relation:"
-#~ msgstr "해상도:"
-
-#, fuzzy
-#~ msgid "Language:"
-#~ msgstr "언어"
-
-#, fuzzy
-#~ msgid "Subject:"
-#~ msgstr "객체"
-
-#, fuzzy
-#~ msgid "Coverage:"
-#~ msgstr "표지"
-
-#, fuzzy
-#~ msgid "Contributor:"
-#~ msgstr "기증자"
-
-#, fuzzy
-#~ msgid "Default Metadata"
-#~ msgstr "기본"
-
-#, fuzzy
-#~ msgid "Creative Commons: Attribution"
-#~ msgstr "저작자표시"
-
-#, fuzzy
-#~ msgid "Creative Commons: Attribution-ShareAlike"
-#~ msgstr "저작자표시-동일 조건 변경 허락"
-
-#, fuzzy
-#~ msgid "Creative Commons: Attribution-NoDerivatives"
-#~ msgstr "자작자표시-변경금지"
-
-#, fuzzy
-#~ msgid "Creative Commons: Attribution-NonCommercial"
-#~ msgstr "저작자표시-비영리"
-
-#, fuzzy
-#~ msgid "Creative Commons: Attribution-NonCommercial-ShareAlike"
-#~ msgstr "저작자표시-비영리-동일조건변경허락"
-
-#, fuzzy
-#~ msgid "Creative Commons: Attribution-NonCommercial-NoDerivatives"
-#~ msgstr "저작자표시-비영리-변경금지"
-
-#, fuzzy
-#~ msgid "Free Art License"
-#~ msgstr "새파일 열기"
-
-#, fuzzy
-#~ msgid "Angle Y"
-#~ msgstr "각도"
-
-#~ msgid "Move by:"
-#~ msgstr "다음에 의한 이동 :"
-
-#~ msgid "Move to:"
-#~ msgstr "다음으로 이동:"
-
-#~ msgid "Moving %s %s"
-#~ msgstr "%s %s 이동"
-
-#, fuzzy
-#~ msgid "Change layer opacity"
-#~ msgstr "주 투명도"
-
-#, fuzzy
-#~ msgid "Opacity, %:"
-#~ msgstr "불투명도"
-
-#, fuzzy
-#~ msgid "Path along path"
-#~ msgstr "간격띄우기 유형"
-
-#, fuzzy
-#~ msgid "Pattern along path"
-#~ msgstr "간격띄우기 유형"
-
-#, fuzzy
-#~ msgid "unknown error"
-#~ msgstr "알수 없는"
-
-#, fuzzy
-#~ msgid "Snap details"
-#~ msgstr "노드 올리기"
-
-#, fuzzy
-#~ msgid "Gridtype"
-#~ msgstr "  타입: "
-
-#, fuzzy
-#~ msgid "Gradients"
-#~ msgstr "색변화"
+msgstr "XAML 입력"
 
-#~ msgid "Horizontal kerning"
-#~ msgstr "수평 간격"
+msgid "Custom..."
+msgstr "사용자..."
 
-#~ msgid "Vertical kerning"
-#~ msgstr "수직 간격"
index feb5428eace76fa5f1064dafb682990790f4ffc1..aee7636aea682d2194107589a7bfb2657d9c4761 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
 # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 msgid ""
 msgstr ""
-"Project-Id-Version: Inkscape 0.46\n"
+"Project-Id-Version: Inkscape 0.47\n"
 "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2008-06-12 21:31+0100\n"
-"PO-Revision-Date: 2008-06-02 22:21+0100\n"
+"POT-Creation-Date: 2008-10-14 11:59+0100\n"
+"PO-Revision-Date: 2008-10-14 14:46-0000\n"
 "Last-Translator: Marcin Floryan <marcin.floryan@gmail.com>\n"
 "Language-Team: Polish <inkscapeplteam@gmail.com>\n"
 "MIME-Version: 1.0\n"
@@ -21,8 +21,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-Language: Polish\n"
 "X-Poedit-Country: POLAND\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Basepath: ..\\src\n"
 
 #: ../inkscape.desktop.in.h:1
 msgid "Create and edit Scalable Vector Graphics images"
@@ -32,19381 +32,18886 @@ msgstr "Tworzenie i edycja grafiki wektorowej SVG"
 msgid "Inkscape Vector Graphics Editor"
 msgstr "Inkscape - edytor grafiki wektorowej"
 
-#: ../src/arc-context.cpp:338
-msgid ""
-"<b>Ctrl</b>: make circle or integer-ratio ellipse, snap arc/segment angle"
-msgstr ""
-"<b>Ctrl</b>: tworzenie okręgów lub proporcjonalnych elips, przyciąganie do "
-"kąta półkola/łuku"
+#. vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 encoding=utf-8 textwidth=99
+#: ../share/extensions/addnodes.inx.h:1
+msgid "Add Nodes"
+msgstr "Dodaj węzły"
 
-#: ../src/arc-context.cpp:339 ../src/rect-context.cpp:383
-msgid "<b>Shift</b>: draw around the starting point"
-msgstr "<b>Shift</b>: rysowanie od punktu startowego we wszystkich kierunkach"
+#: ../share/extensions/addnodes.inx.h:2
+msgid "By max. segment length"
+msgstr "Wg maksymalnej długość odcinka"
 
-#: ../src/arc-context.cpp:485
-#, c-format
-msgid ""
-"<b>Ellipse</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> "
-"to draw around the starting point"
-msgstr ""
-"<b>Elipsa</b>: %s &#215; %s (wymuszona do proporcji %d:%d); z <b>Shift</b>, "
-"aby rysować wokół punktu startowego"
+#: ../share/extensions/addnodes.inx.h:3
+msgid "By number of segments"
+msgstr "Wg liczby zębów"
 
-#: ../src/arc-context.cpp:487
-#, c-format
-msgid ""
-"<b>Ellipse</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-"
-"ratio ellipse; with <b>Shift</b> to draw around the starting point"
-msgstr ""
-"<b>Elipsa</b>: %s &#215; %s; z <b>Ctrl</b>, aby utworzyć  koło lub "
-"proporcjonalną elipsę; z <b>Shift</b>, aby rysować wokół punktu startowego"
+#: ../share/extensions/addnodes.inx.h:4
+msgid "Division method"
+msgstr "Metoda podziału"
 
-#: ../src/arc-context.cpp:506
-msgid "Create ellipse"
-msgstr "Utwórz elipsę"
+#: ../share/extensions/addnodes.inx.h:5
+msgid "Maximum segment length (px)"
+msgstr "Maksymalna długość odcinka (px)"
 
-#: ../src/box3d-context.cpp:448 ../src/box3d-context.cpp:455
-#: ../src/box3d-context.cpp:462 ../src/box3d-context.cpp:469
-#: ../src/box3d-context.cpp:476 ../src/box3d-context.cpp:483
-msgid "Change perspective (angle of PLs)"
-msgstr "Zmień perspektywę (kąt linii)"
+#: ../share/extensions/addnodes.inx.h:6
+#: ../share/extensions/edge3d.inx.h:6
+#: ../share/extensions/flatten.inx.h:3
+#: ../share/extensions/fractalize.inx.h:2
+#: ../share/extensions/markers_strokepaint.inx.h:2
+#: ../share/extensions/perspective.inx.h:1
+#: ../share/extensions/radiusrand.inx.h:4
+#: ../share/extensions/rubberstretch.inx.h:3
+#: ../share/extensions/straightseg.inx.h:2
+#: ../share/extensions/summersnight.inx.h:2
+#: ../share/extensions/whirl.inx.h:2
+msgid "Modify Path"
+msgstr "Modyfikuj ścieżkę"
 
-#. status text
-#: ../src/box3d-context.cpp:638
-msgid "<b>3D Box</b>; with <b>Shift</b> to extrude along the Z axis"
-msgstr "<b>Obiekt 3D</b>; z <b>Shift</b> - wytłaczanie wzdłuż osi Z"
+#: ../share/extensions/addnodes.inx.h:7
+msgid "Number of segments"
+msgstr "Liczba odcinków"
 
-#: ../src/box3d-context.cpp:662
-msgid "Create 3D box"
-msgstr "Utwórz obiekt 3D"
+#: ../share/extensions/ai_input.inx.h:1
+msgid "AI 8.0 Input"
+msgstr "Źródło AI 8.0"
 
-#: ../src/box3d.cpp:315
-msgid "<b>3D Box</b>"
-msgstr "<b>Obiekt 3D</b>"
+#: ../share/extensions/ai_input.inx.h:2
+msgid "Adobe Illustrator 8.0 and below (*.ai)"
+msgstr "Adobe Illustrator 8.0 lub starszy (*.ai)"
 
-#: ../src/connector-context.cpp:522
-msgid "Creating new connector"
-msgstr "Tworzenie nowego łącznika"
+#: ../share/extensions/ai_input.inx.h:3
+msgid "Open files saved with Adobe Illustrator 8.0 or older"
+msgstr "Otwórz pliki zapisane w programie Adobe Illustrator 8.0 lub starszym"
 
-#: ../src/connector-context.cpp:751
-msgid "Connector endpoint drag cancelled."
-msgstr "Anulowano przeciąganie punktu końcowego łącznika"
+#: ../share/extensions/ai_output.inx.h:1
+msgid "AI 8.0 Output"
+msgstr "Zapis AI 8.0"
 
-#: ../src/connector-context.cpp:799
-msgid "Reroute connector"
-msgstr "Przekieruj łącznik"
+#: ../share/extensions/ai_output.inx.h:2
+msgid "Adobe Illustrator 8.0 (*.ai)"
+msgstr "Adobe Illustrator 8.0 (*.ai)"
 
-#. Flush pending updates
-#: ../src/connector-context.cpp:963
-msgid "Create connector"
-msgstr "Utwórz łącznik"
+#: ../share/extensions/ai_output.inx.h:3
+msgid "Write Adobe Illustrator 8.0 (Postscript-based)"
+msgstr "Zapisz jako Adobe Illustrator 8.0 (oparty o Postscript)"
 
-#: ../src/connector-context.cpp:987
-msgid "Finishing connector"
-msgstr "Zakończono tworzenie łącznika"
+#: ../share/extensions/aisvg.inx.h:1
+msgid "AI SVG Input"
+msgstr "Źródło plików AI SVG"
 
-#: ../src/connector-context.cpp:1130
-msgid "<b>Connection point</b>: click or drag to create a new connector"
-msgstr ""
-"<b>Punkt połączenia</b> - kliknij lub przeciągnij, aby utworzyć nowy łącznik"
+#: ../share/extensions/aisvg.inx.h:2
+msgid "Adobe Illustrator SVG (*.ai.svg)"
+msgstr "Adobe Illustrator SVG (*.ai.svg)"
 
-#: ../src/connector-context.cpp:1203
-msgid "<b>Connector endpoint</b>: drag to reroute or connect to new shapes"
-msgstr ""
-"<b>Punkt końcowy łącznika</b> - przeciągnij, aby przestawić lub połącz z "
-"nowym kształtem"
+#: ../share/extensions/aisvg.inx.h:3
+msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening"
+msgstr "Wyczyść niestandardowe dodatki programu Adobe Illustrator przed otwarciem pliku SVG"
 
-#: ../src/connector-context.cpp:1314
-msgid "Select <b>at least one non-connector object</b>."
-msgstr "Zaznacz <b>co najmniej jeden obiekt nie będący łącznikiem</b>"
+#: ../share/extensions/ccx_input.inx.h:1
+msgid "Corel DRAW Compressed Exchange files (.ccx)"
+msgstr "Pliki Corel DRAW Compressed Exchange (.ccx)"
 
-#: ../src/connector-context.cpp:1319 ../src/widgets/toolbox.cpp:5554
-msgid "Make connectors avoid selected objects"
-msgstr "Utwórz łączniki omijające zaznaczone obiekty"
+#: ../share/extensions/ccx_input.inx.h:2
+msgid "Corel DRAW Compressed Exchange files input"
+msgstr "Źródło plików Corel DRAW Compressed Exchange"
 
-#: ../src/connector-context.cpp:1320 ../src/widgets/toolbox.cpp:5564
-msgid "Make connectors ignore selected objects"
-msgstr "Utwórz łączniki przechodzące przez zaznaczone obiekty"
+#: ../share/extensions/ccx_input.inx.h:3
+msgid "Open compressed exchange files saved in Corel DRAW"
+msgstr "Otwórz skompresowane pliki wymiany zapisane w programie Corel DRAW"
 
-#: ../src/context-fns.cpp:37 ../src/context-fns.cpp:66
-msgid "<b>Current layer is hidden</b>. Unhide it to be able to draw on it."
-msgstr ""
-"<b>Aktywna warstwa jest ukryta</b>. Aby móc na niej rysować włącz jej "
-"widzialność."
+#: ../share/extensions/cdr_input.inx.h:1
+msgid "Corel DRAW 7-X4 files (*.cdr)"
+msgstr "Pliki Corel DRAW 7-X4 (*.cdr)"
 
-#: ../src/context-fns.cpp:43 ../src/context-fns.cpp:72
-msgid "<b>Current layer is locked</b>. Unlock it to be able to draw on it."
-msgstr ""
-"<b>Aktywna warstwa jest zablokowana</b>. Aby móc na niej rysować odblokuj ją."
+#: ../share/extensions/cdr_input.inx.h:2
+msgid "Corel DRAW Input"
+msgstr "Źródło plików Corel DRAW"
 
-#: ../src/desktop.cpp:782
-msgid "No previous zoom."
-msgstr "Brak poprzedniego powiększenia"
+#: ../share/extensions/cdr_input.inx.h:3
+msgid "Open files saved in Corel DRAW 7-X4"
+msgstr "Otwórz pliki zapisane w programie Corel DRAW 7-X4"
 
-#: ../src/desktop.cpp:807
-msgid "No next zoom."
-msgstr "Brak następnego powiększenia"
+#: ../share/extensions/cdt_input.inx.h:1
+msgid "Corel DRAW 7-13 template files (.cdt)"
+msgstr "Pliki Corel DRAW 7-13 template (.cdt)"
 
-#: ../src/desktop-events.cpp:175
-msgid "Create guide"
-msgstr "Utwórz prowadnicę"
+#: ../share/extensions/cdt_input.inx.h:2
+msgid "Corel DRAW templates input"
+msgstr "Źródło szablonów Corel DRAW"
 
-#: ../src/desktop-events.cpp:221 ../src/desktop-events.cpp:275
-#: ../src/dialogs/guidelinedialog.cpp:127
-msgid "Delete guide"
-msgstr "Usuń prowadnicę"
+#: ../share/extensions/cdt_input.inx.h:3
+msgid "Open files saved in Corel DRAW 7-13"
+msgstr "Otwórz pliki zapisane w programie Corel DRAW 7-13"
 
-#: ../src/desktop-events.cpp:269
-msgid "Move guide"
-msgstr "Przenieś prowadnicę"
+#: ../share/extensions/cgm_input.inx.h:1
+msgid "Computer Graphics Metafile files (.cgm)"
+msgstr "Pliki Computer Graphics Metafile (.cgm)"
 
-#: ../src/desktop-events.cpp:290
-#, c-format
-msgid "<b>Guideline</b>: %s"
-msgstr "<b>Prowadnica</b>: %s"
+#: ../share/extensions/cgm_input.inx.h:2
+msgid "Computer Graphics Metafile files input"
+msgstr "Źródło plików Computer Graphics Metafile"
 
-#: ../src/dialogs/clonetiler.cpp:168
-msgid "<small>Nothing selected.</small>"
-msgstr "<small>Nic nie zaznaczono</small>"
+#: ../share/extensions/cgm_input.inx.h:3
+msgid "Open Computer Graphics Metafile files"
+msgstr "Otwórz pliki zapisane w programie Computer Graphics Metafile"
 
-#: ../src/dialogs/clonetiler.cpp:174
-msgid "<small>More than one object selected.</small>"
-msgstr "<small>Zaznaczono więcej niż jeden obiekt</small>"
+#: ../share/extensions/cmx_input.inx.h:1
+msgid "Corel DRAW Presentation Exchange files (.cmx)"
+msgstr "Pliki Corel DRAW Presentation Exchange (.cmx)"
 
-#: ../src/dialogs/clonetiler.cpp:181
-#, c-format
-msgid "<small>Object has <b>%d</b> tiled clones.</small>"
-msgstr "<small>Obiekt posiada <b>%d</b> sąsiadujących klonów</small>"
+#: ../share/extensions/cmx_input.inx.h:2
+msgid "Corel DRAW Presentation Exchange files input"
+msgstr "Źródło plików Corel DRAW Presentation Exchange"
 
-#: ../src/dialogs/clonetiler.cpp:186
-msgid "<small>Object has no tiled clones.</small>"
-msgstr "<small>Obiekt nie posiada sąsiadujących klonów</small>"
+#: ../share/extensions/cmx_input.inx.h:3
+msgid "Open presentation exchange files saved in Corel DRAW"
+msgstr "Otwórz pliki prezentacji zapisane w programie Corel DRAW"
 
-#: ../src/dialogs/clonetiler.cpp:984
-msgid "Select <b>one object</b> whose tiled clones to unclump."
-msgstr ""
-"Wybierz <b>jeden obiekt</b>, którego sąsiadujące klony mają zostać "
-"rozproszone"
+#: ../share/extensions/color_brighter.inx.h:1
+msgid "Brighter"
+msgstr "Jaśniejszy"
 
-#: ../src/dialogs/clonetiler.cpp:1006
-msgid "Unclump tiled clones"
-msgstr "Rozprosz sąsiadujące klony"
+#: ../share/extensions/color_brighter.inx.h:2
+#: ../share/extensions/color_custom.inx.h:2
+#: ../share/extensions/color_darker.inx.h:1
+#: ../share/extensions/color_desaturate.inx.h:1
+#: ../share/extensions/color_grayscale.inx.h:1
+#: ../share/extensions/color_lesshue.inx.h:1
+#: ../share/extensions/color_lesslight.inx.h:1
+#: ../share/extensions/color_lesssaturation.inx.h:1
+#: ../share/extensions/color_morehue.inx.h:1
+#: ../share/extensions/color_morelight.inx.h:1
+#: ../share/extensions/color_moresaturation.inx.h:1
+#: ../share/extensions/color_negative.inx.h:1
+#: ../share/extensions/color_randomize.inx.h:1
+#: ../share/extensions/color_removeblue.inx.h:1
+#: ../share/extensions/color_removegreen.inx.h:1
+#: ../share/extensions/color_removered.inx.h:1
+#: ../share/extensions/color_replace.inx.h:2
+#: ../share/extensions/color_rgbbarrel.inx.h:1
+#: ../src/dialogs/clonetiler.cpp:2623
+#: ../src/dialogs/clonetiler.cpp:2770
+#: ../src/extension/internal/bitmap/colorize.cpp:51
+msgid "Color"
+msgstr "Kolor"
 
-#: ../src/dialogs/clonetiler.cpp:1036
-msgid "Select <b>one object</b> whose tiled clones to remove."
-msgstr ""
-"Wybierz <b>jeden obiekt</b>, który posiada sąsiadujące kopie do usunięcia"
+#: ../share/extensions/color_custom.inx.h:1
+msgid "Blue Function"
+msgstr "Funkcja składowej b (niebieski)"
 
-#: ../src/dialogs/clonetiler.cpp:1059
-msgid "Delete tiled clones"
-msgstr "Usuń sąsiadujące klony"
+#: ../share/extensions/color_custom.inx.h:3
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1375
+msgid "Custom"
+msgstr "Dostosuj"
 
-#: ../src/dialogs/clonetiler.cpp:1105 ../src/selection-chemistry.cpp:1818
-msgid "Select an <b>object</b> to clone."
-msgstr "Wybierz <b>obiekt</b> do klonowania"
+#: ../share/extensions/color_custom.inx.h:4
+msgid "Green Function"
+msgstr "Funkcja składowej g (zielony)"
 
-#: ../src/dialogs/clonetiler.cpp:1111
-msgid ""
-"If you want to clone several objects, <b>group</b> them and <b>clone the "
-"group</b>."
-msgstr ""
-"Jeśli chcesz sklonować kilka obiektów, <b>zgrupuj</b> je najpierw, a "
-"następnie <b>sklonuj grupę</b>"
+#: ../share/extensions/color_custom.inx.h:5
+msgid "Red Function"
+msgstr "Funkcja składowej r (czerwony)"
 
-#: ../src/dialogs/clonetiler.cpp:1120
-msgid "<small>Creating tiled clones...</small>"
-msgstr "<small>Tworzenie sąsiadujących klonów...</small>"
+#: ../share/extensions/color_darker.inx.h:2
+msgid "Darker"
+msgstr "Ciemniejszy"
 
-#: ../src/dialogs/clonetiler.cpp:1527
-msgid "Create tiled clones"
-msgstr "Utwórz rozmieszczone klony"
+#: ../share/extensions/color_desaturate.inx.h:2
+msgid "Desaturate"
+msgstr "Mniejsze nasycenie"
 
-#: ../src/dialogs/clonetiler.cpp:1710
-msgid "<small>Per row:</small>"
-msgstr "<small>Wiersze</small>"
+#: ../share/extensions/color_grayscale.inx.h:2
+msgid "Grayscale"
+msgstr "Skala szarości"
 
-#: ../src/dialogs/clonetiler.cpp:1723
-msgid "<small>Per column:</small>"
-msgstr "<small>Kolumny</small>"
+#: ../share/extensions/color_lesshue.inx.h:2
+msgid "Less Hue"
+msgstr "Mniejsze zabarwienie"
 
-#: ../src/dialogs/clonetiler.cpp:1731
-msgid "<small>Randomize:</small>"
-msgstr "<small>Losowo</small>"
+#: ../share/extensions/color_lesslight.inx.h:2
+msgid "Less Light"
+msgstr "Mniej światła"
 
-#: ../src/dialogs/clonetiler.cpp:1885
-msgid "_Symmetry"
-msgstr "_Symetria"
+#: ../share/extensions/color_lesssaturation.inx.h:2
+msgid "Less Saturation"
+msgstr "Mniejsze nasycenie"
 
-#. TRANSLATORS: For the following 17 symmetry groups, see
-#. * http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples);
-#. * http://www.clarku.edu/~djoyce/wallpaper/seventeen.html (English vocabulary); or
-#. * http://membres.lycos.fr/villemingerard/Geometri/Sym1D.htm (French vocabulary).
-#.
-#: ../src/dialogs/clonetiler.cpp:1893
-msgid "Select one of the 17 symmetry groups for the tiling"
-msgstr "Wybierz jedną z 17 grup symetrii do klonowania"
+#: ../share/extensions/color_morehue.inx.h:2
+msgid "More Hue"
+msgstr "Większe zabarwienie"
 
-#. TRANSLATORS: "translation" means "shift" / "displacement" here.
-#: ../src/dialogs/clonetiler.cpp:1904
-msgid "<b>P1</b>: simple translation"
-msgstr "<b>P1</b>: proste przesunięcie"
+#: ../share/extensions/color_morelight.inx.h:2
+msgid "More Light"
+msgstr "Więcej światła"
 
-#: ../src/dialogs/clonetiler.cpp:1905
-msgid "<b>P2</b>: 180&#176; rotation"
-msgstr "<b>P2</b>: obrót o 180&#176;"
+#: ../share/extensions/color_moresaturation.inx.h:2
+msgid "More Saturation"
+msgstr "Większe nasycenie"
 
-#: ../src/dialogs/clonetiler.cpp:1906
-msgid "<b>PM</b>: reflection"
-msgstr "<b>PM</b>: odbicie"
+#: ../share/extensions/color_negative.inx.h:2
+msgid "Negative"
+msgstr "Negatyw"
 
-#. TRANSLATORS: "glide reflection" is a reflection and a translation combined.
-#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html
-#: ../src/dialogs/clonetiler.cpp:1909
-msgid "<b>PG</b>: glide reflection"
-msgstr "<b>PG</b>: odbicie z przesunięciem"
+#: ../share/extensions/color_randomize.inx.h:2
+#: ../src/extension/internal/bitmap/modulate.cpp:43
+#: ../src/flood-context.cpp:274
+#: ../src/widgets/sp-color-icc-selector.cpp:235
+#: ../src/widgets/sp-color-icc-selector.cpp:236
+#: ../src/widgets/sp-color-scales.cpp:424
+#: ../src/widgets/sp-color-scales.cpp:425
+#: ../src/widgets/toolbox.cpp:3815
+msgid "Hue"
+msgstr "Barwa"
 
-#: ../src/dialogs/clonetiler.cpp:1910
-msgid "<b>CM</b>: reflection + glide reflection"
-msgstr "<b>CM</b>: odbicie + odbicie z przesunięciem"
+#: ../share/extensions/color_randomize.inx.h:3
+#: ../src/flood-context.cpp:276
+#: ../src/widgets/sp-color-icc-selector.cpp:236
+#: ../src/widgets/sp-color-scales.cpp:430
+#: ../src/widgets/sp-color-scales.cpp:431
+#: ../src/widgets/toolbox.cpp:3845
+msgid "Lightness"
+msgstr "Jasność"
 
-#: ../src/dialogs/clonetiler.cpp:1911
-msgid "<b>PMM</b>: reflection + reflection"
-msgstr "<b>PMM</b>: odbicie w obu kierunkach"
+#: ../share/extensions/color_randomize.inx.h:4
+msgid "Randomize"
+msgstr "Zmiana losowa"
 
-#: ../src/dialogs/clonetiler.cpp:1912
-msgid "<b>PMG</b>: reflection + 180&#176; rotation"
-msgstr "<b>PMG</b>: odbicie + obrót o 180&#176;"
+#: ../share/extensions/color_randomize.inx.h:5
+#: ../src/extension/internal/bitmap/modulate.cpp:42
+#: ../src/flood-context.cpp:275
+#: ../src/ui/dialog/inkscape-preferences.cpp:761
+#: ../src/widgets/sp-color-icc-selector.cpp:235
+#: ../src/widgets/sp-color-icc-selector.cpp:236
+#: ../src/widgets/sp-color-scales.cpp:427
+#: ../src/widgets/sp-color-scales.cpp:428
+#: ../src/widgets/toolbox.cpp:3830
+msgid "Saturation"
+msgstr "Nasycenie"
 
-#: ../src/dialogs/clonetiler.cpp:1913
-msgid "<b>PGG</b>: glide reflection + 180&#176; rotation"
-msgstr "<b>PGG</b>: odbicie z przesunięciem + obrót o 180&#176;"
+#: ../share/extensions/color_removeblue.inx.h:2
+msgid "Remove Blue"
+msgstr "Usuń niebieski"
 
-#: ../src/dialogs/clonetiler.cpp:1914
-msgid "<b>CMM</b>: reflection + reflection + 180&#176; rotation"
-msgstr "<b>CMM</b>: odbicie + odbicie + obrót o 180&#176;"
+#: ../share/extensions/color_removegreen.inx.h:2
+msgid "Remove Green"
+msgstr "Usuń zielony"
 
-#: ../src/dialogs/clonetiler.cpp:1915
-msgid "<b>P4</b>: 90&#176; rotation"
-msgstr "<b>P4</b>: obrót o 90&#176;"
+#: ../share/extensions/color_removered.inx.h:2
+msgid "Remove Red"
+msgstr "Usuń czerwony"
 
-#: ../src/dialogs/clonetiler.cpp:1916
-msgid "<b>P4M</b>: 90&#176; rotation + 45&#176; reflection"
-msgstr "<b>P4M</b>: obrót o 90&#176; + odbicie 45&#176;"
+#: ../share/extensions/color_replace.inx.h:1
+msgid "By color (RRGGBB hex):"
+msgstr "Na kolor (RRGGBB hex):"
 
-#: ../src/dialogs/clonetiler.cpp:1917
-msgid "<b>P4G</b>: 90&#176; rotation + 90&#176; reflection"
-msgstr "<b>P4G</b>: obrót o 90&#176; + odbicie 90&#176;"
+#: ../share/extensions/color_replace.inx.h:3
+msgid "Replace color"
+msgstr "Zamień kolor"
 
-#: ../src/dialogs/clonetiler.cpp:1918
-msgid "<b>P3</b>: 120&#176; rotation"
-msgstr "<b>P3</b>: obrót o 120&#176;"
+#: ../share/extensions/color_replace.inx.h:4
+msgid "Replace color (RRGGBB hex):"
+msgstr "Zamień kolor (RRGGBB hex):"
 
-#: ../src/dialogs/clonetiler.cpp:1919
-msgid "<b>P31M</b>: reflection + 120&#176; rotation, dense"
-msgstr "<b>P31M</b>: odbicie + obrót o 120&#176;, gęsto"
+#: ../share/extensions/color_rgbbarrel.inx.h:2
+msgid "RGB Barrel"
+msgstr "Rotacja kanałów RGB"
 
-#: ../src/dialogs/clonetiler.cpp:1920
-msgid "<b>P3M1</b>: reflection + 120&#176; rotation, sparse"
-msgstr "<b>P3M1</b>: odbicie + obrót o 120&#176;, rzadko"
+#: ../share/extensions/dia.inx.h:1
+msgid "A diagram created with the program Dia"
+msgstr "Diagram utworzony za pomocą programu Dia"
 
-#: ../src/dialogs/clonetiler.cpp:1921
-msgid "<b>P6</b>: 60&#176; rotation"
-msgstr "<b>P6</b>: obrót o 60&#176;"
+#: ../share/extensions/dia.inx.h:2
+msgid "Dia Diagram (*.dia)"
+msgstr "Diagram programu Dia (*.dia)"
 
-#: ../src/dialogs/clonetiler.cpp:1922
-msgid "<b>P6M</b>: reflection + 60&#176; rotation"
-msgstr "<b>P6M</b>: odbicie + obrót o 60&#176;"
+#: ../share/extensions/dia.inx.h:3
+msgid "Dia Input"
+msgstr "Źródło Dia"
 
-#: ../src/dialogs/clonetiler.cpp:1950
-msgid "S_hift"
-msgstr "_Przesunięcie"
+#: ../share/extensions/dia.inx.h:4
+msgid "In order to import Dia files, Dia itself must be installed.  You can get Dia at http://live.gnome.org/Dia"
+msgstr "Aby dokonać importu plików Dia konieczne jest zainstalowanie programu Dia.  Można pobrać go pod adresem http://live.gnome.org/Dia"
 
-#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount
-#: ../src/dialogs/clonetiler.cpp:1960
-#, no-c-format
-msgid "<b>Shift X:</b>"
-msgstr "<b>Przesunięcie X:</b>"
+#: ../share/extensions/dia.inx.h:5
+msgid "The dia2svg.sh script should be installed with your Inkscape distribution.  If you do not have it, there is likely to be something wrong with your Inkscape installation."
+msgstr "Skrypt konwersji dia2svg.sh powinien zostać zainstalowany wraz z pakietem programu Inkscape. Jeśli go nie ma, to prawdopodobnie proces instalacji Inkscape nie przebiegł prawidłowo."
 
-#: ../src/dialogs/clonetiler.cpp:1968
-#, no-c-format
-msgid "Horizontal shift per row (in % of tile width)"
-msgstr ""
-"Przesunięcie w poziomie dla każdego wiersza o określoną tutaj wartość "
-"procentową wysokości elementu"
+#. default width:
+#. default height:
+#: ../share/extensions/dimension.inx.h:1
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2193
+msgid "Dimensions"
+msgstr "Wymiary"
 
-#: ../src/dialogs/clonetiler.cpp:1976
-#, no-c-format
-msgid "Horizontal shift per column (in % of tile width)"
-msgstr ""
-"Przesunięcie w poziomie dla każdej kolumny o określoną tutaj wartość "
-"procentową wysokości elementu"
+#: ../share/extensions/dimension.inx.h:2
+#: ../share/extensions/dots.inx.h:4
+#: ../share/extensions/handles.inx.h:2
+#: ../share/extensions/measure.inx.h:11
+msgid "Visualize Path"
+msgstr "Wizualizacja ścieżki"
 
-#: ../src/dialogs/clonetiler.cpp:1983
-msgid "Randomize the horizontal shift by this percentage"
-msgstr "Losowa zmiana przesunięcia poziomego o wybraną wartość procentową"
+#: ../share/extensions/dimension.inx.h:3
+msgid "X Offset"
+msgstr "Odsunięcie X"
 
-#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount
-#: ../src/dialogs/clonetiler.cpp:1993
-#, no-c-format
-msgid "<b>Shift Y:</b>"
-msgstr "<b>Przesunięcie Y:</b>"
+#: ../share/extensions/dimension.inx.h:4
+msgid "Y Offset"
+msgstr "Odsunięcie Y"
 
-#: ../src/dialogs/clonetiler.cpp:2001
-#, no-c-format
-msgid "Vertical shift per row (in % of tile height)"
+#: ../share/extensions/dimension.py:97
+msgid "Unable to process this object.  Try changing it into a path first."
 msgstr ""
-"Przesunięcie w pionie dla każdego wiersza o określoną tutaj wartość "
-"procentową wysokości elementu"
 
-#: ../src/dialogs/clonetiler.cpp:2009
-#, no-c-format
-msgid "Vertical shift per column (in % of tile height)"
-msgstr ""
-"Przesunięcie w pionie dla każdej kolumny o określoną tutaj wartość "
-"procentową wysokości elementu"
+#: ../share/extensions/dots.inx.h:1
+msgid "Dot size"
+msgstr "Rozmiar punktów"
 
-#: ../src/dialogs/clonetiler.cpp:2016
-msgid "Randomize the vertical shift by this percentage"
-msgstr ""
-"Losowa zmiana przesunięcia pionowego o określoną tutaj wartość procentową"
+#: ../share/extensions/dots.inx.h:2
+msgid "Font size"
+msgstr "Rozmiar czcionki"
 
-#: ../src/dialogs/clonetiler.cpp:2024 ../src/dialogs/clonetiler.cpp:2172
-msgid "<b>Exponent:</b>"
-msgstr "<b>Wykładnik:</b>"
+#: ../share/extensions/dots.inx.h:3
+msgid "Number Nodes"
+msgstr "Numeruj węzły"
 
-#: ../src/dialogs/clonetiler.cpp:2031
-msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)"
-msgstr ""
-"Rozmieszczenie wierszy równomierne (1), zbieżne (<1) lub rozbieżne (>1)"
+#: ../share/extensions/dxf_input.inx.h:1
+#: ../share/extensions/dxf_output.inx.h:1
+msgid "AutoCAD DXF (*.dxf)"
+msgstr "AutoCAD DXF (*.dxf)"
 
-#: ../src/dialogs/clonetiler.cpp:2038
-msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)"
-msgstr "Rozmieszczenie kolumn równomierne (1), zbieżne (<1) lub rozbieżne (>1)"
+#: ../share/extensions/dxf_input.inx.h:2
+msgid "DXF Input"
+msgstr "Źródło DXF"
 
-#. TRANSLATORS: "Alternate" is a verb here
-#: ../src/dialogs/clonetiler.cpp:2046 ../src/dialogs/clonetiler.cpp:2216
-#: ../src/dialogs/clonetiler.cpp:2293 ../src/dialogs/clonetiler.cpp:2369
-#: ../src/dialogs/clonetiler.cpp:2418 ../src/dialogs/clonetiler.cpp:2549
-msgid "<small>Alternate:</small>"
-msgstr "<small>Przesunięcie przemienne:</small>"
+#: ../share/extensions/dxf_input.inx.h:3
+msgid "Import AutoCAD's Document Exchange Format"
+msgstr "Import formatu Document Exchange programu AutoCAD"
 
-#: ../src/dialogs/clonetiler.cpp:2052
-msgid "Alternate the sign of shifts for each row"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, przesunięcie będzie realizowane w co "
-"drugim wierszu"
+#: ../share/extensions/dxf_input.inx.h:4
+msgid "dxf2svg may come with Inkscape, but is also at http://dxf-svg-convert.sourceforge.net/"
+msgstr "Skrypt dxf2svg może być dostępny wraz z pakietem Inkscape. Można go także pobrać pod adresem http://dxf-svg-convert.sourceforge.net/"
 
-#: ../src/dialogs/clonetiler.cpp:2057
-msgid "Alternate the sign of shifts for each column"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, przesunięcie będzie realizowane w co "
-"drugiej kolumnie"
+#: ../share/extensions/dxf_outlines.inx.h:1
+msgid "Desktop Cutting Plotter"
+msgstr "Ploter tnący"
 
-#. TRANSLATORS: "Cumulate" is a verb here
-#: ../src/dialogs/clonetiler.cpp:2064 ../src/dialogs/clonetiler.cpp:2234
-#: ../src/dialogs/clonetiler.cpp:2311
-msgid "<small>Cumulate:</small>"
-msgstr "<small>Kumulacja przesunięć:</small>"
+#: ../share/extensions/dxf_outlines.inx.h:2
+msgid "Desktop Cutting Plotter (*.DXF)"
+msgstr "Desktop Cutting Plotter (*.DXF)"
 
-#: ../src/dialogs/clonetiler.cpp:2070
-msgid "Cumulate the shifts for each row"
+#: ../share/extensions/dxf_outlines.inx.h:3
+msgid "ROBO-Master output"
 msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, przesunięcie każdego wiersza będzie "
-"zwiększało się przyjmując wartość liczoną określonym powyżej współczynnikiem "
-"od sumy wysokości poprzedzających klonów"
 
-#: ../src/dialogs/clonetiler.cpp:2075
-msgid "Cumulate the shifts for each column"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, przesunięcie każdej kolumny będzie "
-"zwiększało się przyjmując wartość liczoną określonym powyżej współczynnikiem "
-"od sumy szerokości poprzedzających klonów"
+#: ../share/extensions/dxf_output.inx.h:2
+msgid "DXF Output"
+msgstr "Zapis DXF"
 
-#. TRANSLATORS: "Cumulate" is a verb here
-#: ../src/dialogs/clonetiler.cpp:2082
-msgid "<small>Exclude tile:</small>"
-msgstr "<small>Pominięcie rozmiarów obiektu:</small>"
+#: ../share/extensions/dxf_output.inx.h:3
+msgid "DXF file written by pstoedit"
+msgstr "Plik DXF zapisany przez pstoedit"
 
-#: ../src/dialogs/clonetiler.cpp:2088
-msgid "Exclude tile height in shift"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, klonowane obiekty będą rozmieszczane bez "
-"uwzględniania wysokości obiektu, z przesunięciem określonym powyżej"
+#: ../share/extensions/dxf_output.inx.h:4
+msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit"
+msgstr "Aby wykonać operację musi być zainstalowany program pstoedit. Odwiedź witrynę http://www.pstoedit.net/pstoedit"
 
-#: ../src/dialogs/clonetiler.cpp:2093
-msgid "Exclude tile width in shift"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, klonowane obiekty będą rozmieszczane bez "
-"uwzględniania szerokości obiektu, z przesunięciem określonym powyżej"
+#: ../share/extensions/edge3d.inx.h:1
+msgid "Blur height"
+msgstr "Wysokość rozmycia"
 
-#: ../src/dialogs/clonetiler.cpp:2102
-msgid "Sc_ale"
-msgstr "Ska_lowanie"
+#: ../share/extensions/edge3d.inx.h:2
+msgid "Blur stdDeviation"
+msgstr "Odchylenie standardowe rozmycia"
 
-#: ../src/dialogs/clonetiler.cpp:2110
-msgid "<b>Scale X:</b>"
-msgstr "<b>Skalowanie X:</b>"
+#: ../share/extensions/edge3d.inx.h:3
+msgid "Blur width"
+msgstr "Szerokość rozmycia"
 
-#: ../src/dialogs/clonetiler.cpp:2118
-#, no-c-format
-msgid "Horizontal scale per row (in % of tile width)"
-msgstr ""
-"Skalowanie w poziomie dla każdego wiersza o określoną tutaj wartość "
-"procentową szerokości elementu"
+#: ../share/extensions/edge3d.inx.h:4
+msgid "Edge 3D"
+msgstr "Krawędź 3D"
 
-#: ../src/dialogs/clonetiler.cpp:2126
-#, no-c-format
-msgid "Horizontal scale per column (in % of tile width)"
-msgstr ""
-"Skalowanie w poziomie dla każdej kolumny o określoną tutaj wartość "
-"procentową szerokości elementu"
+#: ../share/extensions/edge3d.inx.h:5
+msgid "Illumination Angle"
+msgstr "Kąt oświetlenia"
 
-#: ../src/dialogs/clonetiler.cpp:2133
-msgid "Randomize the horizontal scale by this percentage"
-msgstr ""
-"Losowa zmiana skalowania poziomego o określoną tutaj wartość procentową"
+#: ../share/extensions/edge3d.inx.h:7
+msgid "Only black and white"
+msgstr "Tylko czarny i biały"
 
-#: ../src/dialogs/clonetiler.cpp:2141
-msgid "<b>Scale Y:</b>"
-msgstr "<b>Skalowanie Y:</b>"
+#: ../share/extensions/edge3d.inx.h:8
+msgid "Shades"
+msgstr "Cienie"
 
-#: ../src/dialogs/clonetiler.cpp:2149
-#, no-c-format
-msgid "Vertical scale per row (in % of tile height)"
-msgstr ""
-"Skalowanie w pionie dla każdego wiersza o określoną tutaj wartość procentową "
-"szerokości elementu"
+#: ../share/extensions/edge3d.inx.h:9
+#: ../src/dialogs/stroke-style.cpp:1097
+msgid "Stroke width"
+msgstr "Szerokość konturu"
 
-#: ../src/dialogs/clonetiler.cpp:2157
-#, no-c-format
-msgid "Vertical scale per column (in % of tile height)"
-msgstr ""
-"Skalowanie w pionie dla każdej kolumny o określoną tutaj wartość procentową "
-"szerokości elementu"
-
-#: ../src/dialogs/clonetiler.cpp:2164
-msgid "Randomize the vertical scale by this percentage"
-msgstr ""
-"Losowa zmiana skalowania pionowego o określoną tutaj wartość procentową"
-
-#: ../src/dialogs/clonetiler.cpp:2179
-msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)"
-msgstr ""
-"Rozmieszczenie wierszy równomierne (1), zbieżne (<1) lub rozbieżne (>1)"
-
-#: ../src/dialogs/clonetiler.cpp:2186
-msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)"
-msgstr "Rozmieszczenie kolumn równomierne (1), zbieżne (<1) lub rozbieżne (>1)"
+#: ../share/extensions/embedimage.inx.h:1
+msgid "Embed All Images"
+msgstr "Osadź wszystkie obrazki"
 
-#: ../src/dialogs/clonetiler.cpp:2194
-msgid "<b>Base:</b>"
-msgstr "<b>Podstawa:</b>"
+#: ../share/extensions/embedimage.inx.h:2
+msgid "Embed only selected images"
+msgstr "Osadź tylko zaznaczone obrazki"
 
-#: ../src/dialogs/clonetiler.cpp:2201 ../src/dialogs/clonetiler.cpp:2208
-msgid ""
-"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"
-msgstr ""
-"Podstawa logarytmu dla spiral logarytmicznych: nie używana (0), zbieżna (<1) "
-"lub rozbieżna (>1)"
+#: ../share/extensions/embedimage.inx.h:3
+#: ../share/extensions/extractimage.inx.h:2
+#: ../src/dialogs/find.cpp:625
+#: ../src/ui/dialog/find.cpp:82
+msgid "Images"
+msgstr "Obrazki"
 
-#: ../src/dialogs/clonetiler.cpp:2222
-msgid "Alternate the sign of scales for each row"
+#: ../share/extensions/embedimage.py:74
+msgid "No xlink:href or sodipodi:absref attributes found, or they do not point to an existing file! Unable to embed image."
 msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, skalowanie będzie realizowane w co "
-"drugim wierszu"
 
-#: ../src/dialogs/clonetiler.cpp:2227
-msgid "Alternate the sign of scales for each column"
+#: ../share/extensions/embedimage.py:76
+#, python-format
+msgid "Sorry we could not locate %s"
 msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, skalowanie będzie realizowane co drugiej "
-"kolumnie"
 
-#: ../src/dialogs/clonetiler.cpp:2240
-msgid "Cumulate the scales for each row"
+#: ../share/extensions/embedimage.py:101
+#, python-format
+msgid "%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, or image/x-icon"
 msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, skalowanie każdego wiersza będzie "
-"zwiększało się przyjmując wartość liczoną określonym powyżej współczynnikiem "
-"od sumy wysokości poprzedzających klonów"
 
-#: ../src/dialogs/clonetiler.cpp:2245
-msgid "Cumulate the scales for each column"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, skalowanie każdej kolumny będzie "
-"zwiększało się przyjmując wartość liczoną określonym powyżej współczynnikiem "
-"od sumy wysokości poprzedzających klonów"
+#: ../share/extensions/eps_input.inx.h:1
+msgid "EPS Input"
+msgstr "Źródło EPS"
 
-#: ../src/dialogs/clonetiler.cpp:2254
-msgid "_Rotation"
-msgstr "_Obrót"
+#: ../share/extensions/eps_input.inx.h:2
+#: ../src/extension/internal/cairo-ps-out.cpp:373
+msgid "Encapsulated PostScript"
+msgstr "Encapsulated PostScript"
 
-#: ../src/dialogs/clonetiler.cpp:2262
-msgid "<b>Angle:</b>"
-msgstr "<b>Kąt:</b>"
+#: ../share/extensions/eps_input.inx.h:3
+#: ../src/extension/internal/cairo-ps-out.cpp:387
+msgid "Encapsulated PostScript (*.eps)"
+msgstr "Encapsulated PostScript (*.eps)"
 
-#: ../src/dialogs/clonetiler.cpp:2270
-#, no-c-format
-msgid "Rotate tiles by this angle for each row"
-msgstr "Kąt o jaki zostaną obrócone elementy układu w każdym wierszu"
+#: ../share/extensions/epsi_output.inx.h:1
+msgid "EPSI Output"
+msgstr "Zapis EPSI"
 
-#: ../src/dialogs/clonetiler.cpp:2278
-#, no-c-format
-msgid "Rotate tiles by this angle for each column"
-msgstr "Kąt o jaki zostaną obrócone elementy układu w każdej kolumnie"
+#: ../share/extensions/epsi_output.inx.h:2
+msgid "Encapsulated Postscript Interchange (*.epsi)"
+msgstr "Encapsulated Postscript Interchange (*.epsi)"
 
-#: ../src/dialogs/clonetiler.cpp:2285
-msgid "Randomize the rotation angle by this percentage"
-msgstr "Losowa zmiana kąta obrotu o określoną tutaj wartość procentową"
+#: ../share/extensions/epsi_output.inx.h:3
+msgid "Encapsulated Postscript with a thumbnail"
+msgstr "Encapsulated Postscript z miniaturką"
 
-#: ../src/dialogs/clonetiler.cpp:2299
-msgid "Alternate the rotation direction for each row"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, obrót będzie realizowany w co drugim "
-"wierszu"
+#: ../share/extensions/eqtexsvg.inx.h:1
+msgid "LaTeX formula"
+msgstr "Wzór LaTeX"
 
-#: ../src/dialogs/clonetiler.cpp:2304
-msgid "Alternate the rotation direction for each column"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, obrót będzie realizowany w co drugiej "
-"kolumnie"
+#: ../share/extensions/eqtexsvg.inx.h:2
+msgid "LaTeX formula: "
+msgstr "Wzór LaTeX:"
 
-#: ../src/dialogs/clonetiler.cpp:2317
-msgid "Cumulate the rotation for each row"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, kąt obrotu klonów w każdym wierszu "
-"będzie zwiększał się kumulując określoną powyżej wartość kąta w zależności "
-"od ilości klonów"
+#: ../share/extensions/eqtexsvg.inx.h:3
+#: ../share/extensions/funcplot.inx.h:12
+#: ../share/extensions/gears.inx.h:5
+#: ../share/extensions/grid_cartesian.inx.h:15
+#: ../share/extensions/grid_polar.inx.h:18
+#: ../share/extensions/lindenmayer.inx.h:11
+#: ../share/extensions/polyhedron_3d.inx.h:32
+#: ../share/extensions/render_alphabetsoup.inx.h:3
+#: ../share/extensions/render_barcode.inx.h:5
+#: ../share/extensions/rtree.inx.h:4
+#: ../share/extensions/spirograph.inx.h:6
+#: ../share/extensions/triangle.inx.h:10
+#: ../src/extension/internal/grid.cpp:202
+msgid "Render"
+msgstr "Renderowanie"
 
-#: ../src/dialogs/clonetiler.cpp:2322
-msgid "Cumulate the rotation for each column"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, kąt obrotu klonów w każdej kolumnie "
-"będzie zwiększał się kumulując określoną powyżej wartość kąta w zależności "
-"od ilości klonów"
+#: ../share/extensions/export_gimp_palette.inx.h:1
+msgid "Export as GIMP Palette"
+msgstr "Eksportuj jako paletę GIMP-a"
 
-#: ../src/dialogs/clonetiler.cpp:2331
-msgid "_Blur & opacity"
-msgstr "_Rozmycie i krycie"
+#: ../share/extensions/export_gimp_palette.inx.h:2
+msgid "Exports the colors of this document as GIMP Palette"
+msgstr "Eksportuje kolory zawarte w tym dokumencie jako paletę GIMP-a"
 
-#: ../src/dialogs/clonetiler.cpp:2340
-msgid "<b>Blur:</b>"
-msgstr "<b>Rozmycie:</b>"
+#: ../share/extensions/export_gimp_palette.inx.h:3
+msgid "GIMP Palette (*.gpl)"
+msgstr "Paleta GIMP-a (*.gpl)"
 
-#: ../src/dialogs/clonetiler.cpp:2347
-msgid "Blur tiles by this percentage for each row"
+#: ../share/extensions/export_gimp_palette.py:14
+msgid "The export_gpl.py module requires PyXML.  Please download the latest version from http://pyxml.sourceforge.net/."
 msgstr ""
-"Rozmycie elementów w każdym wierszu o określoną tutaj wartość procentową"
 
-#: ../src/dialogs/clonetiler.cpp:2354
-msgid "Blur tiles by this percentage for each column"
-msgstr ""
-"Rozmycie elementów w każdej kolumnie o określoną tutaj wartość procentową"
+#: ../share/extensions/extractimage.inx.h:1
+msgid "Extract One Image"
+msgstr "Wyodrębnij jeden obrazek"
 
-#: ../src/dialogs/clonetiler.cpp:2361
-msgid "Randomize the tile blur by this percentage"
-msgstr "Losowa zmiana rozmycia elementów o określoną tutaj wartość procentową"
+#: ../share/extensions/extractimage.inx.h:3
+msgid "Note: The file extension is appended automatically."
+msgstr "Informacja: Rozszerzenie pliku jest dodawane automatycznie."
 
-#: ../src/dialogs/clonetiler.cpp:2375
-msgid "Alternate the sign of blur change for each row"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, rozmycie będzie realizowane w co drugim "
-"wierszu"
+#: ../share/extensions/extractimage.inx.h:4
+msgid "Path to save image"
+msgstr "Ścieżka do zapisania obrazka"
 
-#: ../src/dialogs/clonetiler.cpp:2380
-msgid "Alternate the sign of blur change for each column"
+#: ../share/extensions/extractimage.py:66
+msgid "Difficulty finding the image data."
 msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, rozmycie będzie realizowane w co drugiej "
-"kolumnie"
 
-#: ../src/dialogs/clonetiler.cpp:2389
-msgid "<b>Fade out:</b>"
-msgstr "<b>Krycie:</b>"
-
-#: ../src/dialogs/clonetiler.cpp:2396
-msgid "Decrease tile opacity by this percentage for each row"
-msgstr ""
-"Zmniejszenie krycia elementów w każdym wierszu o określoną tutaj wartość "
-"procentową"
+#: ../share/extensions/extrude.inx.h:1
+msgid "Extrude"
+msgstr "Wyciągnij"
 
-#: ../src/dialogs/clonetiler.cpp:2403
-msgid "Decrease tile opacity by this percentage for each column"
-msgstr ""
-"Zmniejszenie krycia elementów w każdej kolumnie o określoną tutaj wartość "
-"procentową"
+#: ../share/extensions/extrude.inx.h:2
+#: ../share/extensions/interp.inx.h:3
+#: ../share/extensions/motion.inx.h:2
+#: ../share/extensions/pathalongpath.inx.h:4
+#: ../share/extensions/pathscatter.inx.h:5
+#: ../src/extension/internal/bluredge.cpp:140
+msgid "Generate from Path"
+msgstr "Wygeneruj ze ścieżki"
 
-#: ../src/dialogs/clonetiler.cpp:2410
-msgid "Randomize the tile opacity by this percentage"
-msgstr "Losowa zmiana krycia elementów o określoną tutaj wartość procentową"
+#: ../share/extensions/extrude.inx.h:3
+#: ../src/widgets/toolbox.cpp:3380
+#: ../src/widgets/toolbox.cpp:3784
+msgid "Mode:"
+msgstr "Tryb:"
 
-#: ../src/dialogs/clonetiler.cpp:2424
-msgid "Alternate the sign of opacity change for each row"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, zmiana krycia elementów będzie "
-"realizowana w co drugim wierszu"
+#: ../share/extensions/fig_input.inx.h:1
+msgid "Open files saved with XFIG"
+msgstr "Otwórz pliki zapisane za pomocą XFIG"
 
-#: ../src/dialogs/clonetiler.cpp:2429
-msgid "Alternate the sign of opacity change for each column"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, zmiana krycia elementów będzie "
-"realizowana w co drugiej kolumnie"
+#: ../share/extensions/fig_input.inx.h:2
+msgid "XFIG Graphics File (*.fig)"
+msgstr "Plik graficzny XFIG (*.fig)"
 
-#: ../src/dialogs/clonetiler.cpp:2437
-msgid "Co_lor"
-msgstr "_Kolor"
+#: ../share/extensions/fig_input.inx.h:3
+msgid "XFIG Input"
+msgstr "Wyjście XFIG"
 
-#: ../src/dialogs/clonetiler.cpp:2442
-msgid "Initial color: "
-msgstr "Kolor początkowy:"
+#: ../share/extensions/flatten.inx.h:1
+msgid "Flatness"
+msgstr "Redukcja krzywizny"
 
-#: ../src/dialogs/clonetiler.cpp:2446
-msgid "Initial color of tiled clones"
-msgstr "Kolor początkowy klonów"
+#: ../share/extensions/flatten.inx.h:2
+msgid "Flatten Beziers"
+msgstr "Spłaszcz krzywe Beziera"
 
-#: ../src/dialogs/clonetiler.cpp:2446
-msgid ""
-"Initial color for clones (works only if the original has unset fill or "
-"stroke)"
-msgstr ""
-"Kolor początkowy tworzonych klonów (działa jedynie jeśli oryginał ma "
-"wyzerowane wypełnienie lub kontur)"
+#: ../share/extensions/fractalize.inx.h:1
+msgid "Fractalize"
+msgstr "Generuj fraktale"
 
-#: ../src/dialogs/clonetiler.cpp:2461
-msgid "<b>H:</b>"
-msgstr "<b>Barwa:</b>"
+#: ../share/extensions/fractalize.inx.h:3
+msgid "Smoothness"
+msgstr "Wygładzanie"
 
-#: ../src/dialogs/clonetiler.cpp:2468
-msgid "Change the tile hue by this percentage for each row"
-msgstr ""
-"Zmiana odcienia barwy obiektu w każdym wierszu o określoną tutaj wartość "
-"procentową"
+#: ../share/extensions/fractalize.inx.h:4
+msgid "Subdivisions"
+msgstr "Podziały"
 
-#: ../src/dialogs/clonetiler.cpp:2475
-msgid "Change the tile hue by this percentage for each column"
-msgstr ""
-"Zmiana odcienia barwy obiektu w każdej kolumnie o określoną tutaj wartość "
-"procentową"
+#: ../share/extensions/funcplot.inx.h:1
+msgid "Calculate first derivative numerically"
+msgstr "Oblicz numerycznie pierwszą pochodną"
 
-#: ../src/dialogs/clonetiler.cpp:2482
-msgid "Randomize the tile hue by this percentage"
-msgstr "Losowa zmiana odcienia barwy o określoną tutaj wartość procentową"
+#: ../share/extensions/funcplot.inx.h:2
+msgid "Draw Axes"
+msgstr "Rysuj osie"
 
-#: ../src/dialogs/clonetiler.cpp:2491
-msgid "<b>S:</b>"
-msgstr "<b>Nasyc.:</b>"
+#: ../share/extensions/funcplot.inx.h:3
+msgid "End X value"
+msgstr "Wartość końcowa X"
 
-#: ../src/dialogs/clonetiler.cpp:2498
-msgid "Change the color saturation by this percentage for each row"
-msgstr ""
-"Zmiana nasycenia koloru obiektu w każdym wierszu o określoną tutaj wartość "
-"procentową"
+#: ../share/extensions/funcplot.inx.h:4
+msgid "First derivative"
+msgstr "Pierwsza pochodna"
 
-#: ../src/dialogs/clonetiler.cpp:2505
-msgid "Change the color saturation by this percentage for each column"
-msgstr ""
-"Zmiana nasycenia koloru obiektu w każdej kolumnie o określoną tutaj wartość "
-"procentową"
+#: ../share/extensions/funcplot.inx.h:5
+msgid "Function"
+msgstr "Funkcja"
 
-#: ../src/dialogs/clonetiler.cpp:2512
-msgid "Randomize the color saturation by this percentage"
-msgstr "Losowa zmiana nasycenia o określoną tutaj wartość procentową"
+#: ../share/extensions/funcplot.inx.h:6
+msgid "Function Plotter"
+msgstr "Ploter funkcji"
 
-#: ../src/dialogs/clonetiler.cpp:2520
-msgid "<b>L:</b>"
-msgstr "<b>Jasność:</b>"
+#: ../share/extensions/funcplot.inx.h:7
+msgid "Functions"
+msgstr "Funkcje"
 
-#: ../src/dialogs/clonetiler.cpp:2527
-msgid "Change the color lightness by this percentage for each row"
-msgstr ""
-"Zmiana jasności koloru obiektu w każdym wierszu o określoną tutaj wartość "
-"procentową"
+#: ../share/extensions/funcplot.inx.h:8
+msgid "Isotropic scaling (uses smallest of width/xrange or height/yrange)"
+msgstr "Skalowanie izotropowe (używa najmniejszego zakresu X/szerokość lub Y/wysokość)"
 
-#: ../src/dialogs/clonetiler.cpp:2534
-msgid "Change the color lightness by this percentage for each column"
-msgstr ""
-"Zmiana jasności koloru obiektu w każdej kolumnie o określoną tutaj wartość "
-"procentową"
+#: ../share/extensions/funcplot.inx.h:9
+msgid "Multiply X range by 2*pi"
+msgstr "Pomnóż zakres X przez 2*pi"
 
-#: ../src/dialogs/clonetiler.cpp:2541
-msgid "Randomize the color lightness by this percentage"
-msgstr "Losowa zmiana jasności koloru o określoną tutaj wartość procentową"
+#: ../share/extensions/funcplot.inx.h:10
+msgid "Range and sampling"
+msgstr "Zakres i próbkowanie"
 
-#: ../src/dialogs/clonetiler.cpp:2555
-msgid "Alternate the sign of color changes for each row"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, zmiana koloru będzie realizowana w co "
-"drugim wierszu"
+#: ../share/extensions/funcplot.inx.h:11
+msgid "Remove rectangle"
+msgstr "Usuń prostokąt"
 
-#: ../src/dialogs/clonetiler.cpp:2560
-msgid "Alternate the sign of color changes for each column"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, zmiana koloru będzie realizowana w co "
-"drugiej kolumnie"
+#: ../share/extensions/funcplot.inx.h:13
+msgid "Samples"
+msgstr "Próbki"
 
-#: ../src/dialogs/clonetiler.cpp:2568
-msgid "_Trace"
-msgstr "Śl_edzenie"
+#: ../share/extensions/funcplot.inx.h:14
+msgid "Select a rectangle before calling the extension, it will determine X and Y scales. With polar coordinates: Start and end X values define the angle range in radians. X scale is set so that left and right edges of rectangle are at +/-1. Isotropic scaling is disabled. First derivative is always determined numerically."
+msgstr "Przed wywołaniem efektu zaznacz prostokąt. Prostokąt określają parametry X iYy. Ze spolaryzowanymi współrzędnymi: Początkowe i końcowe wartości X definiują zakres kąta w radianach. Skala X jest określona, zatem lewa i prawa krawędź prostokąta są +/-1. Skalowanie izotropowe jest wyłączone. Pierwsza pochodna jest zawsze określona numerycznie. "
 
-#: ../src/dialogs/clonetiler.cpp:2575
-msgid "Trace the drawing under the tiles"
-msgstr "Śledzenie rysunku pod obiektami"
+#: ../share/extensions/funcplot.inx.h:15
+msgid "Standard Python math functions are available: ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); cos(x); sin(x); tan(x); degrees(x); radians(x); cosh(x); sinh(x); tanh(x). The constants pi and e are also available."
+msgstr "Dostępne są standardowe funkcje matematyczne języka Python: ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); modf(x); exp(x); log(x [, podstawa]); log10(x); pow(x,y); sqrt(x); acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); cos(x); sin(x); tan(x); degrees(x); radians(x); cosh(x); sinh(x); tanh(x). Są także dostępne stałe \"pi\" i \"e\"."
 
-#: ../src/dialogs/clonetiler.cpp:2579
-msgid ""
-"For each clone, pick a value from the drawing in that clone's location and "
-"apply it to the clone"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, nastąpi przypisanie każdemu klonowi "
-"wartości z rysunku z miejsca, w którym się znajduje"
+#: ../share/extensions/funcplot.inx.h:16
+msgid "Start X value"
+msgstr "Wartość początkowa X"
 
-#: ../src/dialogs/clonetiler.cpp:2593
-msgid "1. Pick from the drawing:"
-msgstr "1. Pobierz z rysunku:"
+#: ../share/extensions/funcplot.inx.h:17
+msgid "Use"
+msgstr "Użyj"
 
-#: ../src/dialogs/clonetiler.cpp:2604 ../src/dialogs/clonetiler.cpp:2751
-#: ../src/extension/internal/bitmap/colorize.cpp:51
-#: ../share/extensions/color_brighter.inx.h:2
-#: ../share/extensions/color_custom.inx.h:2
-#: ../share/extensions/color_darker.inx.h:1
-#: ../share/extensions/color_desaturate.inx.h:1
-#: ../share/extensions/color_grayscale.inx.h:1
-#: ../share/extensions/color_lesshue.inx.h:1
-#: ../share/extensions/color_lesslight.inx.h:1
-#: ../share/extensions/color_lesssaturation.inx.h:1
-#: ../share/extensions/color_morehue.inx.h:1
-#: ../share/extensions/color_morelight.inx.h:1
-#: ../share/extensions/color_moresaturation.inx.h:1
-#: ../share/extensions/color_negative.inx.h:1
-#: ../share/extensions/color_randomize.inx.h:1
-#: ../share/extensions/color_removeblue.inx.h:1
-#: ../share/extensions/color_removegreen.inx.h:1
-#: ../share/extensions/color_removered.inx.h:1
-#: ../share/extensions/color_replace.inx.h:2
-#: ../share/extensions/color_rgbbarrel.inx.h:1
-msgid "Color"
-msgstr "Kolor"
-
-#: ../src/dialogs/clonetiler.cpp:2605
-msgid "Pick the visible color and opacity"
-msgstr "Pobranie widocznego koloru i krycia"
-
-#: ../src/dialogs/clonetiler.cpp:2612 ../src/dialogs/clonetiler.cpp:2761
-#: ../src/extension/internal/bitmap/opacity.cpp:37
-#: ../src/extension/internal/bitmap/opacity.cpp:39
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2241
-#: ../src/widgets/toolbox.cpp:3405
-msgid "Opacity"
-msgstr "Krycie"
-
-#: ../src/dialogs/clonetiler.cpp:2613
-msgid "Pick the total accumulated opacity"
-msgstr "Pobranie zsumowanego stopnia krycia"
-
-#: ../src/dialogs/clonetiler.cpp:2620
-msgid "R"
-msgstr "R"
-
-#: ../src/dialogs/clonetiler.cpp:2621
-msgid "Pick the Red component of the color"
-msgstr "Pobranie czerwonego składnika koloru"
+#: ../share/extensions/funcplot.inx.h:18
+msgid "Use polar coordinates"
+msgstr "Użyj współrzędne biegunowe"
 
-#: ../src/dialogs/clonetiler.cpp:2628
-msgid "G"
-msgstr "G"
+#: ../share/extensions/funcplot.inx.h:19
+msgid "Y value of rectangle's bottom"
+msgstr "Wartość Y dołu prostokąta"
 
-#: ../src/dialogs/clonetiler.cpp:2629
-msgid "Pick the Green component of the color"
-msgstr "Pobranie zielonego składnika koloru"
+#: ../share/extensions/funcplot.inx.h:20
+msgid "Y value of rectangle's top"
+msgstr "Wartość Y góry prostokąta"
 
-#: ../src/dialogs/clonetiler.cpp:2636
-msgid "B"
-msgstr "B"
+# Circular pitch is the arc distance along a specified pitch circle or pitch line between corresponding profiles of adjacent teeth.
+#: ../share/extensions/gears.inx.h:1
+msgid "Circular pitch, px"
+msgstr "Podziałka zęba (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2637
-msgid "Pick the Blue component of the color"
-msgstr "Pobranie niebieskiego składnika koloru"
+# http://pl.wikipedia.org/wiki/Ko%C5%82o_z%C4%99bate
+#: ../share/extensions/gears.inx.h:2
+msgid "Gear"
+msgstr "Koło zębate"
 
-#. TRANSLATORS: only translate "string" in "context|string".
-#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/dialogs/clonetiler.cpp:2646
-msgid "clonetiler|H"
-msgstr "H"
+#: ../share/extensions/gears.inx.h:3
+msgid "Number of teeth"
+msgstr "Liczba zębów"
 
-#: ../src/dialogs/clonetiler.cpp:2647
-msgid "Pick the hue of the color"
-msgstr "Pobranie barwy"
+# The complement of the angle between the direction that the teeth exert force on each other, and the line joining the centers of the two gears. For involute gears, the teeth always exert force along the line of action, which, for involute gears, is a straight line; and thus, for involute gears, the pressure angle is constant.
+#: ../share/extensions/gears.inx.h:4
+msgid "Pressure angle"
+msgstr "Kąt przyporu"
 
-#. TRANSLATORS: only translate "string" in "context|string".
-#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/dialogs/clonetiler.cpp:2656
-msgid "clonetiler|S"
-msgstr "S"
+#: ../share/extensions/gimp_xcf.inx.h:1
+msgid "GIMP XCF"
+msgstr "GIMP XCF"
 
-#: ../src/dialogs/clonetiler.cpp:2657
-msgid "Pick the saturation of the color"
-msgstr "Pobranie nasycenia koloru"
+#: ../share/extensions/gimp_xcf.inx.h:2
+msgid "GIMP XCF maintaining layers (*.XCF)"
+msgstr "GIMP XCF z zachowaniem warstw (*.XCF)"
 
-#. TRANSLATORS: only translate "string" in "context|string".
-#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/dialogs/clonetiler.cpp:2666
-msgid "clonetiler|L"
-msgstr "L"
+#: ../share/extensions/gimp_xcf.inx.h:3
+msgid "Save Grid:"
+msgstr "Zapisz siatkę:"
 
-#: ../src/dialogs/clonetiler.cpp:2667
-msgid "Pick the lightness of the color"
-msgstr "Pobranie jasności koloru"
+#: ../share/extensions/gimp_xcf.inx.h:4
+msgid "Save Guides:"
+msgstr "Zapis prowadnic:"
 
-#: ../src/dialogs/clonetiler.cpp:2677
-msgid "2. Tweak the picked value:"
-msgstr "2. Korekta pobranej wartości:"
+#: ../share/extensions/grid_cartesian.inx.h:1
+msgid "Border Thickness [px]"
+msgstr "Grubość linii (w px)"
 
-#: ../src/dialogs/clonetiler.cpp:2687
-msgid "Gamma-correct:"
-msgstr "Korekcja gamma:"
+#: ../share/extensions/grid_cartesian.inx.h:2
+msgid "Cartesian Grid"
+msgstr "Siatka kartezjańska"
 
-#: ../src/dialogs/clonetiler.cpp:2692
-msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)"
+#: ../share/extensions/grid_cartesian.inx.h:3
+msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only)"
 msgstr ""
-"Przesunięcie zakresu środkowego pobranej wartości w górę (>0) lub w dół (<0)"
 
-#: ../src/dialogs/clonetiler.cpp:2699
-msgid "Randomize:"
-msgstr "Wartość losowa:"
+#: ../share/extensions/grid_cartesian.inx.h:4
+msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only)"
+msgstr ""
 
-#: ../src/dialogs/clonetiler.cpp:2704
-msgid "Randomize the picked value by this percentage"
-msgstr "Losowa zmiana pobranej wartości o wybraną wielkość procentową"
+#: ../share/extensions/grid_cartesian.inx.h:5
+msgid "Logarithmic X Subdiv. (Base given by entry above)"
+msgstr ""
 
-#: ../src/dialogs/clonetiler.cpp:2711
-msgid "Invert:"
-msgstr "Odwróć:"
+#: ../share/extensions/grid_cartesian.inx.h:6
+msgid "Logarithmic Y Subdiv. (Base given by entry above)"
+msgstr ""
 
-#: ../src/dialogs/clonetiler.cpp:2715
-msgid "Invert the picked value"
-msgstr "Odwróć pobraną wartość"
+#: ../share/extensions/grid_cartesian.inx.h:7
+msgid "Major X Division Spacing [px]"
+msgstr "Odstepy głównego podziału X (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2721
-msgid "3. Apply the value to the clones':"
-msgstr "3. Zastosuj pobraną wartość do klonów:"
+#: ../share/extensions/grid_cartesian.inx.h:8
+msgid "Major X Division Thickness [px]"
+msgstr "Grubość głównego podziału X (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2731
-msgid "Presence"
-msgstr "Obecność"
+#: ../share/extensions/grid_cartesian.inx.h:9
+msgid "Major X Divisions"
+msgstr "Podział główny X"
 
-#: ../src/dialogs/clonetiler.cpp:2734
-msgid ""
-"Each clone is created with the probability determined by the picked value in "
-"that point"
-msgstr ""
-"Prawdopodobieństwo utworzenia klonu jest określane na podstawie wartości "
-"pobranej w danym punkcie"
+#: ../share/extensions/grid_cartesian.inx.h:10
+msgid "Major Y Division Spacing"
+msgstr "Odstępy podziału głównego Y"
 
-#: ../src/dialogs/clonetiler.cpp:2741
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2216
-msgid "Size"
-msgstr "Rozmiar"
+#: ../share/extensions/grid_cartesian.inx.h:11
+msgid "Major Y Division Thickness [px]"
+msgstr "Grubość głównego podziału Y (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2744
-msgid "Each clone's size is determined by the picked value in that point"
-msgstr ""
-"Rozmiar każdego klonu jest określany poprzez wartość pobraną w danym punkcie"
+#: ../share/extensions/grid_cartesian.inx.h:12
+msgid "Major Y Divisions"
+msgstr "Podział główny Y"
 
-#: ../src/dialogs/clonetiler.cpp:2754
-msgid ""
-"Each clone is painted by the picked color (the original must have unset fill "
-"or stroke)"
-msgstr ""
-"Każdy klon otrzymuje kolor pobrany w danym punkcie (oryginał musi mieć "
-"nieokreślone wypełnienie lub kontur)"
+#: ../share/extensions/grid_cartesian.inx.h:13
+msgid "Minor X Division Thickness [px]"
+msgstr "Grubość drugorzędnego podziału X (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2764
-msgid "Each clone's opacity is determined by the picked value in that point"
-msgstr "Każdy klon otrzymuje krycie równe wartości pobranej w danym punkcie"
+#: ../share/extensions/grid_cartesian.inx.h:14
+msgid "Minor Y Division Thickness [px]"
+msgstr "Grubość drugorzędnego podziału Y (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2791
-msgid "How many rows in the tiling"
-msgstr "Ilość wierszy układu klonów"
+#: ../share/extensions/grid_cartesian.inx.h:16
+msgid "Subdivisions per Major X Division"
+msgstr "Ponowne podziały przez główny podział X"
 
-#: ../src/dialogs/clonetiler.cpp:2811
-msgid "How many columns in the tiling"
-msgstr "Ilość kolumn układu klonów"
+#: ../share/extensions/grid_cartesian.inx.h:17
+msgid "Subdivisions per Major Y Division"
+msgstr "Ponowne podziały przez główny podział Y"
 
-#: ../src/dialogs/clonetiler.cpp:2841
-msgid "Width of the rectangle to be filled"
-msgstr "Szerokość prostokąta do wypełnienia"
+#: ../share/extensions/grid_cartesian.inx.h:18
+msgid "Subminor X Division Thickness [px]"
+msgstr "Grubość drugorzędnego podziału X (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2866
-msgid "Height of the rectangle to be filled"
-msgstr "Wysokość prostokąta do wypełnienia"
+#: ../share/extensions/grid_cartesian.inx.h:19
+msgid "Subminor Y Division Thickness [px]"
+msgstr "Grubość drugorzędnego podziału Y (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2881
-msgid "Rows, columns: "
-msgstr "Wiersze, kolumny:"
+#: ../share/extensions/grid_cartesian.inx.h:20
+msgid "Subsubdivs. per X Subdiv."
+msgstr ""
 
-#: ../src/dialogs/clonetiler.cpp:2882
-msgid "Create the specified number of rows and columns"
-msgstr "Tworzenie określonej ilości wierszy i kolumn"
+#: ../share/extensions/grid_cartesian.inx.h:21
+msgid "Subsubdivs. per Y Subdivision"
+msgstr ""
 
-#: ../src/dialogs/clonetiler.cpp:2891
-msgid "Width, height: "
-msgstr "Szerokość, wysokość:"
+#: ../share/extensions/grid_polar.inx.h:1
+msgid "Angle Divisions"
+msgstr "Podział kąta"
 
-#: ../src/dialogs/clonetiler.cpp:2892
-msgid "Fill the specified width and height with the tiling"
-msgstr "Wypełnia określoną szerokość i wysokość z ułożeniem"
+#: ../share/extensions/grid_polar.inx.h:2
+msgid "Angle Divisions at Centre"
+msgstr "Podziały kąta w środku"
 
-#: ../src/dialogs/clonetiler.cpp:2908
-msgid "Use saved size and position of the tile"
-msgstr "Użyj zapamiętanej wielkości i pozycji klonowania"
+#: ../share/extensions/grid_polar.inx.h:3
+msgid "Centre Dot Diameter [px]"
+msgstr ""
 
-#: ../src/dialogs/clonetiler.cpp:2911
-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"
+#: ../share/extensions/grid_polar.inx.h:4
+msgid "Circumferential Label Outset [px]"
 msgstr ""
-"Jeśli opcja ta zostanie zaznaczona będzie wykorzystana wielkość i położenie "
-"elementu zapisane podczas poprzedniego klonowania - jeśli było - zamiast "
-"użycia aktualnego rozmiaru"
 
-#: ../src/dialogs/clonetiler.cpp:2935
-msgid " <b>_Create</b> "
-msgstr "<b>_Utwórz</b> "
+#: ../share/extensions/grid_polar.inx.h:5
+msgid "Circumferential Label Size [px]"
+msgstr ""
 
-#: ../src/dialogs/clonetiler.cpp:2937
-msgid "Create and tile the clones of the selection"
-msgstr "Utwórz i rozmieść klony zaznaczonych elementów"
+#: ../share/extensions/grid_polar.inx.h:6
+msgid "Circumferential Labels"
+msgstr ""
 
-#. TRANSLATORS: if a group of objects are "clumped" together, then they
-#. are unevenly spread in the given amount of space - as shown in the
-#. diagrams on the left in the following screenshot:
-#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png
-#. So unclumping is the process of spreading a number of objects out more evenly.
-#: ../src/dialogs/clonetiler.cpp:2952
-msgid " _Unclump "
-msgstr "_Rozproszenie"
+#: ../share/extensions/grid_polar.inx.h:7
+#: ../src/extension/internal/bitmap/swirl.cpp:38
+msgid "Degrees"
+msgstr "Stopnie"
 
-#: ../src/dialogs/clonetiler.cpp:2953
-msgid "Spread out clones to reduce clumping; can be applied repeatedly"
+#: ../share/extensions/grid_polar.inx.h:8
+msgid "Logarithmic Subdiv. (Base given by entry above)"
 msgstr ""
-"Rozsuń klony zmniejszając ich rozproszenie; może być stosowane wielokrotnie"
 
-#: ../src/dialogs/clonetiler.cpp:2959
-msgid " Re_move "
-msgstr "U_suń "
+#: ../share/extensions/grid_polar.inx.h:9
+msgid "Major Angular Division Thickness [px]"
+msgstr "Grubość głównego podziału kątowego (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2960
-msgid "Remove existing tiled clones of the selected object (siblings only)"
-msgstr "Usuń istniejące klony zaznaczonego obiektu (usuwa tylko kopie)"
+#: ../share/extensions/grid_polar.inx.h:10
+msgid "Major Circular Division Spacing [px]"
+msgstr "Odstępy głównych podziałów kołowych (px)"
 
-#: ../src/dialogs/clonetiler.cpp:2976
-msgid " R_eset "
-msgstr "_Resetuj "
+#: ../share/extensions/grid_polar.inx.h:11
+msgid "Major Circular Division Thickness [px]"
+msgstr "Grubość głównego podziału kołowego (px)"
 
-#. TRANSLATORS: "change" is a noun here
-#: ../src/dialogs/clonetiler.cpp:2978
-msgid ""
-"Reset all shifts, scales, rotates, opacity and color changes in the dialog "
-"to zero"
+#: ../share/extensions/grid_polar.inx.h:12
+msgid "Major Circular Divisions"
+msgstr "Główne podziały kołowe"
+
+#: ../share/extensions/grid_polar.inx.h:13
+msgid "Minor Angle Division End 'n' Divs. Before Centre"
 msgstr ""
-"Wyzeruj wartości wszystkich przesunięć, skalowań, obrotów, zmian krycia i "
-"koloru w polach okna dialogowego"
 
-#: ../src/dialogs/debugdialog.cpp:135
-msgid "Messages"
-msgstr "Komunikaty"
-
-#. ## Add a menu for clear()
-#: ../src/dialogs/debugdialog.cpp:141 ../src/menus-skeleton.h:16
-#: ../src/ui/dialog/messages.cpp:54 ../src/ui/dialog/scriptdialog.cpp:208
-msgid "_File"
-msgstr "_Plik"
+#: ../share/extensions/grid_polar.inx.h:14
+msgid "Minor Angular Division Thickness [px]"
+msgstr "Grubość drugorzędnego podziału kątowego (px)"
 
-#. TRANSLATORS: "Clear" is a verb here
-#: ../src/dialogs/debugdialog.cpp:142 ../src/dialogs/find.cpp:753
-#: ../src/ui/dialog/find.cpp:85 ../src/ui/dialog/messages.cpp:55
-#: ../src/ui/dialog/scriptdialog.cpp:209
-msgid "_Clear"
-msgstr "_Wyczyść"
+#: ../share/extensions/grid_polar.inx.h:15
+msgid "Minor Circular Division Thickness [px]"
+msgstr "Grubość drugorzędnego podziału kołowego (px)"
 
-#: ../src/dialogs/debugdialog.cpp:144 ../src/ui/dialog/messages.cpp:57
-msgid "Capture log messages"
-msgstr "_Rozpocznij przechwytywanie komunikatów"
+#: ../share/extensions/grid_polar.inx.h:16
+#: ../src/dialogs/stroke-style.cpp:771
+#: ../src/filter-enums.cpp:95
+#: ../src/flood-context.cpp:288
+#: ../src/interface.cpp:830
+#: ../src/live_effects/lpe-ruler.cpp:34
+#: ../src/ui/dialog/filter-effects-dialog.cpp:509
+#: ../src/ui/dialog/inkscape-preferences.cpp:219
+#: ../src/ui/dialog/inkscape-preferences.cpp:384
+#: ../src/ui/dialog/inkscape-preferences.cpp:511
+#: ../src/ui/dialog/inkscape-preferences.cpp:1032
+#: ../src/verbs.cpp:2223
+#: ../src/widgets/toolbox.cpp:3408
+msgid "None"
+msgstr "Brak"
 
-#: ../src/dialogs/debugdialog.cpp:146 ../src/ui/dialog/messages.cpp:59
-msgid "Release log messages"
-msgstr "_Zakończ przechwytywanie komunikatów"
+#: ../share/extensions/grid_polar.inx.h:17
+msgid "Polar Grid"
+msgstr "Siatka biegunowa"
 
-#: ../src/dialogs/eek-color-def.cpp:56
-#: ../src/widgets/gradient-selector.cpp:162
-msgid "none"
-msgstr "brak"
+#: ../share/extensions/grid_polar.inx.h:19
+msgid "Subdivisions per Major Angular Division"
+msgstr "Dalsze podziały przez główny podział kątowy"
 
-#: ../src/dialogs/export.cpp:143 ../src/verbs.cpp:2532
-msgid "_Page"
-msgstr "Cała _strona"
+#: ../share/extensions/grid_polar.inx.h:20
+msgid "Subdivisions per Major Circular Division"
+msgstr "Dalsze podziały przez główny podział kołowy"
 
-#: ../src/dialogs/export.cpp:143 ../src/verbs.cpp:2536
-msgid "_Drawing"
-msgstr "Cały _rysunek"
+#: ../share/extensions/handles.inx.h:1
+msgid "Draw Handles"
+msgstr "Rysuj uchwyty"
 
-#: ../src/dialogs/export.cpp:143 ../src/verbs.cpp:2538
-msgid "_Selection"
-msgstr "_Zaznaczenie"
+#: ../share/extensions/hpgl_output.inx.h:1
+msgid "Export to an HP Graphics Language file"
+msgstr ""
 
-#: ../src/dialogs/export.cpp:143
-msgid "_Custom"
-msgstr "Rozmiar _użytkownika"
+#: ../share/extensions/hpgl_output.inx.h:2
+msgid "HP Graphics Language file (*.hpgl)"
+msgstr "Plik graficzny HPGL (*.hpgl)"
 
-#: ../src/dialogs/export.cpp:267
-msgid "<big><b>Export area</b></big>"
-msgstr "<big><b>Obszar eksportu</b></big>"
+#: ../share/extensions/hpgl_output.inx.h:3
+msgid "HPGL Output"
+msgstr "Zapis w formacie HPGL"
 
-#: ../src/dialogs/export.cpp:281
-msgid "Units:"
-msgstr "Jednostki:"
+#: ../share/extensions/inkex.py:61
+msgid "The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension. Please download and install the latest version from http://cheeseshop.python.org/pypi/lxml/, or install it through your package manager by a command like: sudo apt-get install python-lxml"
+msgstr ""
 
-#: ../src/dialogs/export.cpp:309
-msgid "_x0:"
-msgstr "_x0:"
+#: ../share/extensions/inkex.py:186
+#, python-format
+msgid "No matching node for expression: %s"
+msgstr ""
 
-#: ../src/dialogs/export.cpp:314
-msgid "x_1:"
-msgstr "x_1:"
+#: ../share/extensions/inkscape_help_askaquestion.inx.h:1
+msgid "Ask Us a Question"
+msgstr "Zadaj pytanie"
 
-#. Stroke width
-#: ../src/dialogs/export.cpp:319 ../src/dialogs/object-attributes.cpp:60
-#: ../src/dialogs/object-attributes.cpp:68
-#: ../src/dialogs/stroke-style.cpp:1090 ../src/widgets/toolbox.cpp:3241
-#: ../src/widgets/toolbox.cpp:3645 ../src/widgets/toolbox.cpp:4318
-msgid "Width:"
-msgstr "Szerokość:"
+#: ../share/extensions/inkscape_help_commandline.inx.h:1
+msgid "Command Line Options"
+msgstr "Opcje wiersza poleceń"
 
-#: ../src/dialogs/export.cpp:325
-msgid "_y0:"
-msgstr "_y0:"
+#: ../share/extensions/inkscape_help_faq.inx.h:1
+msgid "FAQ"
+msgstr "FAQ"
 
-#: ../src/dialogs/export.cpp:330
-msgid "y_1:"
-msgstr "y_1:"
+#: ../share/extensions/inkscape_help_keys.inx.h:1
+msgid "Keys and Mouse Reference"
+msgstr "Używanie klawiatury i myszy"
 
-#: ../src/dialogs/export.cpp:335 ../src/dialogs/export.cpp:495
-#: ../src/dialogs/object-attributes.cpp:61
-#: ../src/dialogs/object-attributes.cpp:69
-msgid "Height:"
-msgstr "Wysokość:"
+#: ../share/extensions/inkscape_help_manual.inx.h:1
+msgid "Inkscape Manual"
+msgstr "Podręcznik programu Inkscape"
 
-#: ../src/dialogs/export.cpp:466
-msgid "<big><b>Bitmap size</b></big>"
-msgstr "<big><b>Rozmiar bitmapy</b></big>"
+#: ../share/extensions/inkscape_help_relnotes.inx.h:1
+msgid "New in This Version"
+msgstr "Nowości w tej wersji"
 
-#: ../src/dialogs/export.cpp:479 ../src/ui/widget/page-sizer.cpp:191
-msgid "_Width:"
-msgstr "_Szerokość:"
+#: ../share/extensions/inkscape_help_reportabug.inx.h:1
+msgid "Report a Bug"
+msgstr "Zgłaszanie błędów"
 
-#: ../src/dialogs/export.cpp:479 ../src/dialogs/export.cpp:495
-msgid "pixels at"
-msgstr "px przy"
+#: ../share/extensions/inkscape_help_svgspec.inx.h:1
+msgid "SVG 1.1 Specification"
+msgstr "Specyfikacja SVG 1.1"
 
-#: ../src/dialogs/export.cpp:489
-msgid "dp_i"
-msgstr "dp_i"
+#: ../share/extensions/interp.inx.h:1
+msgid "Duplicate endpaths"
+msgstr "Powiel ścieżki końcowe"
 
-#: ../src/dialogs/export.cpp:508 ../src/ui/dialog/inkscape-preferences.cpp:673
-msgid "dpi"
-msgstr "dpi"
+#: ../share/extensions/interp.inx.h:2
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2269
+msgid "Exponent"
+msgstr "Wykładnik"
 
-#. true = has mnemonic
-#: ../src/dialogs/export.cpp:519
-msgid "<big><b>_Filename</b></big>"
-msgstr "<big><b>_Nazwa pliku</b></big>"
+#: ../share/extensions/interp.inx.h:4
+msgid "Interpolate"
+msgstr "Interpolacja"
 
-#: ../src/dialogs/export.cpp:590
-msgid "_Browse..."
-msgstr "_Przeglądaj..."
+#: ../share/extensions/interp.inx.h:5
+msgid "Interpolate style"
+msgstr "Styl interpolacji"
 
-#: ../src/dialogs/export.cpp:619
-msgid "Batch export all selected objects"
-msgstr "Eksportuj grupowo wszystkie zaznaczone obiekty"
+#: ../share/extensions/interp.inx.h:6
+msgid "Interpolation method"
+msgstr "Metoda interpolacji"
 
-#: ../src/dialogs/export.cpp:623
-msgid ""
-"Export each selected object into its own PNG file, using export hints if any "
-"(caution, overwrites without asking!)"
-msgstr ""
-"Eksportuje każdy zaznaczony obiekt do pliku PNG (Uwaga - nadpisuje bez "
-"powiadamiania!)"
+#: ../share/extensions/interp.inx.h:7
+msgid "Interpolation steps"
+msgstr "Kroki interpolacji"
 
-#: ../src/dialogs/export.cpp:631
-msgid "Hide all except selected"
-msgstr "Ukryj wszystko z wyjątkiem zaznaczenia"
+#: ../share/extensions/lindenmayer.inx.h:1
+msgid "Axiom"
+msgstr "Aksjomat"
 
-#: ../src/dialogs/export.cpp:635
-msgid "In the exported image, hide all objects except those that are selected"
-msgstr ""
-"W eksportowanym obrazku ukrywa wszystkie obiekty z wyjątkiem zaznaczonych"
+#: ../share/extensions/lindenmayer.inx.h:2
+msgid "Axiom and rules"
+msgstr "Pewniki i reguły"
 
-#: ../src/dialogs/export.cpp:652
-msgid "_Export"
-msgstr "_Eksportuj"
+#: ../share/extensions/lindenmayer.inx.h:3
+#: ../share/extensions/measure.inx.h:2
+#: ../src/ui/dialog/extension-editor.cpp:81
+msgid "Help"
+msgstr "Pomoc"
 
-#: ../src/dialogs/export.cpp:656
-msgid "Export the bitmap file with these settings"
-msgstr "Eksportowanie bitmapy z wybranymi ustawieniami"
+#: ../share/extensions/lindenmayer.inx.h:4
+msgid "L-system"
+msgstr "L-system"
 
-#: ../src/dialogs/export.cpp:682
-#, c-format
-msgid "Batch export %d selected object"
-msgid_plural "Batch export %d selected objects"
-msgstr[0] "Eksportuj grupowo %d wybrany element"
-msgstr[1] "Eksportuj grupowo %d wybrane elementy"
-msgstr[2] "Eksportuj grupowo %d wybranych elementów"
+#: ../share/extensions/lindenmayer.inx.h:5
+msgid "Left angle"
+msgstr "Lewy kąt"
 
-#: ../src/dialogs/export.cpp:1014
-msgid "Export in progress"
-msgstr "Trwa eksportowanie"
+#: ../share/extensions/lindenmayer.inx.h:6
+#: ../src/extension/internal/bitmap/convolve.cpp:52
+#: ../src/extension/internal/bitmap/reduceNoise.cpp:41
+msgid "Order"
+msgstr "Porządek"
 
-#: ../src/dialogs/export.cpp:1084
-#, c-format
-msgid "Exporting %d files"
-msgstr "Eksportowanie %d plików"
+#: ../share/extensions/lindenmayer.inx.h:8
+#, no-c-format
+msgid "Randomize angle (%)"
+msgstr "Zmiana losowa kąta (%)"
 
-#: ../src/dialogs/export.cpp:1124 ../src/dialogs/export.cpp:1196
-#, c-format
-msgid "Could not export to filename %s.\n"
-msgstr "Nie można wyeksportować do pliku %s.\n"
+#: ../share/extensions/lindenmayer.inx.h:10
+#, no-c-format
+msgid "Randomize step (%)"
+msgstr "Zmiana losowa kroku (%)"
 
-#: ../src/dialogs/export.cpp:1152
-msgid "You have to enter a filename"
-msgstr "Nie podano nazwy pliku"
+#: ../share/extensions/lindenmayer.inx.h:12
+msgid "Right angle"
+msgstr "Prawy kąt"
 
-#: ../src/dialogs/export.cpp:1157
-msgid "The chosen area to be exported is invalid"
-msgstr "Wybrany obszar eksportu jest nieprawidłowy"
+#: ../share/extensions/lindenmayer.inx.h:13
+msgid "Rules"
+msgstr "Formuła"
 
-#: ../src/dialogs/export.cpp:1166
-#, c-format
-msgid "Directory %s does not exist or is not a directory.\n"
-msgstr "Katalog %s nie istnieje lub wybrany plik nie jest katalogiem.\n"
+#: ../share/extensions/lindenmayer.inx.h:14
+msgid "Step length (px)"
+msgstr "Długość kroku (px)"
 
-#: ../src/dialogs/export.cpp:1182
-#, c-format
-msgid "Exporting %s (%lu x %lu)"
-msgstr "Eksportowanie %s (%lu x %lu)"
+#: ../share/extensions/lindenmayer.inx.h:15
+msgid "The path is generated by applying the substitutions of Rules to the Axiom, Order times. The following commands are recognized in Axiom and Rules: Any of A,B,C,D,E,F: draw forward Any of G,H,I,J,K,L: move forward +: turn left -: turn right |: turn 180 degrees [: remember point ]: return to remembered point"
+msgstr ""
 
-#: ../src/dialogs/export.cpp:1303
-msgid "Select a filename for exporting"
-msgstr "Wybierz nazwę eksportowanego pliku"
+#: ../share/extensions/lorem_ipsum.inx.h:1
+msgid "Lorem ipsum"
+msgstr "Lorem ipsum"
 
-#: ../src/dialogs/fill-style.cpp:283
-msgid "Change fill rule"
-msgstr "Zmień regułę wypełnienia"
+#: ../share/extensions/lorem_ipsum.inx.h:2
+msgid "Number of paragraphs"
+msgstr "Liczba akapitów"
 
-#: ../src/dialogs/fill-style.cpp:323 ../src/dialogs/fill-style.cpp:397
-msgid "Set fill color"
-msgstr "Ustaw kolor wypełnienia"
+#: ../share/extensions/lorem_ipsum.inx.h:3
+msgid "Paragraph length fluctuation (sentences)"
+msgstr "Fluktuacja długości akapitu (zdania)"
 
-#: ../src/dialogs/fill-style.cpp:385 ../src/ui/widget/selected-style.cpp:255
-#: ../src/ui/widget/selected-style.cpp:479
-msgid "Remove fill"
-msgstr "Usuń wypełnienie"
+#: ../share/extensions/lorem_ipsum.inx.h:4
+msgid "Sentences per paragraph"
+msgstr "Liczba zdań w akapicie"
 
-#: ../src/dialogs/fill-style.cpp:466
-msgid "Set gradient on fill"
-msgstr "Ustaw gradient wypełnienia"
+#. Text
+#: ../share/extensions/lorem_ipsum.inx.h:5
+#: ../share/extensions/render_alphabetsoup.inx.h:4
+#: ../share/extensions/text_braille.inx.h:2
+#: ../share/extensions/text_flipcase.inx.h:1
+#: ../share/extensions/text_lowercase.inx.h:1
+#: ../share/extensions/text_randomcase.inx.h:1
+#: ../share/extensions/text_replace.inx.h:4
+#: ../share/extensions/text_sentencecase.inx.h:2
+#: ../share/extensions/text_titlecase.inx.h:1
+#: ../share/extensions/text_uppercase.inx.h:1
+#: ../src/dialogs/text-edit.cpp:377
+#: ../src/selection-describer.cpp:67
+#: ../src/ui/dialog/inkscape-preferences.cpp:479
+#: ../src/verbs.cpp:2518
+msgid "Text"
+msgstr "Tekst"
 
-#: ../src/dialogs/fill-style.cpp:513
-msgid "Set pattern on fill"
-msgstr "Ustaw deseń wypełnienia"
+#: ../share/extensions/lorem_ipsum.inx.h:6
+msgid "This effect creates the standard \"Lorem Ipsum\" pseudolatin placeholder text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a new flowed text object, the size of the page, is created in a new layer."
+msgstr "Ten efekt tworzy standardowy, pseudo łaciński tekst \"Lorem Ipsum\". Jeśli tekst wpisany jest zaznaczony, Lorem Ipsum jest dodawany do niego. W innym przypadku nowy obiekt tekstu wpisanego i rozmiar strony jest tworzony na nowej warstwie."
 
-#. TRANSLATORS COMMENT: unset is a verb here
-#: ../src/dialogs/fill-style.cpp:528 ../src/ui/widget/selected-style.cpp:193
-#: ../src/ui/widget/selected-style.cpp:251
-#: ../src/ui/widget/selected-style.cpp:497
-#: ../src/ui/widget/style-swatch.cpp:335
-msgid "Unset fill"
-msgstr "Nie ustawiaj wypełnienia"
+#: ../share/extensions/markers_strokepaint.inx.h:1
+msgid "Color Markers to Match Stroke"
+msgstr "Kolor znaczników jak konturu"
 
-#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed
-#: ../src/dialogs/find.cpp:372 ../src/ui/dialog/find.cpp:436
-#, c-format
-msgid "<b>%d</b> object found (out of <b>%d</b>), %s match."
-msgid_plural "<b>%d</b> objects found (out of <b>%d</b>), %s match."
-msgstr[0] "Znaleziono <b>%d</b> obiekt (z <b>%d</b>), dopasowanie %s"
-msgstr[1] "Znaleziono <b>%d</b> obiekty (z <b>%d</b>), dopasowanie %s"
-msgstr[2] "Znaleziono <b>%d</b> obiektów (z <b>%d</b>), dopasowanie %s"
+#: ../share/extensions/markers_strokepaint.py:41
+#, python-format
+msgid "No style attribute found for id: %s"
+msgstr ""
 
-#: ../src/dialogs/find.cpp:375 ../src/ui/dialog/find.cpp:439
-msgid "exact"
-msgstr "dokładne"
+#: ../share/extensions/markers_strokepaint.py:56
+#, python-format
+msgid "unable to locate marker: %s"
+msgstr ""
 
-#: ../src/dialogs/find.cpp:375 ../src/ui/dialog/find.cpp:439
-msgid "partial"
-msgstr "częściowe"
+#: ../share/extensions/measure.inx.h:1
+msgid "Font size [px]"
+msgstr "Rozmiar czcionki (px)"
 
-#: ../src/dialogs/find.cpp:382 ../src/ui/dialog/find.cpp:446
-msgid "No objects found"
-msgstr "Nie znaleziono obiektów"
+#. <param name="unit" type="string" _gui-text="Unit {km|m|cm|mm|in|px|pt}">mm</param>
+#: ../share/extensions/measure.inx.h:4
+msgid "Length Unit: "
+msgstr "Jednostka długości:"
 
-#: ../src/dialogs/find.cpp:540
-msgid "T_ype: "
-msgstr "Typ obiektu:"
+#: ../share/extensions/measure.inx.h:5
+msgid "Measure"
+msgstr "Pomiary"
 
-#: ../src/dialogs/find.cpp:547 ../src/ui/dialog/find.cpp:70
-msgid "Search in all object types"
-msgstr "Szukaj we wszystkich typach obiektów"
+#: ../share/extensions/measure.inx.h:6
+msgid "Measure Path"
+msgstr "Zmierz ścieżkę"
 
-#: ../src/dialogs/find.cpp:547 ../src/ui/dialog/find.cpp:70
-msgid "All types"
-msgstr "Wszystkie typy"
+#: ../share/extensions/measure.inx.h:7
+msgid "Offset [px]"
+msgstr "Przesunięcie (px)"
 
-#: ../src/dialogs/find.cpp:558 ../src/ui/dialog/find.cpp:71
-msgid "Search all shapes"
-msgstr "Szukaj we wszystkich rodzajach figur"
+#: ../share/extensions/measure.inx.h:8
+msgid "Precision"
+msgstr "Precyzja"
 
-#: ../src/dialogs/find.cpp:558 ../src/ui/dialog/find.cpp:71
-msgid "All shapes"
-msgstr "Wszystkie figury"
+#: ../share/extensions/measure.inx.h:9
+msgid "Scale Factor (Drawing:Real Length) = 1:"
+msgstr "Współczynnik skalowania (Rysowanie: rzeczywista długość) = 1:"
 
-#: ../src/dialogs/find.cpp:575 ../src/ui/dialog/find.cpp:72
-msgid "Search rectangles"
-msgstr "Szukaj prostokątów"
+#: ../share/extensions/measure.inx.h:10
+msgid "This effect measures the length of the selected path and adds it as a text-on-path object with the selected unit. The number of significant digits can be controlled by the Precision field. The Offset field controls the distance from the text to the path. The Scale factor can be used to make measurements in scaled drawings. For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale must be set to 250."
+msgstr "Ten efekt wykonuje pomiar długości zaznaczonej ścieżki i dodaje go jako obiekt tekstowy na ścieżce z zaznaczonymi jednostkami. Istotną ilość cyfr można kontrolować poprzez pole \"Precyzja\". W polu \"Przesuniecie\" można kontrolować odległość tekstu od ścieżki. Współczynnik skalowania może być używany do wykonania pomiarów w skalowanym rysunku. Na przykład, jeśli 1 cm na rysunku odpowiada 2,5 m w rzeczywistości, współczynnik skalowania należy ustawić na wartość 250."
 
-#: ../src/dialogs/find.cpp:575 ../src/ui/dialog/find.cpp:72
-msgid "Rectangles"
-msgstr "Prostokąty"
+#: ../share/extensions/motion.inx.h:1
+#: ../share/extensions/restack.inx.h:1
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:56
+msgid "Angle"
+msgstr "Kąt"
 
-#: ../src/dialogs/find.cpp:580 ../src/ui/dialog/find.cpp:73
-msgid "Search ellipses, arcs, circles"
-msgstr "Szukaj elips, łuków i okręgów"
+#: ../share/extensions/motion.inx.h:3
+msgid "Magnitude"
+msgstr "Wielkość"
 
-#: ../src/dialogs/find.cpp:580 ../src/ui/dialog/find.cpp:73
-msgid "Ellipses"
-msgstr "Elipsy"
+#: ../share/extensions/motion.inx.h:4
+msgid "Motion"
+msgstr ""
 
-#: ../src/dialogs/find.cpp:585 ../src/ui/dialog/find.cpp:74
-msgid "Search stars and polygons"
-msgstr "Szukaj gwiazd i wielokątów"
+#: ../share/extensions/outline2svg.inx.h:1
+msgid "ASCII Text with outline markup"
+msgstr "Tekst ASCII ze znacznikiem obramowania"
 
-#: ../src/dialogs/find.cpp:585 ../src/ui/dialog/find.cpp:74
-msgid "Stars"
-msgstr "Gwiazdy"
+#: ../share/extensions/outline2svg.inx.h:2
+msgid "Text Outline File (*.outline)"
+msgstr "Text Outline File (*.outline)"
 
-#: ../src/dialogs/find.cpp:590 ../src/ui/dialog/find.cpp:75
-msgid "Search spirals"
-msgstr "Szukaj spirali"
+#: ../share/extensions/outline2svg.inx.h:3
+msgid "Text Outline Input"
+msgstr "Plik obramowania tekstu"
 
-#: ../src/dialogs/find.cpp:590 ../src/ui/dialog/find.cpp:75
-msgid "Spirals"
-msgstr "Spirale"
+#: ../share/extensions/pathalongpath.inx.h:1
+msgid "Copies of the pattern:"
+msgstr "Kopie desenia:"
 
-#. TRANSLATORS: polyline is a set of connected straight line segments
-#. http://www.w3.org/TR/SVG11/shapes.html#PolylineElement
-#: ../src/dialogs/find.cpp:603 ../src/ui/dialog/find.cpp:76
-msgid "Search paths, lines, polylines"
-msgstr "Szukaj ścieżek, linii, linii łamanych"
+#: ../share/extensions/pathalongpath.inx.h:2
+msgid "Deformation type:"
+msgstr "Rodzaj deformacji:"
 
-#: ../src/dialogs/find.cpp:603 ../src/ui/dialog/find.cpp:76
-msgid "Paths"
-msgstr "Ścieżki"
+#: ../share/extensions/pathalongpath.inx.h:3
+#: ../share/extensions/pathscatter.inx.h:3
+msgid "Duplicate the pattern before deformation"
+msgstr "Powiel deseń przed deformacją"
 
-#: ../src/dialogs/find.cpp:608 ../src/ui/dialog/find.cpp:77
-msgid "Search text objects"
-msgstr "Szukaj obiektów tekstowych"
+#: ../share/extensions/pathalongpath.inx.h:5
+#: ../share/extensions/pathscatter.inx.h:7
+#: ../src/live_effects/lpe-patternalongpath.cpp:66
+msgid "Normal offset"
+msgstr "Przesunięcie normalne"
 
-#: ../src/dialogs/find.cpp:608 ../src/ui/dialog/find.cpp:77
-msgid "Texts"
-msgstr "Teksty"
+#: ../share/extensions/pathalongpath.inx.h:6
+msgid "Pattern along Path"
+msgstr "Deseń na ścieżce"
 
-#: ../src/dialogs/find.cpp:613 ../src/ui/dialog/find.cpp:78
-msgid "Search groups"
-msgstr "Szukaj grup obiektów"
+#: ../share/extensions/pathalongpath.inx.h:7
+#: ../share/extensions/pathscatter.inx.h:9
+#: ../src/live_effects/lpe-patternalongpath.cpp:69
+msgid "Pattern is vertical"
+msgstr "Pionowa orientacja desenia"
 
-#: ../src/dialogs/find.cpp:613 ../src/ui/dialog/find.cpp:78
-msgid "Groups"
-msgstr "Grupy"
+#: ../share/extensions/pathalongpath.inx.h:8
+#: ../src/live_effects/lpe-patternalongpath.cpp:54
+msgid "Repeated"
+msgstr "Powtarzana"
 
-#: ../src/dialogs/find.cpp:618 ../src/ui/dialog/find.cpp:81
-msgid "Search clones"
-msgstr "Szukaj sklonowanych obiektów"
+#: ../share/extensions/pathalongpath.inx.h:9
+#: ../src/live_effects/lpe-patternalongpath.cpp:55
+msgid "Repeated, stretched"
+msgstr "Powtarzana, rozciągnięta"
 
-#. TRANSLATORS: Translate the word "Clones" only. A noun indicating type of object to find
-#: ../src/dialogs/find.cpp:620 ../src/ui/dialog/find.cpp:81
-msgid "find|Clones"
-msgstr "Klony"
+#: ../share/extensions/pathalongpath.inx.h:10
+msgid "Ribbon"
+msgstr "Wstążka"
 
-#: ../src/dialogs/find.cpp:625 ../src/ui/dialog/find.cpp:82
-msgid "Search images"
-msgstr "Szukaj obrazków"
+#: ../share/extensions/pathalongpath.inx.h:11
+#: ../src/live_effects/lpe-patternalongpath.cpp:52
+msgid "Single"
+msgstr "Pojedyncza"
 
-#: ../src/dialogs/find.cpp:625 ../src/ui/dialog/find.cpp:82
-#: ../share/extensions/embedimage.inx.h:3
-#: ../share/extensions/extractimage.inx.h:2
-msgid "Images"
-msgstr "Obrazki"
+#: ../share/extensions/pathalongpath.inx.h:12
+#: ../src/live_effects/lpe-patternalongpath.cpp:53
+msgid "Single, stretched"
+msgstr "Pojedyncza, rozciągnięta"
 
-#: ../src/dialogs/find.cpp:630 ../src/ui/dialog/find.cpp:83
-msgid "Search offset objects"
-msgstr "Szukaj obiektów powstałych przez odsunięcie"
+#: ../share/extensions/pathalongpath.inx.h:13
+msgid "Snake"
+msgstr "Pochylenie"
 
-#: ../src/dialogs/find.cpp:630 ../src/ui/dialog/find.cpp:83
-msgid "Offsets"
-msgstr "Odsunięcia"
+#: ../share/extensions/pathalongpath.inx.h:14
+#: ../share/extensions/pathscatter.inx.h:11
+msgid "Space between copies:"
+msgstr "Odstęp pomiędzy kopiami:"
 
-#: ../src/dialogs/find.cpp:694 ../src/ui/dialog/find.cpp:61
-msgid "_Text: "
-msgstr "_Tekst: "
+#: ../share/extensions/pathalongpath.inx.h:15
+#: ../share/extensions/pathscatter.inx.h:13
+#: ../src/live_effects/lpe-patternalongpath.cpp:67
+msgid "Tangential offset"
+msgstr "Przesunięcie styczne"
 
-#: ../src/dialogs/find.cpp:694 ../src/ui/dialog/find.cpp:61
-msgid "Find objects by their text content (exact or partial match)"
-msgstr "Znajdź obiekty zawierające tekst (w pełni lub częściowo pasujące)"
+#: ../share/extensions/pathalongpath.inx.h:16
+msgid "This effect bends a pattern object along arbitrary \"skeleton\" paths. The pattern is the top most object in the selection. (groups of paths/shapes/clones... allowed)"
+msgstr "Ten efekt wykonuje zagięcie desenia obiektu wzdłuż dowolnych \"szkieletowych\" ścieżek. Deseń jest najważniejszym  obiektem w zaznaczeniu. Dozwolone są grupy ścieżek, kształtów, klonów."
 
-#: ../src/dialogs/find.cpp:695 ../src/ui/dialog/find.cpp:62
-msgid "_ID: "
-msgstr "_ID: "
+#: ../share/extensions/pathalongpath.py:197
+#: ../share/extensions/pathscatter.py:208
+#: ../share/extensions/perspective.py:55
+#: ../share/extensions/summersnight.py:30
+msgid "This extension requires two selected paths."
+msgstr "To rozszerzenie wymaga zaznaczenia dwóch ścieżek"
 
-#: ../src/dialogs/find.cpp:695 ../src/ui/dialog/find.cpp:62
-msgid "Find objects by the value of the id attribute (exact or partial match)"
+#: ../share/extensions/pathmodifier.py:229
+#, python-format
+msgid "Please first convert objects to paths!  (Got [%s].)"
 msgstr ""
-"Znajdź obiekty na podstawie ich identyfikatorów (w pełni lub częściowo "
-"pasujące) "
 
-#: ../src/dialogs/find.cpp:696 ../src/ui/dialog/find.cpp:63
-msgid "_Style: "
-msgstr "Styl: "
+#: ../share/extensions/pathscatter.inx.h:1
+msgid "Cloned"
+msgstr "Sklonowano"
 
-#: ../src/dialogs/find.cpp:696 ../src/ui/dialog/find.cpp:63
-msgid ""
-"Find objects by the value of the style attribute (exact or partial match)"
-msgstr ""
-"Znajdź obiekty na podstawie właściwości ich stylu (w pełni lub częściowo "
-"pasujące)"
+#: ../share/extensions/pathscatter.inx.h:2
+msgid "Copied"
+msgstr "Skopiowano"
 
-#: ../src/dialogs/find.cpp:697 ../src/ui/dialog/find.cpp:64
-msgid "_Attribute: "
-msgstr "_Atrybut: "
+#: ../share/extensions/pathscatter.inx.h:4
+msgid "Follow path orientation"
+msgstr "Podążaj za kierunkiem ścieżki."
 
-#: ../src/dialogs/find.cpp:697 ../src/ui/dialog/find.cpp:64
-msgid "Find objects by the name of an attribute (exact or partial match)"
-msgstr ""
-"Znajdź obiekty na podstawie ich właściwości (w pełni lub częściowo pasujące)"
+#: ../share/extensions/pathscatter.inx.h:6
+msgid "Moved"
+msgstr "Przesunięto"
 
-#: ../src/dialogs/find.cpp:711 ../src/ui/dialog/find.cpp:65
-msgid "Search in s_election"
-msgstr "Szukaj w _zaznaczeniu"
+#: ../share/extensions/pathscatter.inx.h:8
+msgid "Original pattern will be:"
+msgstr "Oryginałem wzorca będzie:"
 
-#: ../src/dialogs/find.cpp:715 ../src/ui/dialog/find.cpp:65
-msgid "Limit search to the current selection"
-msgstr "Ogranicz wyszukiwanie do aktualnie zaznaczonych obiektów"
+# a może dać Rozrzucanie
+#: ../share/extensions/pathscatter.inx.h:10
+msgid "Scatter"
+msgstr "Rozpraszanie "
 
-#: ../src/dialogs/find.cpp:720 ../src/ui/dialog/find.cpp:66
-msgid "Search in current _layer"
-msgstr "Szukaj na _aktywnej warstwie"
+#: ../share/extensions/pathscatter.inx.h:12
+msgid "Stretch spaces to fit skeleton length"
+msgstr "Rozciąga odstępy, aby wypełnić długość szkieletu"
 
-#: ../src/dialogs/find.cpp:724 ../src/ui/dialog/find.cpp:66
-msgid "Limit search to the current layer"
-msgstr "Ogranicz wyszukiwanie do aktywnej warstwy"
+#: ../share/extensions/pathscatter.inx.h:14
+msgid "This effect scatters a pattern along arbitrary \"skeleton\" paths. The pattern is the top most object in the selection. (groups of paths/shapes/clones... allowed)"
+msgstr "Ten efekt rozprasza wzorzec wzdłuż dowolnych ścieżek \"szkieletowych\". Wzorcem jest najwyżej położony obiekt w zaznaczeniu. Dozwolone są grupy ścieżek, kształtów, klonów itp."
 
-#: ../src/dialogs/find.cpp:729 ../src/ui/dialog/find.cpp:67
-msgid "Include _hidden"
-msgstr "Uwzględnij _ukryte"
+#: ../share/extensions/perfectboundcover.inx.h:1
+msgid "Bleed (in)"
+msgstr "Wystawanie poza margines (w calach):"
 
-#: ../src/dialogs/find.cpp:733 ../src/ui/dialog/find.cpp:67
-msgid "Include hidden objects in search"
-msgstr "Szukaj także wśród obiektów ukrytych"
+#: ../share/extensions/perfectboundcover.inx.h:2
+msgid "Bond Weight #"
+msgstr "Gramatura ryzy (US)"
 
-#: ../src/dialogs/find.cpp:738 ../src/ui/dialog/find.cpp:68
-msgid "Include l_ocked"
-msgstr "Uwzględnij za_blokowane"
+#: ../share/extensions/perfectboundcover.inx.h:3
+msgid "Book Height (inches)"
+msgstr "Wysokość książki (w calach):"
 
-#: ../src/dialogs/find.cpp:742 ../src/ui/dialog/find.cpp:68
-msgid "Include locked objects in search"
-msgstr "Szukaj także wśród zablokowanych obiektów"
+#: ../share/extensions/perfectboundcover.inx.h:4
+msgid "Book Properties"
+msgstr "Właściwości książki"
 
-#: ../src/dialogs/find.cpp:753 ../src/ui/dialog/find.cpp:85
-msgid "Clear values"
-msgstr "Wyczyść wszystko"
+#: ../share/extensions/perfectboundcover.inx.h:5
+msgid "Book Width (inches)"
+msgstr "Szerokość książki (w calach):"
 
-#: ../src/dialogs/find.cpp:754 ../src/ui/dialog/find.cpp:86
-msgid "_Find"
-msgstr "_Szukaj"
-
-#: ../src/dialogs/find.cpp:754 ../src/ui/dialog/find.cpp:86
-msgid "Select objects matching all of the fields you filled in"
-msgstr "Zaznacza obiekty spełniające wszystkie wybrane kryteria"
+#: ../share/extensions/perfectboundcover.inx.h:6
+msgid "Caliper (inches)"
+msgstr "Caliper (w calach)"
 
-#: ../src/dialogs/guidelinedialog.cpp:44
-msgid "Unit:"
-msgstr "Jednostki:"
+#: ../share/extensions/perfectboundcover.inx.h:7
+msgid "Cover"
+msgstr "Oprawa"
 
-#: ../src/dialogs/guidelinedialog.cpp:45
-#: ../src/dialogs/object-attributes.cpp:58
-#: ../src/dialogs/object-attributes.cpp:66 ../src/widgets/toolbox.cpp:1248
-msgid "X:"
-msgstr "X:"
+#: ../share/extensions/perfectboundcover.inx.h:8
+msgid "Cover Thickness Measurement"
+msgstr "Sposób pomiaru grubości oprawy:"
 
-#: ../src/dialogs/guidelinedialog.cpp:46
-#: ../src/dialogs/object-attributes.cpp:59
-#: ../src/dialogs/object-attributes.cpp:67 ../src/widgets/toolbox.cpp:1266
-msgid "Y:"
-msgstr "Y:"
+#: ../share/extensions/perfectboundcover.inx.h:9
+msgid "Generate Template"
+msgstr "Utwórz szablon"
 
-#: ../src/dialogs/guidelinedialog.cpp:47
-msgid "Angle (degrees):"
-msgstr "Kąt (stopnie):"
+#: ../share/extensions/perfectboundcover.inx.h:10
+msgid "Interior Pages"
+msgstr "Wkład książki"
 
-#: ../src/dialogs/guidelinedialog.cpp:48
-msgid "Rela_tive change"
-msgstr "Prz_esunięcie relatywne"
+#: ../share/extensions/perfectboundcover.inx.h:11
+msgid "Note: Bond Weight # calculations are a best-guess estimate."
+msgstr "Uwaga: Obliczenia oparte na gramaturze ryzy będą jedynie dużym przybliżeniem"
 
-#: ../src/dialogs/guidelinedialog.cpp:48
-msgid "Move and/or rotate the guide relative to current settings"
-msgstr "Przesuwa i/lub obraca prowadnicę względem aktualnego położenia"
+#: ../share/extensions/perfectboundcover.inx.h:12
+msgid "Number of Pages"
+msgstr "Liczba stron:"
 
-#: ../src/dialogs/guidelinedialog.cpp:114
-msgid "Set guide properties"
-msgstr "Określ właściwości prowadnic"
+#: ../share/extensions/perfectboundcover.inx.h:13
+msgid "Pages Per Inch (PPI)"
+msgstr "Strony na cal (PPI)"
 
-#: ../src/dialogs/guidelinedialog.cpp:153
-msgid "Guideline"
-msgstr "Prowadnica"
+#: ../share/extensions/perfectboundcover.inx.h:14
+msgid "Paper Thickness Measurement"
+msgstr "Sposób pomiaru grubości papieru:"
 
-#: ../src/dialogs/guidelinedialog.cpp:241
-#, c-format
-msgid "Guideline ID: %s"
-msgstr "ID prowadnicy: %s"
+#: ../share/extensions/perfectboundcover.inx.h:15
+msgid "Perfect-Bound Cover"
+msgstr "Oprawa klejona książki"
 
-#: ../src/dialogs/guidelinedialog.cpp:247
-#, c-format
-msgid "Current: %s"
-msgstr "Aktualne ustawienia: %s"
+#: ../share/extensions/perfectboundcover.inx.h:16
+#: ../src/helper/units.cpp:38
+msgid "Points"
+msgstr "Punkty"
 
-#: ../src/dialogs/iconpreview.cpp:139
-#, c-format
-msgid "%d x %d"
-msgstr "%d x %d"
+#: ../share/extensions/perfectboundcover.inx.h:17
+msgid "Remove existing guides"
+msgstr "Usuń istniejące prowadnice"
 
-#: ../src/dialogs/iconpreview.cpp:187
-#: ../src/ui/dialog/align-and-distribute.cpp:905
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1368
-#: ../src/widgets/desktop-widget.cpp:1552
-msgid "Selection"
-msgstr "Zaznaczenie"
+#: ../share/extensions/perfectboundcover.inx.h:18
+msgid "Specify Width"
+msgstr "Szerokość określona poniżej"
 
-#: ../src/dialogs/iconpreview.cpp:189
-msgid "Selection only or whole document"
-msgstr "Tylko zaznaczenie lub cały dokument"
+#: ../share/extensions/perfectboundcover.inx.h:19
+#: ../src/widgets/sp-xmlview-attr-list.cpp:47
+msgid "Value"
+msgstr "Wartość"
 
-#: ../src/dialogs/iconpreview.cpp:197
-msgid "Refresh the icons"
-msgstr "Odśwież ikony"
+#: ../share/extensions/perspective.inx.h:2
+msgid "Perspective"
+msgstr "Perspektywa"
 
-#. Create the label for the object id
-#: ../src/dialogs/item-properties.cpp:120
-#: ../src/dialogs/item-properties.cpp:322
-#: ../src/dialogs/item-properties.cpp:413
-#: ../src/dialogs/item-properties.cpp:420
-msgid "_Id"
-msgstr "_Id"
+#: ../share/extensions/perspective.py:29
+msgid "Failed to import the numpy or numpy.linalg modules. These modules are required by this extension. Please install them and try again.  On a Debian-like system this can be done with the command, sudo apt-get install python-numpy."
+msgstr ""
 
-#: ../src/dialogs/item-properties.cpp:129
-msgid ""
-"The id= attribute (only letters, digits, and the characters .-_: allowed)"
+#: ../share/extensions/perspective.py:64
+msgid "This extension requires that the second selected path be four nodes long."
 msgstr ""
-"Identyfikator, atrybut 'id=' obiektu (dozwolone jedynie litery, cyfry, oraz "
-"znaki .-_: )"
 
-#. Button for setting the object's id, label, title and description.
-#: ../src/dialogs/item-properties.cpp:143 ../src/verbs.cpp:2401
-#: ../src/verbs.cpp:2407
-msgid "_Set"
-msgstr "_Ustaw"
+#: ../share/extensions/polyhedron_3d.inx.h:1
+msgid "3D Polyhedron"
+msgstr "Wielościan 3D"
 
-#. Create the label for the object label
-#: ../src/dialogs/item-properties.cpp:152
-msgid "_Label"
-msgstr "_Etykieta"
+#: ../share/extensions/polyhedron_3d.inx.h:2
+msgid "Clockwise Wound Object"
+msgstr ""
 
-#: ../src/dialogs/item-properties.cpp:161
-msgid "A freeform label for the object"
-msgstr "Dowolna etykieta tekstowa obiektu"
+#: ../share/extensions/polyhedron_3d.inx.h:3
+msgid "Cube"
+msgstr "Sześcian"
 
-#. Create the label for the object title
-#: ../src/dialogs/item-properties.cpp:173 ../src/dialogs/rdf.cpp:238
-msgid "Title"
-msgstr "Nazwa"
+#: ../share/extensions/polyhedron_3d.inx.h:4
+msgid "Cuboctohedron"
+msgstr "Sześcio-ośmiościan"
 
-#. Create the frame for the object description
-#: ../src/dialogs/item-properties.cpp:190 ../src/dialogs/rdf.cpp:282
-#: ../src/ui/widget/page-sizer.cpp:200
-msgid "Description"
-msgstr "Opis"
+#: ../share/extensions/polyhedron_3d.inx.h:5
+msgid "Dodecahedron"
+msgstr "Dwunastościan foremny"
 
-#. Hide
-#: ../src/dialogs/item-properties.cpp:218
-msgid "_Hide"
-msgstr "U_kryty"
+#: ../share/extensions/polyhedron_3d.inx.h:6
+msgid "Draw Back-Facing Polygons"
+msgstr "Rysuj ściany położone z tyłu"
 
-#: ../src/dialogs/item-properties.cpp:219
-msgid "Check to make the object invisible"
-msgstr "Zaznaczenie powoduje, że obiekt staje się niewidoczny"
+#: ../share/extensions/polyhedron_3d.inx.h:7
+msgid "Edge-Specified"
+msgstr "zdefiniowana krawędziami"
 
-#. Lock
-#. TRANSLATORS: "Lock" is a verb here
-#: ../src/dialogs/item-properties.cpp:228
-msgid "L_ock"
-msgstr "_Zablokowany"
+#: ../share/extensions/polyhedron_3d.inx.h:8
+msgid "Edges"
+msgstr "Krawędzie"
 
-#: ../src/dialogs/item-properties.cpp:229
-msgid "Check to make the object insensitive (not selectable by mouse)"
-msgstr "Zaznaczenie powoduje, że obiektu nie da się wybrać myszą"
+#: ../share/extensions/polyhedron_3d.inx.h:9
+msgid "Face-Specified"
+msgstr "zdefiniowana ścianami"
 
-#: ../src/dialogs/item-properties.cpp:305
-#: ../src/dialogs/item-properties.cpp:312
-msgid "Ref"
-msgstr "Ref"
+#: ../share/extensions/polyhedron_3d.inx.h:10
+msgid "Faces"
+msgstr "Ściany"
 
-#: ../src/dialogs/item-properties.cpp:372
-msgid "Lock object"
-msgstr "Zablokuj obiekt"
+#: ../share/extensions/polyhedron_3d.inx.h:11
+msgid "Filename:"
+msgstr "Nazwa pliku:"
 
-#: ../src/dialogs/item-properties.cpp:372
-msgid "Unlock object"
-msgstr "Odblokuj obiekt"
+#: ../share/extensions/polyhedron_3d.inx.h:12
+msgid "Fill Colour (Blue)"
+msgstr "Kolor wypełnienia (niebieski)"
 
-#: ../src/dialogs/item-properties.cpp:391
-msgid "Hide object"
-msgstr "Ukryj obiekt"
+#: ../share/extensions/polyhedron_3d.inx.h:13
+msgid "Fill Colour (Green)"
+msgstr "Kolor wypełnienia (zielony)"
 
-#: ../src/dialogs/item-properties.cpp:391
-msgid "Unhide object"
-msgstr "Wyświetl obiekt"
+#: ../share/extensions/polyhedron_3d.inx.h:14
+msgid "Fill Colour (Red)"
+msgstr "Kolor wypełnienia (czerwony)"
 
-#: ../src/dialogs/item-properties.cpp:415
-msgid "Id invalid! "
-msgstr "Nieprawidłowy ID!"
+#: ../share/extensions/polyhedron_3d.inx.h:16
+#, no-c-format
+msgid "Fill Opacity/ %"
+msgstr "Krycie wypełnienia (w %)"
 
-#: ../src/dialogs/item-properties.cpp:417
-msgid "Id exists! "
-msgstr "Taki ID już istnieje!"
+#: ../share/extensions/polyhedron_3d.inx.h:17
+msgid "Great Dodecahedron"
+msgstr "Wielki dwunastościan foremny"
 
-#: ../src/dialogs/item-properties.cpp:424
-msgid "Set object ID"
-msgstr "Określ ID obiektu"
+#: ../share/extensions/polyhedron_3d.inx.h:18
+msgid "Great Stellated Dodecahedron"
+msgstr "Wielki stellowany dwunastościan foremny"
 
-#: ../src/dialogs/item-properties.cpp:439
-msgid "Set object label"
-msgstr "Określ etykietę obiektu"
+#: ../share/extensions/polyhedron_3d.inx.h:19
+msgid "Icosahedron"
+msgstr "Dwudziestościan foremny"
 
-#: ../src/dialogs/item-properties.cpp:450
-msgid "Set object title"
-msgstr "Określ tytuł obiektu"
+#: ../share/extensions/polyhedron_3d.inx.h:20
+msgid "Light x-Position"
+msgstr "Oświetlenie (pozycja w osi X)"
 
-#: ../src/dialogs/item-properties.cpp:465
-msgid "Set object description"
-msgstr "Wprowadź opis obiektu: "
+#: ../share/extensions/polyhedron_3d.inx.h:21
+msgid "Light y-Position"
+msgstr "Oświetlenie (pozycja w osi Y)"
 
-#: ../src/dialogs/layer-properties.cpp:47
-msgid "Layer name:"
-msgstr "Nazwa warstwy:"
+#: ../share/extensions/polyhedron_3d.inx.h:22
+msgid "Light z-Position"
+msgstr "Oświetlenie (pozycja w osi Z)"
 
-#: ../src/dialogs/layer-properties.cpp:115
-msgid "Add layer"
-msgstr "Dodaj warstwę"
+#: ../share/extensions/polyhedron_3d.inx.h:23
+msgid "Line Thickness / px"
+msgstr "Grubość linii (w px)"
 
-#: ../src/dialogs/layer-properties.cpp:153
-msgid "Above current"
-msgstr "Ponad aktywną"
+#: ../share/extensions/polyhedron_3d.inx.h:24
+msgid "Load From File"
+msgstr "Załaduj z pliku"
 
-#: ../src/dialogs/layer-properties.cpp:157
-msgid "Below current"
-msgstr "Poniżej aktywnej"
+#: ../share/extensions/polyhedron_3d.inx.h:25
+msgid "Maximum"
+msgstr "maksimum"
 
-#: ../src/dialogs/layer-properties.cpp:160
-msgid "As sublayer of current"
-msgstr "Jako warstwa podrzędna do aktywnej"
+#: ../share/extensions/polyhedron_3d.inx.h:26
+msgid "Mean"
+msgstr "średniej"
 
-#: ../src/dialogs/layer-properties.cpp:164
-msgid "Position:"
-msgstr "Lokalizacja:"
+#: ../share/extensions/polyhedron_3d.inx.h:27
+msgid "Minimum"
+msgstr "minimum"
 
-#: ../src/dialogs/layer-properties.cpp:182
-msgid "Rename Layer"
-msgstr "Zmiana nazwy warstwy"
+#: ../share/extensions/polyhedron_3d.inx.h:28
+msgid "Model File"
+msgstr "Opis bryły"
 
-#: ../src/dialogs/layer-properties.cpp:185
-msgid "_Rename"
-msgstr "_Zmień"
+#: ../share/extensions/polyhedron_3d.inx.h:29
+msgid "Object Type"
+msgstr "Rodzaj bryły"
 
-#: ../src/dialogs/layer-properties.cpp:195
-msgid "Rename layer"
-msgstr "Zmień nazwę warstwy"
+#: ../share/extensions/polyhedron_3d.inx.h:30
+msgid "Object:"
+msgstr "Obiekt:"
 
-#. TRANSLATORS: This means "The layer has been renamed"
-#: ../src/dialogs/layer-properties.cpp:197
-msgid "Renamed layer"
-msgstr "Nazwa warstwy została zmieniona"
+#: ../share/extensions/polyhedron_3d.inx.h:31
+msgid "Octahedron"
+msgstr "Ośmiościan foremny"
 
-#: ../src/dialogs/layer-properties.cpp:201
-msgid "Add Layer"
-msgstr "Dodaj warstwę"
+#: ../share/extensions/polyhedron_3d.inx.h:33
+msgid "Report Normal Vector Information"
+msgstr "Raport wektorów normalnych dla ścian"
 
-#: ../src/dialogs/layer-properties.cpp:203
-msgid "_Add"
-msgstr "_Dodaj"
+#: ../share/extensions/polyhedron_3d.inx.h:34
+msgid "Rotate Around:"
+msgstr "Obrót wokół osi:"
 
-#: ../src/dialogs/layer-properties.cpp:225
-msgid "New layer created."
-msgstr "Utworzono nową warstwę"
+#: ../share/extensions/polyhedron_3d.inx.h:35
+msgid "Rotation / Degrees"
+msgstr "Kąt obrotu (w &#176;)"
 
-#: ../src/dialogs/layers-panel.cpp:579 ../src/widgets/layer-selector.cpp:595
-msgid "Unhide layer"
-msgstr "Wyświetl warstwę"
+#: ../share/extensions/polyhedron_3d.inx.h:36
+msgid "Scaling Factor"
+msgstr "Współczynnik skalowania"
 
-#: ../src/dialogs/layers-panel.cpp:579 ../src/widgets/layer-selector.cpp:595
-msgid "Hide layer"
-msgstr "Ukryj warstwę"
+#: ../share/extensions/polyhedron_3d.inx.h:37
+msgid "Shading"
+msgstr "Cieniowanie"
 
-#: ../src/dialogs/layers-panel.cpp:590 ../src/widgets/layer-selector.cpp:587
-msgid "Lock layer"
-msgstr "Zablokuj warstwę"
+#: ../share/extensions/polyhedron_3d.inx.h:38
+#: ../src/dialogs/object-attributes.cpp:50
+msgid "Show:"
+msgstr "Wyświetlanie:"
 
-#: ../src/dialogs/layers-panel.cpp:590 ../src/widgets/layer-selector.cpp:587
-msgid "Unlock layer"
-msgstr "Odblokuj warstwę"
+#: ../share/extensions/polyhedron_3d.inx.h:39
+msgid "Small Triambic Icosahedron"
+msgstr ""
 
-#: ../src/dialogs/layers-panel.cpp:735
-msgid "New"
-msgstr "Nowa"
+#: ../share/extensions/polyhedron_3d.inx.h:40
+msgid "Snub Cube"
+msgstr "Sześcian przycięty"
 
-#: ../src/dialogs/layers-panel.cpp:740 ../share/extensions/restack.inx.h:16
-msgid "Top"
-msgstr "Na wierzch"
+#: ../share/extensions/polyhedron_3d.inx.h:41
+msgid "Snub Dodecahedron"
+msgstr "Dwunastościan przycięty"
 
-#: ../src/dialogs/layers-panel.cpp:746
-msgid "Up"
-msgstr "Do góry"
+#: ../share/extensions/polyhedron_3d.inx.h:43
+#, no-c-format
+msgid "Stroke Opacity/ %"
+msgstr "Krycie konturu w %"
 
-#: ../src/dialogs/layers-panel.cpp:752
-msgid "Dn"
-msgstr "Na dół"
+#. Style frame
+#: ../share/extensions/polyhedron_3d.inx.h:44
+#: ../src/widgets/font-selector.cpp:188
+msgid "Style"
+msgstr "Styl"
 
-#: ../src/dialogs/layers-panel.cpp:758
-msgid "Bot"
-msgstr "Na spód"
+#: ../share/extensions/polyhedron_3d.inx.h:45
+msgid "Tetrahedron"
+msgstr "Czworościan"
 
-#: ../src/dialogs/layers-panel.cpp:768
-msgid "X"
-msgstr "X"
+#: ../share/extensions/polyhedron_3d.inx.h:46
+msgid "Then Rotate Around:"
+msgstr "Następnie obrót wokół osi:"
 
-#: ../src/dialogs/object-attributes.cpp:39
-msgid "Href:"
-msgstr "Adres:"
+#: ../share/extensions/polyhedron_3d.inx.h:47
+msgid "Truncated Cube"
+msgstr "Sześcian ścięty"
 
-#: ../src/dialogs/object-attributes.cpp:40
-msgid "Target:"
-msgstr "Cel:"
+#: ../share/extensions/polyhedron_3d.inx.h:48
+msgid "Truncated Dodecahedron"
+msgstr "Dwunastościan ścięty"
 
-#: ../src/dialogs/object-attributes.cpp:41
-msgid "Type:"
-msgstr "Typ:"
+#: ../share/extensions/polyhedron_3d.inx.h:49
+msgid "Truncated Icosahedron"
+msgstr "Dwudziestościan ścięty"
 
-#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute
-#. Identifies the type of the related resource with an absolute URI
-#: ../src/dialogs/object-attributes.cpp:44
-msgid "Role:"
-msgstr "Rola:"
+#: ../share/extensions/polyhedron_3d.inx.h:50
+msgid "Truncated Octahedron"
+msgstr "Ośmiościan ścięty"
 
-#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute
-#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link.
-#: ../src/dialogs/object-attributes.cpp:47
-msgid "Arcrole:"
-msgstr "Atrybut arcrole:"
+#: ../share/extensions/polyhedron_3d.inx.h:51
+msgid "Truncated Tetrahedron"
+msgstr "Czworościan ścięty"
 
-#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute
-#: ../src/dialogs/object-attributes.cpp:49
-msgid "Title:"
-msgstr "Tytuł:"
+#: ../share/extensions/polyhedron_3d.inx.h:52
+msgid "Vertices"
+msgstr "Wierzchołki"
 
-#: ../src/dialogs/object-attributes.cpp:50
-#: ../share/extensions/polyhedron_3d.inx.h:38
-msgid "Show:"
-msgstr "Wyświetlanie:"
+#: ../share/extensions/polyhedron_3d.inx.h:53
+msgid "View"
+msgstr "Widok"
 
-#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute
-#: ../src/dialogs/object-attributes.cpp:52
-msgid "Actuate:"
-msgstr "Pobudzenie:"
+#: ../share/extensions/polyhedron_3d.inx.h:54
+msgid "X-Axis"
+msgstr "Oś X"
 
-#: ../src/dialogs/object-attributes.cpp:57
-msgid "URL:"
-msgstr "URL:"
+#: ../share/extensions/polyhedron_3d.inx.h:55
+msgid "Y-Axis"
+msgstr "Oś Y"
 
-#: ../src/dialogs/object-attributes.cpp:113
-#, c-format
-msgid "%s Properties"
-msgstr "%s Właściwości"
+#: ../share/extensions/polyhedron_3d.inx.h:56
+msgid "Z-Axis"
+msgstr "Oś Z"
 
-#: ../src/dialogs/rdf.cpp:181
-msgid "CC Attribution"
-msgstr "CC Attribution"
+#: ../share/extensions/polyhedron_3d.inx.h:57
+msgid "Z-Sort Faces By:"
+msgstr "Sortowanie ścian w osi Z wg:"
 
-#: ../src/dialogs/rdf.cpp:186
-msgid "CC Attribution-ShareAlike"
-msgstr "CC Attribution-ShareAlike"
+#: ../share/extensions/polyhedron_3d.py:60
+msgid "Failed to import the numpy module. This module is required by this extension. Please install them and try again.  On a Debian-like system this can be done with the command, sudo apt-get install python-numpy."
+msgstr ""
 
-#: ../src/dialogs/rdf.cpp:191
-msgid "CC Attribution-NoDerivs"
-msgstr "CC Attribution-NoDerivs"
+#: ../share/extensions/ps_input.inx.h:1
+#: ../src/extension/internal/cairo-ps-out.cpp:339
+msgid "PostScript"
+msgstr "PostScript"
 
-#: ../src/dialogs/rdf.cpp:196
-msgid "CC Attribution-NonCommercial"
-msgstr "CC Attribution-NonCommercial"
+#: ../share/extensions/ps_input.inx.h:2
+#: ../src/extension/internal/cairo-ps-out.cpp:353
+msgid "PostScript (*.ps)"
+msgstr "PostScript (*.ps)"
 
-#: ../src/dialogs/rdf.cpp:201
-msgid "CC Attribution-NonCommercial-ShareAlike"
-msgstr "CC Attribution-NonCommercial-ShareAlike"
+#: ../share/extensions/ps_input.inx.h:3
+msgid "PostScript Input"
+msgstr "Źródło PostScriptu"
 
-#: ../src/dialogs/rdf.cpp:206
-msgid "CC Attribution-NonCommercial-NoDerivs"
-msgstr "CC Attribution-NonCommercial-NoDerivs"
+#: ../share/extensions/radiusrand.inx.h:1
+msgid "Jitter nodes"
+msgstr "Desynchronizuj węzły"
 
-#: ../src/dialogs/rdf.cpp:211
-msgid "Public Domain"
-msgstr "Domena publiczna"
+#: ../share/extensions/radiusrand.inx.h:2
+msgid "Maximum displacement in X, px"
+msgstr "Maksymalne przemieszczenie X (px)"
 
-#: ../src/dialogs/rdf.cpp:216
-msgid "FreeArt"
-msgstr "FreeArt"
+#: ../share/extensions/radiusrand.inx.h:3
+msgid "Maximum displacement in Y, px"
+msgstr "Maksymalne przemieszczenie Y (px)"
 
-#: ../src/dialogs/rdf.cpp:221
-msgid "Open Font License"
-msgstr "Licencja Open Font"
+#: ../share/extensions/radiusrand.inx.h:5
+msgid "Shift node handles"
+msgstr "Przesuń uchwyty węzłów"
 
-#: ../src/dialogs/rdf.cpp:239
-msgid "Name by which this document is formally known."
-msgstr "Oficjalna nazwa dokumentu"
+#: ../share/extensions/radiusrand.inx.h:6
+msgid "Shift nodes"
+msgstr "Przesuń węzły"
 
-#: ../src/dialogs/rdf.cpp:241
-msgid "Date"
-msgstr "Data"
+#: ../share/extensions/radiusrand.inx.h:7
+msgid "This effect randomly shifts the nodes (and optionally node handles) of the selected path."
+msgstr "Ten efekt losowo przesuwa węzły i opcjonalnie uchwyty węzłów zaznaczonej ścieżki"
 
-#: ../src/dialogs/rdf.cpp:242
-msgid "Date associated with the creation of this document (YYYY-MM-DD)."
-msgstr "Data utworzenia skojarzona z tym dokumentem w formacie (RRRR-MM-DD)"
+#: ../share/extensions/radiusrand.inx.h:8
+msgid "Use normal distribution"
+msgstr "Zastosuj równomierne rozproszenie"
 
-#: ../src/dialogs/rdf.cpp:244
-msgid "Format"
-msgstr "Format"
+#: ../share/extensions/render_alphabetsoup.inx.h:1
+msgid "Alphabet Soup"
+msgstr "Alphabet Soup"
 
-#: ../src/dialogs/rdf.cpp:245
-msgid "The physical or digital manifestation of this document (MIME type)."
-msgstr "Fizyczny lub cyfrowy wyróżnik tego dokumentu (typ MIME)"
+#: ../share/extensions/render_alphabetsoup.inx.h:2
+msgid "Random Seed"
+msgstr ""
 
-#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch");
-#: ../src/dialogs/rdf.cpp:247 ../src/extension/internal/bitmap/addNoise.cpp:46
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2194
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2273
-msgid "Type"
-msgstr "Typ:"
+#. Zoom
+#: ../share/extensions/render_alphabetsoup.inx.h:5
+#: ../src/ui/dialog/inkscape-preferences.cpp:413
+#: ../src/ui/view/edit-widget.cpp:1073
+#: ../src/verbs.cpp:2522
+#: ../src/widgets/desktop-widget.cpp:484
+msgid "Zoom"
+msgstr "Przybliżenie"
 
-#: ../src/dialogs/rdf.cpp:248
-msgid "Type of document (DCMI Type)."
-msgstr "Typ dokumentu (typ DCMI)"
+#: ../share/extensions/render_barcode.inx.h:1
+msgid "Bar Height:"
+msgstr "Wysokość kodu kreskowego:"
 
-#: ../src/dialogs/rdf.cpp:251
-msgid "Creator"
-msgstr "Autor"
+#: ../share/extensions/render_barcode.inx.h:2
+msgid "Barcode"
+msgstr "Kod kreskowy"
 
-#: ../src/dialogs/rdf.cpp:252
-msgid ""
-"Name of entity primarily responsible for making the content of this document."
-msgstr "Nazwa jednostki odpowiedzialnej za zawartość tego dokumentu"
+#: ../share/extensions/render_barcode.inx.h:3
+msgid "Barcode Data:"
+msgstr "Informacja:"
 
-#: ../src/dialogs/rdf.cpp:254
-msgid "Rights"
-msgstr "Własność"
+#: ../share/extensions/render_barcode.inx.h:4
+msgid "Barcode Type:"
+msgstr "Rodzaj kodu:"
 
-#: ../src/dialogs/rdf.cpp:255
-msgid ""
-"Name of entity with rights to the Intellectual Property of this document."
-msgstr "Nazwa jednostki posiadającej prawa autorskie do tego dokumentu"
+#: ../share/extensions/restack.inx.h:2
+msgid "Arbitrary Angle:"
+msgstr "Kąt dowolny:"
 
-#: ../src/dialogs/rdf.cpp:257
-msgid "Publisher"
-msgstr "Wydawca"
+#. ## The OK button
+#: ../share/extensions/restack.inx.h:3
+#: ../src/dialogs/tiledialog.cpp:864
+msgid "Arrange"
+msgstr "Rozmieść"
 
-#: ../src/dialogs/rdf.cpp:258
-msgid "Name of entity responsible for making this document available."
-msgstr "Nazwa jednostki udostępniającej ten dokument"
+#: ../share/extensions/restack.inx.h:4
+msgid "Bottom"
+msgstr ""
 
-#: ../src/dialogs/rdf.cpp:261
-msgid "Identifier"
-msgstr "Identyfikator"
+#: ../share/extensions/restack.inx.h:5
+msgid "Bottom to Top (90)"
+msgstr "Z dołu na górę (90)"
 
-#: ../src/dialogs/rdf.cpp:262
-msgid "Unique URI to reference this document."
-msgstr "Unikalny identyfikator (URI) opisujący dokument"
+#: ../share/extensions/restack.inx.h:6
+msgid "Horizontal Point:"
+msgstr ""
 
-#: ../src/dialogs/rdf.cpp:264 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1392
-msgid "Source"
-msgstr "Źródło"
+#: ../share/extensions/restack.inx.h:7
+#: ../src/live_effects/lpe-ruler.cpp:27
+msgid "Left"
+msgstr "Lewa"
 
-#: ../src/dialogs/rdf.cpp:265
-msgid "Unique URI to reference the source of this document."
-msgstr "Unikalny identyfikator (URI) dla źródła dokumentu"
+#: ../share/extensions/restack.inx.h:8
+msgid "Left to Right (0)"
+msgstr "Od lewej do prawej (0)"
 
-#: ../src/dialogs/rdf.cpp:267
-msgid "Relation"
-msgstr "Powiązanie"
+#: ../share/extensions/restack.inx.h:9
+msgid "Middle"
+msgstr "Środek"
 
-#: ../src/dialogs/rdf.cpp:268
-msgid "Unique URI to a related document."
-msgstr "Identyfikator (URI) dla powiązanego dokumentu"
+#: ../share/extensions/restack.inx.h:10
+msgid "Radial Inward"
+msgstr "radialnie do wewnątrz"
 
-#: ../src/dialogs/rdf.cpp:270
-msgid "Language"
-msgstr "Język"
+#: ../share/extensions/restack.inx.h:11
+msgid "Radial Outward"
+msgstr "radialnie na zewnątrz"
 
-#: ../src/dialogs/rdf.cpp:271
-msgid ""
-"Two-letter language tag with optional subtags for the language of this "
-"document.  (e.g. 'en-GB')"
-msgstr ""
-"Dwuliterowy wyróżnik języka z opcjonalnym dodatkowym wyróżnikiem języka dla "
-"tego dokumentu. (np. pl-PL)"
+#: ../share/extensions/restack.inx.h:12
+msgid "Restack"
+msgstr "Utwórz ponownie stos"
 
-#: ../src/dialogs/rdf.cpp:273
-msgid "Keywords"
-msgstr "Słowa kluczowe"
+#: ../share/extensions/restack.inx.h:13
+msgid "Restack Direction:"
+msgstr "Kierunek stosu:"
 
-#: ../src/dialogs/rdf.cpp:274
-msgid ""
-"The topic of this document as comma-separated key words, phrases, or "
-"classifications."
-msgstr ""
-"Temat tego dokumentu w postaci oddzielonych przecinkami słów kluczowych, "
-"wyrażeń lub klasyfikacji"
+#: ../share/extensions/restack.inx.h:14
+#: ../src/live_effects/lpe-ruler.cpp:28
+msgid "Right"
+msgstr "Prawa"
 
-#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content.
-#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/
-#: ../src/dialogs/rdf.cpp:278
-msgid "Coverage"
-msgstr "Tematyka"
+#: ../share/extensions/restack.inx.h:15
+msgid "Right to Left (180)"
+msgstr "Od prawej do lewej (180)"
 
-#: ../src/dialogs/rdf.cpp:279
-msgid "Extent or scope of this document."
-msgstr "Tematyka lub zakres tego dokumentu"
+#: ../share/extensions/restack.inx.h:16
+#: ../src/dialogs/layers-panel.cpp:663
+msgid "Top"
+msgstr "Na wierzch"
 
-#: ../src/dialogs/rdf.cpp:283
-msgid "A short account of the content of this document."
-msgstr "Krótkie podsumowanie zawartości dokumentu"
+#: ../share/extensions/restack.inx.h:17
+msgid "Top to Bottom (270)"
+msgstr "Z góry na dół (270)"
 
-#. FIXME: need to handle 1 agent per line of input
-#: ../src/dialogs/rdf.cpp:287
-msgid "Contributors"
-msgstr "Współautorzy"
+#: ../share/extensions/restack.inx.h:18
+msgid "Vertical Point:"
+msgstr "Punkt pionowy:"
 
-#: ../src/dialogs/rdf.cpp:288
-msgid ""
-"Names of entities responsible for making contributions to the content of "
-"this document."
-msgstr "Nazwy jednostek biorących udział w tworzeniu zawartości tego dokumentu"
+#: ../share/extensions/rtree.inx.h:1
+msgid "Initial size"
+msgstr "Rozmiar początkowy"
 
-#. TRANSLATORS: URL to a page that defines the license for the document
-#: ../src/dialogs/rdf.cpp:292
-msgid "URI"
-msgstr "URI"
+#: ../share/extensions/rtree.inx.h:2
+msgid "Minimum size"
+msgstr "Rozmiar minimalny"
 
-#. TRANSLATORS: this is where you put a URL to a page that defines the license
-#: ../src/dialogs/rdf.cpp:294
-msgid "URI to this document's license's namespace definition."
-msgstr "Adres URI do strony zawierającej definicję licencji tego dokumentu"
+#: ../share/extensions/rtree.inx.h:3
+msgid "Random Tree"
+msgstr "Losowe drzewko"
 
-#. TRANSLATORS: fragment of XML representing the license of the document
-#: ../src/dialogs/rdf.cpp:298
-msgid "Fragment"
-msgstr "Fragment"
+#: ../share/extensions/rubberstretch.inx.h:2
+#, no-c-format
+msgid "Curve (%):"
+msgstr "Krzywa (%):"
 
-#: ../src/dialogs/rdf.cpp:299
-msgid "XML fragment for the RDF 'License' section."
-msgstr "Fragment XML zawierający sekcję licencji RDF"
+#: ../share/extensions/rubberstretch.inx.h:4
+msgid "Rubber Stretch"
+msgstr "Zaznaczenie elastyczne"
 
-#. TRANSLATORS: "Set" is a verb here
-#: ../src/dialogs/sp-attribute-widget.cpp:166
-#: ../src/dialogs/sp-attribute-widget.cpp:773 ../src/dialogs/xml-tree.cpp:533
-msgid "Set attribute"
-msgstr "Określ atrybut"
+#: ../share/extensions/rubberstretch.inx.h:6
+#, no-c-format
+msgid "Strength (%):"
+msgstr "Siła (%):"
 
-#: ../src/dialogs/stroke-style.cpp:305 ../src/dialogs/stroke-style.cpp:364
-msgid "Set stroke color"
-msgstr "Ustaw kolor konturu"
+#: ../share/extensions/sk1_input.inx.h:1
+msgid "Open files saved in sK1 vector graphics editor"
+msgstr "Otwiera pliki zapisane w edytorze grafiki wektorowej sK1"
 
-#: ../src/dialogs/stroke-style.cpp:355 ../src/ui/widget/selected-style.cpp:255
-#: ../src/ui/widget/selected-style.cpp:488
-msgid "Remove stroke"
-msgstr "Usuń kontur"
+#: ../share/extensions/sk1_input.inx.h:2
+msgid "sK1 vector graphics files (.sk1)"
+msgstr "Pliki grafiki wektorowej sK1 (.sk1)"
 
-#: ../src/dialogs/stroke-style.cpp:416
-msgid "Set gradient on stroke"
-msgstr "Ustaw gradient konturu"
+#: ../share/extensions/sk1_input.inx.h:3
+msgid "sK1 vector graphics files input"
+msgstr "Źródło plików grafiki wektorowej sK1"
 
-#: ../src/dialogs/stroke-style.cpp:460
-msgid "Set pattern on stroke"
-msgstr "Ustaw deseń konturu"
+#: ../share/extensions/sk_input.inx.h:1
+msgid "A diagram created with the program Sketch"
+msgstr "Diagram utworzony w programie Sketch"
 
-#: ../src/dialogs/stroke-style.cpp:481 ../src/ui/widget/selected-style.cpp:193
-#: ../src/ui/widget/selected-style.cpp:251
-#: ../src/ui/widget/selected-style.cpp:513
-#: ../src/ui/widget/style-swatch.cpp:335
-msgid "Unset stroke"
-msgstr "Nie ustawiaj konturu"
+#: ../share/extensions/sk_input.inx.h:2
+msgid "Sketch Diagram (*.sk)"
+msgstr "Diagram Sketch (*.sk)"
 
-#: ../src/dialogs/stroke-style.cpp:793 ../src/filter-enums.cpp:95
-#: ../src/flood-context.cpp:288 ../src/interface.cpp:826
-#: ../src/ui/dialog/filter-effects-dialog.cpp:507
-#: ../src/ui/dialog/inkscape-preferences.cpp:211
-#: ../src/ui/dialog/inkscape-preferences.cpp:375
-#: ../src/ui/dialog/inkscape-preferences.cpp:501
-#: ../src/ui/dialog/inkscape-preferences.cpp:958 ../src/verbs.cpp:2156
-#: ../share/extensions/grid_polar.inx.h:16
-msgid "None"
-msgstr "Brak"
+#: ../share/extensions/sk_input.inx.h:3
+msgid "Sketch Input"
+msgstr "Źródło Sketch"
 
-#: ../src/dialogs/stroke-style.cpp:848 ../src/widgets/gradient-vector.cpp:264
-#: ../src/widgets/paint-selector.cpp:885
-msgid "No document selected"
-msgstr "Nie wybrano dokumentu"
+#: ../share/extensions/spirograph.inx.h:1
+msgid "Gear Placement"
+msgstr "Położenie trybów:"
 
-#: ../src/dialogs/stroke-style.cpp:937
-msgid "Set markers"
-msgstr "Ustaw zakończenia"
+#: ../share/extensions/spirograph.inx.h:2
+msgid "Inside (Hypotrochoid)"
+msgstr "wewnątrz (hipotrochoida)"
 
-#: ../src/dialogs/stroke-style.cpp:1104 ../share/extensions/edge3d.inx.h:9
-msgid "Stroke width"
-msgstr "Szerokość konturu"
+#: ../share/extensions/spirograph.inx.h:3
+msgid "Outside (Epitrochoid)"
+msgstr "na zewnątrz (epitrochoida)"
 
-#. 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/dialogs/stroke-style.cpp:1127
-msgid "Join:"
-msgstr "Połączenie:"
+#: ../share/extensions/spirograph.inx.h:4
+msgid "Quality (Default = 16)"
+msgstr "Jakość (wartość domyślna = 16)"
 
-#. 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/dialogs/stroke-style.cpp:1139
-msgid "Miter join"
-msgstr "Ostre"
+#: ../share/extensions/spirograph.inx.h:5
+msgid "R - Ring Radius (px)"
+msgstr "R - promień pierścienia (px)"
 
-#. 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/dialogs/stroke-style.cpp:1147
-msgid "Round join"
-msgstr "Zaokrąglone"
+#: ../share/extensions/spirograph.inx.h:7
+msgid "Rotation (deg)"
+msgstr "Obrót (&#176;)"
 
-#. 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/dialogs/stroke-style.cpp:1155
-msgid "Bevel join"
-msgstr "Ścięte"
+#: ../share/extensions/spirograph.inx.h:8
+msgid "Spirograph"
+msgstr "Spirograf"
 
-#. Miterlimit
-#. TRANSLATORS: Miter limit: only for "miter join", this limits the length
-#. of the sharp "spike" when the lines connect at too sharp an angle.
-#. When two line segments meet at a sharp angle, a miter join results in a
-#. spike that extends well beyond the connection point. The purpose of the
-#. miter limit is to cut off such spikes (i.e. convert them into bevels)
-#. when they become too long.
-#: ../src/dialogs/stroke-style.cpp:1166
-msgid "Miter limit:"
-msgstr "Ograniczenie połączeń ostrych:"
+#: ../share/extensions/spirograph.inx.h:9
+msgid "d - Pen Radius (px)"
+msgstr "d - promień pióra (px)"
 
-#: ../src/dialogs/stroke-style.cpp:1174
-msgid "Maximum length of the miter (in units of stroke width)"
-msgstr "Maksymalna długość połączeń ostrych (w jednostkach szerokości konturu)"
+#: ../share/extensions/spirograph.inx.h:10
+msgid "r - Gear Radius (px)"
+msgstr "r - promień trybu (px)"
 
-#. Cap type
-#. TRANSLATORS: cap type specifies the shape for the ends of lines
-#: ../src/dialogs/stroke-style.cpp:1187
-msgid "Cap:"
-msgstr "Zakończenie:"
+#: ../share/extensions/straightseg.inx.h:1
+msgid "Behavior"
+msgstr "Zachowanie"
 
-#. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point
-#. of the line; the ends of the line are square
-#: ../src/dialogs/stroke-style.cpp:1198
-msgid "Butt cap"
-msgstr "Ostre"
+#. You can add new elements from this point forward
+#: ../share/extensions/straightseg.inx.h:3
+#: ../src/helper/units.cpp:42
+msgid "Percent"
+msgstr "Procent"
 
-#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the
-#. line; the ends of the line are rounded
-#: ../src/dialogs/stroke-style.cpp:1205
-msgid "Round cap"
-msgstr "Zaokrąglone"
+#: ../share/extensions/straightseg.inx.h:4
+msgid "Straighten Segments"
+msgstr "Wyprostuj odcinki"
 
-#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the
-#. line; the ends of the line are square
-#: ../src/dialogs/stroke-style.cpp:1212
-msgid "Square cap"
-msgstr "Kwadratowe"
+#: ../share/extensions/summersnight.inx.h:1
+msgid "Envelope"
+msgstr "Obwiednia"
 
-#. Dash
-#: ../src/dialogs/stroke-style.cpp:1218
-msgid "Dashes:"
-msgstr "Styl kresek:"
+#: ../share/extensions/summersnight.py:32
+msgid "The second path must be exactly four nodes long."
+msgstr ""
 
-#. 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/dialogs/stroke-style.cpp:1239
-msgid "Start Markers:"
-msgstr "Znaczniki początkowe:"
+#: ../share/extensions/svg2xaml.inx.h:1
+#: ../share/extensions/xaml2svg.inx.h:1
+msgid "Microsoft XAML (*.xaml)"
+msgstr "Microsoft XAML (*.xaml)"
 
-#: ../src/dialogs/stroke-style.cpp:1249
-msgid "Mid Markers:"
-msgstr "Znaczniki środkowe:"
+#: ../share/extensions/svg2xaml.inx.h:2
+#: ../share/extensions/xaml2svg.inx.h:2
+msgid "Microsoft's GUI definition format"
+msgstr "Format opisu GUI firmy Microsoft"
 
-#: ../src/dialogs/stroke-style.cpp:1259
-msgid "End Markers:"
-msgstr "Znaczniki końcowe:"
+#: ../share/extensions/svg2xaml.inx.h:3
+msgid "XAML Output"
+msgstr "Zapis w XAML"
 
-#: ../src/dialogs/stroke-style.cpp:1605 ../src/dialogs/stroke-style.cpp:1703
-msgid "Set stroke style"
-msgstr "Określ styl konturu"
+#: ../share/extensions/svg_and_media_zip_output.inx.h:1
+msgid "Compressed Inkscape SVG with media (*.zip)"
+msgstr "Skompresowany plik Inkscape SVG z mediami (*.zip)"
 
-#: ../src/dialogs/swatches.cpp:248
-#, fuzzy, c-format
-msgid ""
-"Color: <b>%s</b>; <b>Click</b> to set fill, <b>Shift+click</b> to set stroke"
-msgstr ""
-"<b>Kliknij</b>, aby określić parametry wypełnienia, <b>Shift+kliknięcie</b>, "
-"aby określić parametry konturu"
+#: ../share/extensions/svg_and_media_zip_output.inx.h:2
+msgid "Inkscape's native file format compressed with Zip and including all media files"
+msgstr "Natywny plik Inkscape skompresowany razem ze wszystkimi mediami metodą Zip"
 
-#. TRANSLATORS: An item in context menu on a colour in the swatches
-#: ../src/dialogs/swatches.cpp:298
-msgid "Set fill"
-msgstr "Ustaw wypełnienie"
+#: ../share/extensions/svg_and_media_zip_output.inx.h:3
+msgid "ZIP Output"
+msgstr "Zapis ZIP"
 
-#. TRANSLATORS: An item in context menu on a colour in the swatches
-#: ../src/dialogs/swatches.cpp:306
-msgid "Set stroke"
-msgstr "Ustaw kontur"
+#: ../share/extensions/svg_and_media_zip_output.py:102
+#, python-format
+msgid "Could not locate file: %s"
+msgstr "Nie można zlokalizować pliku: %s"
 
-#: ../src/dialogs/swatches.cpp:525
-msgid "Change color definition"
-msgstr "Zmień definicję koloru"
+#: ../share/extensions/svgz_input.inx.h:1
+#: ../share/extensions/svgz_output.inx.h:1
+#: ../src/extension/internal/svgz.cpp:53
+#: ../src/extension/internal/svgz.cpp:67
+msgid "Compressed Inkscape SVG (*.svgz)"
+msgstr "Skompresowany Inkscape SVG (*.svgz)"
 
-#: ../src/dialogs/swatches.cpp:676
-msgid "Set stroke color from swatch"
-msgstr "Określ kolor konturu wybierając próbkę z palety"
+#: ../share/extensions/svgz_input.inx.h:2
+#: ../share/extensions/svgz_output.inx.h:2
+#: ../src/extension/internal/svgz.cpp:68
+msgid "Inkscape's native file format compressed with GZip"
+msgstr "Natywny format Inkscape skompresowany programem GZip"
 
-#: ../src/dialogs/swatches.cpp:676
-msgid "Set fill color from swatch"
-msgstr "Określ kolor wypełnienia wybierając próbkę z palety"
+#: ../share/extensions/svgz_input.inx.h:3
+#: ../src/extension/internal/svgz.cpp:47
+msgid "SVGZ Input"
+msgstr "Źródło SVGZ"
 
-#: ../src/dialogs/swatches.cpp:996
-#, c-format
-msgid "Palettes directory (%s) is unavailable."
-msgstr "Katalog palet (%s) jest niedostępny"
+#: ../share/extensions/svgz_output.inx.h:3
+#: ../src/extension/internal/svgz.cpp:62
+#: ../src/extension/internal/svgz.cpp:76
+msgid "SVGZ Output"
+msgstr "Zapis SVGZ"
 
-#. TODO:  Insert widgets
-#: ../src/dialogs/text-edit.cpp:200 ../src/ui/dialog/text-properties.cpp:36
-msgid "Font"
-msgstr "Czcionka"
+#: ../share/extensions/text_braille.inx.h:1
+msgid "Convert to Braille"
+msgstr "Konwertuj na alfabet Braille'a"
 
-#: ../src/dialogs/text-edit.cpp:223
-msgid "Layout"
-msgstr "Rozmieszczenie"
+#: ../share/extensions/text_flipcase.inx.h:2
+msgid "fLIP cASE"
+msgstr "oDWRÓĆ wIELKOŚĆ lITER"
 
-#: ../src/dialogs/text-edit.cpp:237
-msgid "Align lines left"
-msgstr "Wyrównanie do lewej"
+#: ../share/extensions/text_lowercase.inx.h:2
+msgid "lowercase"
+msgstr "małe litery"
 
-#. TRANSLATORS: `Center' here is a verb.
-#: ../src/dialogs/text-edit.cpp:252
-msgid "Center lines"
-msgstr "Wyśrodkowanie"
+#: ../share/extensions/text_randomcase.inx.h:2
+msgid "rANdOm CasE"
+msgstr "LosoWa wIelKość litER"
 
-#: ../src/dialogs/text-edit.cpp:266
-msgid "Align lines right"
-msgstr "Wyrównanie do prawej"
+#: ../share/extensions/text_replace.inx.h:1
+msgid "By:"
+msgstr "Nowy tekst:"
 
-#: ../src/dialogs/text-edit.cpp:280
-msgid "Justify lines"
-msgstr "Wyjustowanie"
+#: ../share/extensions/text_replace.inx.h:2
+msgid "Replace text"
+msgstr "Zamień tekst"
 
-#: ../src/dialogs/text-edit.cpp:302 ../src/widgets/toolbox.cpp:5354
-msgid "Horizontal text"
-msgstr "Poziomy układ tekstu"
+#: ../share/extensions/text_replace.inx.h:3
+msgid "Replace:"
+msgstr "Tekst:"
 
-#: ../src/dialogs/text-edit.cpp:316 ../src/widgets/toolbox.cpp:5366
-msgid "Vertical text"
-msgstr "Pionowy układ tekstu"
+#: ../share/extensions/text_sentencecase.inx.h:1
+msgid "Sentence case"
+msgstr "Styl zdania"
 
-#: ../src/dialogs/text-edit.cpp:331
-msgid "Line spacing:"
-msgstr "Odstęp między wierszami:"
+#: ../share/extensions/text_titlecase.inx.h:2
+msgid "Title Case"
+msgstr "Styl Tytułu"
 
-#. Text
-#: ../src/dialogs/text-edit.cpp:377 ../src/selection-describer.cpp:67
-#: ../src/ui/dialog/inkscape-preferences.cpp:469
-#: ../src/ui/dialog/text-properties.cpp:37 ../src/verbs.cpp:2437
-#: ../share/extensions/lorem_ipsum.inx.h:5
-#: ../share/extensions/render_alphabetsoup.inx.h:4
-#: ../share/extensions/text_braille.inx.h:2
-#: ../share/extensions/text_flipcase.inx.h:1
-#: ../share/extensions/text_lowercase.inx.h:1
-#: ../share/extensions/text_randomcase.inx.h:1
-#: ../share/extensions/text_replace.inx.h:4
-#: ../share/extensions/text_sentencecase.inx.h:2
-#: ../share/extensions/text_titlecase.inx.h:1
-#: ../share/extensions/text_uppercase.inx.h:1
-msgid "Text"
-msgstr "Tekst"
+#: ../share/extensions/text_uppercase.inx.h:2
+msgid "UPPERCASE"
+msgstr "WIELKIE LITERY"
 
-#: ../src/dialogs/text-edit.cpp:424
-msgid "Set as default"
-msgstr "Zapisz jako domyślne"
+#: ../share/extensions/triangle.inx.h:1
+msgid "Angle a / deg"
+msgstr "Kąt a  / stopnie"
 
-#: ../src/dialogs/text-edit.cpp:665 ../src/text-context.cpp:1438
-msgid "Set text style"
-msgstr "Określ styl tekstu"
+#: ../share/extensions/triangle.inx.h:2
+msgid "Angle b / deg"
+msgstr "Kąt b  / stopnie"
 
-#: ../src/dialogs/tiledialog.cpp:353
-msgid "Arrange in a grid"
-msgstr "Rozłóż na siatce"
+#: ../share/extensions/triangle.inx.h:3
+msgid "Angle c / deg"
+msgstr "Kąt c  / stopnie"
 
-#: ../src/dialogs/tiledialog.cpp:654
-msgid "Rows:"
-msgstr "Wiersze:"
+#: ../share/extensions/triangle.inx.h:4
+msgid "From Side a and Angles a, b"
+msgstr "Ze strony a i kątów a, b"
 
-#: ../src/dialogs/tiledialog.cpp:662
-msgid "Number of rows"
-msgstr "Liczba wierszy"
+#: ../share/extensions/triangle.inx.h:5
+msgid "From Side c and Angles a, b"
+msgstr "Ze strony c i kątów a, b"
 
-#: ../src/dialogs/tiledialog.cpp:666
-msgid "Equal height"
-msgstr "Jednakowa wysokość"
+#: ../share/extensions/triangle.inx.h:6
+msgid "From Sides a, b and Angle a"
+msgstr "Ze stron a, b i kąta a"
 
-#: ../src/dialogs/tiledialog.cpp:676
-msgid "If not set, each row has the height of the tallest object in it"
-msgstr ""
-"Jeśli wartość nie jest określona każdy wiersz ma wysokość najwyższego "
-"znajdującego się w nim obiektu"
+#: ../share/extensions/triangle.inx.h:7
+msgid "From Sides a, b and Angle c"
+msgstr "Ze stron a, b i kąta c"
 
-#. #### Radio buttons to control vertical alignment ####
-#. #### Radio buttons to control horizontal alignment ####
-#: ../src/dialogs/tiledialog.cpp:682 ../src/dialogs/tiledialog.cpp:752
-msgid "Align:"
-msgstr "Wyrównanie:"
+#: ../share/extensions/triangle.inx.h:8
+msgid "From Three Sides"
+msgstr "Z trzech stron"
 
-#. #### Number of columns ####
-#: ../src/dialogs/tiledialog.cpp:724
-msgid "Columns:"
-msgstr "Kolumny:"
+#. # end multiple scan
+#. ## end mode page
+#: ../share/extensions/triangle.inx.h:9
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2196
+#: ../src/ui/dialog/tracedialog.cpp:553
+#: ../src/widgets/toolbox.cpp:3783
+msgid "Mode"
+msgstr "Tryb"
 
-#: ../src/dialogs/tiledialog.cpp:732
-msgid "Number of columns"
-msgstr "Liczba kolumn"
+#: ../share/extensions/triangle.inx.h:11
+msgid "Side Length a / px"
+msgstr "Długość boku (px)"
 
-#: ../src/dialogs/tiledialog.cpp:736
-msgid "Equal width"
-msgstr "Jednakowa szerokość"
+#: ../share/extensions/triangle.inx.h:12
+msgid "Side Length b / px"
+msgstr "Długość boku (px)"
 
-#: ../src/dialogs/tiledialog.cpp:745
-msgid "If not set, each column has the width of the widest object in it"
-msgstr ""
-"Jeśli wartość nie jest określona, każda kolumna ma szerokość najszerszego "
-"znajdującego się w niej obiektu"
+#: ../share/extensions/triangle.inx.h:13
+msgid "Side Length c / px"
+msgstr "Długość boku (px)"
 
-#. #### Radio buttons to control spacing manually or to fit selection bbox ####
-#: ../src/dialogs/tiledialog.cpp:791
-msgid "Fit into selection box"
-msgstr "Dopasuj do ramki zaznaczenia"
+#: ../share/extensions/triangle.inx.h:14
+msgid "Triangle"
+msgstr "Trójkąt"
 
-#: ../src/dialogs/tiledialog.cpp:797
-msgid "Set spacing:"
-msgstr "Ustawienia odstępów:"
+#: ../share/extensions/txt2svg.inx.h:1
+msgid "ASCII Text"
+msgstr "Tekst ASCII"
 
-#: ../src/dialogs/tiledialog.cpp:817
-msgid "Vertical spacing between rows (px units)"
-msgstr "Odstępy pionowe pomiędzy wierszami (w px)"
+#: ../share/extensions/txt2svg.inx.h:2
+msgid "Text File (*.txt)"
+msgstr "Plik tekstowy (*.txt)"
 
-#: ../src/dialogs/tiledialog.cpp:842
-msgid "Horizontal spacing between columns (px units)"
-msgstr "Odstępy poziome pomiędzy kolumnami (w px)"
+#: ../share/extensions/txt2svg.inx.h:3
+msgid "Text Input"
+msgstr "Źródło tekstowe"
 
-#. ## The OK button
-#: ../src/dialogs/tiledialog.cpp:865 ../share/extensions/restack.inx.h:3
-msgid "Arrange"
-msgstr "Rozmieść"
+#: ../share/extensions/whirl.inx.h:1
+msgid "Amount of whirl"
+msgstr "Stopień skręcenia"
 
-#: ../src/dialogs/tiledialog.cpp:866
-msgid "Arrange selected objects"
-msgstr "Rozmieść zaznaczone obiekty"
+#: ../share/extensions/whirl.inx.h:3
+msgid "Rotation is clockwise"
+msgstr "Skręcenie w prawo"
 
-#: ../src/dialogs/xml-tree.cpp:174
-msgid "<b>Click</b> to select nodes, <b>drag</b> to rearrange."
-msgstr ""
-"<b>Kliknięcie</b> wybiera węzeł, <b>przeciągnięcie</b> zmienia jego pozycję"
+#: ../share/extensions/whirl.inx.h:4
+msgid "Whirl"
+msgstr "Wir"
 
-#: ../src/dialogs/xml-tree.cpp:185
-msgid "<b>Click</b> attribute to edit."
-msgstr "<b>Kliknięcie</b> rozpoczyna edycję atrybutu"
+#: ../share/extensions/wmf_input.inx.h:1
+msgid "A popular graphics file format for clipart"
+msgstr "Popularny format graficzny dla klipartów"
 
-#: ../src/dialogs/xml-tree.cpp:189
-#, c-format
-msgid ""
-"Attribute <b>%s</b> selected. Press <b>Ctrl+Enter</b> when done editing to "
-"commit changes."
-msgstr ""
-"Wybrano atrybut <b>%s</b>. Naciśnięcie <b>Ctrl + Enter</b> po zakończeniu "
-"zapamiętuje zmiany."
+#: ../share/extensions/wmf_input.inx.h:2
+msgid "Windows Metafile (*.wmf)"
+msgstr "Windows Metafile (*.wmf)"
 
-#: ../src/dialogs/xml-tree.cpp:284
-msgid "Drag to reorder nodes"
-msgstr "Przeciągnij, aby zmienić położenie węzłów"
+#: ../share/extensions/wmf_input.inx.h:3
+msgid "Windows Metafile Input"
+msgstr "Źródło Metaplik Windows"
 
-#: ../src/dialogs/xml-tree.cpp:304
-msgid "New element node"
-msgstr "Nowy węzeł elementu"
+#: ../share/extensions/xaml2svg.inx.h:3
+msgid "XAML Input"
+msgstr "Źródło XAML"
 
-#: ../src/dialogs/xml-tree.cpp:326
-msgid "New text node"
-msgstr "Nowy węzeł tekstu"
+#: ../src/arc-context.cpp:339
+msgid "<b>Ctrl</b>: make circle or integer-ratio ellipse, snap arc/segment angle"
+msgstr "<b>Ctrl</b>: tworzenie okręgów lub proporcjonalnych elips, przyciąganie do kąta półkola/łuku"
 
-#: ../src/dialogs/xml-tree.cpp:347 ../src/dialogs/xml-tree.cpp:1414
-#: ../src/nodepath.cpp:2024
-msgid "Duplicate node"
-msgstr "Powiel węzeł"
+#: ../src/arc-context.cpp:340
+#: ../src/rect-context.cpp:384
+msgid "<b>Shift</b>: draw around the starting point"
+msgstr "<b>Shift</b>: rysowanie od punktu startowego we wszystkich kierunkach"
 
-#: ../src/dialogs/xml-tree.cpp:368 ../src/dialogs/xml-tree.cpp:1431
-#: ../src/nodepath.cpp:3273 ../src/widgets/toolbox.cpp:1086
-msgid "Delete node"
-msgstr "Usuń węzeł"
+#: ../src/arc-context.cpp:486
+#, c-format
+msgid "<b>Ellipse</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> to draw around the starting point"
+msgstr "<b>Elipsa</b>: %s &#215; %s (wymuszona do proporcji %d:%d); z <b>Shift</b>, aby rysować wokół punktu startowego"
 
-#: ../src/dialogs/xml-tree.cpp:384 ../src/dialogs/xml-tree.cpp:1576
-msgid "Unindent node"
-msgstr "Usuń wcięcie"
+#: ../src/arc-context.cpp:488
+#, c-format
+msgid "<b>Ellipse</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-ratio ellipse; with <b>Shift</b> to draw around the starting point"
+msgstr "<b>Elipsa</b>: %s &#215; %s; z <b>Ctrl</b>, aby utworzyć  koło lub proporcjonalną elipsę; z <b>Shift</b>, aby rysować wokół punktu startowego"
 
-#: ../src/dialogs/xml-tree.cpp:399 ../src/dialogs/xml-tree.cpp:1555
-msgid "Indent node"
-msgstr "Utwórz wcięcie"
+#: ../src/arc-context.cpp:507
+msgid "Create ellipse"
+msgstr "Utwórz elipsę"
 
-#: ../src/dialogs/xml-tree.cpp:411 ../src/dialogs/xml-tree.cpp:1508
-msgid "Raise node"
-msgstr "Przenieś do góry"
+#: ../src/box3d-context.cpp:449
+#: ../src/box3d-context.cpp:456
+#: ../src/box3d-context.cpp:463
+#: ../src/box3d-context.cpp:470
+#: ../src/box3d-context.cpp:477
+#: ../src/box3d-context.cpp:484
+msgid "Change perspective (angle of PLs)"
+msgstr "Zmień perspektywę (kąt linii)"
 
-#: ../src/dialogs/xml-tree.cpp:423 ../src/dialogs/xml-tree.cpp:1525
-msgid "Lower node"
-msgstr "Przenieś w dół"
+#. status text
+#: ../src/box3d-context.cpp:639
+msgid "<b>3D Box</b>; with <b>Shift</b> to extrude along the Z axis"
+msgstr "<b>Obiekt 3D</b>; z <b>Shift</b> - wytłaczanie wzdłuż osi Z"
 
-#: ../src/dialogs/xml-tree.cpp:468 ../src/dialogs/xml-tree.cpp:1449
-msgid "Delete attribute"
-msgstr "Usuń atrybut"
+#: ../src/box3d-context.cpp:663
+msgid "Create 3D box"
+msgstr "Utwórz obiekt 3D"
 
-#. TRANSLATORS: "Attribute" is a noun here
-#: ../src/dialogs/xml-tree.cpp:513
-msgid "Attribute name"
-msgstr "Nazwa atrybutu"
+#: ../src/box3d.cpp:316
+msgid "<b>3D Box</b>"
+msgstr "<b>Obiekt 3D</b>"
 
-#. TRANSLATORS: "Set" is a verb here
-#: ../src/dialogs/xml-tree.cpp:535
-msgid "Set"
-msgstr "Ustaw"
+#: ../src/connector-context.cpp:519
+msgid "Creating new connector"
+msgstr "Tworzenie nowego łącznika"
 
-#. TRANSLATORS: "Attribute" is a noun here
-#: ../src/dialogs/xml-tree.cpp:558
-msgid "Attribute value"
-msgstr "Wartość atrybutu"
+#: ../src/connector-context.cpp:751
+msgid "Connector endpoint drag cancelled."
+msgstr "Anulowano przeciąganie punktu końcowego łącznika"
 
-#: ../src/dialogs/xml-tree.cpp:891
-msgid "Drag XML subtree"
-msgstr "Przeciągnij gałąź XML"
+#: ../src/connector-context.cpp:799
+msgid "Reroute connector"
+msgstr "Przekieruj łącznik"
 
-#: ../src/dialogs/xml-tree.cpp:1318
-msgid "New element node..."
-msgstr "Nowy węzeł elementu..."
+#. Flush pending updates
+#: ../src/connector-context.cpp:963
+msgid "Create connector"
+msgstr "Utwórz łącznik"
 
-#: ../src/dialogs/xml-tree.cpp:1339
-#: ../src/ui/dialog/whiteboard-connect.cpp:114
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:103
-msgid "Cancel"
-msgstr "Anuluj"
+#: ../src/connector-context.cpp:987
+msgid "Finishing connector"
+msgstr "Zakończono tworzenie łącznika"
 
-#: ../src/dialogs/xml-tree.cpp:1345
-msgid "Create"
-msgstr "Utwórz"
+#: ../src/connector-context.cpp:1130
+msgid "<b>Connection point</b>: click or drag to create a new connector"
+msgstr "<b>Punkt połączenia</b> - kliknij lub przeciągnij, aby utworzyć nowy łącznik"
 
-#: ../src/dialogs/xml-tree.cpp:1380
-msgid "Create new element node"
-msgstr "Utwórz nowy węzeł elementu"
+#: ../src/connector-context.cpp:1203
+msgid "<b>Connector endpoint</b>: drag to reroute or connect to new shapes"
+msgstr "<b>Punkt końcowy łącznika</b> - przeciągnij, aby przestawić lub połącz z nowym kształtem"
 
-#: ../src/dialogs/xml-tree.cpp:1396
-msgid "Create new text node"
-msgstr "Utwórz nowy węzeł tekstu"
+#: ../src/connector-context.cpp:1314
+msgid "Select <b>at least one non-connector object</b>."
+msgstr "Zaznacz <b>co najmniej jeden obiekt nie będący łącznikiem</b>"
 
-#: ../src/dialogs/xml-tree.cpp:1478
-msgid "Change attribute"
-msgstr "Zmień atrybut"
+#: ../src/connector-context.cpp:1319
+#: ../src/widgets/toolbox.cpp:6509
+msgid "Make connectors avoid selected objects"
+msgstr "Utwórz łączniki omijające zaznaczone obiekty"
 
-#: ../src/display/canvas-axonomgrid.cpp:390 ../src/display/canvas-grid.cpp:656
-msgid "Grid _units:"
-msgstr "Jednostki _siatki:"
+#: ../src/connector-context.cpp:1320
+#: ../src/widgets/toolbox.cpp:6519
+msgid "Make connectors ignore selected objects"
+msgstr "Utwórz łączniki przechodzące przez zaznaczone obiekty"
 
-#: ../src/display/canvas-axonomgrid.cpp:392 ../src/display/canvas-grid.cpp:658
-msgid "_Origin X:"
-msgstr "_Początek X:"
+#: ../src/context-fns.cpp:37
+#: ../src/context-fns.cpp:66
+msgid "<b>Current layer is hidden</b>. Unhide it to be able to draw on it."
+msgstr "<b>Aktywna warstwa jest ukryta</b>. Aby móc na niej rysować włącz jej widzialność."
 
-#: ../src/display/canvas-axonomgrid.cpp:392 ../src/display/canvas-grid.cpp:658
-#: ../src/ui/dialog/inkscape-preferences.cpp:869
-#: ../src/ui/dialog/inkscape-preferences.cpp:890
-msgid "X coordinate of grid origin"
-msgstr "Współrzędna X początku siatki"
+#: ../src/context-fns.cpp:43
+#: ../src/context-fns.cpp:72
+msgid "<b>Current layer is locked</b>. Unlock it to be able to draw on it."
+msgstr "<b>Aktywna warstwa jest zablokowana</b>. Aby móc na niej rysować odblokuj ją."
 
-#: ../src/display/canvas-axonomgrid.cpp:394 ../src/display/canvas-grid.cpp:660
-msgid "O_rigin Y:"
-msgstr "P_oczątek Y:"
+#: ../src/desktop-events.cpp:175
+msgid "Create guide"
+msgstr "Utwórz prowadnicę"
 
-#: ../src/display/canvas-axonomgrid.cpp:394 ../src/display/canvas-grid.cpp:660
-#: ../src/ui/dialog/inkscape-preferences.cpp:870
-#: ../src/ui/dialog/inkscape-preferences.cpp:891
-msgid "Y coordinate of grid origin"
-msgstr "Współrzędna Y początku siatki"
+#: ../src/desktop-events.cpp:221
+#: ../src/desktop-events.cpp:275
+#: ../src/dialogs/guidelinedialog.cpp:127
+msgid "Delete guide"
+msgstr "Usuń prowadnicę"
 
-#: ../src/display/canvas-axonomgrid.cpp:396 ../src/display/canvas-grid.cpp:664
-msgid "Spacing _Y:"
-msgstr "Odstępy _Y:"
+#: ../src/desktop-events.cpp:269
+msgid "Move guide"
+msgstr "Przenieś prowadnicę"
 
-#: ../src/display/canvas-axonomgrid.cpp:396
-#: ../src/ui/dialog/inkscape-preferences.cpp:893
-msgid "Base length of z-axis"
-msgstr "Bazowa długość osi Z"
+#: ../src/desktop-events.cpp:290
+#, c-format
+msgid "<b>Guideline</b>: %s"
+msgstr "<b>Prowadnica</b>: %s"
 
-#: ../src/display/canvas-axonomgrid.cpp:398 ../src/widgets/toolbox.cpp:2723
-msgid "Angle X:"
-msgstr "Kąt X:"
+#: ../src/desktop.cpp:822
+msgid "No previous zoom."
+msgstr "Brak poprzedniego powiększenia"
 
-#: ../src/display/canvas-axonomgrid.cpp:398
-#: ../src/ui/dialog/inkscape-preferences.cpp:896
-msgid "Angle of x-axis"
-msgstr "Kąt osi X"
+#: ../src/desktop.cpp:847
+msgid "No next zoom."
+msgstr "Brak następnego powiększenia"
 
-#: ../src/display/canvas-axonomgrid.cpp:400 ../src/widgets/toolbox.cpp:2802
-msgid "Angle Z:"
-msgstr "Kąt Z:"
+#: ../src/dialogs/clonetiler.cpp:169
+msgid "<small>Nothing selected.</small>"
+msgstr "<small>Nic nie zaznaczono</small>"
 
-#: ../src/display/canvas-axonomgrid.cpp:400
-#: ../src/ui/dialog/inkscape-preferences.cpp:897
-msgid "Angle of z-axis"
-msgstr "Kąt osi Z"
+#: ../src/dialogs/clonetiler.cpp:175
+msgid "<small>More than one object selected.</small>"
+msgstr "<small>Zaznaczono więcej niż jeden obiekt</small>"
 
-#: ../src/display/canvas-axonomgrid.cpp:404 ../src/display/canvas-grid.cpp:668
-msgid "Grid line _color:"
-msgstr "_Kolor linii siatki:"
+#: ../src/dialogs/clonetiler.cpp:182
+#, c-format
+msgid "<small>Object has <b>%d</b> tiled clones.</small>"
+msgstr "<small>Obiekt posiada <b>%d</b> sąsiadujących klonów</small>"
 
-#: ../src/display/canvas-axonomgrid.cpp:404 ../src/display/canvas-grid.cpp:668
-#: ../src/ui/dialog/inkscape-preferences.cpp:876
-#: ../src/ui/dialog/inkscape-preferences.cpp:877
-#: ../src/ui/dialog/inkscape-preferences.cpp:898
-#: ../src/ui/dialog/inkscape-preferences.cpp:899
-msgid "Grid line color"
-msgstr "Kolor linii siatki"
+#: ../src/dialogs/clonetiler.cpp:187
+msgid "<small>Object has no tiled clones.</small>"
+msgstr "<small>Obiekt nie posiada sąsiadujących klonów</small>"
 
-#: ../src/display/canvas-axonomgrid.cpp:404 ../src/display/canvas-grid.cpp:668
-msgid "Color of grid lines"
-msgstr "Kolor linii siatki"
+#: ../src/dialogs/clonetiler.cpp:990
+msgid "Select <b>one object</b> whose tiled clones to unclump."
+msgstr "Wybierz <b>jeden obiekt</b>, którego sąsiadujące klony mają zostać rozproszone"
 
-#: ../src/display/canvas-axonomgrid.cpp:409 ../src/display/canvas-grid.cpp:673
-msgid "Ma_jor grid line color:"
-msgstr "Kolor _linii głównych:"
+#: ../src/dialogs/clonetiler.cpp:1012
+msgid "Unclump tiled clones"
+msgstr "Rozprosz sąsiadujące klony"
 
-#: ../src/display/canvas-axonomgrid.cpp:409 ../src/display/canvas-grid.cpp:673
-#: ../src/ui/dialog/inkscape-preferences.cpp:878
-#: ../src/ui/dialog/inkscape-preferences.cpp:879
-#: ../src/ui/dialog/inkscape-preferences.cpp:900
-#: ../src/ui/dialog/inkscape-preferences.cpp:901
-msgid "Major grid line color"
-msgstr "Kolor linii głównych"
+#: ../src/dialogs/clonetiler.cpp:1042
+msgid "Select <b>one object</b> whose tiled clones to remove."
+msgstr "Wybierz <b>jeden obiekt</b>, który posiada sąsiadujące kopie do usunięcia"
 
-#: ../src/display/canvas-axonomgrid.cpp:410 ../src/display/canvas-grid.cpp:674
-msgid "Color of the major (highlighted) grid lines"
-msgstr "Kolor głównych (podświetlonych) linii siatki"
+#: ../src/dialogs/clonetiler.cpp:1065
+msgid "Delete tiled clones"
+msgstr "Usuń sąsiadujące klony"
 
-#: ../src/display/canvas-axonomgrid.cpp:414 ../src/display/canvas-grid.cpp:678
-msgid "_Major grid line every:"
-msgstr "_Rozstaw linii głównych:"
+#: ../src/dialogs/clonetiler.cpp:1111
+#: ../src/selection-chemistry.cpp:1845
+msgid "Select an <b>object</b> to clone."
+msgstr "Wybierz <b>obiekt</b> do klonowania"
 
-#: ../src/display/canvas-axonomgrid.cpp:414 ../src/display/canvas-grid.cpp:678
-msgid "lines"
-msgstr "linii"
+#: ../src/dialogs/clonetiler.cpp:1117
+msgid "If you want to clone several objects, <b>group</b> them and <b>clone the group</b>."
+msgstr "Jeśli chcesz sklonować kilka obiektów, <b>zgrupuj</b> je najpierw, a następnie <b>sklonuj grupę</b>"
 
-#: ../src/display/canvas-grid.cpp:40
-msgid "Rectangular grid"
-msgstr "Siatka prostokątna"
+#: ../src/dialogs/clonetiler.cpp:1126
+msgid "<small>Creating tiled clones...</small>"
+msgstr "<small>Tworzenie sąsiadujących klonów...</small>"
 
-#: ../src/display/canvas-grid.cpp:41
-msgid "Axonometric grid"
-msgstr "Siatka aksonometryczna"
+#: ../src/dialogs/clonetiler.cpp:1531
+msgid "Create tiled clones"
+msgstr "Utwórz rozmieszczone klony"
 
-#: ../src/display/canvas-grid.cpp:259
-msgid "Create new grid"
-msgstr "Utwórz nową siatkę"
+#: ../src/dialogs/clonetiler.cpp:1722
+msgid "<small>Per row:</small>"
+msgstr "<small>Wiersze</small>"
 
-#: ../src/display/canvas-grid.cpp:325
-msgid "_Enabled"
-msgstr "_Włączone"
+#: ../src/dialogs/clonetiler.cpp:1735
+msgid "<small>Per column:</small>"
+msgstr "<small>Kolumny</small>"
 
-#: ../src/display/canvas-grid.cpp:326
-msgid ""
-"Determines whether to snap to this grid or not. Can be 'on' for invisible "
-"grids."
-msgstr ""
-"Włącza/wyłącza przyciąganie do tej siatki. Może być włączone także dla "
-"niewidocznej siatki."
+#: ../src/dialogs/clonetiler.cpp:1743
+msgid "<small>Randomize:</small>"
+msgstr "<small>Losowo</small>"
 
-#: ../src/display/canvas-grid.cpp:329
-msgid "_Visible"
-msgstr "_Widoczna"
+#: ../src/dialogs/clonetiler.cpp:1904
+msgid "_Symmetry"
+msgstr "_Symetria"
 
-#: ../src/display/canvas-grid.cpp:330
-msgid ""
-"Determines whether the grid is displayed or not. Objects are still snapped "
-"to invisible grids."
-msgstr ""
-"Włącza/wyłącza wyświetlanie siatki. Gdy siatka jest niewidoczna, obiekty są "
-"cały czas przyciągane."
+#. TRANSLATORS: For the following 17 symmetry groups, see
+#. * http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples);
+#. * http://www.clarku.edu/~djoyce/wallpaper/seventeen.html (English vocabulary); or
+#. * http://membres.lycos.fr/villemingerard/Geometri/Sym1D.htm (French vocabulary).
+#.
+#: ../src/dialogs/clonetiler.cpp:1912
+msgid "Select one of the 17 symmetry groups for the tiling"
+msgstr "Wybierz jedną z 17 grup symetrii do klonowania"
 
-#: ../src/display/canvas-grid.cpp:662
-msgid "Spacing _X:"
-msgstr "Odstępy _X:"
+#. TRANSLATORS: "translation" means "shift" / "displacement" here.
+#: ../src/dialogs/clonetiler.cpp:1923
+msgid "<b>P1</b>: simple translation"
+msgstr "<b>P1</b>: proste przesunięcie"
 
-#: ../src/display/canvas-grid.cpp:662
-#: ../src/ui/dialog/inkscape-preferences.cpp:873
-msgid "Distance between vertical grid lines"
-msgstr "Odległość pomiędzy pionowymi liniami siatki"
+#: ../src/dialogs/clonetiler.cpp:1924
+msgid "<b>P2</b>: 180&#176; rotation"
+msgstr "<b>P2</b>: obrót o 180&#176;"
 
-#: ../src/display/canvas-grid.cpp:664
-#: ../src/ui/dialog/inkscape-preferences.cpp:874
-msgid "Distance between horizontal grid lines"
-msgstr "Odległość pomiędzy poziomymi liniami siatki"
+#: ../src/dialogs/clonetiler.cpp:1925
+msgid "<b>PM</b>: reflection"
+msgstr "<b>PM</b>: odbicie"
 
-#: ../src/display/canvas-grid.cpp:697
-msgid "_Show dots instead of lines"
-msgstr "_Wyświetlaj kropki zamiast linii"
+#. TRANSLATORS: "glide reflection" is a reflection and a translation combined.
+#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html
+#: ../src/dialogs/clonetiler.cpp:1928
+msgid "<b>PG</b>: glide reflection"
+msgstr "<b>PG</b>: odbicie z przesunięciem"
 
-#: ../src/display/canvas-grid.cpp:698
-#: ../src/ui/dialog/inkscape-preferences.cpp:883
-msgid "If set, displays dots at gridpoints instead of gridlines"
-msgstr ""
-"Jeśli opcja ta zostanie włączona siatka będzie wyświetlana za pomocą kropek"
+#: ../src/dialogs/clonetiler.cpp:1929
+msgid "<b>CM</b>: reflection + glide reflection"
+msgstr "<b>CM</b>: odbicie + odbicie z przesunięciem"
 
-#: ../src/document.cpp:415
-#, c-format
-msgid "New document %d"
-msgstr "Nowy dokument %d"
+#: ../src/dialogs/clonetiler.cpp:1930
+msgid "<b>PMM</b>: reflection + reflection"
+msgstr "<b>PMM</b>: odbicie w obu kierunkach"
 
-#: ../src/document.cpp:447
-#, c-format
-msgid "Memory document %d"
-msgstr "Dokument w pamięci %d"
+#: ../src/dialogs/clonetiler.cpp:1931
+msgid "<b>PMG</b>: reflection + 180&#176; rotation"
+msgstr "<b>PMG</b>: odbicie + obrót o 180&#176;"
 
-#: ../src/document.cpp:603
-#, c-format
-msgid "Unnamed document %d"
-msgstr "Dokument bez nazwy %d"
+#: ../src/dialogs/clonetiler.cpp:1932
+msgid "<b>PGG</b>: glide reflection + 180&#176; rotation"
+msgstr "<b>PGG</b>: odbicie z przesunięciem + obrót o 180&#176;"
 
-#. We hit green anchor, closing Green-Blue-Red
-#: ../src/draw-context.cpp:448
-msgid "Path is closed."
-msgstr "Ścieżka jest zamknięta"
+#: ../src/dialogs/clonetiler.cpp:1933
+msgid "<b>CMM</b>: reflection + reflection + 180&#176; rotation"
+msgstr "<b>CMM</b>: odbicie + odbicie + obrót o 180&#176;"
 
-#. We hit bot start and end of single curve, closing paths
-#: ../src/draw-context.cpp:463
-msgid "Closing path."
-msgstr "Zamknięcie ścieżki"
+#: ../src/dialogs/clonetiler.cpp:1934
+msgid "<b>P4</b>: 90&#176; rotation"
+msgstr "<b>P4</b>: obrót o 90&#176;"
 
-#: ../src/draw-context.cpp:577
-msgid "Draw path"
-msgstr "Rysuj ścieżkę"
+#: ../src/dialogs/clonetiler.cpp:1935
+msgid "<b>P4M</b>: 90&#176; rotation + 45&#176; reflection"
+msgstr "<b>P4M</b>: obrót o 90&#176; + odbicie 45&#176;"
 
-#. alpha of color under cursor, to show in the statusbar
-#. locale-sensitive printf is OK, since this goes to the UI, not into SVG
-#: ../src/dropper-context.cpp:292
-#, c-format
-msgid " alpha %.3g"
-msgstr " przezroczystość %.3g"
+#: ../src/dialogs/clonetiler.cpp:1936
+msgid "<b>P4G</b>: 90&#176; rotation + 90&#176; reflection"
+msgstr "<b>P4G</b>: obrót o 90&#176; + odbicie 90&#176;"
 
-#. where the color is picked, to show in the statusbar
-#: ../src/dropper-context.cpp:294
-#, c-format
-msgid ", averaged with radius %d"
-msgstr ", wartość uśredniona w promieniu %d"
+#: ../src/dialogs/clonetiler.cpp:1937
+msgid "<b>P3</b>: 120&#176; rotation"
+msgstr "<b>P3</b>: obrót o 120&#176;"
 
-#: ../src/dropper-context.cpp:294
-msgid " under cursor"
-msgstr " - kolor wskazany przez próbnik"
+#: ../src/dialogs/clonetiler.cpp:1938
+msgid "<b>P31M</b>: reflection + 120&#176; rotation, dense"
+msgstr "<b>P31M</b>: odbicie + obrót o 120&#176;, gęsto"
 
-#. message, to show in the statusbar
-#: ../src/dropper-context.cpp:296
-msgid "<b>Release mouse</b> to set color."
-msgstr "<b>Zwolnij przycisk myszy</b>, aby ustawić kolor"
+#: ../src/dialogs/clonetiler.cpp:1939
+msgid "<b>P3M1</b>: reflection + 120&#176; rotation, sparse"
+msgstr "<b>P3M1</b>: odbicie + obrót o 120&#176;, rzadko"
 
-#: ../src/dropper-context.cpp:296 ../src/tools-switch.cpp:229
-msgid ""
-"<b>Click</b> to set fill, <b>Shift+click</b> to set stroke; <b>drag</b> to "
-"average color in area; with <b>Alt</b> to pick inverse color; <b>Ctrl+C</b> "
-"to copy the color under mouse to clipboard"
-msgstr ""
-"<b>Kliknij</b>, aby ustawić kolor wypełnienia, <b>Shift + kliknięcie</b> - "
-"kolor konturu; <b>wykonaj ciągnięcie</b>, aby pobrać uśredniony kolor z "
-"obszaru, z <b>Alt</b>, aby pobrać odwrotność koloru; <b>Ctrl + C</b>, aby "
-"skopiować wskazany próbnikiem kolor do schowka"
+#: ../src/dialogs/clonetiler.cpp:1940
+msgid "<b>P6</b>: 60&#176; rotation"
+msgstr "<b>P6</b>: obrót o 60&#176;"
 
-#: ../src/dropper-context.cpp:329
-msgid "Set picked color"
-msgstr "Ustaw pobrany kolor"
+#: ../src/dialogs/clonetiler.cpp:1941
+msgid "<b>P6M</b>: reflection + 60&#176; rotation"
+msgstr "<b>P6M</b>: odbicie + obrót o 60&#176;"
 
-#: ../src/dyna-draw-context.cpp:625
-msgid ""
-"<b>Guide path selected</b>; start drawing along the guide with <b>Ctrl</b>"
-msgstr ""
-"<b>Wybrano ścieżkę prowadnicy</b>. Rozpocznij rysowanie wzdłuż prowadnicy "
-"używając <b>Ctrl</b>"
+#: ../src/dialogs/clonetiler.cpp:1969
+msgid "S_hift"
+msgstr "_Przesunięcie"
 
-#: ../src/dyna-draw-context.cpp:627
-msgid "<b>Select a guide path</b> to track with <b>Ctrl</b>"
-msgstr "<b>Wybierz ścieżkę prowadnicy</b> do śledzenia z <b>Ctrl</b>"
+#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount
+#: ../src/dialogs/clonetiler.cpp:1979
+#, no-c-format
+msgid "<b>Shift X:</b>"
+msgstr "<b>Przesunięcie X:</b>"
 
-#: ../src/dyna-draw-context.cpp:732
-msgid "Tracking: <b>connection to guide path lost!</b>"
-msgstr "Śledzenie: <b>Połączenie ze ścieżką prowadnicy zostało utracone!</b>"
+#: ../src/dialogs/clonetiler.cpp:1987
+#, no-c-format
+msgid "Horizontal shift per row (in % of tile width)"
+msgstr "Przesunięcie w poziomie dla każdego wiersza o określoną tutaj wartość procentową wysokości elementu"
 
-#: ../src/dyna-draw-context.cpp:732
-msgid "<b>Tracking</b> a guide path"
-msgstr "<b>Śledzi</b> ścieżkę prowadzącą"
+#: ../src/dialogs/clonetiler.cpp:1995
+#, no-c-format
+msgid "Horizontal shift per column (in % of tile width)"
+msgstr "Przesunięcie w poziomie dla każdej kolumny o określoną tutaj wartość procentową wysokości elementu"
 
-#: ../src/dyna-draw-context.cpp:735
-msgid "<b>Drawing</b> a calligraphic stroke"
-msgstr "<b>Rysuje</b> linie kaligraficzne"
+#: ../src/dialogs/clonetiler.cpp:2002
+msgid "Randomize the horizontal shift by this percentage"
+msgstr "Losowa zmiana przesunięcia poziomego o wybraną wartość procentową"
 
-#: ../src/dyna-draw-context.cpp:1016
-msgid "Draw calligraphic stroke"
-msgstr "Rysuj linie kaligraficzne"
+#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount
+#: ../src/dialogs/clonetiler.cpp:2012
+#, no-c-format
+msgid "<b>Shift Y:</b>"
+msgstr "<b>Przesunięcie Y:</b>"
 
-#: ../src/eraser-context.cpp:532
-#, fuzzy
-msgid "<b>Drawing</b> an eraser stroke"
-msgstr "<b>Rysuje</b> linie kaligraficzne"
+#: ../src/dialogs/clonetiler.cpp:2020
+#, no-c-format
+msgid "Vertical shift per row (in % of tile height)"
+msgstr "Przesunięcie w pionie dla każdego wiersza o określoną tutaj wartość procentową wysokości elementu"
 
-#: ../src/eraser-context.cpp:839
-#, fuzzy
-msgid "Draw eraser stroke"
-msgstr "Rysuj linie kaligraficzne"
+#: ../src/dialogs/clonetiler.cpp:2028
+#, no-c-format
+msgid "Vertical shift per column (in % of tile height)"
+msgstr "Przesunięcie w pionie dla każdej kolumny o określoną tutaj wartość procentową wysokości elementu"
 
-#: ../src/event-context.cpp:595
-msgid "<b>Space+mouse drag</b> to pan canvas"
-msgstr "<b>Klawisz spacji + ciągnięcie myszą</b> przemieszcza obszar roboczy"
+#: ../src/dialogs/clonetiler.cpp:2035
+msgid "Randomize the vertical shift by this percentage"
+msgstr "Losowa zmiana przesunięcia pionowego o określoną tutaj wartość procentową"
 
-#: ../src/event-log.cpp:37
-msgid "[Unchanged]"
-msgstr "[Nie zmieniono]"
+#: ../src/dialogs/clonetiler.cpp:2043
+#: ../src/dialogs/clonetiler.cpp:2191
+msgid "<b>Exponent:</b>"
+msgstr "<b>Wykładnik:</b>"
 
-#. Edit
-#: ../src/event-log.cpp:264 ../src/event-log.cpp:267 ../src/verbs.cpp:2193
-msgid "_Undo"
-msgstr "Wy_cofaj"
+#: ../src/dialogs/clonetiler.cpp:2050
+msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)"
+msgstr "Rozmieszczenie wierszy równomierne (1), zbieżne (<1) lub rozbieżne (>1)"
 
-#: ../src/event-log.cpp:274 ../src/event-log.cpp:278 ../src/verbs.cpp:2195
-msgid "_Redo"
-msgstr "P_rzywróć"
+#: ../src/dialogs/clonetiler.cpp:2057
+msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)"
+msgstr "Rozmieszczenie kolumn równomierne (1), zbieżne (<1) lub rozbieżne (>1)"
 
-#: ../src/extension/dependency.cpp:261
-msgid "Dependency:"
-msgstr "Zależności:"
+#. TRANSLATORS: "Alternate" is a verb here
+#: ../src/dialogs/clonetiler.cpp:2065
+#: ../src/dialogs/clonetiler.cpp:2235
+#: ../src/dialogs/clonetiler.cpp:2312
+#: ../src/dialogs/clonetiler.cpp:2388
+#: ../src/dialogs/clonetiler.cpp:2437
+#: ../src/dialogs/clonetiler.cpp:2568
+msgid "<small>Alternate:</small>"
+msgstr "<small>Przesunięcie przemienne:</small>"
 
-#: ../src/extension/dependency.cpp:262
-msgid "  type: "
-msgstr "  typ: "
+#: ../src/dialogs/clonetiler.cpp:2071
+msgid "Alternate the sign of shifts for each row"
+msgstr "Przesunięcie będzie realizowane w co drugim wierszu"
 
-#: ../src/extension/dependency.cpp:263
-msgid "  location: "
-msgstr "  położenie: "
+#: ../src/dialogs/clonetiler.cpp:2076
+msgid "Alternate the sign of shifts for each column"
+msgstr "Przesunięcie będzie realizowane w co drugiej kolumnie"
 
-#: ../src/extension/dependency.cpp:264
-msgid "  string: "
-msgstr "  ciąg znaków: "
+#. TRANSLATORS: "Cumulate" is a verb here
+#: ../src/dialogs/clonetiler.cpp:2083
+#: ../src/dialogs/clonetiler.cpp:2253
+#: ../src/dialogs/clonetiler.cpp:2330
+msgid "<small>Cumulate:</small>"
+msgstr "<small>Kumulacja przesunięć:</small>"
 
-#: ../src/extension/dependency.cpp:267
-msgid "  description: "
-msgstr "  opis: "
+#: ../src/dialogs/clonetiler.cpp:2089
+msgid "Cumulate the shifts for each row"
+msgstr "Przesunięcie każdego wiersza będzie zwiększało się przyjmując wartość liczoną określonym powyżej współczynnikiem od sumy wysokości poprzedzających klonów"
 
-#: ../src/extension/effect.cpp:35
-msgid " (No preferences)"
-msgstr "(Brak ustawień)"
+#: ../src/dialogs/clonetiler.cpp:2094
+msgid "Cumulate the shifts for each column"
+msgstr "Przesunięcie każdej kolumny będzie zwiększało się przyjmując wartość liczoną określonym powyżej współczynnikiem od sumy szerokości poprzedzających klonów"
 
-#. This is some filler text, needs to change before relase
-#: ../src/extension/error-file.cpp:53
-msgid ""
-"<span weight=\"bold\" size=\"larger\">One or more extensions failed to load</"
-"span>\n"
-"\n"
-"The failed extensions have been skipped.  Inkscape will continue to run "
-"normally but those extensions will be unavailable.  For details to "
-"troubleshoot this problem, please refer to the error log located at: "
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Nie udało się wczytać jednego lub "
-"więcej rozszerzeń</span>\n"
-"\n"
-"Niewłaściwe rozszerzenia zostały pominięte. Inkscape zostanie uruchomiony "
-"normalnie, ale rozszerzenia te nie będą dostępne. Szczegóły pomocne w "
-"rozwiązaniu tego problemu zostały zapisane w dzienniku błędów zlokalizowanym "
-"w: "
+#. TRANSLATORS: "Cumulate" is a verb here
+#: ../src/dialogs/clonetiler.cpp:2101
+msgid "<small>Exclude tile:</small>"
+msgstr "<small>Pominięcie rozmiarów obiektu:</small>"
 
-#. This is some filler text, needs to change before relase
-#: ../src/extension/error-file.cpp:62
-msgid "Show dialog on startup"
-msgstr "Wyświetlaj to okno podczas uruchamiania programu"
+#: ../src/dialogs/clonetiler.cpp:2107
+msgid "Exclude tile height in shift"
+msgstr "Klonowane obiekty będą rozmieszczane bez uwzględniania wysokości obiektu, z przesunięciem określonym powyżej"
 
-#: ../src/extension/execution-env.cpp:134
-#, c-format
-msgid "'%s' working, please wait..."
-msgstr "\"%s\" pracuje. Proszę czekać..."
+#: ../src/dialogs/clonetiler.cpp:2112
+msgid "Exclude tile width in shift"
+msgstr "Klonowane obiekty będą rozmieszczane bez uwzględniania szerokości obiektu, z przesunięciem określonym powyżej"
 
-#. static int i = 0;
-#. std::cout << "Checking module[" << i++ << "]: " << name << std::endl;
-#: ../src/extension/extension.cpp:252
-msgid ""
-"  This is caused by an improper .inx file for this extension.  An improper ."
-"inx file could have been caused by a faulty installation of Inkscape."
-msgstr ""
-" Spowodowane jest to niewłaściwym plikiem .inx dla tego rozszerzenia. "
-"Przyczyną może być niewłaściwa instalacja Inkscape."
+#: ../src/dialogs/clonetiler.cpp:2121
+msgid "Sc_ale"
+msgstr "Ska_lowanie"
 
-#: ../src/extension/extension.cpp:255
-msgid "an ID was not defined for it."
-msgstr "nie zdefiniowano dla niego identyfikatora ID."
+#: ../src/dialogs/clonetiler.cpp:2129
+msgid "<b>Scale X:</b>"
+msgstr "<b>Skalowanie X:</b>"
 
-#: ../src/extension/extension.cpp:259
-msgid "there was no name defined for it."
-msgstr "nie zdefiniowano dla niego nazwy."
+#: ../src/dialogs/clonetiler.cpp:2137
+#, no-c-format
+msgid "Horizontal scale per row (in % of tile width)"
+msgstr "Skalowanie w poziomie dla każdego wiersza o określoną tutaj wartość procentową szerokości elementu"
 
-#: ../src/extension/extension.cpp:263
-msgid "the XML description of it got lost."
-msgstr "jego opis w formacie XML został utracony."
+#: ../src/dialogs/clonetiler.cpp:2145
+#, no-c-format
+msgid "Horizontal scale per column (in % of tile width)"
+msgstr "Skalowanie w poziomie dla każdej kolumny o określoną tutaj wartość procentową szerokości elementu"
 
-#: ../src/extension/extension.cpp:267
-msgid "no implementation was defined for the extension."
-msgstr "nie zdefiniowano obsługi dla tego rozszerzenia."
+#: ../src/dialogs/clonetiler.cpp:2152
+msgid "Randomize the horizontal scale by this percentage"
+msgstr "Losowa zmiana skalowania poziomego o określoną tutaj wartość procentową"
 
-#. std::cout << "Failed: " << *(_deps[i]) << std::endl;
-#: ../src/extension/extension.cpp:274
-msgid "a dependency was not met."
-msgstr "nie zostały spełnione zależności."
+#: ../src/dialogs/clonetiler.cpp:2160
+msgid "<b>Scale Y:</b>"
+msgstr "<b>Skalowanie Y:</b>"
 
-#: ../src/extension/extension.cpp:294
-msgid "Extension \""
-msgstr "Rozszerzenie \""
+#: ../src/dialogs/clonetiler.cpp:2168
+#, no-c-format
+msgid "Vertical scale per row (in % of tile height)"
+msgstr "Skalowanie w pionie dla każdego wiersza o określoną tutaj wartość procentową szerokości elementu"
 
-#: ../src/extension/extension.cpp:294
-msgid "\" failed to load because "
-msgstr "\" nie zostało załadowane, ponieważ "
+#: ../src/dialogs/clonetiler.cpp:2176
+#, no-c-format
+msgid "Vertical scale per column (in % of tile height)"
+msgstr "Skalowanie w pionie dla każdej kolumny o określoną tutaj wartość procentową szerokości elementu"
 
-#: ../src/extension/extension.cpp:625
-#, c-format
-msgid "Could not create extension error log file '%s'"
-msgstr "Nie udało się utworzyć pliku dziennika zdarzeń dla rozszerzenia \"%s\""
+#: ../src/dialogs/clonetiler.cpp:2183
+msgid "Randomize the vertical scale by this percentage"
+msgstr "Losowa zmiana skalowania pionowego o określoną tutaj wartość procentową"
 
-#: ../src/extension/extension.cpp:723
-msgid "Name:"
-msgstr "Nazwa:"
+#: ../src/dialogs/clonetiler.cpp:2198
+msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)"
+msgstr "Rozmieszczenie wierszy równomierne (1), zbieżne (<1) lub rozbieżne (>1)"
 
-#: ../src/extension/extension.cpp:724
-msgid "ID:"
-msgstr "ID:"
+#: ../src/dialogs/clonetiler.cpp:2205
+msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)"
+msgstr "Rozmieszczenie kolumn równomierne (1), zbieżne (<1) lub rozbieżne (>1)"
 
-#: ../src/extension/extension.cpp:725
-msgid "State:"
-msgstr "Stan:"
+#: ../src/dialogs/clonetiler.cpp:2213
+msgid "<b>Base:</b>"
+msgstr "<b>Podstawa:</b>"
 
-#: ../src/extension/extension.cpp:725
-msgid "Loaded"
-msgstr "Załadowane"
+#: ../src/dialogs/clonetiler.cpp:2220
+#: ../src/dialogs/clonetiler.cpp:2227
+msgid "Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"
+msgstr "Podstawa logarytmu dla spiral logarytmicznych: nie używana (0), zbieżna (<1) lub rozbieżna (>1)"
 
-#: ../src/extension/extension.cpp:725
-msgid "Unloaded"
-msgstr "Niezaładowane"
+#: ../src/dialogs/clonetiler.cpp:2241
+msgid "Alternate the sign of scales for each row"
+msgstr "Skalowanie będzie realizowane w co drugim wierszu"
 
-#: ../src/extension/extension.cpp:725
-msgid "Deactivated"
-msgstr "Wyłączono"
+#: ../src/dialogs/clonetiler.cpp:2246
+msgid "Alternate the sign of scales for each column"
+msgstr "Skalowanie będzie realizowane co drugiej kolumnie"
 
-#: ../src/extension/extension.cpp:756
-msgid ""
-"Currently there is no help available for this Extension.  Please look on the "
-"Inkscape website or ask on the mailing lists if you have questions regarding "
-"this extension."
-msgstr ""
-"Obecnie pomoc dla tego rozszerzenia jest niedostępna. Jeśli masz jakieś "
-"pytania dotyczące tego rozszerzenia poszukaj odpowiedzi na witrynie Inkscape "
-"lub zadaj pytanie na liście mailingowej."
+#: ../src/dialogs/clonetiler.cpp:2259
+msgid "Cumulate the scales for each row"
+msgstr "Skalowanie każdego wiersza będzie zwiększało się przyjmując wartość liczoną określonym powyżej współczynnikiem od sumy wysokości poprzedzających klonów"
 
-#: ../src/extension/implementation/script.cpp:1055
-msgid ""
-"Inkscape has received additional data from the script executed.  The script "
-"did not return an error, but this may indicate the results will not be as "
-"expected."
-msgstr ""
-"Program Inkscape otrzymał dodatkowe dane od uruchomionego skryptu. Skrypt "
-"nie zgłosił błędu, jednak możliwe, że wynik jego działania jest inny niż "
-"spodziewany."
+#: ../src/dialogs/clonetiler.cpp:2264
+msgid "Cumulate the scales for each column"
+msgstr "Skalowanie każdej kolumny będzie zwiększało się przyjmując wartość liczoną określonym powyżej współczynnikiem od sumy wysokości poprzedzających klonów"
 
-#: ../src/extension/init.cpp:282
-msgid "Null external module directory name.  Modules will not be loaded."
-msgstr ""
-"Pusta nazwa katalogu modułów zewnętrznych.  Moduły nie zostaną załadowane"
+#: ../src/dialogs/clonetiler.cpp:2273
+msgid "_Rotation"
+msgstr "_Obrót"
 
-#: ../src/extension/init.cpp:296
-#: ../src/extension/internal/filter/filter-file.cpp:56
-#, c-format
-msgid ""
-"Modules directory (%s) is unavailable.  External modules in that directory "
-"will not be loaded."
-msgstr ""
-"Katalog modułów (%s) jest niedostępny.  Moduły zewnętrzne z tego katalogu "
-"nie zostaną załadowane"
+#: ../src/dialogs/clonetiler.cpp:2281
+msgid "<b>Angle:</b>"
+msgstr "<b>Kąt:</b>"
 
-#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:38
-msgid "Adaptive Threshold"
-msgstr "Inteligentny próg"
+#: ../src/dialogs/clonetiler.cpp:2289
+#, no-c-format
+msgid "Rotate tiles by this angle for each row"
+msgstr "Kąt o jaki zostaną obrócone elementy układu w każdym wierszu"
 
-#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:40
-#: ../src/extension/internal/bitmap/raise.cpp:41
-#: ../src/extension/internal/bitmap/sample.cpp:40
-#: ../src/extension/internal/bluredge.cpp:134 ../src/libgdl/gdl-dock.c:190
-#: ../src/libgdl/gdl-dock-placeholder.c:169
-#: ../src/live_effects/lpe-bendpath.cpp:58
-#: ../src/live_effects/lpe-patternalongpath.cpp:64
-#: ../src/widgets/toolbox.cpp:2396 ../src/widgets/toolbox.cpp:3241
-msgid "Width"
-msgstr "Szerokość"
+#: ../src/dialogs/clonetiler.cpp:2297
+#, no-c-format
+msgid "Rotate tiles by this angle for each column"
+msgstr "Kąt o jaki zostaną obrócone elementy układu w każdej kolumnie"
 
-#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41
-#: ../src/extension/internal/bitmap/raise.cpp:42
-#: ../src/extension/internal/bitmap/sample.cpp:41 ../src/libgdl/gdl-dock.c:198
-#: ../src/libgdl/gdl-dock-placeholder.c:177 ../src/widgets/toolbox.cpp:2413
-msgid "Height"
-msgstr "Wysokość"
+#: ../src/dialogs/clonetiler.cpp:2304
+msgid "Randomize the rotation angle by this percentage"
+msgstr "Losowa zmiana kąta obrotu o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42
-#: ../src/filter-enums.cpp:32
-msgid "Offset"
-msgstr "Przesunięcie"
+#: ../src/dialogs/clonetiler.cpp:2318
+msgid "Alternate the rotation direction for each row"
+msgstr "Obrót będzie realizowany w co drugim wierszu"
 
-#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:46
-#: ../src/extension/internal/bitmap/addNoise.cpp:57
-#: ../src/extension/internal/bitmap/blur.cpp:44
-#: ../src/extension/internal/bitmap/channel.cpp:63
-#: ../src/extension/internal/bitmap/charcoal.cpp:44
-#: ../src/extension/internal/bitmap/colorize.cpp:55
-#: ../src/extension/internal/bitmap/contrast.cpp:42
-#: ../src/extension/internal/bitmap/convolve.cpp:57
-#: ../src/extension/internal/bitmap/cycleColormap.cpp:42
-#: ../src/extension/internal/bitmap/despeckle.cpp:40
-#: ../src/extension/internal/bitmap/edge.cpp:42
-#: ../src/extension/internal/bitmap/emboss.cpp:44
-#: ../src/extension/internal/bitmap/enhance.cpp:39
-#: ../src/extension/internal/bitmap/equalize.cpp:39
-#: ../src/extension/internal/bitmap/gaussianBlur.cpp:44
-#: ../src/extension/internal/bitmap/implode.cpp:42
-#: ../src/extension/internal/bitmap/levelChannel.cpp:70
-#: ../src/extension/internal/bitmap/level.cpp:48
-#: ../src/extension/internal/bitmap/medianFilter.cpp:42
-#: ../src/extension/internal/bitmap/modulate.cpp:47
-#: ../src/extension/internal/bitmap/negate.cpp:40
-#: ../src/extension/internal/bitmap/normalize.cpp:40
-#: ../src/extension/internal/bitmap/oilPaint.cpp:42
-#: ../src/extension/internal/bitmap/opacity.cpp:43
-#: ../src/extension/internal/bitmap/raise.cpp:47
-#: ../src/extension/internal/bitmap/reduceNoise.cpp:45
-#: ../src/extension/internal/bitmap/sample.cpp:45
-#: ../src/extension/internal/bitmap/shade.cpp:47
-#: ../src/extension/internal/bitmap/sharpen.cpp:44
-#: ../src/extension/internal/bitmap/solarize.cpp:42
-#: ../src/extension/internal/bitmap/spread.cpp:42
-#: ../src/extension/internal/bitmap/swirl.cpp:42
-#: ../src/extension/internal/bitmap/threshold.cpp:43
-#: ../src/extension/internal/bitmap/unsharpmask.cpp:49
-#: ../src/extension/internal/bitmap/wave.cpp:44
-msgid "Raster"
-msgstr "Grafika rastrowa"
+#: ../src/dialogs/clonetiler.cpp:2323
+msgid "Alternate the rotation direction for each column"
+msgstr "Obrót będzie realizowany w co drugiej kolumnie"
 
-#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:48
-msgid "Apply adaptive thresholding to selected bitmap(s)."
-msgstr "Stosuje inteligentne progowanie do zaznaczonych bitmap(y)"
+#: ../src/dialogs/clonetiler.cpp:2336
+msgid "Cumulate the rotation for each row"
+msgstr "Kąt obrotu klonów w każdym wierszu będzie zwiększał się kumulując określoną powyżej wartość kąta w zależności od ilości klonów"
 
-#: ../src/extension/internal/bitmap/addNoise.cpp:44
-msgid "Add Noise"
-msgstr "Dodaj szum"
+#: ../src/dialogs/clonetiler.cpp:2341
+msgid "Cumulate the rotation for each column"
+msgstr "Kąt obrotu klonów w każdej kolumnie będzie zwiększał się kumulując określoną powyżej wartość kąta w zależności od ilości klonów"
 
-#: ../src/extension/internal/bitmap/addNoise.cpp:47
-msgid "Uniform Noise"
-msgstr "Szum jednolity"
+#: ../src/dialogs/clonetiler.cpp:2350
+msgid "_Blur & opacity"
+msgstr "_Rozmycie i krycie"
 
-#: ../src/extension/internal/bitmap/addNoise.cpp:48
-msgid "Gaussian Noise"
-msgstr "Szum gaussowski"
+#: ../src/dialogs/clonetiler.cpp:2359
+msgid "<b>Blur:</b>"
+msgstr "<b>Rozmycie:</b>"
 
-#: ../src/extension/internal/bitmap/addNoise.cpp:49
-msgid "Multiplicative Gaussian Noise"
-msgstr "Szum gaussowski wielokrotny"
+#: ../src/dialogs/clonetiler.cpp:2366
+msgid "Blur tiles by this percentage for each row"
+msgstr "Rozmycie elementów w każdym wierszu o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/addNoise.cpp:50
-msgid "Impulse Noise"
-msgstr "Szum impulsowy"
+#: ../src/dialogs/clonetiler.cpp:2373
+msgid "Blur tiles by this percentage for each column"
+msgstr "Rozmycie elementów w każdej kolumnie o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/addNoise.cpp:51
-msgid "Laplacian Noise"
-msgstr "Szum Laplace'a"
+#: ../src/dialogs/clonetiler.cpp:2380
+msgid "Randomize the tile blur by this percentage"
+msgstr "Losowa zmiana rozmycia elementów o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/addNoise.cpp:52
-msgid "Poisson Noise"
-msgstr "Szum Poissona"
+#: ../src/dialogs/clonetiler.cpp:2394
+msgid "Alternate the sign of blur change for each row"
+msgstr "Jeśli opcja ta zostanie zaznaczona, rozmycie będzie realizowane w co drugim wierszu"
 
-#: ../src/extension/internal/bitmap/addNoise.cpp:59
-msgid "Add random noise to selected bitmap(s)."
-msgstr "Dodaj losowy szum do zaznaczonych bitmap(y),"
+#: ../src/dialogs/clonetiler.cpp:2399
+msgid "Alternate the sign of blur change for each column"
+msgstr "Rozmycie będzie realizowane w co drugiej kolumnie"
 
-#: ../src/extension/internal/bitmap/blur.cpp:37
-msgid "Blur"
-msgstr "Rozmycie"
+#: ../src/dialogs/clonetiler.cpp:2408
+msgid "<b>Fade out:</b>"
+msgstr "<b>Krycie:</b>"
 
-#: ../src/extension/internal/bitmap/blur.cpp:39
-#: ../src/extension/internal/bitmap/charcoal.cpp:39
-#: ../src/extension/internal/bitmap/edge.cpp:38
-#: ../src/extension/internal/bitmap/emboss.cpp:39
-#: ../src/extension/internal/bitmap/medianFilter.cpp:38
-#: ../src/extension/internal/bitmap/oilPaint.cpp:38
-#: ../src/extension/internal/bitmap/sharpen.cpp:39
-#: ../src/extension/internal/bitmap/unsharpmask.cpp:42
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2251
-msgid "Radius"
-msgstr "Promień"
+#: ../src/dialogs/clonetiler.cpp:2415
+msgid "Decrease tile opacity by this percentage for each row"
+msgstr "Zmniejszenie krycia elementów w każdym wierszu o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/blur.cpp:40
-#: ../src/extension/internal/bitmap/charcoal.cpp:40
-#: ../src/extension/internal/bitmap/emboss.cpp:40
-#: ../src/extension/internal/bitmap/gaussianBlur.cpp:40
-#: ../src/extension/internal/bitmap/sharpen.cpp:40
-#: ../src/extension/internal/bitmap/unsharpmask.cpp:43
-msgid "Sigma"
-msgstr "Sigma"
+#: ../src/dialogs/clonetiler.cpp:2422
+msgid "Decrease tile opacity by this percentage for each column"
+msgstr "Zmniejszenie krycia elementów w każdej kolumnie o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/blur.cpp:46
-msgid "Blur selected bitmap(s)"
-msgstr "Rozmyj zaznaczone bitmapy(ę)"
+#: ../src/dialogs/clonetiler.cpp:2429
+msgid "Randomize the tile opacity by this percentage"
+msgstr "Losowa zmiana krycia elementów o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/channel.cpp:47
-#: ../src/extension/internal/bitmap/levelChannel.cpp:53
-msgid "Channel"
-msgstr "Kanał"
+#: ../src/dialogs/clonetiler.cpp:2443
+msgid "Alternate the sign of opacity change for each row"
+msgstr "Zmiana krycia elementów będzie realizowana w co drugim wierszu"
 
-#: ../src/extension/internal/bitmap/channel.cpp:49
-msgid "Layer"
-msgstr "Warstwa"
+#: ../src/dialogs/clonetiler.cpp:2448
+msgid "Alternate the sign of opacity change for each column"
+msgstr "Zmiana krycia elementów będzie realizowana w co drugiej kolumnie"
 
-#: ../src/extension/internal/bitmap/channel.cpp:50
-#: ../src/extension/internal/bitmap/levelChannel.cpp:54
-msgid "Red Channel"
-msgstr "Kanał czerwony"
+#: ../src/dialogs/clonetiler.cpp:2456
+msgid "Co_lor"
+msgstr "_Kolor"
 
-#: ../src/extension/internal/bitmap/channel.cpp:51
-#: ../src/extension/internal/bitmap/levelChannel.cpp:55
-msgid "Green Channel"
-msgstr "Kanał zielony"
+#: ../src/dialogs/clonetiler.cpp:2461
+msgid "Initial color: "
+msgstr "Kolor początkowy:"
 
-#: ../src/extension/internal/bitmap/channel.cpp:52
-#: ../src/extension/internal/bitmap/levelChannel.cpp:56
-msgid "Blue Channel"
-msgstr "Kanał niebieski"
+#: ../src/dialogs/clonetiler.cpp:2465
+msgid "Initial color for clones (works only if the original has unset fill or stroke)"
+msgstr "Kolor początkowy tworzonych klonów (działa jedynie jeśli oryginał ma wyzerowane wypełnienie lub kontur)"
 
-#: ../src/extension/internal/bitmap/channel.cpp:53
-#: ../src/extension/internal/bitmap/levelChannel.cpp:57
-msgid "Cyan Channel"
-msgstr "Kanał cyjanowy"
+#: ../src/dialogs/clonetiler.cpp:2465
+msgid "Initial color of tiled clones"
+msgstr "Kolor początkowy klonów"
 
-#: ../src/extension/internal/bitmap/channel.cpp:54
-#: ../src/extension/internal/bitmap/levelChannel.cpp:58
-msgid "Magenta Channel"
-msgstr "Kanał purpurowy"
+#: ../src/dialogs/clonetiler.cpp:2480
+msgid "<b>H:</b>"
+msgstr "<b>Barwa:</b>"
 
-#: ../src/extension/internal/bitmap/channel.cpp:55
-#: ../src/extension/internal/bitmap/levelChannel.cpp:59
-msgid "Yellow Channel"
-msgstr "Kanał żółty"
+#: ../src/dialogs/clonetiler.cpp:2487
+msgid "Change the tile hue by this percentage for each row"
+msgstr "Zmiana odcienia barwy obiektu w każdym wierszu o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/channel.cpp:56
-#: ../src/extension/internal/bitmap/levelChannel.cpp:60
-msgid "Black Channel"
-msgstr "Kanał czarny"
+#: ../src/dialogs/clonetiler.cpp:2494
+msgid "Change the tile hue by this percentage for each column"
+msgstr "Zmiana odcienia barwy obiektu w każdej kolumnie o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/channel.cpp:57
-#: ../src/extension/internal/bitmap/levelChannel.cpp:61
-msgid "Opacity Channel"
-msgstr "Kanał krycia"
+#: ../src/dialogs/clonetiler.cpp:2501
+msgid "Randomize the tile hue by this percentage"
+msgstr "Losowa zmiana odcienia barwy o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/channel.cpp:58
-#: ../src/extension/internal/bitmap/levelChannel.cpp:62
-msgid "Matte Channel"
-msgstr "Kanał maski"
+#: ../src/dialogs/clonetiler.cpp:2510
+msgid "<b>S:</b>"
+msgstr "<b>Nasyc.:</b>"
 
-#: ../src/extension/internal/bitmap/channel.cpp:65
-msgid "Extract specific channel from image."
-msgstr "Wyodrębnij określony kanał z obrazka"
+#: ../src/dialogs/clonetiler.cpp:2517
+msgid "Change the color saturation by this percentage for each row"
+msgstr "Zmiana nasycenia koloru obiektu w każdym wierszu o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/charcoal.cpp:37
-msgid "Charcoal"
-msgstr "Rysunek węglem"
+#: ../src/dialogs/clonetiler.cpp:2524
+msgid "Change the color saturation by this percentage for each column"
+msgstr "Zmiana nasycenia koloru obiektu w każdej kolumnie o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/charcoal.cpp:46
-msgid "Apply charcoal stylization to selected bitmap(s)."
-msgstr "Zastosuj stylizację rysunku węglem do zaznaczonej bitmap(y)"
+#: ../src/dialogs/clonetiler.cpp:2531
+msgid "Randomize the color saturation by this percentage"
+msgstr "Losowa zmiana nasycenia o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/colorize.cpp:49
-msgid "Colorize"
-msgstr "Kolorowanie"
+#: ../src/dialogs/clonetiler.cpp:2539
+msgid "<b>L:</b>"
+msgstr "<b>Jasność:</b>"
 
-#: ../src/extension/internal/bitmap/colorize.cpp:57
-msgid "Colorize selected bitmap(s) with specified color, using given opacity."
-msgstr "Koloruj zaznaczoną bitmapę(y) wybranym kolorem z określonym kryciem"
+#: ../src/dialogs/clonetiler.cpp:2546
+msgid "Change the color lightness by this percentage for each row"
+msgstr "Zmiana jasności koloru obiektu w każdym wierszu o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/contrast.cpp:36
-msgid "Contrast"
-msgstr "Kontrast"
+#: ../src/dialogs/clonetiler.cpp:2553
+msgid "Change the color lightness by this percentage for each column"
+msgstr "Zmiana jasności koloru obiektu w każdej kolumnie o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/contrast.cpp:38
-#: ../src/extension/internal/bitmap/sharpen.cpp:37
-msgid "Sharpen"
-msgstr "Wyostrzanie"
+#: ../src/dialogs/clonetiler.cpp:2560
+msgid "Randomize the color lightness by this percentage"
+msgstr "Losowa zmiana jasności koloru o określoną tutaj wartość procentową"
 
-#: ../src/extension/internal/bitmap/contrast.cpp:44
-msgid "Enhance intensity differences in selected bitmap(s)."
-msgstr "Zmień intensywność kontrastu w zaznaczonej(ych) bitmapie(ach)"
+#: ../src/dialogs/clonetiler.cpp:2574
+msgid "Alternate the sign of color changes for each row"
+msgstr "Zmiana koloru będzie realizowana w co drugim wierszu"
 
-#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-convolve.html
-#: ../src/extension/internal/bitmap/convolve.cpp:50
-msgid "Convolve"
-msgstr ""
+#: ../src/dialogs/clonetiler.cpp:2579
+msgid "Alternate the sign of color changes for each column"
+msgstr "Zmiana koloru będzie realizowana w co drugiej kolumnie"
 
-#: ../src/extension/internal/bitmap/convolve.cpp:52
-#: ../src/extension/internal/bitmap/reduceNoise.cpp:41
-#: ../share/extensions/lindenmayer.inx.h:6
-msgid "Order"
-msgstr "Porządek"
+#: ../src/dialogs/clonetiler.cpp:2587
+msgid "_Trace"
+msgstr "Śl_edzenie"
 
-#: ../src/extension/internal/bitmap/convolve.cpp:53
-#, fuzzy
-msgid "Kernel Array"
-msgstr "Jądro"
+#: ../src/dialogs/clonetiler.cpp:2594
+msgid "Trace the drawing under the tiles"
+msgstr "Śledzenie rysunku pod obiektami"
 
-#: ../src/extension/internal/bitmap/convolve.cpp:59
-#, fuzzy
-msgid "Apply Convolve Effect"
-msgstr "Zastosuj nowy efekt"
+#: ../src/dialogs/clonetiler.cpp:2598
+msgid "For each clone, pick a value from the drawing in that clone's location and apply it to the clone"
+msgstr "Przypisanie każdemu klonowi wartości z rysunku z miejsca, w którym się znajduje"
 
-#: ../src/extension/internal/bitmap/cycleColormap.cpp:36
-msgid "Cycle Colormap"
-msgstr "Cykl palety kolorów"
+#: ../src/dialogs/clonetiler.cpp:2612
+msgid "1. Pick from the drawing:"
+msgstr "1. Pobierz z rysunku:"
 
-#: ../src/extension/internal/bitmap/cycleColormap.cpp:38
-#: ../src/extension/internal/bitmap/spread.cpp:38
-#: ../src/extension/internal/bitmap/unsharpmask.cpp:44
-msgid "Amount"
-msgstr "Ilość"
+#: ../src/dialogs/clonetiler.cpp:2624
+msgid "Pick the visible color and opacity"
+msgstr "Pobranie widocznego koloru i krycia"
 
-#: ../src/extension/internal/bitmap/cycleColormap.cpp:44
-msgid "Cycle colormap(s) of selected bitmap(s)."
-msgstr "Cykl palet(y) kolorów zaznaczonych(ej) bitmap(y)"
+#: ../src/dialogs/clonetiler.cpp:2631
+#: ../src/dialogs/clonetiler.cpp:2780
+#: ../src/extension/internal/bitmap/opacity.cpp:37
+#: ../src/extension/internal/bitmap/opacity.cpp:39
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2246
+#: ../src/widgets/toolbox.cpp:3860
+msgid "Opacity"
+msgstr "Krycie"
 
-#: ../src/extension/internal/bitmap/despeckle.cpp:35
-msgid "Despeckle"
-msgstr "Filtrowanie szumów"
+#: ../src/dialogs/clonetiler.cpp:2632
+msgid "Pick the total accumulated opacity"
+msgstr "Pobranie zsumowanego stopnia krycia"
 
-#: ../src/extension/internal/bitmap/despeckle.cpp:42
-msgid "Reduce speckle noise of selected bitmap(s)."
-msgstr "Redukuje szum plamkowy na zaznaczonych(ej) bitmapach(ie)"
+#: ../src/dialogs/clonetiler.cpp:2639
+msgid "R"
+msgstr "R"
 
-#: ../src/extension/internal/bitmap/edge.cpp:36
-msgid "Edge"
-msgstr "Krawędź"
+#: ../src/dialogs/clonetiler.cpp:2640
+msgid "Pick the Red component of the color"
+msgstr "Pobranie czerwonego składnika koloru"
 
-#: ../src/extension/internal/bitmap/edge.cpp:44
-msgid "Hilight edges of selected bitmap(s)."
-msgstr "Podświetla krawędzie zaznaczonych bitmap(y)"
+#: ../src/dialogs/clonetiler.cpp:2647
+msgid "G"
+msgstr "G"
 
-#. ID -- should be unique
-#: ../src/extension/internal/bitmap/emboss.cpp:37
-#: ../src/extension/internal/filter/emboss.h:21
-msgid "Emboss"
-msgstr "Płaskorzeźba"
+#: ../src/dialogs/clonetiler.cpp:2648
+msgid "Pick the Green component of the color"
+msgstr "Pobranie zielonego składnika koloru"
 
-#: ../src/extension/internal/bitmap/emboss.cpp:46
-msgid "Emboss selected bitmap(s) -- hilight edges with 3D effect."
-msgstr ""
-"Tworzy płaskorzeźbę zaznaczonych bitmap(y)- podświetla krawędzie z efektami "
-"3D"
+#: ../src/dialogs/clonetiler.cpp:2655
+msgid "B"
+msgstr "B"
 
-#: ../src/extension/internal/bitmap/enhance.cpp:34
-msgid "Enhance"
-msgstr "Zmniejsz szum"
+#: ../src/dialogs/clonetiler.cpp:2656
+msgid "Pick the Blue component of the color"
+msgstr "Pobranie niebieskiego składnika koloru"
 
-#: ../src/extension/internal/bitmap/enhance.cpp:41
-msgid "Enhance selected bitmap(s) -- minimize noise."
-msgstr "Koryguje zaznaczone bitmapy(ę) - minimalizuje szum"
+#. TRANSLATORS: only translate "string" in "context|string".
+#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
+#: ../src/dialogs/clonetiler.cpp:2665
+msgid "clonetiler|H"
+msgstr "H"
 
-#: ../src/extension/internal/bitmap/equalize.cpp:34
-msgid "Equalize"
-msgstr "Koryguj"
+#: ../src/dialogs/clonetiler.cpp:2666
+msgid "Pick the hue of the color"
+msgstr "Pobranie barwy"
 
-#: ../src/extension/internal/bitmap/equalize.cpp:41
-msgid "Equalize selected bitmap(s) -- histogram equalization."
-msgstr "Koryguje zaznaczoną bitmapę(y) - histogram korekcji"
+#. TRANSLATORS: only translate "string" in "context|string".
+#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
+#: ../src/dialogs/clonetiler.cpp:2675
+msgid "clonetiler|S"
+msgstr "S"
 
-#: ../src/extension/internal/bitmap/gaussianBlur.cpp:37
-#: ../src/filter-enums.cpp:28
-msgid "Gaussian Blur"
-msgstr "Rozmycie gaussowskie"
+#: ../src/dialogs/clonetiler.cpp:2676
+msgid "Pick the saturation of the color"
+msgstr "Pobranie nasycenia koloru"
 
-#: ../src/extension/internal/bitmap/gaussianBlur.cpp:39
-#: ../src/extension/internal/bitmap/implode.cpp:38
-#: ../src/extension/internal/bitmap/solarize.cpp:38
-msgid "Factor"
-msgstr "Współczynnik"
+#. TRANSLATORS: only translate "string" in "context|string".
+#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
+#: ../src/dialogs/clonetiler.cpp:2685
+msgid "clonetiler|L"
+msgstr "L"
 
-#: ../src/extension/internal/bitmap/gaussianBlur.cpp:46
-msgid "Gaussian blur selected bitmap(s)."
-msgstr "Rozmycie gaussowskie zaznaczonych bitmap(y)"
+#: ../src/dialogs/clonetiler.cpp:2686
+msgid "Pick the lightness of the color"
+msgstr "Pobranie jasności koloru"
 
-#: ../src/extension/internal/bitmap/implode.cpp:36
-msgid "Implode"
-msgstr "Implozja"
+#: ../src/dialogs/clonetiler.cpp:2696
+msgid "2. Tweak the picked value:"
+msgstr "2. Korekta pobranej wartości:"
 
-#: ../src/extension/internal/bitmap/implode.cpp:44
-msgid "Implode selected bitmap(s)."
-msgstr "Wykonuje implozję zaznaczonych bitmap(y)"
+#: ../src/dialogs/clonetiler.cpp:2706
+msgid "Gamma-correct:"
+msgstr "Korekcja gamma:"
 
-#: ../src/extension/internal/bitmap/levelChannel.cpp:51
-msgid "Level (with Channel)"
-msgstr "Poziom (z kanałem)"
+#: ../src/dialogs/clonetiler.cpp:2711
+msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)"
+msgstr "Przesunięcie zakresu środkowego pobranej wartości w górę (>0) lub w dół (<0)"
 
-#: ../src/extension/internal/bitmap/levelChannel.cpp:64
-#: ../src/extension/internal/bitmap/level.cpp:42
-msgid "Black Point"
-msgstr "Poziom czerni"
+#: ../src/dialogs/clonetiler.cpp:2718
+msgid "Randomize:"
+msgstr "Wartość losowa:"
 
-#: ../src/extension/internal/bitmap/levelChannel.cpp:65
-#: ../src/extension/internal/bitmap/level.cpp:43
-msgid "White Point"
-msgstr "Poziom bieli"
+#: ../src/dialogs/clonetiler.cpp:2723
+msgid "Randomize the picked value by this percentage"
+msgstr "Losowa zmiana pobranej wartości o wybraną wielkość procentową"
 
-#: ../src/extension/internal/bitmap/levelChannel.cpp:66
-#: ../src/extension/internal/bitmap/level.cpp:44
-msgid "Gamma Correction"
-msgstr "Korekcja gamma"
+#: ../src/dialogs/clonetiler.cpp:2730
+msgid "Invert:"
+msgstr "Odwróć:"
 
-#: ../src/extension/internal/bitmap/levelChannel.cpp:72
-msgid ""
-"Level the specified channel of selected bitmap(s) by scaling values falling "
-"between the given ranges to the full color range."
-msgstr ""
-"Poziom określonego kanału zaznaczonych bitmap(y) poprzez skalowanie wartości "
-"opadania pomiędzy danymi zakresami, a pełnym zakresem koloru"
+#: ../src/dialogs/clonetiler.cpp:2734
+msgid "Invert the picked value"
+msgstr "Odwróć pobraną wartość"
 
-#: ../src/extension/internal/bitmap/level.cpp:40
-msgid "Level"
-msgstr "Poziom"
+#: ../src/dialogs/clonetiler.cpp:2740
+msgid "3. Apply the value to the clones':"
+msgstr "3. Zastosuj pobraną wartość do klonów:"
 
-#: ../src/extension/internal/bitmap/level.cpp:50
-msgid ""
-"Level selected bitmap(s) by scaling values falling between the given ranges "
-"to the full color range."
-msgstr ""
-"Poziom zaznaczonych bitmap(y) poprzez skalowanie wartości opadania pomiędzy "
-"danymi zakresami, a pełnym zakresem koloru"
+#: ../src/dialogs/clonetiler.cpp:2750
+msgid "Presence"
+msgstr "Obecność"
 
-#: ../src/extension/internal/bitmap/medianFilter.cpp:36
-msgid "Median Filter"
-msgstr "Filtr Median"
+#: ../src/dialogs/clonetiler.cpp:2753
+msgid "Each clone is created with the probability determined by the picked value in that point"
+msgstr "Prawdopodobieństwo utworzenia klonu jest określane na podstawie wartości pobranej w danym punkcie"
 
-#: ../src/extension/internal/bitmap/medianFilter.cpp:44
-msgid ""
-"Filter selected bitmap(s) by replacing each pixel component with the median "
-"color in a circular neighborhood."
-msgstr ""
-"Filtruje zaznaczone bitmapy(ę) zamieniając każdy piksel kolorem środkowym w "
-"obrębie koła"
+#: ../src/dialogs/clonetiler.cpp:2760
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2221
+msgid "Size"
+msgstr "Rozmiar"
 
-#: ../src/extension/internal/bitmap/modulate.cpp:39
-msgid "Modulate"
-msgstr "Modulowanie"
+#: ../src/dialogs/clonetiler.cpp:2763
+msgid "Each clone's size is determined by the picked value in that point"
+msgstr "Rozmiar każdego klonu jest określany poprzez wartość pobraną w danym punkcie"
 
-#: ../src/extension/internal/bitmap/modulate.cpp:41
-msgid "Brightness"
-msgstr "Jasność"
+#: ../src/dialogs/clonetiler.cpp:2773
+msgid "Each clone is painted by the picked color (the original must have unset fill or stroke)"
+msgstr "Każdy klon otrzymuje kolor pobrany w danym punkcie (oryginał musi mieć nieokreślone wypełnienie lub kontur)"
 
-#: ../src/extension/internal/bitmap/modulate.cpp:42
-#: ../src/flood-context.cpp:275 ../src/ui/dialog/inkscape-preferences.cpp:731
-#: ../src/widgets/sp-color-icc-selector.cpp:235
-#: ../src/widgets/sp-color-icc-selector.cpp:236
-#: ../src/widgets/sp-color-scales.cpp:427
-#: ../src/widgets/sp-color-scales.cpp:428 ../src/widgets/toolbox.cpp:3375
-#: ../share/extensions/color_randomize.inx.h:5
-msgid "Saturation"
-msgstr "Nasycenie"
+#: ../src/dialogs/clonetiler.cpp:2783
+msgid "Each clone's opacity is determined by the picked value in that point"
+msgstr "Każdy klon otrzymuje krycie równe wartości pobranej w danym punkcie"
 
-#: ../src/extension/internal/bitmap/modulate.cpp:43
-#: ../src/flood-context.cpp:274 ../src/widgets/sp-color-icc-selector.cpp:235
-#: ../src/widgets/sp-color-icc-selector.cpp:236
-#: ../src/widgets/sp-color-scales.cpp:424
-#: ../src/widgets/sp-color-scales.cpp:425 ../src/widgets/toolbox.cpp:3360
-#: ../share/extensions/color_randomize.inx.h:2
-msgid "Hue"
-msgstr "Barwa"
+#: ../src/dialogs/clonetiler.cpp:2810
+msgid "How many rows in the tiling"
+msgstr "Ilość wierszy układu klonów"
 
-#: ../src/extension/internal/bitmap/modulate.cpp:49
-msgid "Modulate percent hue, saturation, and brightness of selected bitmap(s)."
-msgstr "Moduluje procent barwy, nasycenia i jasności zaznaczonych bitmap(y)"
+#: ../src/dialogs/clonetiler.cpp:2830
+msgid "How many columns in the tiling"
+msgstr "Ilość kolumn układu klonów"
 
-#: ../src/extension/internal/bitmap/negate.cpp:35
-msgid "Negate"
-msgstr "Pobierz odwrotność"
+#: ../src/dialogs/clonetiler.cpp:2860
+msgid "Width of the rectangle to be filled"
+msgstr "Szerokość prostokąta do wypełnienia"
 
-#: ../src/extension/internal/bitmap/negate.cpp:42
-msgid "Negate (take inverse) selected bitmap(s)."
-msgstr "Pobiera odwrotność zaznaczonych bitmap(y)"
+#: ../src/dialogs/clonetiler.cpp:2885
+msgid "Height of the rectangle to be filled"
+msgstr "Wysokość prostokąta do wypełnienia"
 
-#: ../src/extension/internal/bitmap/normalize.cpp:35
-msgid "Normalize"
-msgstr "Normalizacja"
+#: ../src/dialogs/clonetiler.cpp:2900
+msgid "Rows, columns: "
+msgstr "Wiersze, kolumny:"
 
-#: ../src/extension/internal/bitmap/normalize.cpp:42
-msgid ""
-"Normalize selected bitmap(s), expanding color range to the full possible "
-"range of color."
-msgstr ""
-"Normalizuje zaznaczone bitmapy(ę) rozszerzając zakres koloru do pełnego "
-"możliwego zakresu koloru"
+#: ../src/dialogs/clonetiler.cpp:2901
+msgid "Create the specified number of rows and columns"
+msgstr "Tworzenie określonej ilości wierszy i kolumn"
 
-#: ../src/extension/internal/bitmap/oilPaint.cpp:36
-msgid "Oil Paint"
-msgstr "Obraz olejny"
+#: ../src/dialogs/clonetiler.cpp:2910
+msgid "Width, height: "
+msgstr "Szerokość, wysokość:"
 
-#: ../src/extension/internal/bitmap/oilPaint.cpp:44
-msgid "Stylize selected bitmap(s) so that they appear to be painted with oils."
-msgstr "Stylizuje zaznaczone bitmapy(ę) tak, aby wyglądały jak obraz olejny"
+#: ../src/dialogs/clonetiler.cpp:2911
+msgid "Fill the specified width and height with the tiling"
+msgstr "Wypełnia określoną szerokość i wysokość z ułożeniem"
 
-#: ../src/extension/internal/bitmap/opacity.cpp:45
-msgid "Modify opacity channel(s) of selected bitmap(s)."
-msgstr "Zmienia krycie kanałów(u) zaznaczonych bitmap(y)"
+#: ../src/dialogs/clonetiler.cpp:2927
+msgid "Use saved size and position of the tile"
+msgstr "Użyj zapamiętanej wielkości i pozycji klonowania"
 
-#: ../src/extension/internal/bitmap/raise.cpp:39
-msgid "Raise"
-msgstr "Podniesienie"
+#: ../src/dialogs/clonetiler.cpp:2930
+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 "Będzie wykorzystywana wielkość i położenie elementu zapisane podczas poprzedniego klonowania - jeśli było - zamiast użycia aktualnego rozmiaru"
 
-#: ../src/extension/internal/bitmap/raise.cpp:43
-msgid "Raised"
-msgstr "Uwypuklenie"
+#: ../src/dialogs/clonetiler.cpp:2954
+msgid " <b>_Create</b> "
+msgstr "<b>_Utwórz</b> "
 
-#: ../src/extension/internal/bitmap/raise.cpp:49
-msgid ""
-"Alter lightness the edges of selected bitmap(s) to create a raised "
-"appearance."
-msgstr ""
-"Zmienia rozjaśnienie krawędzi zaznaczonych bitmap(y), aby utworzyć wypukły "
-"wygląd"
+#: ../src/dialogs/clonetiler.cpp:2956
+msgid "Create and tile the clones of the selection"
+msgstr "Utwórz i rozmieść klony zaznaczonych elementów"
 
-#: ../src/extension/internal/bitmap/reduceNoise.cpp:39
-msgid "Reduce Noise"
-msgstr "Redukcja szumów"
+#. TRANSLATORS: if a group of objects are "clumped" together, then they
+#. are unevenly spread in the given amount of space - as shown in the
+#. diagrams on the left in the following screenshot:
+#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png
+#. So unclumping is the process of spreading a number of objects out more evenly.
+#: ../src/dialogs/clonetiler.cpp:2971
+msgid " _Unclump "
+msgstr "_Rozproszenie"
 
-#: ../src/extension/internal/bitmap/reduceNoise.cpp:47
-msgid ""
-"Reduce noise in selected bitmap(s) using a noise peak elimination filter."
-msgstr ""
-"Redukuje szum w zaznaczonej bitmapie(ach) przy użyciu filtru eliminacji "
-"szumów szczytowych"
+#: ../src/dialogs/clonetiler.cpp:2972
+msgid "Spread out clones to reduce clumping; can be applied repeatedly"
+msgstr "Rozsuń klony zmniejszając ich rozproszenie; może być stosowane wielokrotnie"
 
-#: ../src/extension/internal/bitmap/sample.cpp:38
-msgid "Sample"
-msgstr "Próbka"
+#: ../src/dialogs/clonetiler.cpp:2978
+msgid " Re_move "
+msgstr "U_suń "
 
-#: ../src/extension/internal/bitmap/sample.cpp:47
-msgid ""
-"Alter the resolution of selected image by resizing it by given dimensions."
-msgstr ""
-"Zmienia rozdzielczość zaznaczonego obrazka zmieniając jego wielkość do "
-"zadanych rozmiarów"
+#: ../src/dialogs/clonetiler.cpp:2979
+msgid "Remove existing tiled clones of the selected object (siblings only)"
+msgstr "Usuń istniejące klony zaznaczonego obiektu (usuwa tylko kopie)"
 
-#: ../src/extension/internal/bitmap/shade.cpp:39
-msgid "Shade"
-msgstr "Cień"
+#: ../src/dialogs/clonetiler.cpp:2995
+msgid " R_eset "
+msgstr "_Resetuj "
 
-#: ../src/extension/internal/bitmap/shade.cpp:41
-#: ../src/ui/dialog/filter-effects-dialog.cpp:992
-msgid "Azimuth"
-msgstr "Azymut"
+#. TRANSLATORS: "change" is a noun here
+#: ../src/dialogs/clonetiler.cpp:2997
+msgid "Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero"
+msgstr "Wyzeruj wartości wszystkich przesunięć, skalowań, obrotów, zmian krycia i koloru w polach okna dialogowego"
 
-#: ../src/extension/internal/bitmap/shade.cpp:42
-#: ../src/ui/dialog/filter-effects-dialog.cpp:993
-msgid "Elevation"
-msgstr "Przewyższenie"
+#: ../src/dialogs/debugdialog.cpp:135
+msgid "Messages"
+msgstr "Komunikaty"
 
-#: ../src/extension/internal/bitmap/shade.cpp:43
-msgid "Colored Shading"
-msgstr "Kolorowe cieniowanie"
+#. ## Add a menu for clear()
+#: ../src/dialogs/debugdialog.cpp:141
+#: ../src/menus-skeleton.h:16
+#: ../src/ui/dialog/messages.cpp:54
+#: ../src/ui/dialog/scriptdialog.cpp:208
+msgid "_File"
+msgstr "_Plik"
 
-#: ../src/extension/internal/bitmap/shade.cpp:49
-msgid "Shade selected bitmap(s) simulating distant light source."
-msgstr "Dodaje cień do zaznaczonych bitmap(y) symulując odległe źródło światła"
+#. TRANSLATORS: "Clear" is a verb here
+#: ../src/dialogs/debugdialog.cpp:142
+#: ../src/dialogs/find.cpp:753
+#: ../src/ui/dialog/find.cpp:85
+#: ../src/ui/dialog/messages.cpp:55
+#: ../src/ui/dialog/scriptdialog.cpp:209
+msgid "_Clear"
+msgstr "_Wyczyść"
 
-#: ../src/extension/internal/bitmap/sharpen.cpp:46
-msgid "Sharpen selected bitmap(s)."
-msgstr "Wyostrza zaznaczone bitmapy(ę)"
+#: ../src/dialogs/debugdialog.cpp:144
+#: ../src/ui/dialog/messages.cpp:57
+msgid "Capture log messages"
+msgstr "_Rozpocznij przechwytywanie komunikatów"
 
-#: ../src/extension/internal/bitmap/solarize.cpp:36
-msgid "Solarize"
-msgstr "Solaryzacja"
+#: ../src/dialogs/debugdialog.cpp:146
+#: ../src/ui/dialog/messages.cpp:59
+msgid "Release log messages"
+msgstr "_Zakończ przechwytywanie komunikatów"
 
-#: ../src/extension/internal/bitmap/solarize.cpp:44
-msgid "Solarize selected bitmap(s), like overexposing photographic film."
-msgstr ""
-"Solaryzuje zaznaczone bitmapy(ę) tak jak prześwietlony film fotograficzny"
+#: ../src/dialogs/eek-color-def.cpp:56
+#: ../src/widgets/gradient-selector.cpp:162
+msgid "none"
+msgstr "brak"
 
-#: ../src/extension/internal/bitmap/spread.cpp:36
-msgid "Spread"
-msgstr "Rozmazanie"
+#: ../src/dialogs/export.cpp:143
+msgid "_Custom"
+msgstr "Rozmiar _użytkownika"
 
-#: ../src/extension/internal/bitmap/spread.cpp:44
-msgid ""
-"Randomly spread pixels in selected bitmap(s), within the radius of 'amount.'"
-msgstr ""
-"W obrębie promienia losowo rozmazuje piksele w zaznaczonych bitmapach(ie)"
+#: ../src/dialogs/export.cpp:143
+#: ../src/verbs.cpp:2623
+msgid "_Drawing"
+msgstr "Cały _rysunek"
 
-#: ../src/extension/internal/bitmap/swirl.cpp:36
-msgid "Swirl"
-msgstr "Skręcenie"
+#: ../src/dialogs/export.cpp:143
+#: ../src/verbs.cpp:2619
+msgid "_Page"
+msgstr "Cała _strona"
 
-#: ../src/extension/internal/bitmap/swirl.cpp:38
-#: ../share/extensions/grid_polar.inx.h:7
-msgid "Degrees"
-msgstr "Stopnie"
+#: ../src/dialogs/export.cpp:143
+#: ../src/verbs.cpp:2625
+msgid "_Selection"
+msgstr "_Zaznaczenie"
 
-#: ../src/extension/internal/bitmap/swirl.cpp:44
-msgid "Swirl selected bitmap(s) around center point."
-msgstr "Skręca zaznaczoną(e) bitmapę(y) wokół punktu centralnego"
+#: ../src/dialogs/export.cpp:268
+msgid "<big><b>Export area</b></big>"
+msgstr "<big><b>Obszar eksportu</b></big>"
 
-#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html
-#: ../src/extension/internal/bitmap/threshold.cpp:37
-#: ../src/extension/internal/bitmap/threshold.cpp:39
-#: ../src/extension/internal/bitmap/unsharpmask.cpp:45
-msgid "Threshold"
-msgstr "Próg"
+#: ../src/dialogs/export.cpp:282
+msgid "Units:"
+msgstr "Jednostki:"
 
-#: ../src/extension/internal/bitmap/threshold.cpp:45
-msgid "Threshold selected bitmap(s)."
-msgstr "Proguj zaznaczone bitmapy(ę)"
+#: ../src/dialogs/export.cpp:310
+msgid "_x0:"
+msgstr "_x0:"
 
-#: ../src/extension/internal/bitmap/unsharpmask.cpp:40
-msgid "Unsharp Mask"
-msgstr "Maska wyostrzania"
+#: ../src/dialogs/export.cpp:315
+msgid "x_1:"
+msgstr "x_1:"
 
-#: ../src/extension/internal/bitmap/unsharpmask.cpp:51
-msgid "Sharpen selected bitmap(s) using unsharp mask algorithms."
-msgstr "Wyostrza zaznaczone bitmapy(ę) używając algorytmów maski wyostrzania"
+#. Stroke width
+#: ../src/dialogs/export.cpp:320
+#: ../src/dialogs/object-attributes.cpp:60
+#: ../src/dialogs/object-attributes.cpp:68
+#: ../src/dialogs/stroke-style.cpp:1083
+#: ../src/widgets/toolbox.cpp:3658
+#: ../src/widgets/toolbox.cpp:4257
+#: ../src/widgets/toolbox.cpp:5276
+msgid "Width:"
+msgstr "Szerokość:"
 
-#: ../src/extension/internal/bitmap/wave.cpp:37
-msgid "Wave"
-msgstr "Fala"
+#: ../src/dialogs/export.cpp:326
+msgid "_y0:"
+msgstr "_y0:"
 
-#: ../src/extension/internal/bitmap/wave.cpp:39
-msgid "Amplitude"
-msgstr "Amplituda"
+#: ../src/dialogs/export.cpp:331
+msgid "y_1:"
+msgstr "y_1:"
 
-#: ../src/extension/internal/bitmap/wave.cpp:40
-msgid "Wavelength"
-msgstr "Długość fali"
+#: ../src/dialogs/export.cpp:336
+#: ../src/dialogs/export.cpp:495
+#: ../src/dialogs/object-attributes.cpp:61
+#: ../src/dialogs/object-attributes.cpp:69
+msgid "Height:"
+msgstr "Wysokość:"
 
-#: ../src/extension/internal/bitmap/wave.cpp:46
-msgid "Alter selected bitmap(s) along sine wave."
-msgstr "Modyfikuje zaznaczone bitmapy(ę) falą sinusoidalną"
+#: ../src/dialogs/export.cpp:468
+msgid "<big><b>Bitmap size</b></big>"
+msgstr "<big><b>Rozmiar bitmapy</b></big>"
 
-#: ../src/extension/internal/bluredge.cpp:132
-msgid "Inset/Outset Halo"
-msgstr "Rozmycie krawędzi (zjawisko Halo)"
+#: ../src/dialogs/export.cpp:481
+#: ../src/ui/widget/page-sizer.cpp:209
+msgid "_Width:"
+msgstr "_Szerokość:"
 
-#: ../src/extension/internal/bluredge.cpp:134
-msgid "Width in px of the halo"
-msgstr "Szerokość rozmycia w px"
+#: ../src/dialogs/export.cpp:481
+#: ../src/dialogs/export.cpp:495
+msgid "pixels at"
+msgstr "px przy"
 
-#: ../src/extension/internal/bluredge.cpp:135
-msgid "Number of steps"
-msgstr "Liczba kroków"
+#: ../src/dialogs/export.cpp:489
+msgid "dp_i"
+msgstr "dp_i"
 
-#: ../src/extension/internal/bluredge.cpp:135
-msgid "Number of inset/outset copies of the object to make"
-msgstr "Liczba kopii obiektu do symulacji efektu rozmycia"
+#: ../src/dialogs/export.cpp:506
+#: ../src/ui/dialog/inkscape-preferences.cpp:699
+#: ../src/ui/dialog/inkscape-preferences.cpp:1061
+msgid "dpi"
+msgstr "dpi"
 
-#: ../src/extension/internal/bluredge.cpp:139
-#: ../share/extensions/interp.inx.h:3 ../share/extensions/motion.inx.h:3
-#: ../share/extensions/pathalongpath.inx.h:4
-#: ../share/extensions/pathscatter.inx.h:5
-msgid "Generate from Path"
-msgstr "Wygeneruj ze ścieżki"
+#. true = has mnemonic
+#: ../src/dialogs/export.cpp:517
+msgid "<big><b>_Filename</b></big>"
+msgstr "<big><b>_Nazwa pliku</b></big>"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:239
-msgid "Cairo PDF Output"
-msgstr "Zapis PDF z użyciem Cairo"
+#: ../src/dialogs/export.cpp:588
+msgid "_Browse..."
+msgstr "_Przeglądaj..."
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:241
-msgid "Restrict to PDF version"
-msgstr "Określ wersję PDF"
+#: ../src/dialogs/export.cpp:617
+msgid "Batch export all selected objects"
+msgstr "Eksportuj grupowo wszystkie zaznaczone obiekty"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:242
-msgid "PDF 1.4"
-msgstr "PDF 1.4"
+#: ../src/dialogs/export.cpp:621
+msgid "Export each selected object into its own PNG file, using export hints if any (caution, overwrites without asking!)"
+msgstr "Eksportuje każdy zaznaczony obiekt do pliku PNG (Uwaga - nadpisuje bez powiadamiania!)"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:244
-#: ../src/extension/internal/cairo-ps-out.cpp:230
-#: ../src/extension/internal/emf-win32-inout.cpp:2182
-#: ../src/extension/internal/eps-out.cpp:92
-#: ../src/extension/internal/ps-out.cpp:84
-msgid "Convert texts to paths"
-msgstr "Konwertuj tekst na ścieżki"
+#: ../src/dialogs/export.cpp:629
+msgid "Hide all except selected"
+msgstr "Ukryj wszystko z wyjątkiem zaznaczenia"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:245
-#: ../src/extension/internal/cairo-ps-out.cpp:231
-msgid "Convert blur effects to bitmaps"
-msgstr "Konwertuj efekty rozmycia do bitmap"
+#: ../src/dialogs/export.cpp:633
+msgid "In the exported image, hide all objects except those that are selected"
+msgstr "W eksportowanym obrazku ukrywa wszystkie obiekty z wyjątkiem zaznaczonych"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:246
-#: ../src/extension/internal/cairo-ps-out.cpp:232
-msgid "Preferred resolution (DPI) of bitmaps"
-msgstr "Preferowana rozdzielczość bitmap (w dpi)"
+#: ../src/dialogs/export.cpp:650
+msgid "_Export"
+msgstr "_Eksportuj"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:247
-msgid "Export drawing, not page"
-msgstr "Eksportuj rysunek, a nie ścieżkę"
+#: ../src/dialogs/export.cpp:654
+msgid "Export the bitmap file with these settings"
+msgstr "Eksportowanie bitmapy z wybranymi ustawieniami"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:248
-msgid "Export canvas"
-msgstr "Eksportuj obszar roboczy"
+#: ../src/dialogs/export.cpp:680
+#, c-format
+msgid "Batch export %d selected object"
+msgid_plural "Batch export %d selected objects"
+msgstr[0] "Eksportuj grupowo %d wybrany element"
+msgstr[1] "Eksportuj grupowo %d wybrane elementy"
+msgstr[2] "Eksportuj grupowo %d wybranych elementów"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:249
-msgid "Limit export to the object with ID"
-msgstr "Limit eksportu do obiektu z ID"
+#: ../src/dialogs/export.cpp:1011
+msgid "Export in progress"
+msgstr "Trwa eksportowanie"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:253
-msgid "PDF via Cairo (*.pdf)"
-msgstr "PDF [z użyciem Cairo] (*.pdf)"
+#: ../src/dialogs/export.cpp:1081
+#, c-format
+msgid "Exporting %d files"
+msgstr "Eksportowanie %d plików"
 
-#: ../src/extension/internal/cairo-pdf-out.cpp:254
-msgid "PDF File"
-msgstr "Plik PDF"
+#: ../src/dialogs/export.cpp:1121
+#: ../src/dialogs/export.cpp:1193
+#, c-format
+msgid "Could not export to filename %s.\n"
+msgstr "Nie można wyeksportować do pliku %s.\n"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:222
-msgid "Cairo PS Output"
-msgstr "Zapis PS z użyciem Cairo"
+#: ../src/dialogs/export.cpp:1149
+msgid "You have to enter a filename"
+msgstr "Nie podano nazwy pliku"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:224
-msgid "Restrict to PS level"
-msgstr "Określ poziom PostScript"
+#: ../src/dialogs/export.cpp:1154
+msgid "The chosen area to be exported is invalid"
+msgstr "Wybrany obszar eksportu jest nieprawidłowy"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:225
-msgid "PostScript level 3"
-msgstr "PostScript poziom 3"
+#: ../src/dialogs/export.cpp:1163
+#, c-format
+msgid "Directory %s does not exist or is not a directory.\n"
+msgstr "Katalog %s nie istnieje lub wybrany plik nie jest katalogiem.\n"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:227
-msgid "PostScript level 2"
-msgstr "PostScript poziom 2"
+#: ../src/dialogs/export.cpp:1179
+#, c-format
+msgid "Exporting %s (%lu x %lu)"
+msgstr "Eksportowanie %s (%lu x %lu)"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:236
-msgid "PostScript via Cairo (*.ps)"
-msgstr "PostScript [z użyciem Cairo] (*.ps)"
+#: ../src/dialogs/export.cpp:1300
+msgid "Select a filename for exporting"
+msgstr "Wybierz nazwę eksportowanego pliku"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:237
-#: ../src/extension/internal/ps-out.cpp:90
-msgid "PostScript File"
-msgstr "Plik PostScript"
+#: ../src/dialogs/fill-style.cpp:283
+msgid "Change fill rule"
+msgstr "Zmień regułę wypełnienia"
 
-#: ../src/extension/internal/emf-win32-inout.cpp:2152
-msgid "EMF Input"
-msgstr "Źródło EMF"
+#: ../src/dialogs/fill-style.cpp:323
+#: ../src/dialogs/fill-style.cpp:397
+msgid "Set fill color"
+msgstr "Ustaw kolor wypełnienia"
 
-#: ../src/extension/internal/emf-win32-inout.cpp:2157
-msgid "Enhanced Metafiles (*.emf)"
-msgstr "Enhanced Metafiles (*.emf)"
+#: ../src/dialogs/fill-style.cpp:385
+#: ../src/ui/widget/selected-style.cpp:255
+#: ../src/ui/widget/selected-style.cpp:475
+msgid "Remove fill"
+msgstr "Usuń wypełnienie"
 
-#: ../src/extension/internal/emf-win32-inout.cpp:2158
-msgid "Enhanced Metafiles"
-msgstr "Enhanced Metafiles"
+#: ../src/dialogs/fill-style.cpp:466
+msgid "Set gradient on fill"
+msgstr "Ustaw gradient wypełnienia"
 
-#: ../src/extension/internal/emf-win32-inout.cpp:2166
-msgid "WMF Input"
-msgstr "Źródło WMF"
+#: ../src/dialogs/fill-style.cpp:513
+msgid "Set pattern on fill"
+msgstr "Ustaw deseń wypełnienia"
 
-#: ../src/extension/internal/emf-win32-inout.cpp:2171
-msgid "Windows Metafiles (*.wmf)"
-msgstr "Windows Metafile (*.wmf)"
+#. TRANSLATORS COMMENT: unset is a verb here
+#: ../src/dialogs/fill-style.cpp:528
+#: ../src/ui/widget/selected-style.cpp:193
+#: ../src/ui/widget/selected-style.cpp:251
+#: ../src/ui/widget/selected-style.cpp:493
+#: ../src/ui/widget/style-swatch.cpp:335
+msgid "Unset fill"
+msgstr "Nie ustawiaj wypełnienia"
 
-#: ../src/extension/internal/emf-win32-inout.cpp:2172
-msgid "Windows Metafiles"
-msgstr "Windows Metafiles"
+#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed
+#: ../src/dialogs/find.cpp:372
+#: ../src/ui/dialog/find.cpp:436
+#, c-format
+msgid "<b>%d</b> object found (out of <b>%d</b>), %s match."
+msgid_plural "<b>%d</b> objects found (out of <b>%d</b>), %s match."
+msgstr[0] "Znaleziono <b>%d</b> obiekt (z <b>%d</b>), dopasowanie %s"
+msgstr[1] "Znaleziono <b>%d</b> obiekty (z <b>%d</b>), dopasowanie %s"
+msgstr[2] "Znaleziono <b>%d</b> obiektów (z <b>%d</b>), dopasowanie %s"
 
-#: ../src/extension/internal/emf-win32-inout.cpp:2180
-msgid "EMF Output"
-msgstr "Zapis w formacie EMF"
+#: ../src/dialogs/find.cpp:375
+#: ../src/ui/dialog/find.cpp:439
+msgid "exact"
+msgstr "dokładne"
 
-#: ../src/extension/internal/emf-win32-inout.cpp:2186
-msgid "Enhanced Metafile (*.emf)"
-msgstr "Enhanced Metafile (*.emf)"
+#: ../src/dialogs/find.cpp:375
+#: ../src/ui/dialog/find.cpp:439
+msgid "partial"
+msgstr "częściowe"
 
-#: ../src/extension/internal/emf-win32-inout.cpp:2187
-msgid "Enhanced Metafile"
-msgstr "Enhanced Metafile"
+#: ../src/dialogs/find.cpp:382
+#: ../src/ui/dialog/find.cpp:446
+msgid "No objects found"
+msgstr "Nie znaleziono obiektów"
 
-#: ../src/extension/internal/eps-out.cpp:89
-msgid "Encapsulated Postscript Output"
-msgstr "Zapis w formacie Encapsulated Postscript"
+#: ../src/dialogs/find.cpp:540
+msgid "T_ype: "
+msgstr "Typ obiektu:"
 
-#: ../src/extension/internal/eps-out.cpp:91
-msgid "Make bounding box around full page"
-msgstr "Utwórz obramowanie wokół całej strony"
+#: ../src/dialogs/find.cpp:547
+#: ../src/ui/dialog/find.cpp:70
+msgid "All types"
+msgstr "Wszystkie typy"
 
-#: ../src/extension/internal/eps-out.cpp:93
-#: ../src/extension/internal/ps-out.cpp:85
-msgid "Embed fonts (Type 1 only)"
-msgstr "Osadzone czcionki (tylko Type 1)"
+#: ../src/dialogs/find.cpp:547
+#: ../src/ui/dialog/find.cpp:70
+msgid "Search in all object types"
+msgstr "Szukaj we wszystkich typach obiektów"
 
-#: ../src/extension/internal/eps-out.cpp:97
-#: ../share/extensions/eps_input.inx.h:3
-msgid "Encapsulated Postscript (*.eps)"
-msgstr "Encapsulated Postscript (*.eps)"
+#: ../src/dialogs/find.cpp:558
+#: ../src/ui/dialog/find.cpp:71
+msgid "All shapes"
+msgstr "Wszystkie figury"
 
-#: ../src/extension/internal/eps-out.cpp:98
-msgid "Encapsulated Postscript File"
-msgstr "Plik Encapsulated Postscript"
+#: ../src/dialogs/find.cpp:558
+#: ../src/ui/dialog/find.cpp:71
+msgid "Search all shapes"
+msgstr "Szukaj we wszystkich rodzajach figur"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/apparition.h:24
-msgid "Apparition"
-msgstr "Widmo"
+#: ../src/dialogs/find.cpp:575
+#: ../src/ui/dialog/find.cpp:72
+msgid "Rectangles"
+msgstr "Prostokąty"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/apparition.h:25
-msgid "I'm not sure what this word means"
-msgstr "Nie jestem pewny co to słowo znaczy"
+#: ../src/dialogs/find.cpp:575
+#: ../src/ui/dialog/find.cpp:72
+msgid "Search rectangles"
+msgstr "Szukaj prostokątów"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/bloom.h:24
-msgid "Bloom"
-msgstr "Kwiat"
+#: ../src/dialogs/find.cpp:580
+#: ../src/ui/dialog/find.cpp:73
+msgid "Ellipses"
+msgstr "Elipsy"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/bloom.h:25
-msgid "Not sure, nobody tell me these things"
-msgstr ""
+#: ../src/dialogs/find.cpp:580
+#: ../src/ui/dialog/find.cpp:73
+msgid "Search ellipses, arcs, circles"
+msgstr "Szukaj elips, łuków i okręgów"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/clouds.h:24
-msgid "Clouds"
-msgstr "Chmury"
+#: ../src/dialogs/find.cpp:585
+#: ../src/ui/dialog/find.cpp:74
+msgid "Search stars and polygons"
+msgstr "Szukaj gwiazd i wielokątów"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/clouds.h:25
-msgid "Yes, more descriptions"
-msgstr "Tak, więcej opisów"
+#: ../src/dialogs/find.cpp:585
+#: ../src/ui/dialog/find.cpp:74
+msgid "Stars"
+msgstr "Gwiazdy"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/crystal.h:24
-#, fuzzy
-msgid "Crystal"
-msgstr "Skala szarości"
+#: ../src/dialogs/find.cpp:590
+#: ../src/ui/dialog/find.cpp:75
+msgid "Search spirals"
+msgstr "Szukaj spirali"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/crystal.h:25
-msgid "Artist, insert data here"
-msgstr ""
+#: ../src/dialogs/find.cpp:590
+#: ../src/ui/dialog/find.cpp:75
+msgid "Spirals"
+msgstr "Spirale"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/cutout.h:24
-#, fuzzy
-msgid "Coutout"
-msgstr "na zewnątrz"
+#: ../src/dialogs/find.cpp:603
+#: ../src/ui/dialog/find.cpp:76
+msgid "Paths"
+msgstr "Ścieżki"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/cutout.h:25
-#: ../src/extension/internal/filter/etched-glass.h:25
-#: ../src/extension/internal/filter/frost.h:25
-#: ../src/extension/internal/filter/ridged-border.h:25
-msgid "Artist text"
-msgstr "Tekst artystyczny"
+#. TRANSLATORS: polyline is a set of connected straight line segments
+#. http://www.w3.org/TR/SVG11/shapes.html#PolylineElement
+#: ../src/dialogs/find.cpp:603
+#: ../src/ui/dialog/find.cpp:76
+msgid "Search paths, lines, polylines"
+msgstr "Szukaj ścieżek, linii, linii łamanych"
 
-#: ../src/extension/internal/filter/drop-shadow.h:35
-#, fuzzy
-msgid "Drop Shadow"
-msgstr "Upuść grafikę SVG"
+#: ../src/dialogs/find.cpp:608
+#: ../src/ui/dialog/find.cpp:77
+msgid "Search text objects"
+msgstr "Szukaj obiektów tekstowych"
 
-#: ../src/extension/internal/filter/drop-shadow.h:37
-msgid "Amount of Blur"
-msgstr "Stopień rozmycia"
+#: ../src/dialogs/find.cpp:608
+#: ../src/ui/dialog/find.cpp:77
+msgid "Texts"
+msgstr "Teksty"
 
-#: ../src/extension/internal/filter/drop-shadow.h:38
-#: ../src/extension/internal/grid.cpp:197
-msgid "Horizontal Offset"
-msgstr "Przesunięcie poziome"
+#: ../src/dialogs/find.cpp:613
+#: ../src/ui/dialog/find.cpp:78
+msgid "Groups"
+msgstr "Grupy"
 
-#: ../src/extension/internal/filter/drop-shadow.h:39
-#: ../src/extension/internal/grid.cpp:198
-msgid "Vertical Offset"
-msgstr "Przesunięcie pionowe"
+#: ../src/dialogs/find.cpp:613
+#: ../src/ui/dialog/find.cpp:78
+msgid "Search groups"
+msgstr "Szukaj grup obiektów"
 
-#: ../src/extension/internal/filter/drop-shadow.h:43
-#: ../src/extension/internal/filter/filter.cpp:196
-#: ../src/extension/internal/filter/filter-file.cpp:146
-#: ../src/extension/internal/filter/snow.h:38
-msgid "Filter"
-msgstr "Filtr"
+#: ../src/dialogs/find.cpp:618
+#: ../src/ui/dialog/find.cpp:81
+msgid "Search clones"
+msgstr "Szukaj sklonowanych obiektów"
 
-#: ../src/extension/internal/filter/drop-shadow.h:45
-msgid "I hate text"
-msgstr "Nie nawidzę tekstu"
+#. TRANSLATORS: Translate the word "Clones" only. A noun indicating type of object to find
+#: ../src/dialogs/find.cpp:620
+#: ../src/ui/dialog/find.cpp:81
+msgid "find|Clones"
+msgstr "Klony"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/emboss.h:22
-#, fuzzy
-msgid "Emboss effect"
-msgstr "Brak efektu"
+#: ../src/dialogs/find.cpp:625
+#: ../src/ui/dialog/find.cpp:82
+msgid "Search images"
+msgstr "Szukaj obrazków"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/etched-glass.h:24
-msgid "Etched Glass"
-msgstr "Etched Glass"
+#: ../src/dialogs/find.cpp:630
+#: ../src/ui/dialog/find.cpp:83
+msgid "Offsets"
+msgstr "Odsunięcia"
 
-#: ../src/extension/internal/filter/filter-file.cpp:32
-#, fuzzy
-msgid "Bundled"
-msgstr "Zaokrąglone"
+#: ../src/dialogs/find.cpp:630
+#: ../src/ui/dialog/find.cpp:83
+msgid "Search offset objects"
+msgstr "Szukaj obiektów powstałych przez odsunięcie"
 
-#: ../src/extension/internal/filter/filter-file.cpp:33
-msgid "Personal"
-msgstr "Osobiste"
+#: ../src/dialogs/find.cpp:694
+#: ../src/ui/dialog/find.cpp:61
+msgid "Find objects by their text content (exact or partial match)"
+msgstr "Znajdź obiekty zawierające tekst (w pełni lub częściowo pasujące)"
 
-#: ../src/extension/internal/filter/filter-file.cpp:44
-#, fuzzy
-msgid "Null external module directory name.  Filters will not be loaded."
-msgstr ""
-"Pusta nazwa katalogu modułów zewnętrznych.  Moduły nie zostaną załadowane"
+#: ../src/dialogs/find.cpp:694
+#: ../src/ui/dialog/find.cpp:61
+msgid "_Text: "
+msgstr "_Tekst: "
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/fire.h:24
-msgid "Fire"
-msgstr "Ogień"
+#: ../src/dialogs/find.cpp:695
+#: ../src/ui/dialog/find.cpp:62
+msgid "Find objects by the value of the id attribute (exact or partial match)"
+msgstr "Znajdź obiekty na podstawie ich identyfikatorów (w pełni lub częściowo pasujące) "
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/fire.h:25
-msgid "Artist on fire"
-msgstr ""
+#: ../src/dialogs/find.cpp:695
+#: ../src/ui/dialog/find.cpp:62
+msgid "_ID: "
+msgstr "_ID: "
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/frost.h:24
-#, fuzzy
-msgid "Frost"
-msgstr "Czcionka"
+#: ../src/dialogs/find.cpp:696
+#: ../src/ui/dialog/find.cpp:63
+msgid "Find objects by the value of the style attribute (exact or partial match)"
+msgstr "Znajdź obiekty na podstawie właściwości ich stylu (w pełni lub częściowo pasujące)"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/ink-bleed.h:24
-#, fuzzy
-msgid "InkBleed"
-msgstr "Mieszanie"
+#: ../src/dialogs/find.cpp:696
+#: ../src/ui/dialog/find.cpp:63
+msgid "_Style: "
+msgstr "Styl: "
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/ink-bleed.h:25
-msgid "Artist Text"
-msgstr ""
+#: ../src/dialogs/find.cpp:697
+#: ../src/ui/dialog/find.cpp:64
+msgid "Find objects by the name of an attribute (exact or partial match)"
+msgstr "Znajdź obiekty na podstawie ich właściwości (w pełni lub częściowo pasujące)"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/jelly-bean.h:24
-msgid "Jelly Bean"
-msgstr "Jelly Bean"
+#: ../src/dialogs/find.cpp:697
+#: ../src/ui/dialog/find.cpp:64
+msgid "_Attribute: "
+msgstr "_Atrybut: "
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/jelly-bean.h:25
-msgid "Mmmm, yummy."
-msgstr ""
+#: ../src/dialogs/find.cpp:711
+#: ../src/ui/dialog/find.cpp:65
+msgid "Search in s_election"
+msgstr "Szukaj w _zaznaczeniu"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/jigsaw-piece.h:24
-msgid "JigsawPiece"
-msgstr "JigsawPiece"
+#: ../src/dialogs/find.cpp:715
+#: ../src/ui/dialog/find.cpp:65
+msgid "Limit search to the current selection"
+msgstr "Ogranicz wyszukiwanie do aktualnie zaznaczonych obiektów"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/jigsaw-piece.h:25
-msgid "It's a puzzle, no hints"
-msgstr ""
+#: ../src/dialogs/find.cpp:720
+#: ../src/ui/dialog/find.cpp:66
+msgid "Search in current _layer"
+msgstr "Szukaj na _aktywnej warstwie"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/leopard-fur.h:24
-msgid "Leopard Fur"
-msgstr "Leopard Fur"
+#: ../src/dialogs/find.cpp:724
+#: ../src/ui/dialog/find.cpp:66
+msgid "Limit search to the current layer"
+msgstr "Ogranicz wyszukiwanie do aktywnej warstwy"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/leopard-fur.h:25
-msgid "Purrrr, quiet the kitty is sleeping"
-msgstr ""
+#: ../src/dialogs/find.cpp:729
+#: ../src/ui/dialog/find.cpp:67
+msgid "Include _hidden"
+msgstr "Uwzględnij _ukryte"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/melt.h:22
-#, fuzzy
-msgid "Melt"
-msgstr "Metal"
+#: ../src/dialogs/find.cpp:733
+#: ../src/ui/dialog/find.cpp:67
+msgid "Include hidden objects in search"
+msgstr "Szukaj także wśród obiektów ukrytych"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/melt.h:23
-#, fuzzy
-msgid "Melt effect"
-msgstr "Aktualny efekt"
+#: ../src/dialogs/find.cpp:738
+#: ../src/ui/dialog/find.cpp:68
+msgid "Include l_ocked"
+msgstr "Uwzględnij za_blokowane"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/metal.h:24
-msgid "Metal"
-msgstr "Metal"
+#: ../src/dialogs/find.cpp:742
+#: ../src/ui/dialog/find.cpp:68
+msgid "Include locked objects in search"
+msgstr "Szukaj także wśród zablokowanych obiektów"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/metal.h:25
-msgid "Iron Man vector objects"
-msgstr "Obiekty wektorowe Iron Man"
+#: ../src/dialogs/find.cpp:753
+#: ../src/ui/dialog/find.cpp:85
+msgid "Clear values"
+msgstr "Wyczyść wszystko"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/motion-blur.h:24
-msgid "Motion Blur"
-msgstr "Motion Blur"
+#: ../src/dialogs/find.cpp:754
+#: ../src/ui/dialog/find.cpp:86
+msgid "Select objects matching all of the fields you filled in"
+msgstr "Zaznacza obiekty spełniające wszystkie wybrane kryteria"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/motion-blur.h:25
-msgid "Hmm, fast vectors"
-msgstr ""
+#: ../src/dialogs/find.cpp:754
+#: ../src/ui/dialog/find.cpp:86
+msgid "_Find"
+msgstr "_Szukaj"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/oil-slick.h:24
-msgid "OilSlick"
-msgstr "OilSlick"
+#: ../src/dialogs/guidelinedialog.cpp:44
+msgid "Unit:"
+msgstr "Jednostki:"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/oil-slick.h:25
-msgid "Ooops!  Slippery!"
-msgstr ""
+#: ../src/dialogs/guidelinedialog.cpp:45
+#: ../src/dialogs/object-attributes.cpp:58
+#: ../src/dialogs/object-attributes.cpp:66
+#: ../src/widgets/toolbox.cpp:1438
+msgid "X:"
+msgstr "X:"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/patterned-glass.h:24
-msgid "PatternedGlass"
-msgstr "PatternedGlass"
+#: ../src/dialogs/guidelinedialog.cpp:46
+#: ../src/dialogs/object-attributes.cpp:59
+#: ../src/dialogs/object-attributes.cpp:67
+#: ../src/widgets/toolbox.cpp:1456
+msgid "Y:"
+msgstr "Y:"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/patterned-glass.h:25
-msgid "Doesn't work, bug"
-msgstr "Nie działa - błąd."
+#: ../src/dialogs/guidelinedialog.cpp:47
+msgid "Angle (degrees):"
+msgstr "Kąt (stopnie):"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/ridged-border.h:24
-msgid "Ridged Border"
-msgstr "Ridged Border"
+#: ../src/dialogs/guidelinedialog.cpp:48
+msgid "Move and/or rotate the guide relative to current settings"
+msgstr "Przesuwa i/lub obraca prowadnicę względem aktualnego położenia"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/ripple.h:24
-msgid "Ripple"
-msgstr "Ripple"
+#: ../src/dialogs/guidelinedialog.cpp:48
+msgid "Rela_tive change"
+msgstr "Prz_esunięcie relatywne"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/ripple.h:25
-msgid "You're 80% water"
-msgstr ""
+#: ../src/dialogs/guidelinedialog.cpp:114
+msgid "Set guide properties"
+msgstr "Określ właściwości prowadnic"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/roughen.h:24
-msgid "Roughen"
-msgstr "Roughen"
+#: ../src/dialogs/guidelinedialog.cpp:153
+msgid "Guideline"
+msgstr "Prowadnica"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/roughen.h:25
-msgid "Like Brad Pitt's stubble"
-msgstr ""
+#: ../src/dialogs/guidelinedialog.cpp:241
+#, c-format
+msgid "Guideline ID: %s"
+msgstr "ID prowadnicy: %s"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/rubber-stamp.h:24
-msgid "RubberStamp"
-msgstr "RubberStamp"
+#: ../src/dialogs/guidelinedialog.cpp:247
+#, c-format
+msgid "Current: %s"
+msgstr "Aktualne ustawienia: %s"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/rubber-stamp.h:25
-msgid "Use this to forge your passport"
-msgstr ""
+#: ../src/dialogs/iconpreview.cpp:139
+#, c-format
+msgid "%d x %d"
+msgstr "%d x %d"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/sepia.h:24
-msgid "Sepia"
-msgstr "Sepia"
+#: ../src/dialogs/iconpreview.cpp:187
+#: ../src/ui/dialog/align-and-distribute.cpp:918
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1371
+#: ../src/widgets/desktop-widget.cpp:1580
+msgid "Selection"
+msgstr "Zaznaczenie"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/sepia.h:25
-msgid "Turn all the colors to be sepia tones"
-msgstr "Zmień wszystkie kolory na sepię"
+#: ../src/dialogs/iconpreview.cpp:189
+msgid "Selection only or whole document"
+msgstr "Tylko zaznaczenie lub cały dokument"
 
-#: ../src/extension/internal/filter/snow.h:32
-msgid "Snow"
-msgstr "Śnnieg"
+#: ../src/dialogs/iconpreview.cpp:197
+msgid "Refresh the icons"
+msgstr "Odśwież ikony"
 
-#: ../src/extension/internal/filter/snow.h:34
-#, fuzzy
-msgid "Drift Size"
-msgstr "Rozmiar punktów"
+#. Create the label for the object id
+#: ../src/dialogs/item-properties.cpp:120
+#: ../src/dialogs/item-properties.cpp:326
+#: ../src/dialogs/item-properties.cpp:419
+#: ../src/dialogs/item-properties.cpp:426
+msgid "_Id"
+msgstr "_Id"
 
-#: ../src/extension/internal/filter/snow.h:40
-msgid "When the weather outside is frightening..."
-msgstr "Gdy na zwenątrz pogoda jest okropna..."
+#: ../src/dialogs/item-properties.cpp:129
+msgid "The id= attribute (only letters, digits, and the characters .-_: allowed)"
+msgstr "Identyfikator, atrybut 'id=' obiektu (dozwolone jedynie litery, cyfry, oraz znaki .-_: )"
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/speckle.h:24
-#, fuzzy
-msgid "Speckle"
-msgstr "Filtrowanie szumów"
+#. Button for setting the object's id, label, title and description.
+#: ../src/dialogs/item-properties.cpp:143
+#: ../src/verbs.cpp:2482
+#: ../src/verbs.cpp:2488
+msgid "_Set"
+msgstr "_Ustaw"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/speckle.h:25
-msgid "You look cute with speckles"
+#. Create the label for the object label
+#: ../src/dialogs/item-properties.cpp:152
+msgid "_Label"
+msgstr "_Etykieta"
+
+#: ../src/dialogs/item-properties.cpp:161
+msgid "A freeform label for the object"
+msgstr "Dowolna etykieta tekstowa obiektu"
+
+#. Create the label for the object title
+#: ../src/dialogs/item-properties.cpp:173
+msgid "_Title"
 msgstr ""
 
-#. ID -- should be unique
-#: ../src/extension/internal/filter/zebra.h:24
-msgid "Zebra Stripes"
-msgstr "Zebra Stripes"
+#. Create the frame for the object description
+#: ../src/dialogs/item-properties.cpp:191
+msgid "_Description"
+msgstr "_Opis"
 
-#. Name in the menus, should have a N_() around it for translation
-#: ../src/extension/internal/filter/zebra.h:25
-msgid "Paint your object with zebra stripes"
-msgstr "Wepełnia obiekt paskami zebry"
+#. Hide
+#: ../src/dialogs/item-properties.cpp:222
+msgid "_Hide"
+msgstr "U_kryty"
 
-#: ../src/extension/internal/gdkpixbuf-input.cpp:114
-#, c-format
-msgid "%s GDK pixbuf Input"
-msgstr "Źródło %s GDK pixbuf"
+#: ../src/dialogs/item-properties.cpp:223
+msgid "Check to make the object invisible"
+msgstr "Zaznaczenie powoduje, że obiekt staje się niewidoczny"
 
-#: ../src/extension/internal/gimpgrad.cpp:274
-msgid "GIMP Gradients"
-msgstr "Gradienty GIMP-a"
+#. Lock
+#. TRANSLATORS: "Lock" is a verb here
+#: ../src/dialogs/item-properties.cpp:232
+msgid "L_ock"
+msgstr "_Zablokowany"
 
-#: ../src/extension/internal/gimpgrad.cpp:279
-msgid "GIMP Gradient (*.ggr)"
-msgstr "Gradient GIMP-a (*.ggr)"
+#: ../src/dialogs/item-properties.cpp:233
+msgid "Check to make the object insensitive (not selectable by mouse)"
+msgstr "Zaznaczenie powoduje, że obiektu nie da się wybrać myszą"
 
-#: ../src/extension/internal/gimpgrad.cpp:280
-msgid "Gradients used in GIMP"
-msgstr "Gradienty używane w GIMP-ie"
+#: ../src/dialogs/item-properties.cpp:309
+#: ../src/dialogs/item-properties.cpp:316
+msgid "Ref"
+msgstr "Ref"
 
-#: ../src/extension/internal/grid.cpp:192 ../src/ui/widget/panel.cpp:122
-msgid "Grid"
-msgstr "Siatka"
+#: ../src/dialogs/item-properties.cpp:378
+msgid "Lock object"
+msgstr "Zablokuj obiekt"
 
-#: ../src/extension/internal/grid.cpp:194
-msgid "Line Width"
-msgstr "Szerokość linii"
+#: ../src/dialogs/item-properties.cpp:378
+msgid "Unlock object"
+msgstr "Odblokuj obiekt"
 
-#: ../src/extension/internal/grid.cpp:195
-msgid "Horizontal Spacing"
-msgstr "Odstępy poziome"
+#: ../src/dialogs/item-properties.cpp:397
+msgid "Hide object"
+msgstr "Ukryj obiekt"
 
-#: ../src/extension/internal/grid.cpp:196
-msgid "Vertical Spacing"
-msgstr "Odstępy pionowe"
+#: ../src/dialogs/item-properties.cpp:397
+msgid "Unhide object"
+msgstr "Wyświetl obiekt"
 
-#: ../src/extension/internal/grid.cpp:202 ../share/extensions/eqtexsvg.inx.h:3
-#: ../share/extensions/funcplot.inx.h:12 ../share/extensions/gears.inx.h:5
-#: ../share/extensions/grid_cartesian.inx.h:15
-#: ../share/extensions/grid_polar.inx.h:18
-#: ../share/extensions/lindenmayer.inx.h:11
-#: ../share/extensions/polyhedron_3d.inx.h:32
-#: ../share/extensions/render_alphabetsoup.inx.h:3
-#: ../share/extensions/render_barcode.inx.h:5
-#: ../share/extensions/rtree.inx.h:4 ../share/extensions/spirograph.inx.h:6
-#: ../share/extensions/triangle.inx.h:10
-msgid "Render"
-msgstr "Renderowanie"
+#: ../src/dialogs/item-properties.cpp:421
+msgid "Id invalid! "
+msgstr "Nieprawidłowy ID!"
 
-#: ../src/extension/internal/grid.cpp:204
-msgid "Draw a path which is a grid"
-msgstr "Tworzy ścieżkę w postaci siatki"
+#: ../src/dialogs/item-properties.cpp:423
+msgid "Id exists! "
+msgstr "Taki ID już istnieje!"
 
-#: ../src/extension/internal/latex-pstricks.cpp:347
-msgid "LaTeX Print"
-msgstr "Drukowanie LaTeX"
+#: ../src/dialogs/item-properties.cpp:430
+msgid "Set object ID"
+msgstr "Określ ID obiektu"
 
-#: ../src/extension/internal/latex-pstricks-out.cpp:106
-msgid "LaTeX Output"
-msgstr "Zapis LaTeX"
+#: ../src/dialogs/item-properties.cpp:445
+msgid "Set object label"
+msgstr "Określ etykietę obiektu"
 
-#: ../src/extension/internal/latex-pstricks-out.cpp:111
-msgid "LaTeX With PSTricks macros (*.tex)"
-msgstr "LaTeX z makrami PSTricks (*.tex)"
+#: ../src/dialogs/item-properties.cpp:453
+msgid "Set object title"
+msgstr "Określ tytuł obiektu"
 
-#: ../src/extension/internal/latex-pstricks-out.cpp:112
-msgid "LaTeX PSTricks File"
-msgstr "Plik LaTeX PSTricks"
+#: ../src/dialogs/item-properties.cpp:463
+msgid "Set object description"
+msgstr "Wprowadź opis obiektu: "
 
-#: ../src/extension/internal/odf.cpp:2424
-msgid "OpenDocument Drawing Output"
-msgstr "Zapis w formacie OpenDocument Drawing"
+#: ../src/dialogs/layer-properties.cpp:47
+msgid "Layer name:"
+msgstr "Nazwa warstwy:"
 
-#: ../src/extension/internal/odf.cpp:2429
-msgid "OpenDocument drawing (*.odg)"
-msgstr "OpenDocument drawing (*.odg)"
+#: ../src/dialogs/layer-properties.cpp:115
+msgid "Add layer"
+msgstr "Dodaj warstwę"
 
-#: ../src/extension/internal/odf.cpp:2430
-msgid "OpenDocument drawing file"
-msgstr "Plik OpenDocument Drawing"
+#: ../src/dialogs/layer-properties.cpp:153
+msgid "Above current"
+msgstr "Ponad aktywną"
 
-#: ../src/extension/internal/pdf-cairo.cpp:127
-#: ../src/extension/internal/ps.cpp:147
-msgid "Print Destination"
-msgstr "Przeznaczenie wydruku"
+#: ../src/dialogs/layer-properties.cpp:157
+msgid "Below current"
+msgstr "Poniżej aktywnej"
 
-#. Print properties frame
-#: ../src/extension/internal/pdf-cairo.cpp:142
-#: ../src/extension/internal/ps.cpp:162
-msgid "Print properties"
-msgstr "Właściwości wydruku"
+#: ../src/dialogs/layer-properties.cpp:160
+msgid "As sublayer of current"
+msgstr "Jako warstwa podrzędna do aktywnej"
 
-#: ../src/extension/internal/pdf-cairo.cpp:149
-msgid "Print using PDF operators"
-msgstr "Drukuj używając operatorów PDF"
+#: ../src/dialogs/layer-properties.cpp:164
+msgid "Position:"
+msgstr "Lokalizacja:"
 
-#: ../src/extension/internal/pdf-cairo.cpp:151
-msgid ""
-"Use PDF vector operators. The resulting image is usually smaller in file "
-"size and can be arbitrarily scaled, but patterns will be lost."
-msgstr ""
-"Zastosuj wektorowe operatory PDF. Plik wynikowy jest zwykle mniejszy i można "
-"skalować zapisany w nim rysunek, ale zostaną utracone desenie"
+#: ../src/dialogs/layer-properties.cpp:182
+msgid "Rename Layer"
+msgstr "Zmiana nazwy warstwy"
 
-#: ../src/extension/internal/pdf-cairo.cpp:156
-#: ../src/extension/internal/ps.cpp:176
-msgid "Print as bitmap"
-msgstr "Drukuj jako bitmapę"
+#: ../src/dialogs/layer-properties.cpp:185
+msgid "_Rename"
+msgstr "_Zmień"
 
-#: ../src/extension/internal/pdf-cairo.cpp:158
-#: ../src/extension/internal/ps.cpp:178
-msgid ""
-"Print everything as bitmap. The resulting image is usually larger in file "
-"size and cannot be arbitrarily scaled without quality loss, but all objects "
-"will be rendered exactly as displayed."
-msgstr ""
-"Drukuj wszystko jako bitmapę. Plik wynikowy jest zwykle większy i nie można "
-"skalować zapisanego w nim rysunku, ale wszystkie obiekty zostaną zobrazowane "
-"dokładnie tak jak są wyświetlane na ekranie"
+#: ../src/dialogs/layer-properties.cpp:195
+msgid "Rename layer"
+msgstr "Zmień nazwę warstwy"
 
-#: ../src/extension/internal/pdf-cairo.cpp:172
-#: ../src/extension/internal/ps.cpp:192
-msgid "Preferred resolution (dots per inch) of bitmap"
-msgstr "Preferowana rozdzielczość bitmapy (w dpi)"
+#. TRANSLATORS: This means "The layer has been renamed"
+#: ../src/dialogs/layer-properties.cpp:197
+msgid "Renamed layer"
+msgstr "Nazwa warstwy została zmieniona"
 
-#: ../src/extension/internal/pdf-cairo.cpp:186
-#: ../src/extension/internal/ps.cpp:206
-msgid "Resolution:"
-msgstr "Rozdzielczość:"
+#: ../src/dialogs/layer-properties.cpp:201
+msgid "Add Layer"
+msgstr "Dodaj warstwę"
 
-#. Print destination frame
-#: ../src/extension/internal/pdf-cairo.cpp:190
-#: ../src/extension/internal/ps.cpp:213
-msgid "Print destination"
-msgstr "Przeznaczenie wydruku"
+#: ../src/dialogs/layer-properties.cpp:203
+msgid "_Add"
+msgstr "_Dodaj"
 
-#: ../src/extension/internal/pdf-cairo.cpp:196
-#: ../src/extension/internal/ps.cpp:219
-msgid ""
-"Printer name (as given by lpstat -p);\n"
-"leave empty to use the system default printer.\n"
-"Use '> filename' to print to file.\n"
-"Use '| prog arg...' to pipe to a program."
-msgstr ""
-"Nazwa drukarki (uzyskana poleceniem lpstat -p);\n"
-"pozostaw puste, aby użyć domyślnej drukarki systemowej.\n"
-"Użyj '> nazwa_pliku', aby wydrukować do pliku.\n"
-"Użyj '| nazwa_programu argumenty...', aby przesłać do programu"
+#: ../src/dialogs/layer-properties.cpp:225
+msgid "New layer created."
+msgstr "Utworzono nową warstwę"
 
-#: ../src/extension/internal/pdf-cairo.cpp:1060
-msgid "PDF Print"
-msgstr "Drukuj PDF"
+#: ../src/dialogs/layers-panel.cpp:498
+#: ../src/widgets/layer-selector.cpp:595
+msgid "Hide layer"
+msgstr "Ukryj warstwę"
 
-#. TRANSLATORS: The following are document crop settings for PDF import
-#. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:56
-msgid "media box"
-msgstr "obszaru MediaBox (strona)"
+#: ../src/dialogs/layers-panel.cpp:498
+#: ../src/widgets/layer-selector.cpp:595
+msgid "Unhide layer"
+msgstr "Wyświetl warstwę"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:57
-msgid "crop box"
-msgstr "obszaru CropBox"
+#: ../src/dialogs/layers-panel.cpp:509
+#: ../src/widgets/layer-selector.cpp:587
+msgid "Lock layer"
+msgstr "Zablokuj warstwę"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:58
-msgid "trim box"
-msgstr "obszaru TrimBox"
+#: ../src/dialogs/layers-panel.cpp:509
+#: ../src/widgets/layer-selector.cpp:587
+msgid "Unlock layer"
+msgstr "Odblokuj warstwę"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:59
-msgid "bleed box"
-msgstr "obszaru BleedBox"
+#: ../src/dialogs/layers-panel.cpp:649
+msgid "Layers"
+msgstr "Warstwy"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:60
-msgid "art box"
-msgstr "obszaru ArtBox"
+#: ../src/dialogs/layers-panel.cpp:658
+msgid "New"
+msgstr "Nowa"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:72
-msgid "Select page:"
-msgstr "Wybierz stronę:"
+#: ../src/dialogs/layers-panel.cpp:669
+msgid "Up"
+msgstr "Do góry"
 
-#. Display total number of pages
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:86
-#, c-format
-msgid "out of %i"
-msgstr "z %i"
+#: ../src/dialogs/layers-panel.cpp:675
+msgid "Dn"
+msgstr "Na dół"
 
-#. Crop settings
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:92
-msgid "Clip to:"
-msgstr "Przytnij do:"
+#: ../src/dialogs/layers-panel.cpp:681
+msgid "Bot"
+msgstr "Na spód"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:104
-msgid "Page settings"
-msgstr "Ustawienia strony:"
+#: ../src/dialogs/layers-panel.cpp:691
+msgid "X"
+msgstr "X"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:106
-msgid "Precision of approximating gradient meshes:"
-msgstr "Precyzja przybliżania siatek gradientu:"
+#: ../src/dialogs/object-attributes.cpp:39
+msgid "Href:"
+msgstr "Adres:"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:107
-msgid ""
-"<b>Note</b>: setting the precision too high may result in a large SVG file "
-"and slow performance."
-msgstr ""
-"<b>Uwaga</b>: Ustawiając bardzo dużą dokładność można spowodować powstanie "
-"dużego pliku SVG i zmniejszyć wydajność"
+#: ../src/dialogs/object-attributes.cpp:40
+msgid "Target:"
+msgstr "Cel:"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:112
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:381
-msgid "rough"
-msgstr "niewygładzony"
+#: ../src/dialogs/object-attributes.cpp:41
+msgid "Type:"
+msgstr "Typ:"
 
-#. Text options
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:116
-msgid "Text handling:"
-msgstr "Obsługa tekstu:"
+#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute
+#. Identifies the type of the related resource with an absolute URI
+#: ../src/dialogs/object-attributes.cpp:44
+msgid "Role:"
+msgstr "Rola:"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:118
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:119
-msgid "Import text as text"
-msgstr "Importuj tekst jako tekst"
+#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute
+#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link.
+#: ../src/dialogs/object-attributes.cpp:47
+msgid "Arcrole:"
+msgstr "Atrybut arcrole:"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:122
-msgid "Embed images"
-msgstr "Osadź obrazy"
+#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute
+#: ../src/dialogs/object-attributes.cpp:49
+msgid "Title:"
+msgstr "Tytuł:"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:125
-msgid "Import settings"
-msgstr "Ustawienia importu"
+#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute
+#: ../src/dialogs/object-attributes.cpp:52
+msgid "Actuate:"
+msgstr "Pobudzenie:"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:242
-msgid "PDF Import Settings"
-msgstr "Ustawienia importu plików PDF"
+#: ../src/dialogs/object-attributes.cpp:57
+msgid "URL:"
+msgstr "URL:"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:382
-msgid "pdfinput|medium"
-msgstr "średni"
+#: ../src/dialogs/object-attributes.cpp:113
+#, c-format
+msgid "%s Properties"
+msgstr "%s Właściwości"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:383
-msgid "fine"
-msgstr "dokładny"
+#: ../src/dialogs/rdf.cpp:182
+msgid "CC Attribution"
+msgstr "CC Attribution"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:384
-msgid "very fine"
-msgstr "bardzo dokładny"
+#: ../src/dialogs/rdf.cpp:187
+msgid "CC Attribution-ShareAlike"
+msgstr "CC Attribution-ShareAlike"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:739
-msgid "PDF Input"
-msgstr "Źródło PDF"
+#: ../src/dialogs/rdf.cpp:192
+msgid "CC Attribution-NoDerivs"
+msgstr "CC Attribution-NoDerivs"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:744
-msgid "Adobe PDF (*.pdf)"
-msgstr "Adobe PDF (*.pdf)"
+#: ../src/dialogs/rdf.cpp:197
+msgid "CC Attribution-NonCommercial"
+msgstr "CC Attribution-NonCommercial"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:745
-msgid "Adobe Portable Document Format"
-msgstr "Format Adobe Portable Document (PDF)"
+#: ../src/dialogs/rdf.cpp:202
+msgid "CC Attribution-NonCommercial-ShareAlike"
+msgstr "CC Attribution-NonCommercial-ShareAlike"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:752
-msgid "AI Input"
-msgstr "Źródło AI"
+#: ../src/dialogs/rdf.cpp:207
+msgid "CC Attribution-NonCommercial-NoDerivs"
+msgstr "CC Attribution-NonCommercial-NoDerivs"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:757
-msgid "Adobe Illustrator 9.0 and above (*.ai)"
-msgstr "Adobe Illustrator 9.0 lub nowszy (*.ai)"
+#: ../src/dialogs/rdf.cpp:212
+msgid "Public Domain"
+msgstr "Domena publiczna"
 
-#: ../src/extension/internal/pdfinput/pdf-input.cpp:758
-msgid "Open files saved in Adobe Illustrator 9.0 and newer versions"
-msgstr ""
-"Otwórz pliki zapisane w programie Adobe Illustrator w wersji 9.0 lub nowszej"
+#: ../src/dialogs/rdf.cpp:217
+msgid "FreeArt"
+msgstr "FreeArt"
 
-#: ../src/extension/internal/pov-out.cpp:666
-msgid "PovRay Output"
-msgstr "Zapis PovRay"
+#: ../src/dialogs/rdf.cpp:222
+msgid "Open Font License"
+msgstr "Licencja Open Font"
 
-#: ../src/extension/internal/pov-out.cpp:671
-msgid "PovRay (*.pov) (export splines)"
-msgstr "PovRay (*.pov) (eksport krzywych)"
+#: ../src/dialogs/rdf.cpp:239
+msgid "Title"
+msgstr "Nazwa"
 
-#: ../src/extension/internal/pov-out.cpp:672
-msgid "PovRay Raytracer File"
-msgstr "Plik programu PovRay"
+#: ../src/dialogs/rdf.cpp:240
+msgid "Name by which this document is formally known."
+msgstr "Oficjalna nazwa dokumentu"
 
-#: ../src/extension/internal/ps.cpp:147
-msgid "Print Configuration"
-msgstr "Ustawienia wydruku"
+#: ../src/dialogs/rdf.cpp:242
+msgid "Date"
+msgstr "Data"
 
-#: ../src/extension/internal/ps.cpp:169
-msgid "Print using PostScript operators"
-msgstr "Drukuj używając poleceń PostScriptu"
+#: ../src/dialogs/rdf.cpp:243
+msgid "Date associated with the creation of this document (YYYY-MM-DD)."
+msgstr "Data utworzenia skojarzona z tym dokumentem w formacie (RRRR-MM-DD)"
 
-#: ../src/extension/internal/ps.cpp:171
-msgid ""
-"Use PostScript vector operators. The resulting image is usually smaller in "
-"file size and can be arbitrarily scaled, but alpha transparency and patterns "
-"will be lost."
-msgstr ""
-"Zastosuj wektorowe polecenia PostScriptu. Plik wynikowy jest zwykle mniejszy "
-"i można skalować zapisany w nim rysunek, ale zostanie utracona "
-"przezroczystość i desenie"
+#: ../src/dialogs/rdf.cpp:245
+msgid "Format"
+msgstr "Format"
 
-#: ../src/extension/internal/ps.cpp:1753
-msgid "Postscript Print"
-msgstr "Druk Postscript"
+#: ../src/dialogs/rdf.cpp:246
+msgid "The physical or digital manifestation of this document (MIME type)."
+msgstr "Fizyczny lub cyfrowy wyróżnik tego dokumentu (typ MIME)"
 
-#: ../src/extension/internal/ps-out.cpp:82
-msgid "Postscript Output"
-msgstr "Zapis Postscript"
+#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch");
+#: ../src/dialogs/rdf.cpp:248
+#: ../src/extension/internal/bitmap/addNoise.cpp:46
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2199
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2278
+msgid "Type"
+msgstr "Typ:"
 
-#: ../src/extension/internal/ps-out.cpp:89
-msgid "PostScript (*.ps)"
-msgstr "PostScript (*.ps)"
+#: ../src/dialogs/rdf.cpp:249
+msgid "Type of document (DCMI Type)."
+msgstr "Typ dokumentu (typ DCMI)"
 
-#: ../src/extension/internal/svg.cpp:55
-msgid "SVG Input"
-msgstr "Źródło SVG"
+#: ../src/dialogs/rdf.cpp:252
+msgid "Creator"
+msgstr "Autor"
 
-#: ../src/extension/internal/svg.cpp:60
-msgid "Scalable Vector Graphic (*.svg)"
-msgstr "Scalable Vector Graphic (*.svg)"
+#: ../src/dialogs/rdf.cpp:253
+msgid "Name of entity primarily responsible for making the content of this document."
+msgstr "Nazwa jednostki odpowiedzialnej za zawartość tego dokumentu"
 
-#: ../src/extension/internal/svg.cpp:61
-msgid "Inkscape native file format and W3C standard"
-msgstr "Natywny format Inkscape i standard W3C"
+#: ../src/dialogs/rdf.cpp:255
+msgid "Rights"
+msgstr "Własność"
 
-#: ../src/extension/internal/svg.cpp:69
-msgid "SVG Output Inkscape"
-msgstr "Zapis w formacie SVG Inkscape"
+#: ../src/dialogs/rdf.cpp:256
+msgid "Name of entity with rights to the Intellectual Property of this document."
+msgstr "Nazwa jednostki posiadającej prawa autorskie do tego dokumentu"
 
-#: ../src/extension/internal/svg.cpp:74
-msgid "Inkscape SVG (*.svg)"
-msgstr "Inkscape SVG (*.svg)"
+#: ../src/dialogs/rdf.cpp:258
+msgid "Publisher"
+msgstr "Wydawca"
 
-#: ../src/extension/internal/svg.cpp:75
-msgid "SVG format with Inkscape extensions"
-msgstr "Format SVG z rozszerzeniami Inkscape"
+#: ../src/dialogs/rdf.cpp:259
+msgid "Name of entity responsible for making this document available."
+msgstr "Nazwa jednostki udostępniającej ten dokument"
 
-#: ../src/extension/internal/svg.cpp:83
-#: ../src/ui/dialog/inkscape-preferences.cpp:942
-msgid "SVG Output"
-msgstr "Zapis w formacie SVG"
+#: ../src/dialogs/rdf.cpp:262
+msgid "Identifier"
+msgstr "Identyfikator"
 
-#: ../src/extension/internal/svg.cpp:88
-msgid "Plain SVG (*.svg)"
-msgstr "Czysty format SVG (*.svg)"
+#: ../src/dialogs/rdf.cpp:263
+msgid "Unique URI to reference this document."
+msgstr "Unikalny identyfikator (URI) opisujący dokument"
 
-#: ../src/extension/internal/svg.cpp:89
-msgid "Scalable Vector Graphics format as defined by the W3C"
-msgstr "Format Scalable Vector Graphics zgodny z definicją W3C"
+#: ../src/dialogs/rdf.cpp:265
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1395
+msgid "Source"
+msgstr "Źródło"
 
-#: ../src/extension/internal/svgz.cpp:47
-#: ../share/extensions/svgz_input.inx.h:3
-msgid "SVGZ Input"
-msgstr "Źródło SVGZ"
+#: ../src/dialogs/rdf.cpp:266
+msgid "Unique URI to reference the source of this document."
+msgstr "Unikalny identyfikator (URI) dla źródła dokumentu"
 
-#: ../src/extension/internal/svgz.cpp:53 ../src/extension/internal/svgz.cpp:67
-#: ../share/extensions/svgz_input.inx.h:1
-#: ../share/extensions/svgz_output.inx.h:1
-msgid "Compressed Inkscape SVG (*.svgz)"
-msgstr "Skompresowany Inkscape SVG (*.svgz)"
+#: ../src/dialogs/rdf.cpp:268
+msgid "Relation"
+msgstr "Powiązanie"
 
-#: ../src/extension/internal/svgz.cpp:54
-msgid "SVG file format compressed with GZip"
-msgstr "Format SVG skompresowany programem GZip"
+#: ../src/dialogs/rdf.cpp:269
+msgid "Unique URI to a related document."
+msgstr "Identyfikator (URI) dla powiązanego dokumentu"
 
-#: ../src/extension/internal/svgz.cpp:62 ../src/extension/internal/svgz.cpp:76
-#: ../share/extensions/svgz_output.inx.h:3
-msgid "SVGZ Output"
-msgstr "Zapis SVGZ"
+#: ../src/dialogs/rdf.cpp:271
+msgid "Language"
+msgstr "Język"
 
-#: ../src/extension/internal/svgz.cpp:68
-#: ../share/extensions/svgz_input.inx.h:2
-#: ../share/extensions/svgz_output.inx.h:2
-msgid "Inkscape's native file format compressed with GZip"
-msgstr "Natywny format Inkscape skompresowany programem GZip"
+#: ../src/dialogs/rdf.cpp:272
+msgid "Two-letter language tag with optional subtags for the language of this document.  (e.g. 'en-GB')"
+msgstr "Dwuliterowy wyróżnik języka z opcjonalnym dodatkowym wyróżnikiem języka dla tego dokumentu. (np. pl-PL)"
 
-#: ../src/extension/internal/svgz.cpp:81
-msgid "Compressed plain SVG (*.svgz)"
-msgstr "Skompresowany czysty SVG (*.svgz)"
+#: ../src/dialogs/rdf.cpp:274
+msgid "Keywords"
+msgstr "Słowa kluczowe"
 
-#: ../src/extension/internal/svgz.cpp:82
-msgid "Scalable Vector Graphics format compressed with GZip"
-msgstr "Format Scalable Vector Graphics skompresowany programem GZip"
+#: ../src/dialogs/rdf.cpp:275
+msgid "The topic of this document as comma-separated key words, phrases, or classifications."
+msgstr "Temat tego dokumentu w postaci oddzielonych przecinkami słów kluczowych, wyrażeń lub klasyfikacji"
 
-#: ../src/extension/internal/win32.cpp:491
-msgid "Windows 32-bit Print"
-msgstr "Windows 32-bit Print"
+#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content.
+#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/
+#: ../src/dialogs/rdf.cpp:279
+msgid "Coverage"
+msgstr "Tematyka"
 
-#: ../src/extension/internal/wpg-input.cpp:102
-msgid "WPG Input"
-msgstr "Źródło WPG"
+#: ../src/dialogs/rdf.cpp:280
+msgid "Extent or scope of this document."
+msgstr "Tematyka lub zakres tego dokumentu"
 
-#: ../src/extension/internal/wpg-input.cpp:107
-msgid "WordPerfect Graphics (*.wpg)"
-msgstr "WordPerfect Graphics (*.wpg)"
+#: ../src/dialogs/rdf.cpp:283
+#: ../src/ui/widget/page-sizer.cpp:218
+msgid "Description"
+msgstr "Opis"
 
-#: ../src/extension/internal/wpg-input.cpp:108
-msgid "Vector graphics format used by Corel WordPerfect"
-msgstr "Format grafiki wektorowej używany przez Corel WordPerfect"
+#: ../src/dialogs/rdf.cpp:284
+msgid "A short account of the content of this document."
+msgstr "Krótkie podsumowanie zawartości dokumentu"
 
-#: ../src/extension/prefdialog.cpp:237
-msgid "Live Preview"
-msgstr "Podgląd"
+#. FIXME: need to handle 1 agent per line of input
+#: ../src/dialogs/rdf.cpp:288
+msgid "Contributors"
+msgstr "Współautorzy"
 
-#: ../src/extension/prefdialog.cpp:237
-msgid "Controls whether the effect settings are rendered live on canvas"
-msgstr ""
-"Kontroluje w obszarze roboczym, czy ustawienia efektów są renderowane na "
-"bieżąco"
+#: ../src/dialogs/rdf.cpp:289
+msgid "Names of entities responsible for making contributions to the content of this document."
+msgstr "Nazwy jednostek biorących udział w tworzeniu zawartości tego dokumentu"
 
-#. We can't call sp_ui_error_dialog because we may be
-#. running from the console, in which case calling sp_ui
-#. routines will cause a segfault.  See bug 1000350 - bryce
-#. sp_ui_error_dialog(_("Format autodetect failed. The file is being opened as SVG."));
-#: ../src/extension/system.cpp:103
-msgid "Format autodetect failed. The file is being opened as SVG."
-msgstr ""
-"Nie udało się automatycznie rozpoznać formatu. Plik jest otwierany jako SVG"
+#. TRANSLATORS: URL to a page that defines the license for the document
+#: ../src/dialogs/rdf.cpp:293
+msgid "URI"
+msgstr "URI"
 
-#. TRANSLATORS: default.svg is localizable - this is the name of the default document
-#. template. This way you can localize the default pagesize, translate the name of
-#. the default layer, etc. If you wish to localize this file, please create a
-#. localized share/templates/default.xx.svg file, where xx is your language code.
-#: ../src/file.cpp:139
-msgid "default.svg"
-msgstr "default.svg"
+#. TRANSLATORS: this is where you put a URL to a page that defines the license
+#: ../src/dialogs/rdf.cpp:295
+msgid "URI to this document's license's namespace definition."
+msgstr "Adres URI do strony zawierającej definicję licencji tego dokumentu"
 
-#: ../src/file.cpp:225 ../src/file.cpp:993
-#, c-format
-msgid "Failed to load the requested file %s"
-msgstr "Nie udało się wczytać żądanego pliku %s"
+#. TRANSLATORS: fragment of XML representing the license of the document
+#: ../src/dialogs/rdf.cpp:299
+msgid "Fragment"
+msgstr "Fragment"
 
-#: ../src/file.cpp:250
-msgid "Document not saved yet.  Cannot revert."
-msgstr "Dokument nie został jeszcze zapisany. Nie można go przywrócić."
+#: ../src/dialogs/rdf.cpp:300
+msgid "XML fragment for the RDF 'License' section."
+msgstr "Fragment XML zawierający sekcję licencji RDF"
 
-#: ../src/file.cpp:256
-#, c-format
-msgid "Changes will be lost!  Are you sure you want to reload document %s?"
-msgstr "Zmiany zostaną utracone! Czy na pewno wczytać ponownie dokument %s?"
+#. TRANSLATORS: "Set" is a verb here
+#: ../src/dialogs/sp-attribute-widget.cpp:166
+#: ../src/dialogs/sp-attribute-widget.cpp:773
+#: ../src/dialogs/xml-tree.cpp:533
+msgid "Set attribute"
+msgstr "Określ atrybut"
 
-#: ../src/file.cpp:285
-msgid "Document reverted."
-msgstr "Dokument został przywrócony"
+#: ../src/dialogs/stroke-style.cpp:292
+#: ../src/dialogs/stroke-style.cpp:351
+msgid "Set stroke color"
+msgstr "Ustaw kolor konturu"
 
-#: ../src/file.cpp:287
-msgid "Document not reverted."
-msgstr "Dokumentu nie przywrócono"
+#: ../src/dialogs/stroke-style.cpp:342
+#: ../src/ui/widget/selected-style.cpp:255
+#: ../src/ui/widget/selected-style.cpp:484
+msgid "Remove stroke"
+msgstr "Usuń kontur"
 
-#: ../src/file.cpp:437
-msgid "Select file to open"
-msgstr "Wybierz plik do otworzenia"
+#: ../src/dialogs/stroke-style.cpp:403
+msgid "Set gradient on stroke"
+msgstr "Ustaw gradient konturu"
 
-#: ../src/file.cpp:524
-msgid "Vacuum &lt;defs&gt;"
-msgstr "Wyczyść &lt;defs&gt;"
+#: ../src/dialogs/stroke-style.cpp:447
+msgid "Set pattern on stroke"
+msgstr "Ustaw deseń konturu"
 
-#: ../src/file.cpp:529
-#, c-format
-msgid "Removed <b>%i</b> unused definition in &lt;defs&gt;."
-msgid_plural "Removed <b>%i</b> unused definitions in &lt;defs&gt;."
-msgstr[0] "Usunięto <b>%i</b> nieużywaną definicję w &lt;defs&gt;"
-msgstr[1] "Usunięto <b>%i</b> nieużywane definicje w &lt;defs&gt;"
-msgstr[2] "Usunięto <b>%i</b> nieużywanych definicji w &lt;defs&gt;"
+#: ../src/dialogs/stroke-style.cpp:468
+#: ../src/ui/widget/selected-style.cpp:193
+#: ../src/ui/widget/selected-style.cpp:251
+#: ../src/ui/widget/selected-style.cpp:509
+#: ../src/ui/widget/style-swatch.cpp:335
+msgid "Unset stroke"
+msgstr "Nie ustawiaj konturu"
 
-#: ../src/file.cpp:534
-msgid "No unused definitions in &lt;defs&gt;."
-msgstr "Nie ma nieużywanych definicji w &lt;defs&gt;"
+#: ../src/dialogs/stroke-style.cpp:826
+#: ../src/widgets/gradient-vector.cpp:264
+#: ../src/widgets/paint-selector.cpp:885
+msgid "No document selected"
+msgstr "Nie wybrano dokumentu"
 
-#: ../src/file.cpp:563
-#, c-format
-msgid ""
-"No Inkscape extension found to save document (%s).  This may have been "
-"caused by an unknown filename extension."
-msgstr ""
-"Nie znaleziono rozszerzenia programu Inkscape obsługującego zapis dokumentu "
-"(%s). Może być to spowodowane nieznanym rozszerzeniem pliku."
+#: ../src/dialogs/stroke-style.cpp:910
+msgid "Set markers"
+msgstr "Ustaw zakończenia"
 
-#: ../src/file.cpp:564 ../src/file.cpp:572
-msgid "Document not saved."
-msgstr "Dokument nie został zapisany"
+#. 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/dialogs/stroke-style.cpp:1121
+msgid "Join:"
+msgstr "Połączenie:"
 
-#: ../src/file.cpp:571
-#, c-format
-msgid "File %s could not be saved."
-msgstr "Plik %s nie mógł zostać zapisany"
+#. 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/dialogs/stroke-style.cpp:1133
+msgid "Miter join"
+msgstr "Ostre"
 
-#: ../src/file.cpp:582
-msgid "Document saved."
-msgstr "Dokument został zapisany"
+#. 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/dialogs/stroke-style.cpp:1141
+msgid "Round join"
+msgstr "Zaokrąglone"
 
-#: ../src/file.cpp:721 ../src/file.cpp:1118 ../src/file.cpp:1235
-#, c-format
-msgid "drawing%s"
-msgstr "Rysunek%s"
+#. 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/dialogs/stroke-style.cpp:1149
+msgid "Bevel join"
+msgstr "Ścięte"
 
-#: ../src/file.cpp:727
-#, c-format
-msgid "drawing-%d%s"
-msgstr "Rysunek-%d%s"
+#. Miterlimit
+#. TRANSLATORS: Miter limit: only for "miter join", this limits the length
+#. of the sharp "spike" when the lines connect at too sharp an angle.
+#. When two line segments meet at a sharp angle, a miter join results in a
+#. spike that extends well beyond the connection point. The purpose of the
+#. miter limit is to cut off such spikes (i.e. convert them into bevels)
+#. when they become too long.
+#: ../src/dialogs/stroke-style.cpp:1160
+msgid "Miter limit:"
+msgstr "Ograniczenie połączeń ostrych:"
 
-#: ../src/file.cpp:746
-msgid "Select file to save a copy to"
-msgstr "Wybierz plik do zapisania kopii do"
+#: ../src/dialogs/stroke-style.cpp:1168
+msgid "Maximum length of the miter (in units of stroke width)"
+msgstr "Maksymalna długość połączeń ostrych (w jednostkach szerokości konturu)"
 
-#: ../src/file.cpp:748
-msgid "Select file to save to"
-msgstr "Wybierz plik do zapisania w"
+#. Cap type
+#. TRANSLATORS: cap type specifies the shape for the ends of lines
+#: ../src/dialogs/stroke-style.cpp:1180
+msgid "Cap:"
+msgstr "Zakończenie:"
 
-#: ../src/file.cpp:819
-msgid "No changes need to be saved."
-msgstr "Brak zmian do zapisania"
+#. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point
+#. of the line; the ends of the line are square
+#: ../src/dialogs/stroke-style.cpp:1191
+msgid "Butt cap"
+msgstr "Ostre"
 
-#: ../src/file.cpp:836
-msgid "Saving document..."
-msgstr "Zapisywanie dokumentu..."
+#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the
+#. line; the ends of the line are rounded
+#: ../src/dialogs/stroke-style.cpp:1198
+msgid "Round cap"
+msgstr "Zaokrąglone"
 
-#: ../src/file.cpp:990
-msgid "Import"
-msgstr "Importuj"
+#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the
+#. line; the ends of the line are square
+#: ../src/dialogs/stroke-style.cpp:1205
+msgid "Square cap"
+msgstr "Kwadratowe"
 
-#: ../src/file.cpp:1022
-msgid "Select file to import"
-msgstr "Wybierz plik do importu"
+#. Dash
+#: ../src/dialogs/stroke-style.cpp:1211
+msgid "Dashes:"
+msgstr "Styl kresek:"
 
-#: ../src/file.cpp:1140 ../src/file.cpp:1250
-msgid "Select file to export to"
-msgstr "Wybierz plik do eksportu do"
+#. 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/dialogs/stroke-style.cpp:1228
+msgid "Start Markers:"
+msgstr "Znaczniki początkowe:"
 
-#: ../src/file.cpp:1277
-msgid "Error saving a temporary copy"
-msgstr "Błąd podczas zapisu kopi tymczasowej"
+#: ../src/dialogs/stroke-style.cpp:1238
+msgid "Mid Markers:"
+msgstr "Znaczniki środkowe:"
 
-#: ../src/file.cpp:1296
-msgid "Open Clip Art Login"
-msgstr "Login do galerii klipartów"
+#: ../src/dialogs/stroke-style.cpp:1248
+msgid "End Markers:"
+msgstr "Znaczniki końcowe:"
 
-#: ../src/file.cpp:1317
-msgid ""
-"Error exporting the document. Verify if the server name, username and "
-"password are correct, if the server has support for webdav and verify if you "
-"didn't forget to choose a license."
-msgstr ""
-"Błąd podczas eksportu dokumentu. Proszę sprawdzić poprawność nazwy serwera, "
-"nazwy użytkownika i hasła. Jeśli serwer obsługuje protokół WebDAV proszę "
-"sprawdzić, czy wybrano licencję."
+#: ../src/dialogs/stroke-style.cpp:1572
+#: ../src/dialogs/stroke-style.cpp:1668
+msgid "Set stroke style"
+msgstr "Określ styl konturu"
 
-#: ../src/file.cpp:1338
-msgid "Document exported..."
-msgstr "Dokument wyeksportowano..."
+#: ../src/dialogs/swatches.cpp:248
+#, c-format
+msgid "Color: <b>%s</b>; <b>Click</b> to set fill, <b>Shift+click</b> to set stroke"
+msgstr "Kolor: <b>%s</b>; <b>Kliknij</b>, aby określić parametry wypełnienia, <b>Shift+kliknięcie</b>, aby określić parametry konturu"
 
-#: ../src/file.cpp:1366 ../src/verbs.cpp:2182
-msgid "Import From Open Clip Art Library"
-msgstr "Importuj z galerii klipartów"
+#. TRANSLATORS: An item in context menu on a colour in the swatches
+#: ../src/dialogs/swatches.cpp:298
+msgid "Set fill"
+msgstr "Ustaw wypełnienie"
 
-#: ../src/filter-enums.cpp:20
-msgid "Blend"
-msgstr "Mieszanie"
+#. TRANSLATORS: An item in context menu on a colour in the swatches
+#: ../src/dialogs/swatches.cpp:306
+msgid "Set stroke"
+msgstr "Ustaw kontur"
 
-#: ../src/filter-enums.cpp:21
-msgid "Color Matrix"
-msgstr "Macierz koloru"
+#: ../src/dialogs/swatches.cpp:525
+msgid "Change color definition"
+msgstr "Zmień definicję koloru"
 
-#: ../src/filter-enums.cpp:22
-msgid "Component Transfer"
-msgstr "Transfer komponentu"
+#: ../src/dialogs/swatches.cpp:676
+msgid "Set fill color from swatch"
+msgstr "Określ kolor wypełnienia wybierając próbkę z palety"
 
-#: ../src/filter-enums.cpp:23
-msgid "Composite"
-msgstr "Składanie"
+#: ../src/dialogs/swatches.cpp:676
+msgid "Set stroke color from swatch"
+msgstr "Określ kolor konturu wybierając próbkę z palety"
 
-#: ../src/filter-enums.cpp:24
-msgid "Convolve Matrix"
-msgstr "Macierz splotu"
+#: ../src/dialogs/swatches.cpp:996
+#, c-format
+msgid "Palettes directory (%s) is unavailable."
+msgstr "Katalog palet (%s) jest niedostępny"
 
-#: ../src/filter-enums.cpp:25
-msgid "Diffuse Lighting"
-msgstr "Oświetlenie rozproszone"
+#: ../src/dialogs/text-edit.cpp:200
+msgid "Font"
+msgstr "Czcionka"
 
-#: ../src/filter-enums.cpp:26
-msgid "Displacement Map"
-msgstr "Mapa przemieszczenia"
+#: ../src/dialogs/text-edit.cpp:223
+msgid "Layout"
+msgstr "Rozmieszczenie"
 
-#: ../src/filter-enums.cpp:27
-msgid "Flood"
-msgstr "Wypełnienie"
+#: ../src/dialogs/text-edit.cpp:237
+msgid "Align lines left"
+msgstr "Wyrównanie do lewej"
 
-#: ../src/filter-enums.cpp:29 ../src/selection-describer.cpp:53
-msgid "Image"
-msgstr "Obrazek"
+#. TRANSLATORS: `Center' here is a verb.
+#: ../src/dialogs/text-edit.cpp:252
+msgid "Center lines"
+msgstr "Wyśrodkowanie"
 
-#: ../src/filter-enums.cpp:30
-msgid "Merge"
-msgstr "Scalanie"
+#: ../src/dialogs/text-edit.cpp:266
+msgid "Align lines right"
+msgstr "Wyrównanie do prawej"
 
-#: ../src/filter-enums.cpp:31
-msgid "Morphology"
-msgstr "Morfologia"
+#: ../src/dialogs/text-edit.cpp:280
+msgid "Justify lines"
+msgstr "Wyjustowanie"
 
-#: ../src/filter-enums.cpp:33
-msgid "Specular Lighting"
-msgstr "Oświetlenie odbite"
+#: ../src/dialogs/text-edit.cpp:302
+#: ../src/widgets/toolbox.cpp:6314
+msgid "Horizontal text"
+msgstr "Poziomy układ tekstu"
 
-#: ../src/filter-enums.cpp:34
-msgid "Tile"
-msgstr "Kafelkowanie"
+#: ../src/dialogs/text-edit.cpp:316
+#: ../src/widgets/toolbox.cpp:6326
+msgid "Vertical text"
+msgstr "Pionowy układ tekstu"
 
-#: ../src/filter-enums.cpp:35 ../src/filter-enums.cpp:118
-msgid "Turbulence"
-msgstr "Turbulencja"
+#: ../src/dialogs/text-edit.cpp:331
+msgid "Line spacing:"
+msgstr "Odstęp między wierszami:"
 
-#: ../src/filter-enums.cpp:40
-msgid "Source Graphic"
-msgstr "Źródło grafiki"
+#: ../src/dialogs/text-edit.cpp:424
+msgid "Set as default"
+msgstr "Zapisz jako domyślne"
 
-#: ../src/filter-enums.cpp:41
-msgid "Source Alpha"
-msgstr "Źródło krycia"
+#: ../src/dialogs/text-edit.cpp:665
+#: ../src/text-context.cpp:1508
+msgid "Set text style"
+msgstr "Określ styl tekstu"
 
-#: ../src/filter-enums.cpp:42
-msgid "Background Image"
-msgstr "Obrazek tła"
+#: ../src/dialogs/tiledialog.cpp:349
+msgid "Arrange in a grid"
+msgstr "Rozłóż na siatce"
 
-#: ../src/filter-enums.cpp:43
-msgid "Background Alpha"
-msgstr "Krycie tła"
+#: ../src/dialogs/tiledialog.cpp:653
+msgid "Rows:"
+msgstr "Wiersze:"
 
-#: ../src/filter-enums.cpp:44
-msgid "Fill Paint"
-msgstr "Wypełnienie"
+#: ../src/dialogs/tiledialog.cpp:661
+msgid "Number of rows"
+msgstr "Liczba wierszy"
 
-#: ../src/filter-enums.cpp:45
-msgid "Stroke Paint"
-msgstr "Kontur"
+#: ../src/dialogs/tiledialog.cpp:665
+msgid "Equal height"
+msgstr "Jednakowa wysokość"
 
-#. TRANSLATORS: This is a context string, only put the word "Normal" in your translation
-#: ../src/filter-enums.cpp:52
-msgid "filterBlendMode|Normal"
-msgstr "Normalny"
+#: ../src/dialogs/tiledialog.cpp:675
+msgid "If not set, each row has the height of the tallest object in it"
+msgstr "Jeśli wartość nie jest określona każdy wiersz ma wysokość najwyższego znajdującego się w nim obiektu"
 
-#: ../src/filter-enums.cpp:53
-msgid "Multiply"
-msgstr "Zwielokrotnij"
+#. #### Radio buttons to control vertical alignment ####
+#. #### Radio buttons to control horizontal alignment ####
+#: ../src/dialogs/tiledialog.cpp:681
+#: ../src/dialogs/tiledialog.cpp:751
+msgid "Align:"
+msgstr "Wyrównanie:"
 
-#: ../src/filter-enums.cpp:54
-msgid "Screen"
-msgstr "Przesiej"
+#. #### Number of columns ####
+#: ../src/dialogs/tiledialog.cpp:723
+msgid "Columns:"
+msgstr "Kolumny:"
 
-#: ../src/filter-enums.cpp:55
-msgid "Darken"
-msgstr "Przyciemnij"
+#: ../src/dialogs/tiledialog.cpp:731
+msgid "Number of columns"
+msgstr "Liczba kolumn"
 
-#: ../src/filter-enums.cpp:56
-msgid "Lighten"
-msgstr "Rozjaśnij"
+#: ../src/dialogs/tiledialog.cpp:735
+msgid "Equal width"
+msgstr "Jednakowa szerokość"
 
-#: ../src/filter-enums.cpp:62
-msgid "Matrix"
-msgstr "Macierz"
+#: ../src/dialogs/tiledialog.cpp:744
+msgid "If not set, each column has the width of the widest object in it"
+msgstr "Jeśli wartość nie jest określona, każda kolumna ma szerokość najszerszego znajdującego się w niej obiektu"
 
-#: ../src/filter-enums.cpp:63
-msgid "Saturate"
-msgstr "Nasycenie"
+#. #### Radio buttons to control spacing manually or to fit selection bbox ####
+#: ../src/dialogs/tiledialog.cpp:790
+msgid "Fit into selection box"
+msgstr "Dopasuj do ramki zaznaczenia"
 
-#: ../src/filter-enums.cpp:64
-msgid "Hue Rotate"
-msgstr "Zmiana odcienia"
+#: ../src/dialogs/tiledialog.cpp:796
+msgid "Set spacing:"
+msgstr "Ustawienia odstępów:"
 
-#: ../src/filter-enums.cpp:65
-msgid "Luminance to Alpha"
-msgstr "Luminancja dla krycia"
+#: ../src/dialogs/tiledialog.cpp:816
+msgid "Vertical spacing between rows (px units)"
+msgstr "Odstępy pionowe pomiędzy wierszami (w px)"
 
-#. File
-#: ../src/filter-enums.cpp:71 ../src/verbs.cpp:2159
-msgid "Default"
-msgstr "Domyślny"
+#: ../src/dialogs/tiledialog.cpp:841
+msgid "Horizontal spacing between columns (px units)"
+msgstr "Odstępy poziome pomiędzy kolumnami (w px)"
 
-#: ../src/filter-enums.cpp:72
-msgid "Over"
-msgstr "Nad"
+#: ../src/dialogs/tiledialog.cpp:865
+msgid "Arrange selected objects"
+msgstr "Rozmieść zaznaczone obiekty"
 
-#: ../src/filter-enums.cpp:73
-msgid "In"
-msgstr "W"
+#: ../src/dialogs/xml-tree.cpp:174
+msgid "<b>Click</b> to select nodes, <b>drag</b> to rearrange."
+msgstr "<b>Kliknięcie</b> wybiera węzeł, <b>przeciągnięcie</b> zmienia jego pozycję"
 
-#: ../src/filter-enums.cpp:74
-msgid "Out"
-msgstr "Poza"
+#: ../src/dialogs/xml-tree.cpp:185
+msgid "<b>Click</b> attribute to edit."
+msgstr "<b>Kliknięcie</b> rozpoczyna edycję atrybutu"
 
-#: ../src/filter-enums.cpp:75
-msgid "Atop"
-msgstr "Na górze"
+#: ../src/dialogs/xml-tree.cpp:189
+#, c-format
+msgid "Attribute <b>%s</b> selected. Press <b>Ctrl+Enter</b> when done editing to commit changes."
+msgstr "Wybrano atrybut <b>%s</b>. Naciśnięcie <b>Ctrl + Enter</b> po zakończeniu zapamiętuje zmiany."
 
-#: ../src/filter-enums.cpp:76
-msgid "XOR"
-msgstr "XOR"
+#: ../src/dialogs/xml-tree.cpp:284
+msgid "Drag to reorder nodes"
+msgstr "Przeciągnij, aby zmienić położenie węzłów"
 
-#: ../src/filter-enums.cpp:77
-msgid "Arithmetic"
-msgstr "Arytmetyczny"
+#: ../src/dialogs/xml-tree.cpp:304
+msgid "New element node"
+msgstr "Nowy węzeł elementu"
 
-#: ../src/filter-enums.cpp:83
-msgid "Identity"
-msgstr "Tożsamość"
+#: ../src/dialogs/xml-tree.cpp:326
+msgid "New text node"
+msgstr "Nowy węzeł tekstu"
 
-#: ../src/filter-enums.cpp:84
-msgid "Table"
-msgstr "Tabela"
+#: ../src/dialogs/xml-tree.cpp:347
+#: ../src/dialogs/xml-tree.cpp:1425
+#: ../src/nodepath.cpp:2166
+msgid "Duplicate node"
+msgstr "Powiel węzeł"
 
-#: ../src/filter-enums.cpp:85
-msgid "Discrete"
-msgstr "Dyskretny"
+#: ../src/dialogs/xml-tree.cpp:368
+#: ../src/dialogs/xml-tree.cpp:1442
+#: ../src/nodepath.cpp:3413
+#: ../src/widgets/toolbox.cpp:1276
+msgid "Delete node"
+msgstr "Usuń węzeł"
 
-#: ../src/filter-enums.cpp:86
-msgid "Linear"
-msgstr "Liniowy"
+#: ../src/dialogs/xml-tree.cpp:384
+#: ../src/dialogs/xml-tree.cpp:1587
+msgid "Unindent node"
+msgstr "Usuń wcięcie"
 
-#: ../src/filter-enums.cpp:87
-msgid "Gamma"
-msgstr "Gamma"
+#: ../src/dialogs/xml-tree.cpp:399
+#: ../src/dialogs/xml-tree.cpp:1566
+msgid "Indent node"
+msgstr "Utwórz wcięcie"
 
-#: ../src/filter-enums.cpp:93 ../src/selection-chemistry.cpp:260
-#: ../src/widgets/gradient-selector.cpp:134
-msgid "Duplicate"
-msgstr "Powiel"
+#: ../src/dialogs/xml-tree.cpp:411
+#: ../src/dialogs/xml-tree.cpp:1519
+msgid "Raise node"
+msgstr "Przenieś do góry"
 
-#: ../src/filter-enums.cpp:94
-msgid "Wrap"
-msgstr "Zawijaj"
+#: ../src/dialogs/xml-tree.cpp:423
+#: ../src/dialogs/xml-tree.cpp:1536
+msgid "Lower node"
+msgstr "Przenieś w dół"
 
-#: ../src/filter-enums.cpp:101 ../src/flood-context.cpp:271
-#: ../src/widgets/sp-color-icc-selector.cpp:233
-#: ../src/widgets/sp-color-scales.cpp:398
-#: ../src/widgets/sp-color-scales.cpp:399
-msgid "Red"
-msgstr "Czerwony"
+#: ../src/dialogs/xml-tree.cpp:468
+#: ../src/dialogs/xml-tree.cpp:1460
+msgid "Delete attribute"
+msgstr "Usuń atrybut"
 
-#: ../src/filter-enums.cpp:102 ../src/flood-context.cpp:272
-#: ../src/widgets/sp-color-icc-selector.cpp:233
-#: ../src/widgets/sp-color-scales.cpp:401
-#: ../src/widgets/sp-color-scales.cpp:402
-msgid "Green"
-msgstr "Zielony"
+#. TRANSLATORS: "Attribute" is a noun here
+#: ../src/dialogs/xml-tree.cpp:513
+msgid "Attribute name"
+msgstr "Nazwa atrybutu"
 
-#: ../src/filter-enums.cpp:103 ../src/flood-context.cpp:273
-#: ../src/widgets/sp-color-icc-selector.cpp:233
-#: ../src/widgets/sp-color-scales.cpp:404
-#: ../src/widgets/sp-color-scales.cpp:405
-msgid "Blue"
-msgstr "Niebieski"
+#. TRANSLATORS: "Set" is a verb here
+#: ../src/dialogs/xml-tree.cpp:535
+msgid "Set"
+msgstr "Ustaw"
 
-#: ../src/filter-enums.cpp:104 ../src/flood-context.cpp:277
-msgid "Alpha"
-msgstr "Krycie"
+#. TRANSLATORS: "Attribute" is a noun here
+#: ../src/dialogs/xml-tree.cpp:558
+msgid "Attribute value"
+msgstr "Wartość atrybutu"
 
-#: ../src/filter-enums.cpp:110
-msgid "Erode"
-msgstr "Erozja"
+#: ../src/dialogs/xml-tree.cpp:891
+msgid "Drag XML subtree"
+msgstr "Przeciągnij gałąź XML"
 
-#: ../src/filter-enums.cpp:111
-msgid "Dilate"
-msgstr "Rozszerzanie"
+#: ../src/dialogs/xml-tree.cpp:1327
+msgid "New element node..."
+msgstr "Nowy węzeł elementu..."
 
-#: ../src/filter-enums.cpp:117
-msgid "Fractal Noise"
-msgstr "Szum fraktalny"
+#: ../src/dialogs/xml-tree.cpp:1349
+#: ../src/ui/dialog/whiteboard-connect.cpp:116
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:102
+msgid "Cancel"
+msgstr "Anuluj"
 
-#: ../src/filter-enums.cpp:124
-msgid "Distant Light"
-msgstr "Odległe światło"
+#: ../src/dialogs/xml-tree.cpp:1357
+msgid "Create"
+msgstr "Utwórz"
 
-#: ../src/filter-enums.cpp:125
-msgid "Point Light"
-msgstr "Światło punktowe"
+#: ../src/dialogs/xml-tree.cpp:1391
+msgid "Create new element node"
+msgstr "Utwórz nowy węzeł elementu"
 
-#: ../src/filter-enums.cpp:126
-msgid "Spot Light"
-msgstr "Reflektor"
+#: ../src/dialogs/xml-tree.cpp:1407
+msgid "Create new text node"
+msgstr "Utwórz nowy węzeł tekstu"
 
-#: ../src/flood-context.cpp:270
-msgid "Visible Colors"
-msgstr "Widoczne kolory"
+#: ../src/dialogs/xml-tree.cpp:1489
+msgid "Change attribute"
+msgstr "Zmień atrybut"
 
-#: ../src/flood-context.cpp:276 ../src/widgets/sp-color-icc-selector.cpp:236
-#: ../src/widgets/sp-color-scales.cpp:430
-#: ../src/widgets/sp-color-scales.cpp:431 ../src/widgets/toolbox.cpp:3390
-#: ../share/extensions/color_randomize.inx.h:3
-msgid "Lightness"
-msgstr "Jasność"
+#: ../src/display/canvas-axonomgrid.cpp:392
+#: ../src/display/canvas-grid.cpp:657
+msgid "Grid _units:"
+msgstr "Jednostki _siatki:"
 
-#: ../src/flood-context.cpp:289 ../src/ui/dialog/inkscape-preferences.cpp:968
-msgid "Small"
-msgstr "Mały"
+#: ../src/display/canvas-axonomgrid.cpp:394
+#: ../src/display/canvas-grid.cpp:659
+#: ../src/ui/dialog/inkscape-preferences.cpp:898
+#: ../src/ui/dialog/inkscape-preferences.cpp:919
+msgid "X coordinate of grid origin"
+msgstr "Współrzędna X początku siatki"
 
-#: ../src/flood-context.cpp:290 ../src/ui/dialog/inkscape-preferences.cpp:968
-msgid "Medium"
-msgstr "Średni"
+#: ../src/display/canvas-axonomgrid.cpp:394
+#: ../src/display/canvas-grid.cpp:659
+msgid "_Origin X:"
+msgstr "_Początek X:"
 
-#: ../src/flood-context.cpp:291
-msgid "Large"
-msgstr "Duży"
+#: ../src/display/canvas-axonomgrid.cpp:396
+#: ../src/display/canvas-grid.cpp:661
+msgid "O_rigin Y:"
+msgstr "P_oczątek Y:"
 
-#: ../src/flood-context.cpp:491
-msgid "<b>Too much inset</b>, the result is empty."
-msgstr "<b>Za bardzo osadzone</b>, brak rezultatu"
+#: ../src/display/canvas-axonomgrid.cpp:396
+#: ../src/display/canvas-grid.cpp:661
+#: ../src/ui/dialog/inkscape-preferences.cpp:899
+#: ../src/ui/dialog/inkscape-preferences.cpp:920
+msgid "Y coordinate of grid origin"
+msgstr "Współrzędna Y początku siatki"
 
-#: ../src/flood-context.cpp:531
-#, c-format
-msgid ""
-"Area filled, path with <b>%d</b> node created and unioned with selection."
-msgid_plural ""
-"Area filled, path with <b>%d</b> nodes created and unioned with selection."
-msgstr[0] ""
-"Obszar został wypełniony, ścieżka z <b>%d</b> węzłem utworzona i połączona z "
-"zaznaczeniem"
-msgstr[1] ""
-"Obszar został wypełniony, ścieżka z <b>%d</b> węzłami utworzona i połączona "
-"z zaznaczeniem"
-msgstr[2] ""
-"Obszar został wypełniony, ścieżka z <b>%d</b> węzłami utworzona i połączona "
-"z zaznaczeniem"
+#: ../src/display/canvas-axonomgrid.cpp:398
+#: ../src/ui/dialog/inkscape-preferences.cpp:922
+msgid "Base length of z-axis"
+msgstr "Bazowa długość osi Z"
 
-#: ../src/flood-context.cpp:535
-#, c-format
-msgid "Area filled, path with <b>%d</b> node created."
-msgid_plural "Area filled, path with <b>%d</b> nodes created."
-msgstr[0] "Obszar został wypełniony. Utworzono ścieżkę z <b>%d</b> węzłem"
-msgstr[1] "Obszar został wypełniony. Utworzono ścieżkę z <b>%d</b> węzłami"
-msgstr[2] "Obszar został wypełniony. Utworzono ścieżkę z <b>%d</b> węzłami"
+#: ../src/display/canvas-axonomgrid.cpp:398
+#: ../src/display/canvas-grid.cpp:665
+msgid "Spacing _Y:"
+msgstr "Odstępy _Y:"
 
-#: ../src/flood-context.cpp:807 ../src/flood-context.cpp:1121
-msgid "<b>Area is not bounded</b>, cannot fill."
-msgstr "<b>Obszar nie jest zamknięty</b>, nie można wypełnić"
+#: ../src/display/canvas-axonomgrid.cpp:400
+#: ../src/ui/dialog/inkscape-preferences.cpp:925
+#: ../src/widgets/toolbox.cpp:2943
+msgid "Angle X:"
+msgstr "Kąt X:"
 
-#: ../src/flood-context.cpp:1126
-msgid ""
-"<b>Only the visible part of the bounded area was filled.</b> If you want to "
-"fill all of the area, undo, zoom out, and fill again."
-msgstr ""
-"<b>Została wypełniona tylko widoczna część zaznaczonego obszaru</b>. Jeśli "
-"chcesz wypełnić cały obszar, cofnij operację, zmniejsz powiększenie i "
-"spróbuj ponownie."
+#: ../src/display/canvas-axonomgrid.cpp:400
+#: ../src/ui/dialog/inkscape-preferences.cpp:925
+msgid "Angle of x-axis"
+msgstr "Kąt osi X"
 
-#: ../src/flood-context.cpp:1144 ../src/flood-context.cpp:1304
-msgid "Fill bounded area"
-msgstr "Wypełnij obszar zamknięty"
+#: ../src/display/canvas-axonomgrid.cpp:402
+#: ../src/ui/dialog/inkscape-preferences.cpp:926
+#: ../src/widgets/toolbox.cpp:3022
+msgid "Angle Z:"
+msgstr "Kąt Z:"
 
-#: ../src/flood-context.cpp:1164
-msgid "Set style on object"
-msgstr "Określ styl obiektu"
+#: ../src/display/canvas-axonomgrid.cpp:402
+#: ../src/ui/dialog/inkscape-preferences.cpp:926
+msgid "Angle of z-axis"
+msgstr "Kąt osi Z"
 
-#: ../src/flood-context.cpp:1223
-msgid "<b>Draw over</b> areas to add to fill, hold <b>Alt</b> for touch fill"
-msgstr ""
-"<b>Rysuj ponad</b> obszarami, aby dodać do wypełnienia, przytrzymaj <b>Alt</"
-"b> dla wypełnienia"
+#: ../src/display/canvas-axonomgrid.cpp:406
+#: ../src/display/canvas-grid.cpp:669
+msgid "Color of grid lines"
+msgstr "Kolor linii siatki"
 
-#: ../src/gradient-context.cpp:132 ../src/gradient-drag.cpp:74
-msgid "Linear gradient <b>start</b>"
-msgstr "<b>Początek</b> gradientu liniowego"
+#: ../src/display/canvas-axonomgrid.cpp:406
+#: ../src/display/canvas-grid.cpp:669
+msgid "Grid line _color:"
+msgstr "_Kolor linii siatki:"
 
-#. POINT_LG_BEGIN
-#: ../src/gradient-context.cpp:133 ../src/gradient-drag.cpp:75
-msgid "Linear gradient <b>end</b>"
-msgstr "<b>Koniec</b> gradientu liniowego"
+#: ../src/display/canvas-axonomgrid.cpp:406
+#: ../src/display/canvas-grid.cpp:669
+msgid "Grid line color"
+msgstr "Kolor linii siatki"
 
-#: ../src/gradient-context.cpp:134 ../src/gradient-drag.cpp:76
-msgid "Linear gradient <b>mid stop</b>"
-msgstr "<b>Punkt kontrolny</b> gradientu liniowego"
+#: ../src/display/canvas-axonomgrid.cpp:411
+#: ../src/display/canvas-grid.cpp:674
+msgid "Ma_jor grid line color:"
+msgstr "Kolor _linii głównych:"
 
-#: ../src/gradient-context.cpp:135 ../src/gradient-drag.cpp:77
-msgid "Radial gradient <b>center</b>"
-msgstr "<b>Środek</b> gradientu radialnego"
+#: ../src/display/canvas-axonomgrid.cpp:411
+#: ../src/display/canvas-grid.cpp:674
+msgid "Major grid line color"
+msgstr "Kolor linii głównych"
 
-#: ../src/gradient-context.cpp:136 ../src/gradient-context.cpp:137
-#: ../src/gradient-drag.cpp:78 ../src/gradient-drag.cpp:79
-msgid "Radial gradient <b>radius</b>"
-msgstr "<b>Promień</b> gradientu radialnego"
+#: ../src/display/canvas-axonomgrid.cpp:412
+#: ../src/display/canvas-grid.cpp:675
+msgid "Color of the major (highlighted) grid lines"
+msgstr "Kolor głównych (podświetlonych) linii siatki"
 
-#: ../src/gradient-context.cpp:138 ../src/gradient-drag.cpp:80
-msgid "Radial gradient <b>focus</b>"
-msgstr "<b>Ognisko</b> gradientu radialnego"
+#: ../src/display/canvas-axonomgrid.cpp:416
+#: ../src/display/canvas-grid.cpp:679
+msgid "_Major grid line every:"
+msgstr "_Rozstaw linii głównych:"
 
-#. POINT_RG_FOCUS
-#: ../src/gradient-context.cpp:139 ../src/gradient-context.cpp:140
-#: ../src/gradient-drag.cpp:81 ../src/gradient-drag.cpp:82
-msgid "Radial gradient <b>mid stop</b>"
-msgstr "<b>Środkowy punkt kontrolny</b> gradientu radialnego"
+#: ../src/display/canvas-axonomgrid.cpp:416
+#: ../src/display/canvas-grid.cpp:679
+msgid "lines"
+msgstr "linii"
 
-#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message
-#: ../src/gradient-context.cpp:162
-#, c-format
-msgid "%s selected"
-msgstr "%s wybrany"
+#: ../src/display/canvas-grid.cpp:40
+msgid "Rectangular grid"
+msgstr "Siatka prostokątna"
 
-#. TRANSLATORS: Mind the space in front. This is part of a compound message
-#: ../src/gradient-context.cpp:164 ../src/gradient-context.cpp:173
-#, c-format
-msgid " out of %d gradient handle"
-msgid_plural " out of %d gradient handles"
-msgstr[0] " z %d uchwytu gradientu"
-msgstr[1] " z %d uchwytów gradientu"
-msgstr[2] " z %d uchwytów gradientu"
+#: ../src/display/canvas-grid.cpp:41
+msgid "Axonometric grid"
+msgstr "Siatka aksonometryczna"
 
-#. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message
-#: ../src/gradient-context.cpp:165 ../src/gradient-context.cpp:174
-#: ../src/gradient-context.cpp:181
-#, c-format
-msgid " on %d selected object"
-msgid_plural " on %d selected objects"
-msgstr[0] " na %d zaznaczonym obiekcie"
-msgstr[1] " na %d zaznaczonych obiektach"
-msgstr[2] " na %d zaznaczonych obiektach"
+#: ../src/display/canvas-grid.cpp:259
+msgid "Create new grid"
+msgstr "Utwórz nową siatkę"
 
-#. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count)
-#: ../src/gradient-context.cpp:171
-#, c-format
-msgid ""
-"One handle merging %d stop (drag with <b>Shift</b> to separate) selected"
-msgid_plural ""
-"One handle merging %d stops (drag with <b>Shift</b> to separate) selected"
-msgstr[0] ""
-"Zaznaczono jeden uchwyt łączący %d punkt (wykonaj ciągnięcie z <b>Shift</b>, "
-"aby wydzielić)"
-msgstr[1] ""
-"Zaznaczono jeden uchwyt łączący %d punkty (wykonaj ciągnięcie z <b>Shift</"
-"b>, aby wydzielić)"
-msgstr[2] ""
-"Zaznaczono jeden uchwyt łączący %d punktów (wykonaj ciągnięcie z <b>Shift</"
-"b>, aby wydzielić)"
+#: ../src/display/canvas-grid.cpp:325
+msgid "_Enabled"
+msgstr "_Włączone"
 
-#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count)
-#: ../src/gradient-context.cpp:179
-#, c-format
-msgid "<b>%d</b> gradient handle selected out of %d"
-msgid_plural "<b>%d</b> gradient handles selected out of %d"
-msgstr[0] "Zaznaczono <b>%d</b> z %d uchwytu gradientu"
-msgstr[1] "Zaznaczono <b>%d</b> z %d uchwytów gradientu"
-msgstr[2] "Zaznaczono <b>%d</b> z %d uchwytów gradientu"
+#: ../src/display/canvas-grid.cpp:326
+msgid "Determines whether to snap to this grid or not. Can be 'on' for invisible grids."
+msgstr "Włącza/wyłącza przyciąganie do tej siatki. Może być włączone także dla niewidocznej siatki."
 
-#. TRANSLATORS: The plural refers to number of selected objects
-#: ../src/gradient-context.cpp:186
-#, c-format
-msgid "<b>No</b> gradient handles selected out of %d on %d selected object"
-msgid_plural ""
-"<b>No</b> gradient handles selected out of %d on %d selected objects"
-msgstr[0] ""
-"<b>Nie ma</b> zaznaczonych uchwytów gradientu z %d istniejących na %d "
-"zaznaczonym obiekcie"
-msgstr[1] ""
-"<b>Nie ma</b> zaznaczonych uchwytów gradientu z %d istniejących na %d "
-"zaznaczonych obiektach"
-msgstr[2] ""
-"<b>Nie ma</b> zaznaczonych uchwytów gradientu z %d istniejących na %d "
-"zaznaczonych obiektach"
-
-#: ../src/gradient-context.cpp:385 ../src/gradient-context.cpp:478
-#: ../src/widgets/gradient-vector.cpp:735
-msgid "Add gradient stop"
-msgstr "Dodaj punkt kontrolny"
+#: ../src/display/canvas-grid.cpp:329
+msgid "_Visible"
+msgstr "_Widoczna"
 
-#: ../src/gradient-context.cpp:453
-msgid "Simplify gradient"
-msgstr "Uprość gradient"
+#: ../src/display/canvas-grid.cpp:330
+msgid "Determines whether the grid is displayed or not. Objects are still snapped to invisible grids."
+msgstr "Włącza/wyłącza wyświetlanie siatki. Gdy siatka jest niewidoczna, obiekty są cały czas przyciągane."
 
-#: ../src/gradient-context.cpp:529
-msgid "Create default gradient"
-msgstr "Utwórz domyślny gradient"
+#: ../src/display/canvas-grid.cpp:663
+#: ../src/ui/dialog/inkscape-preferences.cpp:902
+msgid "Distance between vertical grid lines"
+msgstr "Odległość pomiędzy pionowymi liniami siatki"
 
-#: ../src/gradient-context.cpp:584
-msgid "<b>Draw around</b> handles to select them"
-msgstr "<b>Wykonaj ciągnięcie</b> wokół uchwytów, aby je zaznaczyć"
+#: ../src/display/canvas-grid.cpp:663
+msgid "Spacing _X:"
+msgstr "Odstępy _X:"
 
-#: ../src/gradient-context.cpp:682
-msgid "<b>Ctrl</b>: snap gradient angle"
-msgstr "<b>Ctrl</b>: przyciąganie kąta gradientu"
+#: ../src/display/canvas-grid.cpp:665
+#: ../src/ui/dialog/inkscape-preferences.cpp:903
+msgid "Distance between horizontal grid lines"
+msgstr "Odległość pomiędzy poziomymi liniami siatki"
 
-#: ../src/gradient-context.cpp:683
-msgid "<b>Shift</b>: draw gradient around the starting point"
-msgstr "<b>Shift</b>: rysowanie gradientu wokół punktu początkowego"
+#: ../src/display/canvas-grid.cpp:698
+msgid "_Show dots instead of lines"
+msgstr "_Wyświetlaj kropki zamiast linii"
 
-#: ../src/gradient-context.cpp:803
-msgid "Invert gradient"
-msgstr "Odwróć gradient"
+#: ../src/display/canvas-grid.cpp:699
+msgid "If set, displays dots at gridpoints instead of gridlines"
+msgstr "Siatka będzie wyświetlana za pomocą kropek"
 
-#: ../src/gradient-context.cpp:919
+#: ../src/document.cpp:416
 #, c-format
-msgid "<b>Gradient</b> for %d object; with <b>Ctrl</b> to snap angle"
-msgid_plural "<b>Gradient</b> for %d objects; with <b>Ctrl</b> to snap angle"
-msgstr[0] "<b>Gradient</b> dla %d obiektu. Z <b>Ctrl</b> przyciąganie do kąta"
-msgstr[1] "<b>Gradient</b> dla %d obiektów. Z <b>Ctrl</b> przyciąganie do kąta"
-msgstr[2] "<b>Gradient</b> dla %d obiektów. Z <b>Ctrl</b> przyciąganie do kąta"
+msgid "New document %d"
+msgstr "Nowy dokument %d"
 
-#: ../src/gradient-context.cpp:923
-msgid "Select <b>objects</b> on which to create gradient."
-msgstr "Zaznacz <b>obiekty</b>, dla których utworzyć gradient"
+#: ../src/document.cpp:448
+#, c-format
+msgid "Memory document %d"
+msgstr "Dokument w pamięci %d"
 
-#: ../src/gradient-drag.cpp:573
-msgid "Merge gradient handles"
-msgstr "Połącz uchwyty gradientu"
+#: ../src/document.cpp:603
+#, c-format
+msgid "Unnamed document %d"
+msgstr "Dokument bez nazwy %d"
 
-#: ../src/gradient-drag.cpp:895
-msgid "Move gradient handle"
-msgstr "Przesuń uchwyt gradientu"
+#. We hit green anchor, closing Green-Blue-Red
+#: ../src/draw-context.cpp:569
+msgid "Path is closed."
+msgstr "Ścieżka jest zamknięta"
 
-#: ../src/gradient-drag.cpp:948 ../src/widgets/gradient-vector.cpp:767
-msgid "Delete gradient stop"
-msgstr "Usuń punkt kontrolny"
+#. We hit bot start and end of single curve, closing paths
+#: ../src/draw-context.cpp:584
+msgid "Closing path."
+msgstr "Zamknięcie ścieżki"
 
-#: ../src/gradient-drag.cpp:1112
-#, c-format
-msgid ""
-"%s %d for: %s%s; drag with <b>Ctrl</b> to snap offset; click with <b>Ctrl"
-"+Alt</b> to delete stop"
-msgstr ""
-"%s %d dla: %s%s. Ciągnij z <b>Ctrl</b>, aby przyciągnąć przesunięcie. "
-"<b>Ctrl + Alt</b> + kliknięcie, aby usunąć punkt kontrolny."
+#: ../src/draw-context.cpp:694
+msgid "Draw path"
+msgstr "Rysuj ścieżkę"
 
-#: ../src/gradient-drag.cpp:1116 ../src/gradient-drag.cpp:1123
-msgid " (stroke)"
-msgstr " (kontur)"
+#: ../src/draw-context.cpp:851
+msgid "Creating single dot"
+msgstr "Tworzenie pojedynczego punktu"
 
-#: ../src/gradient-drag.cpp:1120
+#: ../src/draw-context.cpp:852
+msgid "Create single dot"
+msgstr "Utwórz pojedynczy punkt"
+
+#. alpha of color under cursor, to show in the statusbar
+#. locale-sensitive printf is OK, since this goes to the UI, not into SVG
+#: ../src/dropper-context.cpp:288
 #, c-format
-msgid ""
-"%s for: %s%s; drag with <b>Ctrl</b> to snap angle, with <b>Ctrl+Alt</b> to "
-"preserve angle, with <b>Ctrl+Shift</b> to scale around center"
-msgstr ""
-"%s dla: %s%s. Ciągnięcie z <b>Ctrl</b> - przyciągnie do kąta, z <b>Ctrl + "
-"Alt</b> - zachowanie kąta, z <b>Ctrl + Shift</b> skalowanie od środka."
+msgid " alpha %.3g"
+msgstr " przezroczystość %.3g"
 
-#: ../src/gradient-drag.cpp:1128
-msgid ""
-"Radial gradient <b>center</b> and <b>focus</b>; drag with <b>Shift</b> to "
-"separate focus"
-msgstr ""
-"<b>Środek</b> i <b>ognisko</b> gradientu radialnego. Aby oddzielić ognisko "
-"wykonaj ciągnięcie z klawiszem <b>Shift</b>"
+#: ../src/dropper-context.cpp:290
+#, c-format
+msgid " under cursor"
+msgstr " - kolor wskazany przez próbnik"
 
-#: ../src/gradient-drag.cpp:1131
+#. where the color is picked, to show in the statusbar
+#: ../src/dropper-context.cpp:290
 #, c-format
-msgid ""
-"Gradient point shared by <b>%d</b> gradient; drag with <b>Shift</b> to "
-"separate"
-msgid_plural ""
-"Gradient point shared by <b>%d</b> gradients; drag with <b>Shift</b> to "
-"separate"
-msgstr[0] ""
-"Punkt kontrolny gradientu wspólny dla <b>%d</b> gradientu. Wykonaj "
-"ciągnięcie z <b>Shift</b>, aby je rozdzielić"
-msgstr[1] ""
-"Punkt kontrolny gradientu wspólny dla <b>%d</b> gradientów. Wykonaj "
-"ciągnięcie z <b>Shift</b>, aby je rozdzielić"
-msgstr[2] ""
-"Punkt kontrolny gradientu wspólny dla <b>%d</b> gradientów. Wykonaj "
-"ciągnięcie z <b>Shift</b>, aby je rozdzielić"
+msgid ", averaged with radius %d"
+msgstr ", wartość uśredniona w promieniu %d"
 
-#: ../src/gradient-drag.cpp:1806
-msgid "Move gradient handle(s)"
-msgstr "Przesuń uchwyt(y) gradientu"
+#: ../src/dropper-context.cpp:292
+#: ../src/tools-switch.cpp:232
+msgid "<b>Click</b> to set fill, <b>Shift+click</b> to set stroke; <b>drag</b> to average color in area; with <b>Alt</b> to pick inverse color; <b>Ctrl+C</b> to copy the color under mouse to clipboard"
+msgstr "<b>Kliknij</b>, aby ustawić kolor wypełnienia, <b>Shift + kliknięcie</b> - kolor konturu; <b>wykonaj ciągnięcie</b>, aby pobrać uśredniony kolor z obszaru, z <b>Alt</b>, aby pobrać odwrotność koloru; <b>Ctrl + C</b>, aby skopiować wskazany próbnikiem kolor do schowka"
 
-#: ../src/gradient-drag.cpp:1842
-msgid "Move gradient mid stop(s)"
-msgstr "Przesuń środkowy punkt(y) kontrolny(e)"
+#. message, to show in the statusbar
+#: ../src/dropper-context.cpp:292
+msgid "<b>Release mouse</b> to set color."
+msgstr "<b>Zwolnij przycisk myszy</b>, aby ustawić kolor"
 
-#: ../src/gradient-drag.cpp:2130
-msgid "Delete gradient stop(s)"
-msgstr "Usuń punkt(y) kontrolny(e)"
+#: ../src/dropper-context.cpp:325
+msgid "Set picked color"
+msgstr "Ustaw pobrany kolor"
 
-#: ../src/helper/units.cpp:37
-msgid "Unit"
-msgstr "Jednostka"
+#: ../src/dyna-draw-context.cpp:619
+msgid "<b>Guide path selected</b>; start drawing along the guide with <b>Ctrl</b>"
+msgstr "<b>Wybrano ścieżkę prowadnicy</b>. Rozpocznij rysowanie wzdłuż prowadnicy używając <b>Ctrl</b>"
 
-#. Add the units menu.
-#: ../src/helper/units.cpp:37 ../src/widgets/select-toolbar.cpp:490
-#: ../src/widgets/toolbox.cpp:1280 ../src/widgets/toolbox.cpp:2457
-#: ../src/widgets/toolbox.cpp:5758
-msgid "Units"
-msgstr "Jednostki"
+#: ../src/dyna-draw-context.cpp:621
+msgid "<b>Select a guide path</b> to track with <b>Ctrl</b>"
+msgstr "<b>Wybierz ścieżkę prowadnicy</b> do śledzenia z <b>Ctrl</b>"
 
-#: ../src/helper/units.cpp:38
-msgid "Point"
-msgstr "Punkt"
+#: ../src/dyna-draw-context.cpp:726
+msgid "<b>Tracking</b> a guide path"
+msgstr "<b>Śledzi</b> ścieżkę prowadzącą"
 
-#: ../src/helper/units.cpp:38 ../src/ui/widget/selected-style.cpp:287
-msgid "pt"
-msgstr "pkt"
+#: ../src/dyna-draw-context.cpp:726
+msgid "Tracking: <b>connection to guide path lost!</b>"
+msgstr "Śledzenie: <b>Połączenie ze ścieżką prowadnicy zostało utracone!</b>"
 
-#: ../src/helper/units.cpp:38 ../share/extensions/perfectboundcover.inx.h:16
-msgid "Points"
-msgstr "Punkty"
+#: ../src/dyna-draw-context.cpp:729
+msgid "<b>Drawing</b> a calligraphic stroke"
+msgstr "<b>Rysuje</b> linie kaligraficzne"
 
-#: ../src/helper/units.cpp:38
-msgid "Pt"
-msgstr "Pkt"
+#: ../src/dyna-draw-context.cpp:1008
+msgid "Draw calligraphic stroke"
+msgstr "Rysuj linie kaligraficzne"
 
-#: ../src/helper/units.cpp:39
-msgid "Pica"
-msgstr "Pika"
+#: ../src/eraser-context.cpp:527
+#, fuzzy
+msgid "<b>Drawing</b> an eraser stroke"
+msgstr "<b>Rysuje</b> linie kaligraficzne"
 
-#: ../src/helper/units.cpp:39
-msgid "pc"
-msgstr "pc"
+#: ../src/eraser-context.cpp:828
+#, fuzzy
+msgid "Draw eraser stroke"
+msgstr "Rysuj linie kaligraficzne"
 
-#: ../src/helper/units.cpp:39
-msgid "Picas"
-msgstr "Piki"
+#: ../src/event-context.cpp:608
+msgid "<b>Space+mouse drag</b> to pan canvas"
+msgstr "<b>Klawisz spacji + ciągnięcie myszą</b> przemieszcza obszar roboczy"
 
-#: ../src/helper/units.cpp:39
-msgid "Pc"
-msgstr "Pc"
+#: ../src/event-log.cpp:37
+msgid "[Unchanged]"
+msgstr "[Nie zmieniono]"
 
-#: ../src/helper/units.cpp:40
-msgid "Pixel"
-msgstr "Piksel"
+#. Edit
+#: ../src/event-log.cpp:264
+#: ../src/event-log.cpp:267
+#: ../src/verbs.cpp:2260
+msgid "_Undo"
+msgstr "Wy_cofaj"
 
-#: ../src/helper/units.cpp:40 ../src/ui/dialog/inkscape-preferences.cpp:198
-#: ../src/ui/dialog/inkscape-preferences.cpp:202
-#: ../src/ui/dialog/inkscape-preferences.cpp:205
-#: ../src/ui/widget/selected-style.cpp:283
-msgid "px"
-msgstr "px"
+#: ../src/event-log.cpp:274
+#: ../src/event-log.cpp:278
+#: ../src/verbs.cpp:2262
+msgid "_Redo"
+msgstr "P_rzywróć"
 
-#: ../src/helper/units.cpp:40
-msgid "Pixels"
-msgstr "Piksele"
+#: ../src/extension/dependency.cpp:261
+msgid "Dependency:"
+msgstr "Zależności:"
 
-#: ../src/helper/units.cpp:40
-msgid "Px"
-msgstr "Px"
+#: ../src/extension/dependency.cpp:262
+msgid "  type: "
+msgstr "  typ: "
 
-#. You can add new elements from this point forward
-#: ../src/helper/units.cpp:42 ../share/extensions/straightseg.inx.h:3
-msgid "Percent"
-msgstr "Procent"
+#: ../src/extension/dependency.cpp:263
+msgid "  location: "
+msgstr "  położenie: "
 
-#: ../src/helper/units.cpp:42 ../src/ui/dialog/inkscape-preferences.cpp:218
-msgid "%"
-msgstr "%"
+#: ../src/extension/dependency.cpp:264
+msgid "  string: "
+msgstr "  ciąg znaków: "
 
-#: ../src/helper/units.cpp:42
-msgid "Percents"
-msgstr "Procenty"
+#: ../src/extension/dependency.cpp:267
+msgid "  description: "
+msgstr "  opis: "
 
-#: ../src/helper/units.cpp:43
-msgid "Millimeter"
-msgstr "Milimetr"
+#: ../src/extension/effect.cpp:35
+msgid " (No preferences)"
+msgstr "(Brak ustawień)"
 
-#: ../src/helper/units.cpp:43 ../src/ui/widget/selected-style.cpp:291
-msgid "mm"
-msgstr "mm"
+#. This is some filler text, needs to change before relase
+#: ../src/extension/error-file.cpp:53
+msgid ""
+"<span weight=\"bold\" size=\"larger\">One or more extensions failed to load</span>\n"
+"\n"
+"The failed extensions have been skipped.  Inkscape will continue to run normally but those extensions will be unavailable.  For details to troubleshoot this problem, please refer to the error log located at: "
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Nie udało się wczytać jednego lub więcej rozszerzeń</span>\n"
+"\n"
+"Niewłaściwe rozszerzenia zostały pominięte. Inkscape zostanie uruchomiony normalnie, ale rozszerzenia te nie będą dostępne. Szczegóły pomocne w rozwiązaniu tego problemu zostały zapisane w dzienniku błędów zlokalizowanym w: "
 
-#: ../src/helper/units.cpp:43
-msgid "Millimeters"
-msgstr "Milimetry"
+#. This is some filler text, needs to change before relase
+#: ../src/extension/error-file.cpp:62
+msgid "Show dialog on startup"
+msgstr "Wyświetlaj to okno podczas uruchamiania programu"
 
-#: ../src/helper/units.cpp:44
-msgid "Centimeter"
-msgstr "Centymetr"
+#: ../src/extension/execution-env.cpp:134
+#, c-format
+msgid "'%s' working, please wait..."
+msgstr "\"%s\" pracuje. Proszę czekać..."
 
-#: ../src/helper/units.cpp:44
-msgid "cm"
-msgstr "cm"
+#. static int i = 0;
+#. std::cout << "Checking module[" << i++ << "]: " << name << std::endl;
+#: ../src/extension/extension.cpp:252
+msgid "  This is caused by an improper .inx file for this extension.  An improper .inx file could have been caused by a faulty installation of Inkscape."
+msgstr " Spowodowane jest to niewłaściwym plikiem .inx dla tego rozszerzenia. Przyczyną może być niewłaściwa instalacja Inkscape."
 
-#: ../src/helper/units.cpp:44
-msgid "Centimeters"
-msgstr "Centymetry"
+#: ../src/extension/extension.cpp:255
+msgid "an ID was not defined for it."
+msgstr "nie zdefiniowano dla niego identyfikatora ID."
 
-#: ../src/helper/units.cpp:45
-msgid "Meter"
-msgstr "Metr"
+#: ../src/extension/extension.cpp:259
+msgid "there was no name defined for it."
+msgstr "nie zdefiniowano dla niego nazwy."
 
-#: ../src/helper/units.cpp:45
-msgid "m"
-msgstr "m"
+#: ../src/extension/extension.cpp:263
+msgid "the XML description of it got lost."
+msgstr "jego opis w formacie XML został utracony."
 
-#: ../src/helper/units.cpp:45
-msgid "Meters"
-msgstr "Metry"
+#: ../src/extension/extension.cpp:267
+msgid "no implementation was defined for the extension."
+msgstr "nie zdefiniowano obsługi dla tego rozszerzenia."
 
-#. no svg_unit
-#: ../src/helper/units.cpp:46
-msgid "Inch"
-msgstr "Cal"
+#. std::cout << "Failed: " << *(_deps[i]) << std::endl;
+#: ../src/extension/extension.cpp:274
+msgid "a dependency was not met."
+msgstr "nie zostały spełnione zależności."
 
-#: ../src/helper/units.cpp:46
-msgid "in"
-msgstr "in"
+#: ../src/extension/extension.cpp:294
+msgid "\" failed to load because "
+msgstr "\" nie zostało wczytane, ponieważ "
 
-#: ../src/helper/units.cpp:46
-msgid "Inches"
-msgstr "Cale"
+#: ../src/extension/extension.cpp:294
+msgid "Extension \""
+msgstr "Rozszerzenie \""
 
-#: ../src/helper/units.cpp:47
-msgid "Foot"
-msgstr "Stopa"
+#: ../src/extension/extension.cpp:625
+#, c-format
+msgid "Could not create extension error log file '%s'"
+msgstr "Nie udało się utworzyć pliku dziennika zdarzeń dla rozszerzenia \"%s\""
 
-#: ../src/helper/units.cpp:47
-msgid "ft"
-msgstr "ft"
+#: ../src/extension/extension.cpp:723
+msgid "Name:"
+msgstr "Nazwa:"
 
-#: ../src/helper/units.cpp:47
-msgid "Feet"
-msgstr "Stopy"
+#: ../src/extension/extension.cpp:724
+msgid "ID:"
+msgstr "ID:"
 
-#. Volatiles do not have default, so there are none here
-#. TRANSLATORS: for info, see http://www.w3.org/TR/REC-CSS2/syndata.html#length-units
-#: ../src/helper/units.cpp:50
-msgid "Em square"
-msgstr "Kwadrat Em"
+#: ../src/extension/extension.cpp:725
+msgid "Deactivated"
+msgstr "Wyłączono"
 
-#: ../src/helper/units.cpp:50
-msgid "em"
-msgstr "em"
+#: ../src/extension/extension.cpp:725
+msgid "Loaded"
+msgstr "Wczytane"
 
-#: ../src/helper/units.cpp:50
-msgid "Em squares"
-msgstr "Kwadraty Em"
+#: ../src/extension/extension.cpp:725
+msgid "State:"
+msgstr "Stan:"
 
-#. TRANSLATORS: for info, see http://www.w3.org/TR/REC-CSS2/syndata.html#length-units
-#: ../src/helper/units.cpp:52
-msgid "Ex square"
-msgstr "Kwadrat Ex"
+#: ../src/extension/extension.cpp:725
+msgid "Unloaded"
+msgstr "Niewczytane"
 
-#: ../src/helper/units.cpp:52
-msgid "ex"
-msgstr "ex"
+#: ../src/extension/extension.cpp:756
+msgid "Currently there is no help available for this Extension.  Please look on the Inkscape website or ask on the mailing lists if you have questions regarding this extension."
+msgstr "Obecnie pomoc dla tego rozszerzenia jest niedostępna. Jeśli masz jakieś pytania dotyczące tego rozszerzenia poszukaj odpowiedzi na witrynie Inkscape lub zadaj pytanie na liście mailingowej."
 
-#: ../src/helper/units.cpp:52
-msgid "Ex squares"
-msgstr "Kwadraty Ex"
+#: ../src/extension/implementation/script.cpp:1036
+msgid "Inkscape has received additional data from the script executed.  The script did not return an error, but this may indicate the results will not be as expected."
+msgstr "Program Inkscape otrzymał dodatkowe dane od uruchomionego skryptu. Skrypt nie zgłosił błędu, jednak możliwe, że wynik jego działania jest inny niż spodziewany."
 
-#: ../src/inkscape.cpp:337
-#, fuzzy
-msgid "Autosaving documents..."
-msgstr "Zapisywanie dokumentu..."
+#: ../src/extension/init.cpp:291
+msgid "Null external module directory name.  Modules will not be loaded."
+msgstr "Pusta nazwa katalogu modułów zewnętrznych. Moduły nie zostaną wczytane"
 
-#: ../src/inkscape.cpp:405
-msgid "Autosave failed! Could not find inkscape extension to save document."
-msgstr ""
+#: ../src/extension/init.cpp:305
+#: ../src/extension/internal/filter/filter-file.cpp:56
+#, c-format
+msgid "Modules directory (%s) is unavailable.  External modules in that directory will not be loaded."
+msgstr "Katalog modułów (%s) jest niedostępny.  Moduły zewnętrzne z tego katalogu nie zostaną wczytane"
 
-#: ../src/inkscape.cpp:408 ../src/inkscape.cpp:415
-#, fuzzy, c-format
-msgid "Autosave failed! File %s could not be saved."
-msgstr "Plik %s nie mógł zostać zapisany"
+#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:38
+msgid "Adaptive Threshold"
+msgstr "Inteligentny próg"
 
-#: ../src/inkscape.cpp:430
-msgid "Autosave complete."
-msgstr ""
+#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:40
+#: ../src/extension/internal/bitmap/raise.cpp:41
+#: ../src/extension/internal/bitmap/sample.cpp:40
+#: ../src/extension/internal/bluredge.cpp:135
+#: ../src/libgdl/gdl-dock-placeholder.c:169
+#: ../src/libgdl/gdl-dock.c:190
+#: ../src/live_effects/lpe-bendpath.cpp:56
+#: ../src/live_effects/lpe-patternalongpath.cpp:63
+#: ../src/widgets/toolbox.cpp:2616
+#: ../src/widgets/toolbox.cpp:3658
+msgid "Width"
+msgstr "Szerokość"
 
-#: ../src/inkscape.cpp:653
-msgid "Untitled document"
-msgstr "Dokument bez nazwy"
+#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41
+#: ../src/extension/internal/bitmap/raise.cpp:42
+#: ../src/extension/internal/bitmap/sample.cpp:41
+#: ../src/libgdl/gdl-dock-placeholder.c:177
+#: ../src/libgdl/gdl-dock.c:198
+#: ../src/widgets/toolbox.cpp:2633
+msgid "Height"
+msgstr "Wysokość"
+
+#. initialise your parameters here:
+#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42
+#: ../src/filter-enums.cpp:32
+#: ../src/live_effects/effect.cpp:93
+#: ../src/live_effects/lpe-offset.cpp:30
+#: ../src/live_effects/lpe-parallel.cpp:46
+#: ../src/live_effects/lpe-ruler.cpp:49
+msgid "Offset"
+msgstr "Przesunięcie"
+
+#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:46
+#: ../src/extension/internal/bitmap/addNoise.cpp:57
+#: ../src/extension/internal/bitmap/blur.cpp:44
+#: ../src/extension/internal/bitmap/channel.cpp:63
+#: ../src/extension/internal/bitmap/charcoal.cpp:44
+#: ../src/extension/internal/bitmap/colorize.cpp:55
+#: ../src/extension/internal/bitmap/contrast.cpp:42
+#: ../src/extension/internal/bitmap/convolve.cpp:57
+#: ../src/extension/internal/bitmap/cycleColormap.cpp:42
+#: ../src/extension/internal/bitmap/despeckle.cpp:40
+#: ../src/extension/internal/bitmap/edge.cpp:42
+#: ../src/extension/internal/bitmap/emboss.cpp:44
+#: ../src/extension/internal/bitmap/enhance.cpp:39
+#: ../src/extension/internal/bitmap/equalize.cpp:39
+#: ../src/extension/internal/bitmap/gaussianBlur.cpp:44
+#: ../src/extension/internal/bitmap/implode.cpp:42
+#: ../src/extension/internal/bitmap/level.cpp:48
+#: ../src/extension/internal/bitmap/levelChannel.cpp:70
+#: ../src/extension/internal/bitmap/medianFilter.cpp:42
+#: ../src/extension/internal/bitmap/modulate.cpp:47
+#: ../src/extension/internal/bitmap/negate.cpp:40
+#: ../src/extension/internal/bitmap/normalize.cpp:40
+#: ../src/extension/internal/bitmap/oilPaint.cpp:42
+#: ../src/extension/internal/bitmap/opacity.cpp:43
+#: ../src/extension/internal/bitmap/raise.cpp:47
+#: ../src/extension/internal/bitmap/reduceNoise.cpp:45
+#: ../src/extension/internal/bitmap/sample.cpp:45
+#: ../src/extension/internal/bitmap/shade.cpp:47
+#: ../src/extension/internal/bitmap/sharpen.cpp:44
+#: ../src/extension/internal/bitmap/solarize.cpp:42
+#: ../src/extension/internal/bitmap/spread.cpp:42
+#: ../src/extension/internal/bitmap/swirl.cpp:42
+#: ../src/extension/internal/bitmap/threshold.cpp:43
+#: ../src/extension/internal/bitmap/unsharpmask.cpp:49
+#: ../src/extension/internal/bitmap/wave.cpp:44
+msgid "Raster"
+msgstr "Grafika rastrowa"
+
+#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:48
+msgid "Apply adaptive thresholding to selected bitmap(s)."
+msgstr "Stosuje inteligentne progowanie do zaznaczonych bitmap(y)"
+
+#: ../src/extension/internal/bitmap/addNoise.cpp:44
+msgid "Add Noise"
+msgstr "Dodaj szum"
+
+#: ../src/extension/internal/bitmap/addNoise.cpp:47
+msgid "Uniform Noise"
+msgstr "Szum jednolity"
+
+#: ../src/extension/internal/bitmap/addNoise.cpp:48
+msgid "Gaussian Noise"
+msgstr "Szum gaussowski"
+
+#: ../src/extension/internal/bitmap/addNoise.cpp:49
+msgid "Multiplicative Gaussian Noise"
+msgstr "Szum gaussowski wielokrotny"
+
+#: ../src/extension/internal/bitmap/addNoise.cpp:50
+msgid "Impulse Noise"
+msgstr "Szum impulsowy"
+
+#: ../src/extension/internal/bitmap/addNoise.cpp:51
+msgid "Laplacian Noise"
+msgstr "Szum Laplace'a"
+
+#: ../src/extension/internal/bitmap/addNoise.cpp:52
+msgid "Poisson Noise"
+msgstr "Szum Poissona"
+
+#: ../src/extension/internal/bitmap/addNoise.cpp:59
+msgid "Add random noise to selected bitmap(s)."
+msgstr "Dodaj losowy szum do zaznaczonych bitmap(y),"
+
+#: ../src/extension/internal/bitmap/blur.cpp:37
+msgid "Blur"
+msgstr "Rozmycie"
+
+#: ../src/extension/internal/bitmap/blur.cpp:39
+#: ../src/extension/internal/bitmap/charcoal.cpp:39
+#: ../src/extension/internal/bitmap/edge.cpp:38
+#: ../src/extension/internal/bitmap/emboss.cpp:39
+#: ../src/extension/internal/bitmap/medianFilter.cpp:38
+#: ../src/extension/internal/bitmap/oilPaint.cpp:38
+#: ../src/extension/internal/bitmap/sharpen.cpp:39
+#: ../src/extension/internal/bitmap/unsharpmask.cpp:42
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2256
+msgid "Radius"
+msgstr "Promień"
+
+#: ../src/extension/internal/bitmap/blur.cpp:40
+#: ../src/extension/internal/bitmap/charcoal.cpp:40
+#: ../src/extension/internal/bitmap/emboss.cpp:40
+#: ../src/extension/internal/bitmap/gaussianBlur.cpp:40
+#: ../src/extension/internal/bitmap/sharpen.cpp:40
+#: ../src/extension/internal/bitmap/unsharpmask.cpp:43
+msgid "Sigma"
+msgstr "Sigma"
+
+#: ../src/extension/internal/bitmap/blur.cpp:46
+msgid "Blur selected bitmap(s)"
+msgstr "Rozmyj zaznaczone bitmapy(ę)"
+
+#: ../src/extension/internal/bitmap/channel.cpp:47
+#: ../src/extension/internal/bitmap/levelChannel.cpp:53
+msgid "Channel"
+msgstr "Kanał"
+
+#: ../src/extension/internal/bitmap/channel.cpp:49
+msgid "Layer"
+msgstr "Warstwa"
+
+#: ../src/extension/internal/bitmap/channel.cpp:50
+#: ../src/extension/internal/bitmap/levelChannel.cpp:54
+msgid "Red Channel"
+msgstr "Kanał czerwony"
+
+#: ../src/extension/internal/bitmap/channel.cpp:51
+#: ../src/extension/internal/bitmap/levelChannel.cpp:55
+msgid "Green Channel"
+msgstr "Kanał zielony"
+
+#: ../src/extension/internal/bitmap/channel.cpp:52
+#: ../src/extension/internal/bitmap/levelChannel.cpp:56
+msgid "Blue Channel"
+msgstr "Kanał niebieski"
+
+#: ../src/extension/internal/bitmap/channel.cpp:53
+#: ../src/extension/internal/bitmap/levelChannel.cpp:57
+msgid "Cyan Channel"
+msgstr "Kanał cyjanowy"
+
+#: ../src/extension/internal/bitmap/channel.cpp:54
+#: ../src/extension/internal/bitmap/levelChannel.cpp:58
+msgid "Magenta Channel"
+msgstr "Kanał purpurowy"
+
+#: ../src/extension/internal/bitmap/channel.cpp:55
+#: ../src/extension/internal/bitmap/levelChannel.cpp:59
+msgid "Yellow Channel"
+msgstr "Kanał żółty"
+
+#: ../src/extension/internal/bitmap/channel.cpp:56
+#: ../src/extension/internal/bitmap/levelChannel.cpp:60
+msgid "Black Channel"
+msgstr "Kanał czarny"
+
+#: ../src/extension/internal/bitmap/channel.cpp:57
+#: ../src/extension/internal/bitmap/levelChannel.cpp:61
+msgid "Opacity Channel"
+msgstr "Kanał krycia"
+
+#: ../src/extension/internal/bitmap/channel.cpp:58
+#: ../src/extension/internal/bitmap/levelChannel.cpp:62
+msgid "Matte Channel"
+msgstr "Kanał maski"
+
+#: ../src/extension/internal/bitmap/channel.cpp:65
+msgid "Extract specific channel from image."
+msgstr "Wyodrębnij określony kanał z obrazka"
+
+#: ../src/extension/internal/bitmap/charcoal.cpp:37
+msgid "Charcoal"
+msgstr "Rysunek węglem"
+
+#: ../src/extension/internal/bitmap/charcoal.cpp:46
+msgid "Apply charcoal stylization to selected bitmap(s)."
+msgstr "Zastosuj stylizację rysunku węglem do zaznaczonej bitmap(y)"
+
+#: ../src/extension/internal/bitmap/colorize.cpp:49
+msgid "Colorize"
+msgstr "Kolorowanie"
+
+#: ../src/extension/internal/bitmap/colorize.cpp:57
+msgid "Colorize selected bitmap(s) with specified color, using given opacity."
+msgstr "Koloruj zaznaczoną bitmapę(y) wybranym kolorem z określonym kryciem"
+
+#: ../src/extension/internal/bitmap/contrast.cpp:36
+msgid "Contrast"
+msgstr "Kontrast"
+
+#: ../src/extension/internal/bitmap/contrast.cpp:38
+#: ../src/extension/internal/bitmap/sharpen.cpp:37
+msgid "Sharpen"
+msgstr "Wyostrzanie"
+
+#: ../src/extension/internal/bitmap/contrast.cpp:44
+msgid "Enhance intensity differences in selected bitmap(s)."
+msgstr "Zmień intensywność kontrastu w zaznaczonej(ych) bitmapie(ach)"
+
+#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-convolve.html
+#: ../src/extension/internal/bitmap/convolve.cpp:50
+msgid "Convolve"
+msgstr "Rozmywanie/Wyostrzanie"
+
+#: ../src/extension/internal/bitmap/convolve.cpp:53
+msgid "Kernel Array"
+msgstr ""
+
+#: ../src/extension/internal/bitmap/convolve.cpp:59
+msgid "Apply Convolve Effect"
+msgstr "Zastosuj efekt rozmywania/wyostrzania"
+
+#: ../src/extension/internal/bitmap/cycleColormap.cpp:36
+msgid "Cycle Colormap"
+msgstr "Cykl palety kolorów"
+
+#: ../src/extension/internal/bitmap/cycleColormap.cpp:38
+#: ../src/extension/internal/bitmap/spread.cpp:38
+#: ../src/extension/internal/bitmap/unsharpmask.cpp:44
+msgid "Amount"
+msgstr "Ilość"
+
+#: ../src/extension/internal/bitmap/cycleColormap.cpp:44
+msgid "Cycle colormap(s) of selected bitmap(s)."
+msgstr "Cykl palety kolorów zaznaczonych bitmap"
+
+#: ../src/extension/internal/bitmap/despeckle.cpp:35
+msgid "Despeckle"
+msgstr "Filtrowanie szumów"
+
+#: ../src/extension/internal/bitmap/despeckle.cpp:42
+msgid "Reduce speckle noise of selected bitmap(s)."
+msgstr "Redukuje szum plamkowy na zaznaczonych bitmapach"
+
+#: ../src/extension/internal/bitmap/edge.cpp:36
+msgid "Edge"
+msgstr "Krawędź"
+
+#: ../src/extension/internal/bitmap/edge.cpp:44
+msgid "Hilight edges of selected bitmap(s)."
+msgstr "Podświetla krawędzie zaznaczonych bitmap"
+
+#. ID -- should be unique
+#: ../src/extension/internal/bitmap/emboss.cpp:37
+#: ../src/extension/internal/filter/emboss.h:21
+msgid "Emboss"
+msgstr "Płaskorzeźba"
+
+#: ../src/extension/internal/bitmap/emboss.cpp:46
+msgid "Emboss selected bitmap(s) -- hilight edges with 3D effect."
+msgstr "Tworzy płaskorzeźbę zaznaczonych bitmap- podświetla krawędzie z efektami 3D"
+
+#: ../src/extension/internal/bitmap/enhance.cpp:34
+msgid "Enhance"
+msgstr "Zmniejsz szum"
+
+#: ../src/extension/internal/bitmap/enhance.cpp:41
+msgid "Enhance selected bitmap(s) -- minimize noise."
+msgstr "Koryguje zaznaczone bitmapy - minimalizuje szum"
+
+#: ../src/extension/internal/bitmap/equalize.cpp:34
+msgid "Equalize"
+msgstr "Koryguj"
+
+#: ../src/extension/internal/bitmap/equalize.cpp:41
+msgid "Equalize selected bitmap(s) -- histogram equalization."
+msgstr "Koryguje zaznaczone bitmapy - histogram korekcji"
+
+#: ../src/extension/internal/bitmap/gaussianBlur.cpp:37
+#: ../src/filter-enums.cpp:28
+msgid "Gaussian Blur"
+msgstr "Rozmycie gaussowskie"
+
+#: ../src/extension/internal/bitmap/gaussianBlur.cpp:39
+#: ../src/extension/internal/bitmap/implode.cpp:38
+#: ../src/extension/internal/bitmap/solarize.cpp:38
+msgid "Factor"
+msgstr "Współczynnik"
+
+#: ../src/extension/internal/bitmap/gaussianBlur.cpp:46
+msgid "Gaussian blur selected bitmap(s)."
+msgstr "Rozmycie gaussowskie zaznaczonych bitmap"
+
+#: ../src/extension/internal/bitmap/implode.cpp:36
+msgid "Implode"
+msgstr "Implozja"
+
+#: ../src/extension/internal/bitmap/implode.cpp:44
+msgid "Implode selected bitmap(s)."
+msgstr "Wykonuje implozję zaznaczonych bitmap"
+
+#: ../src/extension/internal/bitmap/level.cpp:40
+msgid "Level"
+msgstr "Poziom"
+
+#: ../src/extension/internal/bitmap/level.cpp:42
+#: ../src/extension/internal/bitmap/levelChannel.cpp:64
+msgid "Black Point"
+msgstr "Poziom czerni"
+
+#: ../src/extension/internal/bitmap/level.cpp:43
+#: ../src/extension/internal/bitmap/levelChannel.cpp:65
+msgid "White Point"
+msgstr "Poziom bieli"
+
+#: ../src/extension/internal/bitmap/level.cpp:44
+#: ../src/extension/internal/bitmap/levelChannel.cpp:66
+msgid "Gamma Correction"
+msgstr "Korekcja gamma"
+
+#: ../src/extension/internal/bitmap/level.cpp:50
+msgid "Level selected bitmap(s) by scaling values falling between the given ranges to the full color range."
+msgstr "Poziom zaznaczonych bitmap poprzez skalowanie wartości opadania pomiędzy danymi zakresami, a pełnym zakresem koloru"
+
+#: ../src/extension/internal/bitmap/levelChannel.cpp:51
+msgid "Level (with Channel)"
+msgstr "Poziom (z kanałem)"
+
+#: ../src/extension/internal/bitmap/levelChannel.cpp:72
+msgid "Level the specified channel of selected bitmap(s) by scaling values falling between the given ranges to the full color range."
+msgstr "Poziom określonego kanału zaznaczonych bitmap poprzez skalowanie wartości opadania pomiędzy danymi zakresami, a pełnym zakresem koloru"
+
+#: ../src/extension/internal/bitmap/medianFilter.cpp:36
+msgid "Median Filter"
+msgstr "Filtr Median"
+
+#: ../src/extension/internal/bitmap/medianFilter.cpp:44
+msgid "Filter selected bitmap(s) by replacing each pixel component with the median color in a circular neighborhood."
+msgstr "Filtruje zaznaczone bitmapy zamieniając każdy piksel kolorem środkowym w obrębie koła"
+
+#: ../src/extension/internal/bitmap/modulate.cpp:39
+msgid "Modulate"
+msgstr "Modulowanie"
+
+#: ../src/extension/internal/bitmap/modulate.cpp:41
+msgid "Brightness"
+msgstr "Jasność"
+
+#: ../src/extension/internal/bitmap/modulate.cpp:49
+msgid "Modulate percent hue, saturation, and brightness of selected bitmap(s)."
+msgstr "Moduluje procent barwy, nasycenia i jasności zaznaczonych bitmap"
+
+#: ../src/extension/internal/bitmap/negate.cpp:35
+msgid "Negate"
+msgstr "Pobierz odwrotność"
+
+#: ../src/extension/internal/bitmap/negate.cpp:42
+msgid "Negate (take inverse) selected bitmap(s)."
+msgstr "Pobiera odwrotność zaznaczonych bitmap"
+
+#: ../src/extension/internal/bitmap/normalize.cpp:35
+msgid "Normalize"
+msgstr "Normalizacja"
+
+#: ../src/extension/internal/bitmap/normalize.cpp:42
+msgid "Normalize selected bitmap(s), expanding color range to the full possible range of color."
+msgstr "Normalizuje zaznaczone bitmapy rozszerzając zakres koloru do pełnego możliwego zakresu koloru"
+
+#: ../src/extension/internal/bitmap/oilPaint.cpp:36
+msgid "Oil Paint"
+msgstr "Obraz olejny"
+
+#: ../src/extension/internal/bitmap/oilPaint.cpp:44
+msgid "Stylize selected bitmap(s) so that they appear to be painted with oils."
+msgstr "Stylizuje zaznaczone bitmapy tak, aby wyglądały jak obraz olejny"
+
+#: ../src/extension/internal/bitmap/opacity.cpp:45
+msgid "Modify opacity channel(s) of selected bitmap(s)."
+msgstr "Zmienia krycie kanałów zaznaczonych bitmap"
+
+#: ../src/extension/internal/bitmap/raise.cpp:39
+msgid "Raise"
+msgstr "Podniesienie"
+
+#: ../src/extension/internal/bitmap/raise.cpp:43
+msgid "Raised"
+msgstr "Uwypuklenie"
+
+#: ../src/extension/internal/bitmap/raise.cpp:49
+msgid "Alter lightness the edges of selected bitmap(s) to create a raised appearance."
+msgstr "Zmienia rozjaśnienie krawędzi zaznaczonych bitmap, aby utworzyć wypukły wygląd"
+
+#: ../src/extension/internal/bitmap/reduceNoise.cpp:39
+msgid "Reduce Noise"
+msgstr "Redukcja szumów"
+
+#: ../src/extension/internal/bitmap/reduceNoise.cpp:47
+msgid "Reduce noise in selected bitmap(s) using a noise peak elimination filter."
+msgstr "Redukuje szum w zaznaczonych bitmapach przy użyciu filtru eliminacji szumów szczytowych"
+
+#: ../src/extension/internal/bitmap/sample.cpp:38
+msgid "Sample"
+msgstr "Próbka"
+
+#: ../src/extension/internal/bitmap/sample.cpp:47
+msgid "Alter the resolution of selected image by resizing it by given dimensions."
+msgstr "Zmienia rozdzielczość zaznaczonego obrazka zmieniając jego wielkość do zadanych rozmiarów"
+
+#: ../src/extension/internal/bitmap/shade.cpp:39
+msgid "Shade"
+msgstr "Cień"
+
+#: ../src/extension/internal/bitmap/shade.cpp:41
+#: ../src/ui/dialog/filter-effects-dialog.cpp:995
+msgid "Azimuth"
+msgstr "Azymut"
+
+#: ../src/extension/internal/bitmap/shade.cpp:42
+#: ../src/ui/dialog/filter-effects-dialog.cpp:996
+msgid "Elevation"
+msgstr "Przewyższenie"
+
+#: ../src/extension/internal/bitmap/shade.cpp:43
+msgid "Colored Shading"
+msgstr "Kolorowe cieniowanie"
+
+#: ../src/extension/internal/bitmap/shade.cpp:49
+msgid "Shade selected bitmap(s) simulating distant light source."
+msgstr "Dodaje cień do zaznaczonych bitmap symulując odległe źródło światła"
+
+#: ../src/extension/internal/bitmap/sharpen.cpp:46
+msgid "Sharpen selected bitmap(s)."
+msgstr "Wyostrza zaznaczone bitmapy"
+
+#: ../src/extension/internal/bitmap/solarize.cpp:36
+msgid "Solarize"
+msgstr "Solaryzacja"
+
+#: ../src/extension/internal/bitmap/solarize.cpp:44
+msgid "Solarize selected bitmap(s), like overexposing photographic film."
+msgstr "Solaryzuje zaznaczone bitmapy tak jak prześwietlony film fotograficzny"
+
+#: ../src/extension/internal/bitmap/spread.cpp:36
+msgid "Spread"
+msgstr "Rozmazanie"
+
+#: ../src/extension/internal/bitmap/spread.cpp:44
+msgid "Randomly spread pixels in selected bitmap(s), within the radius of 'amount.'"
+msgstr "W obrębie promienia losowo rozmazuje piksele w zaznaczonych bitmapach"
+
+#: ../src/extension/internal/bitmap/swirl.cpp:36
+msgid "Swirl"
+msgstr "Skręcenie"
+
+#: ../src/extension/internal/bitmap/swirl.cpp:44
+msgid "Swirl selected bitmap(s) around center point."
+msgstr "Skręca zaznaczone bitmapy wokół punktu centralnego"
+
+#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html
+#: ../src/extension/internal/bitmap/threshold.cpp:37
+#: ../src/extension/internal/bitmap/threshold.cpp:39
+#: ../src/extension/internal/bitmap/unsharpmask.cpp:45
+msgid "Threshold"
+msgstr "Próg"
+
+#: ../src/extension/internal/bitmap/threshold.cpp:45
+msgid "Threshold selected bitmap(s)."
+msgstr "Proguj zaznaczone bitmapy"
 
-#. Show nice dialog box
-#: ../src/inkscape.cpp:682
-msgid "Inkscape encountered an internal error and will close now.\n"
-msgstr ""
-"W programie Inkscape wystąpił wewnętrzny błąd i nastąpi jego zamknięcie.\n"
+#: ../src/extension/internal/bitmap/unsharpmask.cpp:40
+msgid "Unsharp Mask"
+msgstr "Maska wyostrzania"
 
-#: ../src/inkscape.cpp:683
-msgid ""
-"Automatic backups of unsaved documents were done to the following "
-"locations:\n"
-msgstr ""
-"Kopie niezapisanych dokumentów zostały automatycznie utworzone w "
-"następujących lokalizacjach:\n"
+#: ../src/extension/internal/bitmap/unsharpmask.cpp:51
+msgid "Sharpen selected bitmap(s) using unsharp mask algorithms."
+msgstr "Wyostrza zaznaczone bitmapy używając algorytmów maski wyostrzania"
 
-#: ../src/inkscape.cpp:684
-msgid "Automatic backup of the following documents failed:\n"
-msgstr "Nie udało się automatycznie utworzyć kopii następujących dokumentów:\n"
+#: ../src/extension/internal/bitmap/wave.cpp:37
+msgid "Wave"
+msgstr "Fala"
 
-#: ../src/inkscape.cpp:829
-#, c-format
-msgid ""
-"Cannot create directory %s.\n"
-"%s"
-msgstr ""
-"Nie można utworzyć katalogu %s.\n"
-"%s"
+#: ../src/extension/internal/bitmap/wave.cpp:39
+msgid "Amplitude"
+msgstr "Amplituda"
 
-#: ../src/inkscape.cpp:830
-#, c-format
-msgid ""
-"%s is not a valid directory.\n"
-"%s"
-msgstr ""
-"%s nie jest poprawnym katalogiem.\n"
-"%s"
+#: ../src/extension/internal/bitmap/wave.cpp:40
+msgid "Wavelength"
+msgstr "Długość fali"
 
-#: ../src/inkscape.cpp:831
-#, c-format
-msgid ""
-"Cannot create file %s.\n"
-"%s"
-msgstr ""
-"Nie można utworzyć pliku %s.\n"
-"%s"
+#: ../src/extension/internal/bitmap/wave.cpp:46
+msgid "Alter selected bitmap(s) along sine wave."
+msgstr "Modyfikuje zaznaczone bitmapy falą sinusoidalną"
 
-#: ../src/inkscape.cpp:832
-#, c-format
-msgid ""
-"Cannot write file %s.\n"
-"%s"
-msgstr ""
-"Nie można zapisać do pliku %s.\n"
-"%s"
+#: ../src/extension/internal/bluredge.cpp:133
+msgid "Inset/Outset Halo"
+msgstr "Rozmycie krawędzi (zjawisko Halo)"
 
-#: ../src/inkscape.cpp:833
-msgid ""
-"Although Inkscape will run, it will use default settings,\n"
-"and any changes made in preferences will not be saved."
-msgstr ""
-"Mimo, że Inkscape zostanie uruchomiony, będzie korzystał z domyślnych\n"
-"ustawień, a żadne zmiany dokonane w ustawieniach nie zostaną zapisane"
+#: ../src/extension/internal/bluredge.cpp:135
+msgid "Width in px of the halo"
+msgstr "Szerokość rozmycia w px"
 
-#: ../src/inkscape.cpp:903 ../src/preferences.cpp:56
-#, c-format
-msgid ""
-"%s is not a regular file.\n"
-"%s"
-msgstr ""
-"%s nie jest poprawnym plikiem.\n"
-"%s"
+#: ../src/extension/internal/bluredge.cpp:136
+msgid "Number of inset/outset copies of the object to make"
+msgstr "Liczba kopii obiektu do symulacji efektu rozmycia"
 
-#: ../src/inkscape.cpp:904 ../src/preferences.cpp:57
-#, c-format
-msgid ""
-"%s not a valid XML file, or\n"
-"you don't have read permissions on it.\n"
-"%s"
-msgstr ""
-"%s nie jest poprawnym plikiem XML, lub\n"
-"nie masz praw do odczytu tego pliku.%s"
+#: ../src/extension/internal/bluredge.cpp:136
+msgid "Number of steps"
+msgstr "Liczba kroków"
 
-#: ../src/inkscape.cpp:906
-#, c-format
-msgid ""
-"%s is not a valid menus file.\n"
-"%s"
-msgstr ""
-"%s nie jest poprawnym plikiem menu.\n"
-"%s"
+#: ../src/extension/internal/cairo-pdf-out.cpp:238
+msgid "Cairo PDF Output"
+msgstr "Zapis PDF z użyciem Cairo"
 
-#: ../src/inkscape.cpp:907
-msgid ""
-"Inkscape will run with default menus.\n"
-"New menus will not be saved."
+#: ../src/extension/internal/cairo-pdf-out.cpp:240
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:217
+msgid "Restrict to PDF version"
+msgstr "Określ wersję PDF"
+
+#: ../src/extension/internal/cairo-pdf-out.cpp:241
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:218
+msgid "PDF 1.4"
+msgstr "PDF 1.4"
+
+#: ../src/extension/internal/cairo-pdf-out.cpp:243
+#: ../src/extension/internal/cairo-ps-out.cpp:347
+#: ../src/extension/internal/cairo-ps-out.cpp:381
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:220
+#: ../src/extension/internal/emf-win32-inout.cpp:2435
+#: ../src/extension/internal/eps-out.cpp:92
+#: ../src/extension/internal/ps-out.cpp:84
+msgid "Convert texts to paths"
+msgstr "Konwertuj tekst na ścieżki"
+
+#: ../src/extension/internal/cairo-pdf-out.cpp:244
+#: ../src/extension/internal/cairo-ps-out.cpp:348
+#: ../src/extension/internal/cairo-ps-out.cpp:382
+msgid "Convert blur effects to bitmaps"
+msgstr "Konwertuj efekty rozmycia do bitmap"
+
+#: ../src/extension/internal/cairo-pdf-out.cpp:245
+#: ../src/extension/internal/cairo-ps-out.cpp:349
+#: ../src/extension/internal/cairo-ps-out.cpp:383
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:222
+msgid "Preferred resolution (DPI) of bitmaps"
+msgstr "Preferowana rozdzielczość bitmap (w dpi)"
+
+#: ../src/extension/internal/cairo-pdf-out.cpp:246
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:223
+msgid "Export drawing, not page"
+msgstr "Eksportuj rysunek, a nie ścieżkę"
+
+#: ../src/extension/internal/cairo-pdf-out.cpp:247
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:224
+msgid "Export canvas"
+msgstr "Eksportuj obszar roboczy"
+
+#: ../src/extension/internal/cairo-pdf-out.cpp:248
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:225
+msgid "Limit export to the object with ID"
+msgstr "Limit eksportu do obiektu z ID"
+
+#: ../src/extension/internal/cairo-pdf-out.cpp:252
+msgid "PDF via Cairo (*.pdf)"
+msgstr "PDF [z użyciem Cairo] (*.pdf)"
+
+#: ../src/extension/internal/cairo-pdf-out.cpp:253
+msgid "PDF File"
+msgstr "Plik PDF"
+
+#: ../src/extension/internal/cairo-ps-out.cpp:341
+#: ../src/extension/internal/cairo-ps-out.cpp:375
+msgid "Restrict to PS level"
+msgstr "Określ poziom PostScript"
+
+#: ../src/extension/internal/cairo-ps-out.cpp:342
+#: ../src/extension/internal/cairo-ps-out.cpp:376
+msgid "PostScript level 3"
+msgstr "PostScript poziom 3"
+
+#: ../src/extension/internal/cairo-ps-out.cpp:344
+#: ../src/extension/internal/cairo-ps-out.cpp:378
+msgid "PostScript level 2"
+msgstr "PostScript poziom 2"
+
+#: ../src/extension/internal/cairo-ps-out.cpp:354
+#: ../src/extension/internal/ps-out.cpp:90
+msgid "PostScript File"
+msgstr "Plik PostScript"
+
+#: ../src/extension/internal/cairo-ps-out.cpp:388
+msgid "Encapsulated PostScript File"
+msgstr "Plik Encapsulated PostScript"
+
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:221
+msgid "Convert filter effects to bitmaps"
+msgstr "Konwertuj efekty filtra do bitmap"
+
+#: ../src/extension/internal/emf-win32-inout.cpp:2405
+msgid "EMF Input"
+msgstr "Źródło EMF"
+
+#: ../src/extension/internal/emf-win32-inout.cpp:2410
+msgid "Enhanced Metafiles (*.emf)"
+msgstr "Enhanced Metafiles (*.emf)"
+
+#: ../src/extension/internal/emf-win32-inout.cpp:2411
+msgid "Enhanced Metafiles"
+msgstr "Enhanced Metafiles"
+
+#: ../src/extension/internal/emf-win32-inout.cpp:2419
+msgid "WMF Input"
+msgstr "Źródło WMF"
+
+#: ../src/extension/internal/emf-win32-inout.cpp:2424
+msgid "Windows Metafiles (*.wmf)"
+msgstr "Windows Metafile (*.wmf)"
+
+#: ../src/extension/internal/emf-win32-inout.cpp:2425
+msgid "Windows Metafiles"
+msgstr "Windows Metafiles"
+
+#: ../src/extension/internal/emf-win32-inout.cpp:2433
+msgid "EMF Output"
+msgstr "Zapis w formacie EMF"
+
+#: ../src/extension/internal/emf-win32-inout.cpp:2439
+msgid "Enhanced Metafile (*.emf)"
+msgstr "Enhanced Metafile (*.emf)"
+
+#: ../src/extension/internal/emf-win32-inout.cpp:2440
+msgid "Enhanced Metafile"
+msgstr "Enhanced Metafile"
+
+#: ../src/extension/internal/eps-out.cpp:89
+msgid "Encapsulated Postscript Output"
+msgstr "Zapis w formacie Encapsulated Postscript"
+
+#: ../src/extension/internal/eps-out.cpp:91
+msgid "Make bounding box around full page"
+msgstr "Utwórz obramowanie wokół całej strony"
+
+#: ../src/extension/internal/eps-out.cpp:93
+#: ../src/extension/internal/ps-out.cpp:85
+msgid "Embed fonts (Type 1 only)"
+msgstr "Osadzone czcionki (tylko Type 1)"
+
+#: ../src/extension/internal/eps-out.cpp:97
+msgid "Encapsulated Postscript (*.eps)"
+msgstr "Encapsulated Postscript (*.eps)"
+
+#: ../src/extension/internal/eps-out.cpp:98
+msgid "Encapsulated Postscript File"
+msgstr "Plik Encapsulated Postscript"
+
+#. ID -- should be unique
+#: ../src/extension/internal/filter/apparition.h:24
+msgid "Apparition"
+msgstr "Widmo"
+
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/apparition.h:25
+msgid "I'm not sure what this word means"
+msgstr "Nie jestem pewny co to słowo znaczy"
+
+#. ID -- should be unique
+#: ../src/extension/internal/filter/bloom.h:24
+msgid "Bloom"
+msgstr "Kwiat"
+
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/bloom.h:25
+msgid "Not sure, nobody tell me these things"
+msgstr "Nie jestem pewny, ktoś powie mi co to jest?"
+
+#. ID -- should be unique
+#: ../src/extension/internal/filter/clouds.h:24
+msgid "Clouds"
+msgstr "Chmury"
+
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/clouds.h:25
+msgid "Yes, more descriptions"
+msgstr "Tak, więcej opisów"
+
+#. ID -- should be unique
+#: ../src/extension/internal/filter/crystal.h:24
+msgid "Crystal"
+msgstr "Kryształ"
+
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/crystal.h:25
+msgid "Artist, insert data here"
+msgstr "Artysta, tutaj wprowadź dane"
+
+#. ID -- should be unique
+#: ../src/extension/internal/filter/cutout.h:24
+msgid "Cutout"
+msgstr "Przełącznik"
+
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/cutout.h:25
+#: ../src/extension/internal/filter/etched-glass.h:25
+#: ../src/extension/internal/filter/frost.h:25
+#: ../src/extension/internal/filter/ridged-border.h:25
+msgid "Artist text"
+msgstr "Tekst artystyczny"
+
+#: ../src/extension/internal/filter/drop-shadow.h:35
+msgid "Drop Shadow"
+msgstr "Cień obrazka"
+
+#: ../src/extension/internal/filter/drop-shadow.h:37
+msgid "Blur radius, px"
+msgstr "Promień rozmycia (px)"
+
+#: ../src/extension/internal/filter/drop-shadow.h:38
+#: ../src/ui/widget/object-composite-settings.cpp:52
+#: ../src/ui/widget/selected-style.cpp:1027
+#: ../src/ui/widget/selected-style.cpp:1028
+msgid "Opacity, %"
+msgstr "Krycie, %"
+
+#: ../src/extension/internal/filter/drop-shadow.h:39
+msgid "Horizontal offset, px"
+msgstr "Przesunięcie poziome (px)"
+
+#: ../src/extension/internal/filter/drop-shadow.h:40
+msgid "Vertical offset, px"
+msgstr "Przesunięcie pionowe (px)"
+
+#: ../src/extension/internal/filter/drop-shadow.h:44
+#: ../src/extension/internal/filter/filter-file.cpp:146
+#: ../src/extension/internal/filter/filter.cpp:201
+#: ../src/extension/internal/filter/snow.h:38
+msgid "Filter"
+msgstr "Filtr"
+
+#: ../src/extension/internal/filter/drop-shadow.h:46
+msgid "Black, blurred drop shadow"
+msgstr "Czarny, rozmyty cień obrazka"
+
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/emboss.h:22
+msgid "Emboss effect"
+msgstr "Efekt wytłoczenia"
+
+#. ID -- should be unique
+#: ../src/extension/internal/filter/etched-glass.h:24
+msgid "Etched Glass"
+msgstr "Wytrawione szkło"
+
+#: ../src/extension/internal/filter/filter-file.cpp:32
+msgid "Bundled"
+msgstr "Zwinięte"
+
+#: ../src/extension/internal/filter/filter-file.cpp:33
+msgid "Personal"
+msgstr "Osobiste"
+
+#: ../src/extension/internal/filter/filter-file.cpp:44
+msgid "Null external module directory name.  Filters will not be loaded."
+msgstr "Pusta nazwa katalogu modułów zewnętrznych. Filtry nie zostaną wczytane"
+
+#. ID -- should be unique
+#: ../src/extension/internal/filter/fire.h:24
+msgid "Fire"
+msgstr "Ogień"
+
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/fire.h:25
+msgid "Artist on fire"
 msgstr ""
-"Inkscape zostanie uruchomiony z domyślnym menu.\n"
-"Nowe menu nie zostaną zapisane."
 
-#. sp_ui_menu_append_check_item_from_verb(m, view, _("_Menu"), _("Show or hide the menu bar"), "menu",
-#. checkitem_toggled, checkitem_update, 0);
-#: ../src/interface.cpp:838
-msgid "Commands Bar"
-msgstr "Pasek p_oleceń"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/frost.h:24
+msgid "Frost"
+msgstr "Szron"
 
-#: ../src/interface.cpp:838
-msgid "Show or hide the Commands bar (under the menu)"
-msgstr "Wyświetla lub ukrywa pasek poleceń (pod menu)"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/ink-bleed.h:24
+msgid "InkBleed"
+msgstr ""
 
-#: ../src/interface.cpp:840
-msgid "Tool Controls Bar"
-msgstr "Pasek _narzędzi"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/ink-bleed.h:25
+msgid "Artist Text"
+msgstr "Tekst artystyczny"
 
-#: ../src/interface.cpp:840
-msgid "Show or hide the Tool Controls bar"
-msgstr "Wyświetla lub ukrywa pasek narzędzi"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/jelly-bean.h:24
+msgid "Jelly Bean"
+msgstr "Galaretka fasolowa"
 
-#: ../src/interface.cpp:842
-msgid "_Toolbox"
-msgstr "_Przybornik"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/jelly-bean.h:25
+msgid "Mmmm, yummy."
+msgstr "Mniam, pyszne"
 
-#: ../src/interface.cpp:842
-msgid "Show or hide the main toolbox (on the left)"
-msgstr "Wyświetla lub ukrywa przybornik (po lewej stronie)"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/jigsaw-piece.h:24
+msgid "JigsawPiece"
+msgstr "Puzzel"
 
-#: ../src/interface.cpp:848
-msgid "_Palette"
-msgstr "Paletę _kolorów"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/jigsaw-piece.h:25
+msgid "It's a puzzle, no hints"
+msgstr "To jest puzzel, brak objaśnienia"
 
-#: ../src/interface.cpp:848
-msgid "Show or hide the color palette"
-msgstr "Wyświetla lub ukrywa paletę z kolorami"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/leopard-fur.h:24
+msgid "Leopard Fur"
+msgstr "Skóra leoparda"
 
-#: ../src/interface.cpp:850
-msgid "_Statusbar"
-msgstr "Pasek _stanu"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/leopard-fur.h:25
+msgid "Purrrr, quiet the kitty is sleeping"
+msgstr "Ciiii..., kotek śpi"
 
-#: ../src/interface.cpp:850
-msgid "Show or hide the statusbar (at the bottom of the window)"
-msgstr "Wyświetla lub ukrywa pasek statusu (na dole okna)"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/melt.h:22
+msgid "Melt"
+msgstr "Roztopienie"
 
-#: ../src/interface.cpp:904
-#, c-format
-msgid "Verb \"%s\" Unknown"
-msgstr "Polecenie \"%s\" Nieznane"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/melt.h:23
+msgid "Melt effect"
+msgstr "Efekt roztopienia"
 
-#. TRANSLATORS: #%s is the id of the group e.g. <g id="#g7">, not a number.
-#: ../src/interface.cpp:1023
-#, c-format
-msgid "Enter group #%s"
-msgstr "Wejdź do grupy #%s"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/metal.h:24
+msgid "Metal"
+msgstr "Metal"
 
-#: ../src/interface.cpp:1034
-msgid "Go to parent"
-msgstr "Przejdź do rodzica"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/metal.h:25
+msgid "Iron Man vector objects"
+msgstr "Obiekty wektorowe Iron Man"
 
-#: ../src/interface.cpp:1125 ../src/interface.cpp:1210
-#: ../src/ui/widget/selected-style.cpp:466
-msgid "Drop color"
-msgstr "Przeciągnij kolor"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/motion-blur.h:24
+msgid "Motion Blur"
+msgstr "Smuga"
 
-#: ../src/interface.cpp:1164
-msgid "Drop color on gradient"
-msgstr "Przeciągnij kolor na gradient"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/motion-blur.h:25
+msgid "Hmm, fast vectors"
+msgstr "Hmm, szybkie wektory"
 
-#: ../src/interface.cpp:1223
-msgid "Could not parse SVG data"
-msgstr "Nie można odczytać danych SVG"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/oil-slick.h:24
+msgid "OilSlick"
+msgstr "Plama oleju"
 
-#: ../src/interface.cpp:1265
-msgid "Drop SVG"
-msgstr "Upuść grafikę SVG"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/oil-slick.h:25
+msgid "Ooops!  Slippery!"
+msgstr "Uwaga! Ślisko!"
 
-#: ../src/interface.cpp:1323
-msgid "Drop bitmap image"
-msgstr "Upuść bitmapę"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/patterned-glass.h:24
+msgid "PatternedGlass"
+msgstr "Wzorzyste szkło"
 
-#: ../src/interface.cpp:1415
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">A file named \"%s\" already exists. Do "
-"you want to replace it?</span>\n"
-"\n"
-"The file already exists in \"%s\". Replacing it will overwrite its contents."
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Plik o nazwie \"%s\" już istnieje. Czy "
-"chcesz go zamienić?</span>\n"
-"\n"
-"W \"%s\" istnieje już plik o takiej nazwie. Zamiana spowoduje nadpisane jego "
-"zawartości."
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/patterned-glass.h:25
+msgid "Doesn't work, bug"
+msgstr "Nie działa - błąd."
 
-#: ../src/interface.cpp:1422
-msgid "Replace"
-msgstr "Zamień"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/ridged-border.h:24
+msgid "Ridged Border"
+msgstr "Prążkowana otoczka"
 
-#: ../src/io/sys.cpp:411 ../src/io/sys.cpp:419
-#, c-format
-msgid "Failed to read from child pipe (%s)"
-msgstr ""
+#. ID -- should be unique
+#: ../src/extension/internal/filter/ripple.h:24
+msgid "Ripple"
+msgstr "Fala"
 
-#: ../src/io/sys.cpp:443
-#, c-format
-msgid "Failed to change to directory '%s' (%s)"
-msgstr "Nie można zmienić katalogu  \"%s\" (%s)"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/ripple.h:25
+msgid "You're 80% water"
+msgstr "Jesteś w 80% wodą"
 
-#: ../src/io/sys.cpp:449 ../src/io/sys.cpp:675
-#, c-format
-msgid "Failed to execute child process (%s)"
-msgstr "Nie udało się wczytać żądanego pliku %s"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/roughen.h:24
+msgid "Roughen"
+msgstr "Chropowaty"
 
-#: ../src/io/sys.cpp:622
-#, c-format
-msgid "Invalid program name: %s"
-msgstr "Nieprawidłowa nazwa programu: %s"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/roughen.h:25
+msgid "Like Brad Pitt's stubble"
+msgstr "Jak kilkudniowy zarost Brada Pita"
 
-#: ../src/io/sys.cpp:632 ../src/io/sys.cpp:921
-#, c-format
-msgid "Invalid string in argument vector at %d: %s"
-msgstr "Nieprawidłowy ciąg znaków w argumencie wektora dla %d: %s"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/rubber-stamp.h:24
+msgid "RubberStamp"
+msgstr "Gumowy stempel"
 
-#: ../src/io/sys.cpp:643 ../src/io/sys.cpp:936
-#, c-format
-msgid "Invalid string in environment: %s"
-msgstr "Nieprawidłowy ciąg znaków w środowisku: %s"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/rubber-stamp.h:25
+msgid "Use this to forge your passport"
+msgstr "Użyj tego do sfałszowania paszportu"
 
-#: ../src/io/sys.cpp:704
-#, c-format
-msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr "Nie udało sie utworzyć ciągu komunikacyjnego z procesem pokrewnym (%s)"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/sepia.h:24
+msgid "Sepia"
+msgstr "Sepia"
 
-#: ../src/io/sys.cpp:917
-#, c-format
-msgid "Invalid working directory: %s"
-msgstr "Niewłaściwy katalog roboczy: %s"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/sepia.h:25
+msgid "Turn all the colors to be sepia tones"
+msgstr "Zmień wszystkie kolory na sepię"
 
-#: ../src/io/sys.cpp:985
-#, c-format
-msgid "Failed to execute helper program (%s)"
-msgstr "Nie udało się otworzyć programu pomocniczego (%s)"
+#: ../src/extension/internal/filter/snow.h:32
+msgid "Snow"
+msgstr "Śnnieg"
 
-#: ../src/jabber_whiteboard/invitation-confirm-dialog.cpp:26
-#: ../src/jabber_whiteboard/session-file-selector.cpp:24
-msgid "_Write session file:"
-msgstr "_Zapisz plik sesji:"
+#: ../src/extension/internal/filter/snow.h:34
+msgid "Drift Size"
+msgstr "Rozmiar zaspy"
 
-#: ../src/jabber_whiteboard/pedrogui.cpp:2630
-msgid "Shared SVG whiteboard tool."
-msgstr "Narzędzie do wspólnej pracy."
+#: ../src/extension/internal/filter/snow.h:40
+msgid "When the weather outside is frightening..."
+msgstr "Gdy na zwenątrz pogoda jest okropna..."
 
-#: ../src/jabber_whiteboard/pedrogui.cpp:2631
-msgid "Based on the Pedro XMPP client"
-msgstr "Stworzony w oparciu o aplikację Pedro XMPP"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/speckle.h:24
+msgid "Speckle"
+msgstr "Cętki"
 
-#: ../src/jabber_whiteboard/session-file-selector.cpp:60
-msgid "Select a location and filename"
-msgstr "Wybierz położenie i nazwę pliku"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/speckle.h:25
+msgid "You look cute with speckles"
+msgstr "Wyglądasz ślicznie z cętkami"
 
-#: ../src/jabber_whiteboard/session-file-selector.cpp:62
-msgid "Set filename"
-msgstr "Ustaw nazwę pliku"
+#. ID -- should be unique
+#: ../src/extension/internal/filter/zebra.h:24
+msgid "Zebra Stripes"
+msgstr "Zebra"
 
-#: ../src/jabber_whiteboard/session-manager.cpp:308
-msgid "<b>%1</b> has invited you to a whiteboard session."
-msgstr "<b>%1</b> zaprosił cię do wspólnej pracy na planszy"
+#. Name in the menus, should have a N_() around it for translation
+#: ../src/extension/internal/filter/zebra.h:25
+msgid "Paint your object with zebra stripes"
+msgstr "Wepełnia obiekt paskami zebry"
 
-#: ../src/jabber_whiteboard/session-manager.cpp:310
-msgid "Do you wish to accept <b>%1</b>'s whiteboard session invitation?"
-msgstr ""
-"Czy chcesz przyjąć zaproszenie do wspólnej pracy na planszy od <b>%1</b>?"
+#: ../src/extension/internal/gdkpixbuf-input.cpp:114
+#, c-format
+msgid "%s GDK pixbuf Input"
+msgstr "Źródło %s GDK pixbuf"
 
-#: ../src/jabber_whiteboard/session-manager.cpp:314
-msgid "Accept invitation"
-msgstr "Przyjmij zaproszenie"
+#: ../src/extension/internal/gimpgrad.cpp:274
+msgid "GIMP Gradients"
+msgstr "Gradienty GIMP-a"
 
-#: ../src/jabber_whiteboard/session-manager.cpp:315
-msgid "Decline invitation"
-msgstr "Odrzuć zaproszenie"
+#: ../src/extension/internal/gimpgrad.cpp:279
+msgid "GIMP Gradient (*.ggr)"
+msgstr "Gradient GIMP-a (*.ggr)"
 
-#: ../src/jabber_whiteboard/session-manager.cpp:370
-msgid "Inkboard session (%1 to %2)"
-msgstr "Sesja Inkboard (%1 do %2)"
+#: ../src/extension/internal/gimpgrad.cpp:280
+msgid "Gradients used in GIMP"
+msgstr "Gradienty używane w GIMP-ie"
 
-#: ../src/knot.cpp:430
-msgid "Node or handle drag canceled."
-msgstr "Anulowano przeciąganie węzła lub uchwytu"
+#: ../src/extension/internal/grid.cpp:192
+#: ../src/ui/widget/panel.cpp:122
+msgid "Grid"
+msgstr "Siatka"
 
-#: ../src/knotholder.cpp:132
-msgid "Change handle"
-msgstr "Zmień uchwyt"
+#: ../src/extension/internal/grid.cpp:194
+msgid "Line Width"
+msgstr "Szerokość linii"
 
-#: ../src/knotholder.cpp:207
-msgid "Move handle"
-msgstr "Przesuń uchwyt"
+#: ../src/extension/internal/grid.cpp:195
+msgid "Horizontal Spacing"
+msgstr "Odstępy poziome"
 
-#. TRANSLATORS: This refers to the pattern that's inside the object
-#: ../src/knotholder.cpp:228
-msgid "<b>Move</b> the pattern fill inside the object"
-msgstr "<b>Przesuń</b> deseń wypełnienia wewnątrz obiektu"
+#: ../src/extension/internal/grid.cpp:196
+msgid "Vertical Spacing"
+msgstr "Odstępy pionowe"
 
-#: ../src/knotholder.cpp:231
-msgid "<b>Scale</b> the pattern fill uniformly"
-msgstr "<b>Skalowanie</b> proporcjonalne desenia wypełnienia"
+#: ../src/extension/internal/grid.cpp:197
+msgid "Horizontal Offset"
+msgstr "Przesunięcie poziome"
 
-#: ../src/knotholder.cpp:234
-msgid "<b>Rotate</b> the pattern fill; with <b>Ctrl</b> to snap angle"
-msgstr "<b>Obracanie</b> wzoru wypełnienia; z <b>Ctrl</b> przyciąganie do kąta"
+#: ../src/extension/internal/grid.cpp:198
+msgid "Vertical Offset"
+msgstr "Przesunięcie pionowe"
 
-#: ../src/libgdl/gdl-dock-bar.c:108
-msgid "Master"
-msgstr "Element główny"
+#: ../src/extension/internal/grid.cpp:204
+msgid "Draw a path which is a grid"
+msgstr "Tworzy ścieżkę w postaci siatki"
 
-#: ../src/libgdl/gdl-dock-bar.c:109
-msgid "GdlDockMaster object which the dockbar widget is attached to"
-msgstr "Główny element dokowalny, do którego jest dołączony pasek dokowania"
+#: ../src/extension/internal/javafx-out.cpp:922
+msgid "JavaFX Output"
+msgstr "Zapis w formacie JavaFX"
 
-#: ../src/libgdl/gdl-dock-bar.c:116
-msgid "Dockbar style"
-msgstr "Styl paska elementów dokowalnych"
+#: ../src/extension/internal/javafx-out.cpp:927
+msgid "JavaFX (*.fx)"
+msgstr "JavaFX (*.fx)"
 
-#: ../src/libgdl/gdl-dock-bar.c:117
-msgid "Dockbar style to show items on it"
-msgstr "Styl paska elementów dokowalnych"
+#: ../src/extension/internal/javafx-out.cpp:928
+#, fuzzy
+msgid "JavaFX Raytracer File"
+msgstr "Plik Raytracer JavaFX"
 
-#: ../src/libgdl/gdl-dock.c:175 ../src/ui/dialog/inkscape-preferences.cpp:496
-#: ../src/ui/dialog/inkscape-preferences.cpp:517
-msgid "Floating"
-msgstr "Przestawne"
+#: ../src/extension/internal/latex-pstricks-out.cpp:105
+msgid "LaTeX Output"
+msgstr "Zapis w formacie LaTeX"
 
-#: ../src/libgdl/gdl-dock.c:176
-msgid "Whether the dock is floating in its own window"
-msgstr "Czy okno dokowalne może być przestawnym w swoim własnym oknie"
+#: ../src/extension/internal/latex-pstricks-out.cpp:110
+msgid "LaTeX With PSTricks macros (*.tex)"
+msgstr "LaTeX z makrami PSTricks (*.tex)"
 
-#: ../src/libgdl/gdl-dock.c:183 ../src/libgdl/gdl-dock-master.c:144
-msgid "Default title"
-msgstr "Domyślny tytuł"
+#: ../src/extension/internal/latex-pstricks-out.cpp:111
+msgid "LaTeX PSTricks File"
+msgstr "Plik LaTeX PSTricks"
 
-#: ../src/libgdl/gdl-dock.c:184
-msgid "Default title for the newly created floating docks"
-msgstr "Domyślna nazwa tworzonych okien dokowalnych"
+#: ../src/extension/internal/latex-pstricks.cpp:345
+msgid "LaTeX Print"
+msgstr "Drukowanie LaTeX"
 
-#: ../src/libgdl/gdl-dock.c:191
-msgid "Width for the dock when it's of floating type"
-msgstr "Szerokość okna dokowalnego w trybie przestawnym"
+#: ../src/extension/internal/odf.cpp:2415
+msgid "OpenDocument Drawing Output"
+msgstr "Zapis w formacie OpenDocument Drawing"
 
-#: ../src/libgdl/gdl-dock.c:199
-msgid "Height for the dock when it's of floating type"
-msgstr "Wysokość okna dokowalnego w trybie przestawnym"
+#: ../src/extension/internal/odf.cpp:2420
+msgid "OpenDocument drawing (*.odg)"
+msgstr "OpenDocument drawing (*.odg)"
 
-#: ../src/libgdl/gdl-dock.c:206
-msgid "Float X"
-msgstr "Współrzędna X"
+#: ../src/extension/internal/odf.cpp:2421
+msgid "OpenDocument drawing file"
+msgstr "Plik OpenDocument Drawing"
 
-#: ../src/libgdl/gdl-dock.c:207
-msgid "X coordinate for a floating dock"
-msgstr "Współrzędna X okna dokowalnego w trybie przestawnym"
+#: ../src/extension/internal/pdf-cairo.cpp:126
+#: ../src/extension/internal/ps.cpp:151
+msgid "Print Destination"
+msgstr "Przeznaczenie wydruku"
 
-#: ../src/libgdl/gdl-dock.c:214
-msgid "Float Y"
-msgstr "Współrzędna Y"
+#. Print properties frame
+#: ../src/extension/internal/pdf-cairo.cpp:141
+#: ../src/extension/internal/ps.cpp:166
+msgid "Print properties"
+msgstr "Właściwości wydruku"
 
-#: ../src/libgdl/gdl-dock.c:215
-msgid "Y coordinate for a floating dock"
-msgstr "Współrzędna Y okna dokowalnego w trybie przestawnym"
+#: ../src/extension/internal/pdf-cairo.cpp:148
+msgid "Print using PDF operators"
+msgstr "Drukuj używając operatorów PDF"
 
-#: ../src/libgdl/gdl-dock.c:499
-#, c-format
-msgid "Dock #%d"
-msgstr "Okno dokowalne #%d"
+#: ../src/extension/internal/pdf-cairo.cpp:150
+msgid "Use PDF vector operators. The resulting image is usually smaller in file size and can be arbitrarily scaled, but patterns will be lost."
+msgstr "Zastosuj wektorowe operatory PDF. Plik wynikowy jest zwykle mniejszy i można skalować zapisany w nim rysunek, ale zostaną utracone desenie"
 
-#: ../src/libgdl/gdl-dock-item.c:287
-msgid "Orientation"
-msgstr "Orientacja"
+#: ../src/extension/internal/pdf-cairo.cpp:155
+#: ../src/extension/internal/ps.cpp:180
+msgid "Print as bitmap"
+msgstr "Drukuj jako bitmapę"
 
-#: ../src/libgdl/gdl-dock-item.c:288
-msgid "Orientation of the docking item"
-msgstr "Orientacja elementu dokowalnego"
+#: ../src/extension/internal/pdf-cairo.cpp:157
+#: ../src/extension/internal/ps.cpp:182
+msgid "Print everything as bitmap. The resulting image is usually larger in file size and cannot be arbitrarily scaled without quality loss, but all objects will be rendered exactly as displayed."
+msgstr "Drukuj wszystko jako bitmapę. Plik wynikowy jest zwykle większy i nie można skalować zapisanego w nim rysunku, ale wszystkie obiekty zostaną zobrazowane dokładnie tak jak są wyświetlane na ekranie"
 
-#: ../src/libgdl/gdl-dock-item.c:303
-msgid "Resizable"
-msgstr "Zmieniające rozmiar"
+#: ../src/extension/internal/pdf-cairo.cpp:171
+#: ../src/extension/internal/ps.cpp:196
+msgid "Preferred resolution (dots per inch) of bitmap"
+msgstr "Preferowana rozdzielczość bitmapy (w dpi)"
 
-#: ../src/libgdl/gdl-dock-item.c:304
-msgid "If set, the dock item can be resized when docked in a panel"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, będzie można zmieniać rozmiar elementów "
-"dokowalnych"
+#: ../src/extension/internal/pdf-cairo.cpp:185
+#: ../src/extension/internal/ps.cpp:210
+msgid "Resolution:"
+msgstr "Rozdzielczość:"
 
-#: ../src/libgdl/gdl-dock-item.c:311
-msgid "Item behavior"
-msgstr "Zachowanie elementu"
+#. Print destination frame
+#: ../src/extension/internal/pdf-cairo.cpp:189
+#: ../src/extension/internal/ps.cpp:217
+msgid "Print destination"
+msgstr "Przeznaczenie wydruku"
 
-#: ../src/libgdl/gdl-dock-item.c:312
+#: ../src/extension/internal/pdf-cairo.cpp:195
+#: ../src/extension/internal/ps.cpp:223
 msgid ""
-"General behavior for the dock item (i.e. whether it can float, if it's "
-"locked, etc.)"
-msgstr "Zachowanie elementów dokowalnych (przestawne, zablokowane itp.)"
+"Printer name (as given by lpstat -p);\n"
+"leave empty to use the system default printer.\n"
+"Use '> filename' to print to file.\n"
+"Use '| prog arg...' to pipe to a program."
+msgstr ""
+"Nazwa drukarki (uzyskana poleceniem lpstat -p);\n"
+"pozostaw puste, aby użyć domyślnej drukarki systemowej.\n"
+"Użyj '> nazwa_pliku', aby wydrukować do pliku.\n"
+"Użyj '| nazwa_programu argumenty...', aby przesłać do programu"
 
-#: ../src/libgdl/gdl-dock-item.c:320 ../src/libgdl/gdl-dock-master.c:151
-msgid "Locked"
-msgstr "Zablokowany"
+#: ../src/extension/internal/pdf-cairo.cpp:1027
+msgid "PDF Print"
+msgstr "Drukuj PDF"
 
-#: ../src/libgdl/gdl-dock-item.c:321
-msgid ""
-"If set, the dock item cannot be dragged around and it doesn't show a grip"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, nie będzie można zmieniać położenia i "
-"rozmiaru elementów dokowalnych"
+#. TRANSLATORS: The following are document crop settings for PDF import
+#. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:56
+msgid "media box"
+msgstr "obszaru MediaBox (strona)"
 
-#: ../src/libgdl/gdl-dock-item.c:329
-msgid "Preferred width"
-msgstr "Preferowana szerokość"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:57
+msgid "crop box"
+msgstr "obszaru CropBox"
 
-#: ../src/libgdl/gdl-dock-item.c:330
-msgid "Preferred width for the dock item"
-msgstr "Preferowana szerokość elementów dokowalnych"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:58
+msgid "trim box"
+msgstr "obszaru TrimBox"
 
-#: ../src/libgdl/gdl-dock-item.c:336
-msgid "Preferred height"
-msgstr "Preferowana wysokość"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:59
+msgid "bleed box"
+msgstr "obszaru BleedBox"
 
-#: ../src/libgdl/gdl-dock-item.c:337
-msgid "Preferred height for the dock item"
-msgstr "Preferowana wysokość elementów dokowalnych"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:60
+msgid "art box"
+msgstr "obszaru ArtBox"
 
-#: ../src/libgdl/gdl-dock-item.c:616
-#, c-format
-msgid ""
-"You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or "
-"some other compound dock object."
-msgstr ""
-"Nie można dodać obiektu dokowalnego (%p typu %s) wewnątrz %s. Proszę użyć "
-"GdlDock lub innego złożonego obiektu dokowalnego."
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:72
+msgid "Select page:"
+msgstr "Wybierz stronę:"
 
-#: ../src/libgdl/gdl-dock-item.c:623
+#. Display total number of pages
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:86
 #, c-format
-msgid ""
-"Attempting to add a widget with type %s to a %s, but it can only contain one "
-"widget at a time; it already contains a widget of type %s"
-msgstr ""
-"Nastąpiła próba dodania elementu typu %s do %s, ale ten typ może zawierać "
-"tylko jeden element. Zawiera on już element typu %s."
+msgid "out of %i"
+msgstr "z %i"
 
-#: ../src/libgdl/gdl-dock-item.c:1345 ../src/libgdl/gdl-dock-item.c:1390
-#, c-format
-msgid "Unsupported docking strategy %s in dock object of type %s"
-msgstr "Nieobsługiwana metoda dokowania %s w obiekcie dokowalnym typu %s"
+#. Crop settings
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:92
+msgid "Clip to:"
+msgstr "Przytnij do:"
 
-#. UnLock menuitem
-#: ../src/libgdl/gdl-dock-item.c:1479
-msgid "UnLock"
-msgstr "Odblokuj"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:104
+msgid "Page settings"
+msgstr "Ustawienia strony:"
 
-#. Hide menuitem.
-#: ../src/libgdl/gdl-dock-item.c:1486
-msgid "Hide"
-msgstr "Ukryj"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:106
+msgid "Precision of approximating gradient meshes:"
+msgstr "Precyzja przybliżania siatek gradientu:"
 
-#. Lock menuitem
-#: ../src/libgdl/gdl-dock-item.c:1491
-msgid "Lock"
-msgstr "Zablokuj"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:107
+msgid "<b>Note</b>: setting the precision too high may result in a large SVG file and slow performance."
+msgstr "<b>Uwaga</b>: Ustawiając bardzo dużą dokładność można spowodować powstanie dużego pliku SVG i zmniejszyć wydajność"
 
-#: ../src/libgdl/gdl-dock-item.c:1717
-#, c-format
-msgid "Attempt to bind an unbound item %p"
-msgstr "Połącz element %p"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:112
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:381
+msgid "rough"
+msgstr "niewygładzony"
 
-#: ../src/libgdl/gdl-dock-item-grip.c:395
-msgid "Iconify"
-msgstr "Minimalizuj"
+#. Text options
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:116
+msgid "Text handling:"
+msgstr "Obsługa tekstu:"
 
-#: ../src/libgdl/gdl-dock-item-grip.c:395
-msgid "Iconify this dock"
-msgstr "Minimalizuj ten element"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:118
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:119
+msgid "Import text as text"
+msgstr "Importuj tekst jako tekst"
 
-#: ../src/libgdl/gdl-dock-item-grip.c:397
-msgid "Close"
-msgstr "Zamknij"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:122
+msgid "Embed images"
+msgstr "Osadź obrazy"
 
-#: ../src/libgdl/gdl-dock-item-grip.c:397
-msgid "Close this dock"
-msgstr "Zamknij ten element"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:125
+msgid "Import settings"
+msgstr "Ustawienia importu"
 
-#: ../src/libgdl/gdl-dock-item-grip.c:706
-#: ../src/libgdl/gdl-dock-tablabel.c:128
-msgid "Controlling dock item"
-msgstr "Zarządzanie elementem dokowalnym"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:242
+msgid "PDF Import Settings"
+msgstr "Ustawienia importu plików PDF"
 
-#: ../src/libgdl/gdl-dock-item-grip.c:707
-msgid "Dockitem which 'owns' this grip"
-msgstr "Element dokowalny posiadający uchwyt zmiany rozmiaru"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:382
+msgid "pdfinput|medium"
+msgstr "średni"
 
-#: ../src/libgdl/gdl-dock-master.c:145
-msgid "Default title for newly created floating docks"
-msgstr "Domyślna nazwa nowo tworzonych przestawnych elementów dokowalnych"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:383
+msgid "fine"
+msgstr "dokładny"
 
-#: ../src/libgdl/gdl-dock-master.c:152
-msgid ""
-"If is set to 1, all the dock items bound to the master are locked; if it's "
-"0, all are unlocked; -1 indicates inconsistency among the items"
-msgstr ""
-"Jeśli zostanie ustawiona wartość 1 wszystkie obiekty dokowalne połączone z "
-"obiektem głównym będą zablokowane. Jeśli 0, obiekty będą odblokowane, -1  "
-"elementy będą niespójne pomiędzy sobą."
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:384
+msgid "very fine"
+msgstr "bardzo dokładny"
+
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:739
+msgid "PDF Input"
+msgstr "Źródło PDF"
+
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:744
+msgid "Adobe PDF (*.pdf)"
+msgstr "Adobe PDF (*.pdf)"
 
-#: ../src/libgdl/gdl-dock-master.c:160 ../src/libgdl/gdl-switcher.c:707
-msgid "Switcher Style"
-msgstr "Styl przełącznika"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:745
+msgid "Adobe Portable Document Format"
+msgstr "Format Adobe Portable Document (PDF)"
 
-#: ../src/libgdl/gdl-dock-master.c:161 ../src/libgdl/gdl-switcher.c:708
-msgid "Switcher buttons style"
-msgstr "Styl przycisków przełączających"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:752
+msgid "AI Input"
+msgstr "Źródło AI"
 
-#: ../src/libgdl/gdl-dock-master.c:168
-msgid "Expand direction"
-msgstr "Kierunek rozszerzania"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:757
+msgid "Adobe Illustrator 9.0 and above (*.ai)"
+msgstr "Adobe Illustrator 9.0 lub nowszy (*.ai)"
 
-#: ../src/libgdl/gdl-dock-master.c:169
-msgid ""
-"Allow the master's dock items to expand their container dock objects in the "
-"given direction"
-msgstr ""
-"Pozwala głównym elementom dokowalnym na rozszerzenie ich obiektów "
-"dokowalnych w określonym kierunku"
+#: ../src/extension/internal/pdfinput/pdf-input.cpp:758
+msgid "Open files saved in Adobe Illustrator 9.0 and newer versions"
+msgstr "Otwórz pliki zapisane w programie Adobe Illustrator w wersji 9.0 lub nowszej"
 
-#: ../src/libgdl/gdl-dock-master.c:796
-#, c-format
-msgid ""
-"master %p: unable to add object %p[%s] to the hash.  There already is an "
-"item with that name (%p)."
-msgstr ""
-"Główny %p: nie można dodać obiektu %p[%s] do zbioru. Już istnieje element o "
-"nazwie (%p)."
+#: ../src/extension/internal/pov-out.cpp:676
+msgid "PovRay Output"
+msgstr "Zapis PovRay"
 
-#: ../src/libgdl/gdl-dock-master.c:969
-#, c-format
-msgid ""
-"The new dock controller %p is automatic.  Only manual dock objects should be "
-"named controller."
-msgstr ""
-"Nowy sterownik dokowania %p jest automatyczny. Tylko ręcznie dokowalne "
-"obiekty powinny nazywać się sterownikiem."
+#: ../src/extension/internal/pov-out.cpp:681
+msgid "PovRay (*.pov) (export splines)"
+msgstr "PovRay (*.pov) (eksport krzywych)"
 
-#: ../src/libgdl/gdl-dock-notebook.c:134
-#: ../src/ui/dialog/align-and-distribute.cpp:903
-#: ../src/ui/dialog/document-properties.cpp:134
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1364
-#: ../src/widgets/desktop-widget.cpp:1544
-msgid "Page"
-msgstr "Strona"
+#: ../src/extension/internal/pov-out.cpp:682
+msgid "PovRay Raytracer File"
+msgstr "Plik programu PovRay"
 
-#: ../src/libgdl/gdl-dock-notebook.c:135
-msgid "The index of the current page"
-msgstr "Indeks bieżącej strony"
+#: ../src/extension/internal/ps-out.cpp:82
+msgid "Postscript Output"
+msgstr "Zapis Postscript"
 
-#: ../src/libgdl/gdl-dock-object.c:120 ../src/ui/widget/page-sizer.cpp:198
-msgid "Name"
-msgstr "Nazwa"
+#: ../src/extension/internal/ps-out.cpp:89
+msgid "PostScript (old exporter via print) (*.ps)"
+msgstr "PostScript [stary eksporter przez druk] (*.ps)"
 
-#: ../src/libgdl/gdl-dock-object.c:121
-msgid "Unique name for identifying the dock object"
-msgstr "Unikalna nazwa identyfikująca obiekt dokowalny"
+#: ../src/extension/internal/ps.cpp:151
+msgid "Print Configuration"
+msgstr "Ustawienia wydruku"
 
-#: ../src/libgdl/gdl-dock-object.c:128
-msgid "Long name"
-msgstr "Długa nazwa"
+#: ../src/extension/internal/ps.cpp:173
+msgid "Print using PostScript operators"
+msgstr "Drukuj używając poleceń PostScriptu"
 
-#: ../src/libgdl/gdl-dock-object.c:129
-msgid "Human readable name for the dock object"
-msgstr "Zrozumiała dla wszystkich nazwa obiektu dokowalnego"
+#: ../src/extension/internal/ps.cpp:175
+msgid "Use PostScript vector operators. The resulting image is usually smaller in file size and can be arbitrarily scaled, but alpha transparency and patterns will be lost."
+msgstr "Zastosuj wektorowe polecenia PostScriptu. Plik wynikowy jest zwykle mniejszy i można skalować zapisany w nim rysunek, ale zostanie utracona przezroczystość i desenie"
 
-#: ../src/libgdl/gdl-dock-object.c:135
-msgid "Stock Icon"
-msgstr "Zbiór ikon"
+#: ../src/extension/internal/ps.cpp:1768
+msgid "Postscript Print"
+msgstr "Druk Postscript"
 
-#: ../src/libgdl/gdl-dock-object.c:136
-msgid "Stock icon for the dock object"
-msgstr "Zbiór ikon dla obiektów dokowalnych"
+#: ../src/extension/internal/svg.cpp:55
+msgid "SVG Input"
+msgstr "Źródło SVG"
 
-#: ../src/libgdl/gdl-dock-object.c:142
-msgid "Pixbuf Icon"
-msgstr "Ikona Pixbuf"
+#: ../src/extension/internal/svg.cpp:60
+msgid "Scalable Vector Graphic (*.svg)"
+msgstr "Scalable Vector Graphic (*.svg)"
 
-#: ../src/libgdl/gdl-dock-object.c:143
-msgid "Pixbuf icon for the dock object"
-msgstr "Ikona Pixbuf dla obiektu dokowalnego"
+#: ../src/extension/internal/svg.cpp:61
+msgid "Inkscape native file format and W3C standard"
+msgstr "Natywny format Inkscape i standard W3C"
 
-#: ../src/libgdl/gdl-dock-object.c:148
-msgid "Dock master"
-msgstr "Główny element dokowalny"
+#: ../src/extension/internal/svg.cpp:69
+msgid "SVG Output Inkscape"
+msgstr "Zapis w formacie SVG Inkscape"
 
-#: ../src/libgdl/gdl-dock-object.c:149
-msgid "Dock master this dock object is bound to"
-msgstr "Główny element dokowalny tego obiektu jest połączony z"
+#: ../src/extension/internal/svg.cpp:74
+msgid "Inkscape SVG (*.svg)"
+msgstr "Inkscape SVG (*.svg)"
 
-#: ../src/libgdl/gdl-dock-object.c:434
-#, c-format
-msgid ""
-"Call to gdl_dock_object_dock in a dock object %p (object type is %s) which "
-"hasn't implemented this method"
-msgstr ""
-"Wywołanie metody gdl_dock_object_dock w obiekcie %p (typ obiektu %s), który "
-"nie posiada implementacji tej metody"
+#: ../src/extension/internal/svg.cpp:75
+msgid "SVG format with Inkscape extensions"
+msgstr "Format SVG z rozszerzeniami Inkscape"
 
-#: ../src/libgdl/gdl-dock-object.c:563
-#, c-format
-msgid ""
-"Dock operation requested in a non-bound object %p. The application might "
-"crash"
-msgstr ""
-"Zażądano wykonania operacji dokowania w niepołączonym obiekcie %p. "
-"Kontynuowanie może spowodować zamknięcie aplikacji."
+#: ../src/extension/internal/svg.cpp:83
+msgid "SVG Output"
+msgstr "Zapis w formacie SVG"
 
-#: ../src/libgdl/gdl-dock-object.c:570
-#, c-format
-msgid "Cannot dock %p to %p because they belong to different masters"
-msgstr ""
-"Nie można zadokować %p do %p ponieważ jest ono połączone i innym elementem "
-"głównym"
+#: ../src/extension/internal/svg.cpp:88
+msgid "Plain SVG (*.svg)"
+msgstr "Czysty format SVG (*.svg)"
 
-#: ../src/libgdl/gdl-dock-object.c:612
-#, c-format
-msgid ""
-"Attempt to bind to %p an already bound dock object %p (current master: %p)"
-msgstr ""
-"Próba połączenia z %p już połączonego obiektu dokowalnego %p Aktualny "
-"element główny: %p)"
+#: ../src/extension/internal/svg.cpp:89
+msgid "Scalable Vector Graphics format as defined by the W3C"
+msgstr "Format Scalable Vector Graphics zgodny z definicją W3C"
 
-#: ../src/libgdl/gdl-dock-paned.c:132
-msgid "Position"
-msgstr "Lokalizacja"
+#: ../src/extension/internal/svgz.cpp:54
+msgid "SVG file format compressed with GZip"
+msgstr "Format SVG skompresowany programem GZip"
 
-#: ../src/libgdl/gdl-dock-paned.c:133
-msgid "Position of the divider in pixels"
-msgstr "Położenie przegrody (w px)"
+#: ../src/extension/internal/svgz.cpp:81
+msgid "Compressed plain SVG (*.svgz)"
+msgstr "Skompresowany czysty SVG (*.svgz)"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:143
-msgid "Sticky"
-msgstr "Przyklejone"
+#: ../src/extension/internal/svgz.cpp:82
+msgid "Scalable Vector Graphics format compressed with GZip"
+msgstr "Format Scalable Vector Graphics skompresowany programem GZip"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:144
-msgid ""
-"Whether the placeholder will stick to its host or move up the hierarchy when "
-"the host is redocked"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, okienko zadań będzie połączone ze swoim "
-"miejscem dokowania i podczas ponownego dokowania będzie dokowane w tym "
-"miejscu lub przesuwane w górę hierarchii panelu dokowania"
+#: ../src/extension/internal/win32.cpp:485
+msgid "Windows 32-bit Print"
+msgstr "Windows 32-bit Print"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:151
-msgid "Host"
-msgstr "Host"
+#: ../src/extension/internal/wpg-input.cpp:102
+msgid "WPG Input"
+msgstr "Źródło WPG"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:152
-msgid "The dock object this placeholder is attached to"
-msgstr "Dokowalny obiekt tego miejsca dokowania jest dołączony do niego"
+#: ../src/extension/internal/wpg-input.cpp:107
+msgid "WordPerfect Graphics (*.wpg)"
+msgstr "WordPerfect Graphics (*.wpg)"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:159
-msgid "Next placement"
-msgstr "Następne położenie"
+#: ../src/extension/internal/wpg-input.cpp:108
+msgid "Vector graphics format used by Corel WordPerfect"
+msgstr "Format grafiki wektorowej używany przez Corel WordPerfect"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:160
-msgid ""
-"The position an item will be docked to our host if a request is made to dock "
-"to us"
-msgstr ""
-"Jeśli zażądano zadokowania w panelu dokowania, pozycja elementu zostanie "
-"zapamiętana"
+#: ../src/extension/prefdialog.cpp:236
+#, fuzzy
+msgid "Is the effect previewed live on canvas?"
+msgstr "Kontroluje w obszarze roboczym, czy ustawienia efektów są renderowane na bieżąco"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:170
-msgid "Width for the widget when it's attached to the placeholder"
-msgstr "Szerokość elementu załączanego do miejsca dokowania"
+#: ../src/extension/prefdialog.cpp:236
+msgid "Live preview"
+msgstr "Stały podgląd"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:178
-msgid "Height for the widget when it's attached to the placeholder"
-msgstr "Wysokość elementu załączanego do miejsca dokowania"
+#. We can't call sp_ui_error_dialog because we may be
+#. running from the console, in which case calling sp_ui
+#. routines will cause a segfault.  See bug 1000350 - bryce
+#. sp_ui_error_dialog(_("Format autodetect failed. The file is being opened as SVG."));
+#: ../src/extension/system.cpp:103
+msgid "Format autodetect failed. The file is being opened as SVG."
+msgstr "Nie udało się automatycznie rozpoznać formatu. Plik jest otwierany jako SVG"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:184
-msgid "Floating Toplevel"
-msgstr "Najwyższy poziom elementów w trybie przestawnym"
+#. TRANSLATORS: default.svg is localizable - this is the name of the default document
+#. template. This way you can localize the default pagesize, translate the name of
+#. the default layer, etc. If you wish to localize this file, please create a
+#. localized share/templates/default.xx.svg file, where xx is your language code.
+#: ../src/file.cpp:142
+msgid "default.svg"
+msgstr "default.svg"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:185
-msgid "Whether the placeholder is standing in for a floating toplevel dock"
-msgstr ""
-"Czy miejsce dokowania jest stałe dla przestawnych obiektów dokowalnych "
-"najwyższego poziomu"
+#: ../src/file.cpp:228
+#: ../src/file.cpp:1007
+#, c-format
+msgid "Failed to load the requested file %s"
+msgstr "Nie udało się wczytać żądanego pliku %s"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:191
-msgid "X-Coordinate"
-msgstr "Współrzędna X"
+#: ../src/file.cpp:253
+msgid "Document not saved yet.  Cannot revert."
+msgstr "Dokument nie został jeszcze zapisany. Nie można go przywrócić."
 
-#: ../src/libgdl/gdl-dock-placeholder.c:192
-msgid "X coordinate for dock when floating"
-msgstr "Współrzędna X okna dokowalnego w trybie przestawnym"
+#: ../src/file.cpp:259
+#, c-format
+msgid "Changes will be lost!  Are you sure you want to reload document %s?"
+msgstr "Zmiany zostaną utracone! Czy na pewno wczytać ponownie dokument %s?"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:198
-msgid "Y-Coordinate"
-msgstr "Współrzędna Y"
+#: ../src/file.cpp:288
+msgid "Document reverted."
+msgstr "Dokument został przywrócony"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:199
-msgid "Y coordinate for dock when floating"
-msgstr "Współrzędna Y okna dokowalnego w trybie przestawnym"
+#: ../src/file.cpp:290
+msgid "Document not reverted."
+msgstr "Dokumentu nie przywrócono"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:494
-msgid "Attempt to dock a dock object to an unbound placeholder"
-msgstr "Próba zadokowania obiektu do niepołączonego miejsca dokowania"
+#: ../src/file.cpp:440
+msgid "Select file to open"
+msgstr "Wybierz plik do otworzenia"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:618
+#: ../src/file.cpp:527
+msgid "Vacuum &lt;defs&gt;"
+msgstr "Wyczyść &lt;defs&gt;"
+
+#: ../src/file.cpp:532
 #, c-format
-msgid "Got a detach signal from an object (%p) who is not our host %p"
-msgstr ""
-"Otrzymano sygnał odłączenia od obiektu (%p), który nie jest naszym serwerem %"
-"p"
+msgid "Removed <b>%i</b> unused definition in &lt;defs&gt;."
+msgid_plural "Removed <b>%i</b> unused definitions in &lt;defs&gt;."
+msgstr[0] "Usunięto <b>%i</b> nieużywaną definicję w &lt;defs&gt;"
+msgstr[1] "Usunięto <b>%i</b> nieużywane definicje w &lt;defs&gt;"
+msgstr[2] "Usunięto <b>%i</b> nieużywanych definicji w &lt;defs&gt;"
 
-#: ../src/libgdl/gdl-dock-placeholder.c:643
+#: ../src/file.cpp:537
+msgid "No unused definitions in &lt;defs&gt;."
+msgstr "Nie ma nieużywanych definicji w &lt;defs&gt;"
+
+#: ../src/file.cpp:566
 #, c-format
-msgid ""
-"Something weird happened while getting the child placement for %p from "
-"parent %p"
-msgstr ""
-"Stało się coś dziwnego podczas otwierania okna dokowalnego dla %p "
-"pochodzącego z %p"
+msgid "No Inkscape extension found to save document (%s).  This may have been caused by an unknown filename extension."
+msgstr "Nie znaleziono rozszerzenia programu Inkscape obsługującego zapis dokumentu (%s). Może być to spowodowane nieznanym rozszerzeniem pliku."
 
-#: ../src/libgdl/gdl-dock-tablabel.c:129
-msgid "Dockitem which 'owns' this tablabel"
-msgstr "Okno dokowalne, które posiada tę etykietę karty"
+#: ../src/file.cpp:567
+#: ../src/file.cpp:575
+msgid "Document not saved."
+msgstr "Dokument nie został zapisany"
 
-#: ../src/libnrtype/FontFactory.cpp:774
-msgid "Ignoring font without family that will crash Pango"
-msgstr ""
-"Pomijanie czcionki bez rodziny, która może powodować błędy w bibliotece Pango"
+#: ../src/file.cpp:574
+#, c-format
+msgid "File %s could not be saved."
+msgstr "Plik %s nie mógł zostać zapisany"
 
-#. {constant defined in effect.h, N_("name of your effect"), "name of your effect in SVG"}
-#: ../src/live_effects/effect.cpp:68
-#, fuzzy
-msgid "Bend"
-msgstr "Mieszanie"
+#: ../src/file.cpp:585
+msgid "Document saved."
+msgstr "Dokument został zapisany"
 
-#: ../src/live_effects/effect.cpp:69
-msgid "Pattern Along Path"
-msgstr "Deseń wzdłuż ścieżki"
+#: ../src/file.cpp:726
+#: ../src/file.cpp:1132
+#: ../src/file.cpp:1249
+#, c-format
+msgid "drawing%s"
+msgstr "Rysunek%s"
 
-#. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG
-#: ../src/live_effects/effect.cpp:70
-msgid "Sketch"
-msgstr ""
+#: ../src/file.cpp:732
+#, c-format
+msgid "drawing-%d%s"
+msgstr "Rysunek-%d%s"
 
-#: ../src/live_effects/effect.cpp:71
-msgid "VonKoch"
-msgstr ""
+#: ../src/file.cpp:751
+msgid "Select file to save a copy to"
+msgstr "Wybierz plik do zapisania kopii do"
 
-#: ../src/live_effects/effect.cpp:72
-msgid "Knot"
-msgstr ""
+#: ../src/file.cpp:753
+msgid "Select file to save to"
+msgstr "Wybierz plik do zapisania w"
 
-#: ../src/live_effects/effect.cpp:74
-msgid "doEffect stack test"
-msgstr "Wykonaj test efektu stosu"
+#: ../src/file.cpp:832
+msgid "No changes need to be saved."
+msgstr "Brak zmian do zapisania"
 
-#: ../src/live_effects/effect.cpp:76
-msgid "Gears"
-msgstr "Koła zębate"
+#: ../src/file.cpp:849
+msgid "Saving document..."
+msgstr "Zapisywanie dokumentu..."
 
-#: ../src/live_effects/effect.cpp:77
-msgid "Stitch Sub-Paths"
-msgstr "Zszywanie ścieżek podrzędnych"
+#: ../src/file.cpp:1004
+msgid "Import"
+msgstr "Importuj"
 
-#: ../src/live_effects/effect.cpp:78
-msgid "Circle (center+radius)"
-msgstr "Okrąg (środek+kąt"
+#: ../src/file.cpp:1036
+msgid "Select file to import"
+msgstr "Wybierz plik do importu"
 
-#: ../src/live_effects/effect.cpp:79
-msgid "Perspective path"
-msgstr "Ścieżka perspektywy"
+#: ../src/file.cpp:1154
+#: ../src/file.cpp:1264
+msgid "Select file to export to"
+msgstr "Wybierz plik do eksportu do"
 
-#: ../src/live_effects/effect.cpp:80
-msgid "Spiro spline"
-msgstr ""
+#: ../src/file.cpp:1291
+#, c-format
+msgid "Error saving a temporary copy"
+msgstr "Błąd podczas zapisu kopi tymczasowej"
 
-#: ../src/live_effects/effect.cpp:81
-#, fuzzy
-msgid "Lattice Deformation"
-msgstr "Informacja o użyciu pamięci"
+#: ../src/file.cpp:1311
+msgid "Open Clip Art Login"
+msgstr "Login do galerii klipartów"
 
-#: ../src/live_effects/effect.cpp:82
-#, fuzzy
-msgid "Envelope Deformation"
-msgstr "Informacje"
+#: ../src/file.cpp:1332
+#, c-format
+msgid "Error exporting the document. Verify if the server name, username and password are correct, if the server has support for webdav and verify if you didn't forget to choose a license."
+msgstr "Błąd podczas eksportu dokumentu. Proszę sprawdzić poprawność nazwy serwera, nazwy użytkownika i hasła. Jeśli serwer obsługuje protokół WebDAV proszę sprawdzić, czy wybrano licencję."
 
-#: ../src/live_effects/effect.cpp:83
-#, fuzzy
-msgid "Construct grid"
-msgstr "Wyśrodkowanie"
+#: ../src/file.cpp:1353
+msgid "Document exported..."
+msgstr "Dokument wyeksportowano..."
 
-#: ../src/live_effects/effect.cpp:84
-#, fuzzy
-msgid "Perpendicular bisector"
-msgstr "(prostopadle do konturu, \"pędzel\")"
+#: ../src/file.cpp:1381
+#: ../src/verbs.cpp:2249
+msgid "Import From Open Clip Art Library"
+msgstr "Importuj z galerii klipartów"
 
-#: ../src/live_effects/effect.cpp:85
-#, fuzzy
-msgid "Tangent to curve"
-msgstr "Przeciągnij krzywą"
+#: ../src/filter-enums.cpp:20
+msgid "Blend"
+msgstr "Mieszanie"
 
-#: ../src/live_effects/effect.cpp:86
-#, fuzzy
-msgid "Mirror reflection"
-msgstr "<b>PM</b>: odbicie"
+#: ../src/filter-enums.cpp:21
+msgid "Color Matrix"
+msgstr "Macierz koloru"
 
-#: ../src/live_effects/effect.cpp:178
-msgid "Create and apply path effect"
-msgstr "Tworzy i zastosowuje efekt ścieżki"
+#: ../src/filter-enums.cpp:22
+msgid "Component Transfer"
+msgstr "Transfer komponentu"
 
-#: ../src/live_effects/effect.cpp:189
-msgid "Is visible?"
-msgstr ""
+#: ../src/filter-enums.cpp:23
+msgid "Composite"
+msgstr "Składanie"
 
-#: ../src/live_effects/effect.cpp:189
-msgid ""
-"If unchecked, the effect remains applied to the object but is temporarily "
-"disabled on canvas"
-msgstr ""
+#: ../src/filter-enums.cpp:24
+msgid "Convolve Matrix"
+msgstr "Macierz splotu"
 
-#: ../src/live_effects/effect.cpp:207
-msgid "No effect"
-msgstr "Brak efektu"
+#: ../src/filter-enums.cpp:25
+msgid "Diffuse Lighting"
+msgstr "Oświetlenie rozproszone"
 
-#: ../src/live_effects/effect.cpp:254
-#, c-format
-msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks"
-msgstr ""
+#: ../src/filter-enums.cpp:26
+msgid "Displacement Map"
+msgstr "Mapa przemieszczenia"
 
-#: ../src/live_effects/effect.cpp:294
-msgid "An exception occurred during execution of the Path Effect."
-msgstr "Wystąpił błąd podczas wykonywania efektu ścieżki"
+#: ../src/filter-enums.cpp:27
+msgid "Flood"
+msgstr "Wypełnienie"
 
-#: ../src/live_effects/effect.cpp:512
-#, c-format
-msgid "Editing parameter <b>%s</b>."
-msgstr "Edytowanie parametru <b>%s</b>"
+#: ../src/filter-enums.cpp:29
+#: ../src/selection-describer.cpp:53
+msgid "Image"
+msgstr "Obrazek"
 
-#: ../src/live_effects/effect.cpp:517
-msgid "None of the applied path effect's parameters can be edited on-canvas."
-msgstr ""
-"Nie ma zastosowanych parametrów efektu ścieżki, które można by edytować w "
-"obszarze roboczym"
+#: ../src/filter-enums.cpp:30
+msgid "Merge"
+msgstr "Scalanie"
 
-#: ../src/live_effects/lpe-bendpath.cpp:57
-msgid "Bend path"
-msgstr "Ścieżka zagięcia"
+#: ../src/filter-enums.cpp:31
+msgid "Morphology"
+msgstr "Morfologia"
 
-#: ../src/live_effects/lpe-bendpath.cpp:57
-msgid "Path along which to bend the original path"
-msgstr "Ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
+#: ../src/filter-enums.cpp:33
+msgid "Specular Lighting"
+msgstr "Oświetlenie odbite"
 
-#: ../src/live_effects/lpe-bendpath.cpp:58
-msgid "Width of the path"
-msgstr "Szerokość ścieżki"
+#: ../src/filter-enums.cpp:34
+msgid "Tile"
+msgstr "Kafelkowanie"
 
-#: ../src/live_effects/lpe-bendpath.cpp:59
-#: ../src/live_effects/lpe-patternalongpath.cpp:65
-msgid "Width in units of length"
-msgstr "Szerokość w jednostkach długości"
+#: ../src/filter-enums.cpp:35
+#: ../src/filter-enums.cpp:118
+msgid "Turbulence"
+msgstr "Turbulencja"
 
-#: ../src/live_effects/lpe-bendpath.cpp:59
-msgid "Scale the width of the path in units of its length"
-msgstr "Skaluje szerokość ścieżki w jednostkach jej długości"
+#: ../src/filter-enums.cpp:40
+msgid "Source Graphic"
+msgstr "Źródło grafiki"
 
-#: ../src/live_effects/lpe-bendpath.cpp:60
-msgid "Original path is vertical"
-msgstr "Oryginalna ścieżka o orientacji pionowej"
+#: ../src/filter-enums.cpp:41
+msgid "Source Alpha"
+msgstr "Źródło krycia"
 
-#: ../src/live_effects/lpe-bendpath.cpp:60
-msgid "Rotates the original 90 degrees, before bending it along the bend path"
-msgstr "Przed zagięciem ścieżki wzdłuż ścieżki zagięcia obraca ścieżkę o 90°"
+#: ../src/filter-enums.cpp:42
+msgid "Background Image"
+msgstr "Obrazek tła"
 
-#: ../src/live_effects/lpe-constructgrid.cpp:28
-#, fuzzy
-msgid "Size X"
-msgstr "Rozmiar"
+#: ../src/filter-enums.cpp:43
+msgid "Background Alpha"
+msgstr "Krycie tła"
 
-#: ../src/live_effects/lpe-constructgrid.cpp:28
-#, fuzzy
-msgid "The size of the grid in X direction."
-msgstr "Stan punktu zbiegu w orientacji X"
+#: ../src/filter-enums.cpp:44
+msgid "Fill Paint"
+msgstr "Wypełnienie"
 
-#: ../src/live_effects/lpe-constructgrid.cpp:29
-#, fuzzy
-msgid "Size Y"
-msgstr "Rozmiar"
+#: ../src/filter-enums.cpp:45
+msgid "Stroke Paint"
+msgstr "Kontur"
 
-#: ../src/live_effects/lpe-constructgrid.cpp:29
-#, fuzzy
-msgid "The size of the grid in Y direction."
-msgstr "Stan punktu zbiegu w orientacji Y"
+#. TRANSLATORS: This is a context string, only put the word "Normal" in your translation
+#: ../src/filter-enums.cpp:52
+msgid "filterBlendMode|Normal"
+msgstr "Normalny"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:42
-#, fuzzy
-msgid "Stitch path"
-msgstr "Zszywanie ścieżek podrzędnych"
+#: ../src/filter-enums.cpp:53
+msgid "Multiply"
+msgstr "Zwielokrotnij"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:42
-msgid "The path that will be used as stitch."
-msgstr "Ścieżka, która będzie użyta jako zszywacz"
+#: ../src/filter-enums.cpp:54
+msgid "Screen"
+msgstr "Przesiej"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:43
-msgid "Number of paths"
-msgstr "Liczba ścieżek"
+#: ../src/filter-enums.cpp:55
+msgid "Darken"
+msgstr "Przyciemnij"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:43
-msgid "The number of paths that will be generated."
-msgstr "Liczba ścieżek jaka zostanie wygenerowana"
+#: ../src/filter-enums.cpp:56
+msgid "Lighten"
+msgstr "Rozjaśnij"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:44
-msgid "Start edge variance"
-msgstr "Krawędź początkowa wariancji"
+#: ../src/filter-enums.cpp:62
+msgid "Matrix"
+msgstr "Macierz"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:44
-msgid ""
-"The amount of random jitter to move the start points of the stitches inside "
-"& outside the guide path"
-msgstr ""
-"Ilość losowo zmieniających się wahnięć, aby przesunąć punkty początkowe "
-"zszywaczy do wewnątrz i na zewnątrz ścieżki prowadnicy"
+#: ../src/filter-enums.cpp:63
+msgid "Saturate"
+msgstr "Nasycenie"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:45
-msgid "Start spacing variance"
-msgstr "Początek odstępu wariancji"
+#: ../src/filter-enums.cpp:64
+msgid "Hue Rotate"
+msgstr "Zmiana odcienia"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:45
-msgid ""
-"The amount of random shifting to move the start points of the stitches back "
-"& forth along the guide path"
-msgstr ""
-"Ilość losowo zmieniających się przesunięć, aby przesunąć punkty początkowe "
-"zszywaczy do przodu i do tyłu wzdłuż ścieżki prowadnicy"
+#: ../src/filter-enums.cpp:65
+msgid "Luminance to Alpha"
+msgstr "Luminancja dla krycia"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:46
-msgid "End edge variance"
-msgstr "Krawędź końcowa wariancji"
+#. File
+#: ../src/filter-enums.cpp:71
+#: ../src/verbs.cpp:2226
+msgid "Default"
+msgstr "Domyślny"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:46
-msgid ""
-"The amount of randomness that moves the end points of the stitches inside & "
-"outside the guide path"
-msgstr ""
-"Ilość przypadków, które przesuwają punkty końcowe zszywaczy do wewnątrz i na "
-"zewnątrz ścieżki prowadnicy"
+#: ../src/filter-enums.cpp:72
+msgid "Over"
+msgstr "Nad"
+
+#: ../src/filter-enums.cpp:73
+msgid "In"
+msgstr "W"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:47
-msgid "End spacing variance"
-msgstr "Koniec odstępu wariancji"
+#: ../src/filter-enums.cpp:74
+msgid "Out"
+msgstr "Poza"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:47
-msgid ""
-"The amount of random shifting to move the end points of the stitches back & "
-"forth along the guide path"
-msgstr ""
-"Ilość losowo zmieniających się przesunięć, aby przesunąć punkty końcowe "
-"zszywaczy do przodu i do tyłu wzdłuż ścieżki prowadnicy"
+#: ../src/filter-enums.cpp:75
+msgid "Atop"
+msgstr "Na górze"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:48
-msgid "Scale width"
-msgstr "Skala szerokości"
+#: ../src/filter-enums.cpp:76
+msgid "XOR"
+msgstr "XOR"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:48
-#, fuzzy
-msgid "Scale the width of the stitch path"
-msgstr "Skala szerokości ścieżki konturu"
+#: ../src/filter-enums.cpp:77
+msgid "Arithmetic"
+msgstr "Arytmetyczny"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:49
-msgid "Scale width relative to length"
-msgstr "Skaluj szerokość relatywnie do długości"
+#: ../src/filter-enums.cpp:83
+msgid "Identity"
+msgstr "Tożsamość"
 
-#: ../src/live_effects/lpe-curvestitch.cpp:49
-msgid "Scale the width of the stitch path relative to its length"
-msgstr "Skaluje szerokość ścieżki zszywania relatywnie do długości"
+#: ../src/filter-enums.cpp:84
+msgid "Table"
+msgstr "Tabela"
 
-#: ../src/live_effects/lpe-envelope.cpp:36
-#, fuzzy
-msgid "Top bend path"
-msgstr "Ścieżka zagięcia"
+#: ../src/filter-enums.cpp:85
+msgid "Discrete"
+msgstr "Dyskretny"
 
-#: ../src/live_effects/lpe-envelope.cpp:36
-#, fuzzy
-msgid "Top path along which to bend the original path"
-msgstr "Ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
+#: ../src/filter-enums.cpp:86
+msgid "Linear"
+msgstr "Liniowy"
 
-#: ../src/live_effects/lpe-envelope.cpp:37
-#, fuzzy
-msgid "Right bend path"
-msgstr "Ścieżka zagięcia"
+#: ../src/filter-enums.cpp:87
+msgid "Gamma"
+msgstr "Gamma"
 
-#: ../src/live_effects/lpe-envelope.cpp:37
-#, fuzzy
-msgid "Right path along which to bend the original path"
-msgstr "Ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
+#: ../src/filter-enums.cpp:93
+#: ../src/selection-chemistry.cpp:311
+#: ../src/widgets/gradient-selector.cpp:134
+msgid "Duplicate"
+msgstr "Powiel"
 
-#: ../src/live_effects/lpe-envelope.cpp:38
-#, fuzzy
-msgid "Bottom bend path"
-msgstr "Ścieżka zagięcia"
+#: ../src/filter-enums.cpp:94
+msgid "Wrap"
+msgstr "Zawijaj"
 
-#: ../src/live_effects/lpe-envelope.cpp:38
-#, fuzzy
-msgid "Bottom path along which to bend the original path"
-msgstr "Ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
+#: ../src/filter-enums.cpp:101
+#: ../src/flood-context.cpp:271
+#: ../src/widgets/sp-color-icc-selector.cpp:233
+#: ../src/widgets/sp-color-scales.cpp:398
+#: ../src/widgets/sp-color-scales.cpp:399
+msgid "Red"
+msgstr "Czerwony"
 
-#: ../src/live_effects/lpe-envelope.cpp:39
-#, fuzzy
-msgid "Left bend path"
-msgstr "Ścieżka zagięcia"
+#: ../src/filter-enums.cpp:102
+#: ../src/flood-context.cpp:272
+#: ../src/widgets/sp-color-icc-selector.cpp:233
+#: ../src/widgets/sp-color-scales.cpp:401
+#: ../src/widgets/sp-color-scales.cpp:402
+msgid "Green"
+msgstr "Zielony"
 
-#: ../src/live_effects/lpe-envelope.cpp:39
-#, fuzzy
-msgid "Left path along which to bend the original path"
-msgstr "Ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
+#: ../src/filter-enums.cpp:103
+#: ../src/flood-context.cpp:273
+#: ../src/widgets/sp-color-icc-selector.cpp:233
+#: ../src/widgets/sp-color-scales.cpp:404
+#: ../src/widgets/sp-color-scales.cpp:405
+msgid "Blue"
+msgstr "Niebieski"
 
-#: ../src/live_effects/lpe-envelope.cpp:40
-#, fuzzy
-msgid "Enable left & right paths"
-msgstr "Usuń istniejące ścieżki"
+#: ../src/filter-enums.cpp:104
+#: ../src/flood-context.cpp:277
+msgid "Alpha"
+msgstr "Krycie"
 
-#: ../src/live_effects/lpe-envelope.cpp:40
-msgid "Enable the left and right deformation paths"
-msgstr ""
+#: ../src/filter-enums.cpp:110
+msgid "Erode"
+msgstr "Erozja"
 
-#: ../src/live_effects/lpe-envelope.cpp:41
-#, fuzzy
-msgid "Enable top & bottom paths"
-msgstr "Przyciągaj do ści_eżek"
+#: ../src/filter-enums.cpp:111
+msgid "Dilate"
+msgstr "Rozszerzanie"
 
-#: ../src/live_effects/lpe-envelope.cpp:41
-#, fuzzy
-msgid "Enable the top and bottom deformation paths"
-msgstr "Powiel deseń przed deformacją"
+#: ../src/filter-enums.cpp:117
+msgid "Fractal Noise"
+msgstr "Szum fraktalny"
 
-#: ../src/live_effects/lpe-gears.cpp:212
-msgid "Teeth"
-msgstr "Zęby"
+#: ../src/filter-enums.cpp:124
+msgid "Distant Light"
+msgstr "Odległe światło"
 
-#: ../src/live_effects/lpe-gears.cpp:212
-msgid "The number of teeth"
-msgstr "Liczba zębów w kole"
+#: ../src/filter-enums.cpp:125
+msgid "Point Light"
+msgstr "Światło punktowe"
 
-#: ../src/live_effects/lpe-gears.cpp:213
-msgid "Phi"
-msgstr "Podziałka zęba (px)"
+#: ../src/filter-enums.cpp:126
+msgid "Spot Light"
+msgstr "Reflektor"
 
-#: ../src/live_effects/lpe-gears.cpp:213
-msgid ""
-"Tooth pressure angle (typically 20-25 deg).  The ratio of teeth not in "
-"contact."
-msgstr ""
-"Kąt przyporu zęba (zazwyczaj 20-25 stopni). Część zęba, która nie ma "
-"kontaktu."
+#: ../src/flood-context.cpp:270
+msgid "Visible Colors"
+msgstr "Widoczne kolory"
 
-#. initialise your parameters here:
-#: ../src/live_effects/lpe-knot.cpp:27
-#, fuzzy
-msgid "Gap width"
-msgstr "Jednakowa szerokość"
+#: ../src/flood-context.cpp:289
+#: ../src/ui/dialog/inkscape-preferences.cpp:971
+msgid "Small"
+msgstr "Małe"
 
-#: ../src/live_effects/lpe-knot.cpp:27
-#, fuzzy
-msgid "The width of the gap in the path where it self-intersects"
-msgstr "Skaluje szerokość ścieżki zszywania relatywnie do długości"
+#: ../src/flood-context.cpp:290
+#: ../src/ui/dialog/inkscape-preferences.cpp:971
+msgid "Medium"
+msgstr "Średnie"
 
-#. initialise your parameters here:
-#: ../src/live_effects/lpe-lattice.cpp:45
-msgid "Control handle 0"
-msgstr ""
+#: ../src/flood-context.cpp:291
+msgid "Large"
+msgstr "Duże"
 
-#: ../src/live_effects/lpe-lattice.cpp:45
-#: ../src/live_effects/lpe-lattice.cpp:46
-#: ../src/live_effects/lpe-lattice.cpp:47
-#: ../src/live_effects/lpe-lattice.cpp:48
-#: ../src/live_effects/lpe-lattice.cpp:49
-#: ../src/live_effects/lpe-lattice.cpp:50
-#: ../src/live_effects/lpe-lattice.cpp:51
-#: ../src/live_effects/lpe-lattice.cpp:52
-#: ../src/live_effects/lpe-lattice.cpp:53
-#: ../src/live_effects/lpe-lattice.cpp:54
-#: ../src/live_effects/lpe-lattice.cpp:55
-#: ../src/live_effects/lpe-lattice.cpp:56
-#: ../src/live_effects/lpe-lattice.cpp:57
-#: ../src/live_effects/lpe-lattice.cpp:58
-#: ../src/live_effects/lpe-lattice.cpp:59
-#: ../src/live_effects/lpe-lattice.cpp:60
-msgid "Tadah"
-msgstr ""
+#: ../src/flood-context.cpp:491
+msgid "<b>Too much inset</b>, the result is empty."
+msgstr "<b>Za bardzo osadzone</b>, brak rezultatu"
 
-#: ../src/live_effects/lpe-lattice.cpp:46
-#, fuzzy
-msgid "Control handle 1"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/flood-context.cpp:531
+#, c-format
+msgid "Area filled, path with <b>%d</b> node created and unioned with selection."
+msgid_plural "Area filled, path with <b>%d</b> nodes created and unioned with selection."
+msgstr[0] "Obszar został wypełniony, ścieżka z <b>%d</b> węzłem utworzona i połączona z zaznaczeniem"
+msgstr[1] "Obszar został wypełniony, ścieżka z <b>%d</b> węzłami utworzona i połączona z zaznaczeniem"
+msgstr[2] "Obszar został wypełniony, ścieżka z <b>%d</b> węzłami utworzona i połączona z zaznaczeniem"
 
-#: ../src/live_effects/lpe-lattice.cpp:47
-#, fuzzy
-msgid "Control handle 2"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/flood-context.cpp:535
+#, c-format
+msgid "Area filled, path with <b>%d</b> node created."
+msgid_plural "Area filled, path with <b>%d</b> nodes created."
+msgstr[0] "Obszar został wypełniony. Utworzono ścieżkę z <b>%d</b> węzłem"
+msgstr[1] "Obszar został wypełniony. Utworzono ścieżkę z <b>%d</b> węzłami"
+msgstr[2] "Obszar został wypełniony. Utworzono ścieżkę z <b>%d</b> węzłami"
 
-#: ../src/live_effects/lpe-lattice.cpp:48
-#, fuzzy
-msgid "Control handle 3"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/flood-context.cpp:807
+#: ../src/flood-context.cpp:1120
+msgid "<b>Area is not bounded</b>, cannot fill."
+msgstr "<b>Obszar nie jest zamknięty</b>, nie można wypełnić"
 
-#: ../src/live_effects/lpe-lattice.cpp:49
-#, fuzzy
-msgid "Control handle 4"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/flood-context.cpp:1125
+msgid "<b>Only the visible part of the bounded area was filled.</b> If you want to fill all of the area, undo, zoom out, and fill again."
+msgstr "<b>Została wypełniona tylko widoczna część zaznaczonego obszaru</b>. Jeśli chcesz wypełnić cały obszar, cofnij operację, zmniejsz powiększenie i spróbuj ponownie."
 
-#: ../src/live_effects/lpe-lattice.cpp:50
-#, fuzzy
-msgid "Control handle 5"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/flood-context.cpp:1143
+#: ../src/flood-context.cpp:1303
+msgid "Fill bounded area"
+msgstr "Wypełnij obszar zamknięty"
 
-#: ../src/live_effects/lpe-lattice.cpp:51
-#, fuzzy
-msgid "Control handle 6"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/flood-context.cpp:1163
+msgid "Set style on object"
+msgstr "Określ styl obiektu"
 
-#: ../src/live_effects/lpe-lattice.cpp:52
-#, fuzzy
-msgid "Control handle 7"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/flood-context.cpp:1222
+msgid "<b>Draw over</b> areas to add to fill, hold <b>Alt</b> for touch fill"
+msgstr "<b>Rysuj ponad</b> obszarami, aby dodać do wypełnienia, przytrzymaj <b>Alt</b> dla wypełnienia"
 
-#: ../src/live_effects/lpe-lattice.cpp:53
-#, fuzzy
-msgid "Control handle 8"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/gradient-context.cpp:132
+#: ../src/gradient-drag.cpp:74
+msgid "Linear gradient <b>start</b>"
+msgstr "<b>Początek</b> gradientu liniowego"
 
-#: ../src/live_effects/lpe-lattice.cpp:54
-#, fuzzy
-msgid "Control handle 9"
-msgstr "_Nazwa pokoju rozmów"
+#. POINT_LG_BEGIN
+#: ../src/gradient-context.cpp:133
+#: ../src/gradient-drag.cpp:75
+msgid "Linear gradient <b>end</b>"
+msgstr "<b>Koniec</b> gradientu liniowego"
 
-#: ../src/live_effects/lpe-lattice.cpp:55
-#, fuzzy
-msgid "Control handle 10"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/gradient-context.cpp:134
+#: ../src/gradient-drag.cpp:76
+msgid "Linear gradient <b>mid stop</b>"
+msgstr "<b>Punkt kontrolny</b> gradientu liniowego"
 
-#: ../src/live_effects/lpe-lattice.cpp:56
-#, fuzzy
-msgid "Control handle 11"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/gradient-context.cpp:135
+#: ../src/gradient-drag.cpp:77
+msgid "Radial gradient <b>center</b>"
+msgstr "<b>Środek</b> gradientu radialnego"
 
-#: ../src/live_effects/lpe-lattice.cpp:57
-#, fuzzy
-msgid "Control handle 12"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/gradient-context.cpp:136
+#: ../src/gradient-context.cpp:137
+#: ../src/gradient-drag.cpp:78
+#: ../src/gradient-drag.cpp:79
+msgid "Radial gradient <b>radius</b>"
+msgstr "<b>Promień</b> gradientu radialnego"
 
-#: ../src/live_effects/lpe-lattice.cpp:58
-#, fuzzy
-msgid "Control handle 13"
-msgstr "_Nazwa pokoju rozmów"
+#: ../src/gradient-context.cpp:138
+#: ../src/gradient-drag.cpp:80
+msgid "Radial gradient <b>focus</b>"
+msgstr "<b>Ognisko</b> gradientu radialnego"
+
+#. POINT_RG_FOCUS
+#: ../src/gradient-context.cpp:139
+#: ../src/gradient-context.cpp:140
+#: ../src/gradient-drag.cpp:81
+#: ../src/gradient-drag.cpp:82
+msgid "Radial gradient <b>mid stop</b>"
+msgstr "<b>Środkowy punkt kontrolny</b> gradientu radialnego"
 
-#: ../src/live_effects/lpe-lattice.cpp:59
-#, fuzzy
-msgid "Control handle 14"
-msgstr "_Nazwa pokoju rozmów"
+#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message
+#: ../src/gradient-context.cpp:162
+#, c-format
+msgid "%s selected"
+msgstr "%s wybrany"
 
-#: ../src/live_effects/lpe-lattice.cpp:60
-#, fuzzy
-msgid "Control handle 15"
-msgstr "_Nazwa pokoju rozmów"
+#. TRANSLATORS: Mind the space in front. This is part of a compound message
+#: ../src/gradient-context.cpp:164
+#: ../src/gradient-context.cpp:173
+#, c-format
+msgid " out of %d gradient handle"
+msgid_plural " out of %d gradient handles"
+msgstr[0] " z %d uchwytu gradientu"
+msgstr[1] " z %d uchwytów gradientu"
+msgstr[2] " z %d uchwytów gradientu"
 
-#: ../src/live_effects/lpe-mirror_reflect.cpp:30
-#, fuzzy
-msgid "Reflection line"
-msgstr "Zaznaczenie"
+#. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message
+#: ../src/gradient-context.cpp:165
+#: ../src/gradient-context.cpp:174
+#: ../src/gradient-context.cpp:181
+#, c-format
+msgid " on %d selected object"
+msgid_plural " on %d selected objects"
+msgstr[0] " na %d zaznaczonym obiekcie"
+msgstr[1] " na %d zaznaczonych obiektach"
+msgstr[2] " na %d zaznaczonych obiektach"
 
-#: ../src/live_effects/lpe-mirror_reflect.cpp:30
-msgid "Line which serves as 'mirror' for the reflection"
-msgstr ""
+#. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count)
+#: ../src/gradient-context.cpp:171
+#, c-format
+msgid "One handle merging %d stop (drag with <b>Shift</b> to separate) selected"
+msgid_plural "One handle merging %d stops (drag with <b>Shift</b> to separate) selected"
+msgstr[0] "Zaznaczono jeden uchwyt łączący %d punkt (wykonaj ciągnięcie z <b>Shift</b>, aby wydzielić)"
+msgstr[1] "Zaznaczono jeden uchwyt łączący %d punkty (wykonaj ciągnięcie z <b>Shift</b>, aby wydzielić)"
+msgstr[2] "Zaznaczono jeden uchwyt łączący %d punktów (wykonaj ciągnięcie z <b>Shift</b>, aby wydzielić)"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:53
-#: ../share/extensions/pathalongpath.inx.h:11
-msgid "Single"
-msgstr "Pojedyncza"
+#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count)
+#: ../src/gradient-context.cpp:179
+#, c-format
+msgid "<b>%d</b> gradient handle selected out of %d"
+msgid_plural "<b>%d</b> gradient handles selected out of %d"
+msgstr[0] "Zaznaczono <b>%d</b> z %d uchwytu gradientu"
+msgstr[1] "Zaznaczono <b>%d</b> z %d uchwytów gradientu"
+msgstr[2] "Zaznaczono <b>%d</b> z %d uchwytów gradientu"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:54
-#: ../share/extensions/pathalongpath.inx.h:12
-msgid "Single, stretched"
-msgstr "Pojedyncza, rozciągnięta"
+#. TRANSLATORS: The plural refers to number of selected objects
+#: ../src/gradient-context.cpp:186
+#, c-format
+msgid "<b>No</b> gradient handles selected out of %d on %d selected object"
+msgid_plural "<b>No</b> gradient handles selected out of %d on %d selected objects"
+msgstr[0] "<b>Nie ma</b> zaznaczonych uchwytów gradientu z %d istniejących na %d zaznaczonym obiekcie"
+msgstr[1] "<b>Nie ma</b> zaznaczonych uchwytów gradientu z %d istniejących na %d zaznaczonych obiektach"
+msgstr[2] "<b>Nie ma</b> zaznaczonych uchwytów gradientu z %d istniejących na %d zaznaczonych obiektach"
+
+#: ../src/gradient-context.cpp:385
+#: ../src/gradient-context.cpp:478
+#: ../src/widgets/gradient-vector.cpp:738
+msgid "Add gradient stop"
+msgstr "Dodaj punkt kontrolny"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:55
-#: ../share/extensions/pathalongpath.inx.h:8
-msgid "Repeated"
-msgstr "Powtarzana"
+#: ../src/gradient-context.cpp:453
+msgid "Simplify gradient"
+msgstr "Uprość gradient"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:56
-#: ../share/extensions/pathalongpath.inx.h:9
-msgid "Repeated, stretched"
-msgstr "Powtarzana, rozciągnięta"
+#: ../src/gradient-context.cpp:529
+msgid "Create default gradient"
+msgstr "Utwórz domyślny gradient"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:62
-msgid "Pattern source"
-msgstr "Źródło desenia"
+#: ../src/gradient-context.cpp:584
+msgid "<b>Draw around</b> handles to select them"
+msgstr "<b>Wykonaj ciągnięcie</b> wokół uchwytów, aby je zaznaczyć"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:62
-msgid "Path to put along the skeleton path"
-msgstr "Scieżka do nałożenia wzdłuż szkieletu ścieżki"
+#: ../src/gradient-context.cpp:682
+msgid "<b>Ctrl</b>: snap gradient angle"
+msgstr "<b>Ctrl</b>: przyciąganie kąta gradientu"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:63
-msgid "Pattern copies"
-msgstr "Kopie desenia"
+#: ../src/gradient-context.cpp:683
+msgid "<b>Shift</b>: draw gradient around the starting point"
+msgstr "<b>Shift</b>: rysowanie gradientu wokół punktu początkowego"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:63
-msgid "How many pattern copies to place along the skeleton path"
-msgstr "Ilość kopii desenia do umieszczenia wzdłuż szkieletu ścieżki"
+#: ../src/gradient-context.cpp:803
+msgid "Invert gradient"
+msgstr "Odwróć gradient"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:64
-msgid "Width of the pattern"
-msgstr "Szerokość desenia"
+#: ../src/gradient-context.cpp:919
+#, c-format
+msgid "<b>Gradient</b> for %d object; with <b>Ctrl</b> to snap angle"
+msgid_plural "<b>Gradient</b> for %d objects; with <b>Ctrl</b> to snap angle"
+msgstr[0] "<b>Gradient</b> dla %d obiektu. Z <b>Ctrl</b> przyciąganie do kąta"
+msgstr[1] "<b>Gradient</b> dla %d obiektów. Z <b>Ctrl</b> przyciąganie do kąta"
+msgstr[2] "<b>Gradient</b> dla %d obiektów. Z <b>Ctrl</b> przyciąganie do kąta"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:65
-msgid "Scale the width of the pattern in units of its length"
-msgstr "Skaluje szerokość desenia w jednostkach jego długości"
+#: ../src/gradient-context.cpp:923
+msgid "Select <b>objects</b> on which to create gradient."
+msgstr "Zaznacz <b>obiekty</b>, dla których utworzyć gradient"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:66
-msgid "Spacing"
-msgstr "Odstępy"
+#: ../src/gradient-drag.cpp:573
+msgid "Merge gradient handles"
+msgstr "Połącz uchwyty gradientu"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:66
-#, fuzzy, c-format
-msgid ""
-"Space between copies of the pattern. Negative values allowed, but are "
-"limited to -90% of pattern width."
-msgstr ""
-"Odstęp pomiedzy kopiami wzorca. Dozwolone są wartości ujemne, ale tylko do "
-"wartości -90&#37; szerokości wzorca."
+#: ../src/gradient-drag.cpp:895
+msgid "Move gradient handle"
+msgstr "Przesuń uchwyt gradientu"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:67
-#: ../share/extensions/pathalongpath.inx.h:5
-#: ../share/extensions/pathscatter.inx.h:7
-msgid "Normal offset"
-msgstr "Przesunięcie normalne"
+#: ../src/gradient-drag.cpp:948
+#: ../src/widgets/gradient-vector.cpp:770
+msgid "Delete gradient stop"
+msgstr "Usuń punkt kontrolny"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:68
-#: ../share/extensions/pathalongpath.inx.h:15
-#: ../share/extensions/pathscatter.inx.h:13
-msgid "Tangential offset"
-msgstr "Przesunięcie styczne"
+#: ../src/gradient-drag.cpp:1112
+#, c-format
+msgid "%s %d for: %s%s; drag with <b>Ctrl</b> to snap offset; click with <b>Ctrl+Alt</b> to delete stop"
+msgstr "%s %d dla: %s%s. Ciągnij z <b>Ctrl</b>, aby przyciągnąć przesunięcie. <b>Ctrl + Alt</b> + kliknięcie, aby usunąć punkt kontrolny."
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:69
-#, fuzzy
-msgid "Offsets in unit of pattern size"
-msgstr "Obiekty na deseń"
+#: ../src/gradient-drag.cpp:1116
+#: ../src/gradient-drag.cpp:1123
+msgid " (stroke)"
+msgstr " (kontur)"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:69
-msgid ""
-"Spacing, tangential and normal offset are expressed as a ratio of width/"
-"height"
-msgstr ""
-"Odstęp, tangensowe i normalne odsunięcie wyrażane jako proporcja szerokości/"
-"wysokości"
+#: ../src/gradient-drag.cpp:1120
+#, c-format
+msgid "%s for: %s%s; drag with <b>Ctrl</b> to snap angle, with <b>Ctrl+Alt</b> to preserve angle, with <b>Ctrl+Shift</b> to scale around center"
+msgstr "%s dla: %s%s. Ciągnięcie z <b>Ctrl</b> - przyciągnie do kąta, z <b>Ctrl + Alt</b> - zachowanie kąta, z <b>Ctrl + Shift</b> skalowanie od środka."
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:70
-#: ../share/extensions/pathalongpath.inx.h:7
-#: ../share/extensions/pathscatter.inx.h:9
-msgid "Pattern is vertical"
-msgstr "Pionowa orientacja desenia"
+#: ../src/gradient-drag.cpp:1128
+#, c-format
+msgid "Radial gradient <b>center</b> and <b>focus</b>; drag with <b>Shift</b> to separate focus"
+msgstr "<b>Środek</b> i <b>ognisko</b> gradientu radialnego. Aby oddzielić ognisko wykonaj ciągnięcie z klawiszem <b>Shift</b>"
 
-#: ../src/live_effects/lpe-patternalongpath.cpp:70
-msgid "Rotate pattern 90 deg before applying"
-msgstr "Przed zastosowaniem obróć deseń o 90&#176;"
+#: ../src/gradient-drag.cpp:1131
+#, c-format
+msgid "Gradient point shared by <b>%d</b> gradient; drag with <b>Shift</b> to separate"
+msgid_plural "Gradient point shared by <b>%d</b> gradients; drag with <b>Shift</b> to separate"
+msgstr[0] "Punkt kontrolny gradientu wspólny dla <b>%d</b> gradientu. Wykonaj ciągnięcie z <b>Shift</b>, aby je rozdzielić"
+msgstr[1] "Punkt kontrolny gradientu wspólny dla <b>%d</b> gradientów. Wykonaj ciągnięcie z <b>Shift</b>, aby je rozdzielić"
+msgstr[2] "Punkt kontrolny gradientu wspólny dla <b>%d</b> gradientów. Wykonaj ciągnięcie z <b>Shift</b>, aby je rozdzielić"
 
-#: ../src/live_effects/lpe-perp_bisector.cpp:156
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:65
-#, fuzzy
-msgid "Length left"
-msgstr "Podetnij z lewej"
+#: ../src/gradient-drag.cpp:1806
+msgid "Move gradient handle(s)"
+msgstr "Przesuń uchwyt(y) gradientu"
 
-#: ../src/live_effects/lpe-perp_bisector.cpp:156
-#, fuzzy
-msgid "Specifies the left end of the bisector"
-msgstr "Definiuje kolor źródła światła"
+#: ../src/gradient-drag.cpp:1842
+msgid "Move gradient mid stop(s)"
+msgstr "Przesuń środkowy punkt(y) kontrolny(e)"
 
-#: ../src/live_effects/lpe-perp_bisector.cpp:157
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:66
-#, fuzzy
-msgid "Length right"
-msgstr "Jednostka długości:"
+#: ../src/gradient-drag.cpp:2130
+msgid "Delete gradient stop(s)"
+msgstr "Usuń punkt(y) kontrolny(e)"
 
-#: ../src/live_effects/lpe-perp_bisector.cpp:157
-#, fuzzy
-msgid "Specifies the right end of the bisector"
-msgstr "Pobranie jasności koloru"
+#: ../src/helper/units.cpp:37
+#: ../src/live_effects/lpe-path_length.cpp:27
+msgid "Unit"
+msgstr "Jednostka"
 
-#: ../src/live_effects/lpe-perp_bisector.cpp:164
-#, fuzzy
-msgid "Lala"
-msgstr "_Etykieta"
+#. Add the units menu.
+#: ../src/helper/units.cpp:37
+#: ../src/widgets/select-toolbar.cpp:491
+#: ../src/widgets/toolbox.cpp:1470
+#: ../src/widgets/toolbox.cpp:2677
+#: ../src/widgets/toolbox.cpp:5202
+#: ../src/widgets/toolbox.cpp:6715
+msgid "Units"
+msgstr "Jednostki"
 
-#: ../src/live_effects/lpe-perp_bisector.cpp:165
-#, fuzzy
-msgid "Lolo"
-msgstr "Kolor"
+#: ../src/helper/units.cpp:38
+msgid "Point"
+msgstr "Punkt"
 
-#. initialise your parameters here:
-#: ../src/live_effects/lpe-perspective_path.cpp:42
-msgid "Scale x"
-msgstr "Skala X"
+#: ../src/helper/units.cpp:38
+msgid "Pt"
+msgstr "Pkt"
 
-#: ../src/live_effects/lpe-perspective_path.cpp:42
-msgid "Scale factor in x direction"
-msgstr "Wskażnik skalowania w orientacji X"
+#: ../src/helper/units.cpp:38
+#: ../src/ui/widget/selected-style.cpp:287
+msgid "pt"
+msgstr "pkt"
 
-#: ../src/live_effects/lpe-perspective_path.cpp:43
-msgid "Scale y"
-msgstr "Skala Y"
+#: ../src/helper/units.cpp:39
+msgid "Pc"
+msgstr "Pc"
 
-#: ../src/live_effects/lpe-perspective_path.cpp:43
-msgid "Scale factor in y direction"
-msgstr "Wskażnik skalowania w orientacji Y"
+#: ../src/helper/units.cpp:39
+msgid "Pica"
+msgstr "Pika"
 
-#: ../src/live_effects/lpe-perspective_path.cpp:44
-msgid "Offset x"
-msgstr "Przesunięcie X"
+#: ../src/helper/units.cpp:39
+msgid "Picas"
+msgstr "Piki"
 
-#: ../src/live_effects/lpe-perspective_path.cpp:44
-msgid "Offset in x direction"
-msgstr "Przesunięcie w orientacji X"
+#: ../src/helper/units.cpp:39
+msgid "pc"
+msgstr "pc"
 
-#: ../src/live_effects/lpe-perspective_path.cpp:45
-msgid "Offset y"
-msgstr "Przesunięcie Y"
+#: ../src/helper/units.cpp:40
+msgid "Pixel"
+msgstr "Piksel"
 
-#: ../src/live_effects/lpe-perspective_path.cpp:45
-msgid "Offset in y direction"
-msgstr "Przesunięcie w orientacji Y"
+#: ../src/helper/units.cpp:40
+msgid "Pixels"
+msgstr "Piksele"
 
-#: ../src/live_effects/lpe-perspective_path.cpp:46
-msgid "Uses XY plane?"
-msgstr "Używasz płaszczyzny XY?"
+#: ../src/helper/units.cpp:40
+msgid "Px"
+msgstr "Px"
 
-#: ../src/live_effects/lpe-perspective_path.cpp:46
-msgid ""
-"If true, put the path on the left side of an imaginary box, otherwise on the "
-"right side"
-msgstr ""
-"Jeśli tak, ułóży ścieżkę po lewej stronie wyimaginowanego pudełka, jeśłi nie "
-"- po prawej"
+#: ../src/helper/units.cpp:40
+#: ../src/ui/dialog/inkscape-preferences.cpp:206
+#: ../src/ui/dialog/inkscape-preferences.cpp:210
+#: ../src/ui/dialog/inkscape-preferences.cpp:213
+#: ../src/ui/widget/selected-style.cpp:283
+msgid "px"
+msgstr "px"
 
-#. initialise your parameters here:
-#: ../src/live_effects/lpe-skeleton.cpp:33
-msgid "Float parameter"
-msgstr "Parametr przepływu"
+#: ../src/helper/units.cpp:42
+#: ../src/ui/dialog/inkscape-preferences.cpp:226
+msgid "%"
+msgstr "%"
 
-#: ../src/live_effects/lpe-skeleton.cpp:33
-msgid "just a real number like 1.4!"
-msgstr "rzeczywista liczba, taka jak 1.4!"
+#: ../src/helper/units.cpp:42
+msgid "Percents"
+msgstr "Procenty"
 
-#. initialise your parameters here:
-#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)),
-#: ../src/live_effects/lpe-sketch.cpp:35
-msgid "Strokes"
-msgstr "Kontury"
+#: ../src/helper/units.cpp:43
+msgid "Millimeter"
+msgstr "Milimetr"
 
-#: ../src/live_effects/lpe-sketch.cpp:35
-msgid "Draw that many approximating strokes"
-msgstr ""
+#: ../src/helper/units.cpp:43
+msgid "Millimeters"
+msgstr "Milimetry"
 
-#: ../src/live_effects/lpe-sketch.cpp:36
-msgid "Max stroke length"
-msgstr "Maksymalna długość konturu"
+#: ../src/helper/units.cpp:43
+#: ../src/ui/widget/selected-style.cpp:291
+msgid "mm"
+msgstr "mm"
 
-#: ../src/live_effects/lpe-sketch.cpp:37
-msgid "Maximum length of approximating strokes"
-msgstr "Maksymalna długość przybliżających się konturów"
+#: ../src/helper/units.cpp:44
+msgid "Centimeter"
+msgstr "Centymetr"
 
-#: ../src/live_effects/lpe-sketch.cpp:38
-#, fuzzy
-msgid "Stroke length variation"
-msgstr "Krawędź początkowa wariancji"
+#: ../src/helper/units.cpp:44
+msgid "Centimeters"
+msgstr "Centymetry"
 
-#: ../src/live_effects/lpe-sketch.cpp:39
-#, fuzzy
-msgid "Random variation of stroke length (relative to maximum length)"
-msgstr "Skaluje szerokość ścieżki konturu relatywnie do długości"
+#: ../src/helper/units.cpp:44
+msgid "cm"
+msgstr "cm"
 
-#: ../src/live_effects/lpe-sketch.cpp:40
-msgid "Max. overlap"
-msgstr "Maks. nachodzenie na siebie"
+#: ../src/helper/units.cpp:45
+msgid "Meter"
+msgstr "Metr"
 
-#: ../src/live_effects/lpe-sketch.cpp:41
-#, fuzzy
-msgid ""
-"How much successive strokes should overlap (relative to maximum length)."
-msgstr "Skaluje szerokość ścieżki konturu relatywnie do długości"
+#: ../src/helper/units.cpp:45
+msgid "Meters"
+msgstr "Metry"
 
-#: ../src/live_effects/lpe-sketch.cpp:42
-msgid "Overlap variation"
-msgstr "Odchylenia nachodzenia na siebie"
+#: ../src/helper/units.cpp:45
+msgid "m"
+msgstr "m"
 
-#: ../src/live_effects/lpe-sketch.cpp:43
-#, fuzzy
-msgid "Random variation of overlap (relative to maximum overlap)"
-msgstr "Skaluje szerokość ścieżki konturu relatywnie do długości"
+#. no svg_unit
+#: ../src/helper/units.cpp:46
+msgid "Inch"
+msgstr "Cal"
 
-#: ../src/live_effects/lpe-sketch.cpp:44
-msgid "Max. end tolerance"
-msgstr "Maks. tolerancja końcowa"
+#: ../src/helper/units.cpp:46
+msgid "Inches"
+msgstr "Cale"
 
-#: ../src/live_effects/lpe-sketch.cpp:45
-msgid ""
-"Maximum distance between ends of original and approximating paths (relative "
-"to maximum length)"
-msgstr ""
-"Maksymalny odstęp pomiędzy końcami oryginału przybliżającą się ścieżka "
-"(relatywnie do maksymalnej długości)"
+#: ../src/helper/units.cpp:46
+msgid "in"
+msgstr "in"
 
-#: ../src/live_effects/lpe-sketch.cpp:46
-#, fuzzy
-msgid "Parallel offset"
-msgstr "Przesunięcie normalne"
+#: ../src/helper/units.cpp:47
+msgid "Feet"
+msgstr "Stopy"
 
-#: ../src/live_effects/lpe-sketch.cpp:47
-msgid "Average distance from approximating path to original path"
-msgstr "Przybliżona odległość pomiędzy przybliżającą się ścieżką a oryginałem"
+#: ../src/helper/units.cpp:47
+msgid "Foot"
+msgstr "Stopa"
 
-#: ../src/live_effects/lpe-sketch.cpp:48
-msgid "Max. tremble"
-msgstr "Maks. drżenie"
+#: ../src/helper/units.cpp:47
+msgid "ft"
+msgstr "ft"
 
-#: ../src/live_effects/lpe-sketch.cpp:49
-msgid "Maximum tremble magnitude"
-msgstr "Maksymalna wielkość drgań"
+#. Volatiles do not have default, so there are none here
+#. TRANSLATORS: for info, see http://www.w3.org/TR/REC-CSS2/syndata.html#length-units
+#: ../src/helper/units.cpp:50
+msgid "Em square"
+msgstr "Kwadrat Em"
 
-#: ../src/live_effects/lpe-sketch.cpp:50
-msgid "Tremble frequency"
-msgstr "Częstotliwość drgań"
+#: ../src/helper/units.cpp:50
+msgid "Em squares"
+msgstr "Kwadraty Em"
 
-#: ../src/live_effects/lpe-sketch.cpp:51
-#, fuzzy
-msgid "Avreage number of tremble periods in an approximating stroke"
-msgstr "Średnia liczba okresów drgań w przybliżającym się pociągnięciu"
+#: ../src/helper/units.cpp:50
+msgid "em"
+msgstr "em"
 
-#: ../src/live_effects/lpe-sketch.cpp:52
-#, fuzzy
-msgid "Construction lines"
-msgstr "Wyśrodkowanie"
+#. TRANSLATORS: for info, see http://www.w3.org/TR/REC-CSS2/syndata.html#length-units
+#: ../src/helper/units.cpp:52
+msgid "Ex square"
+msgstr "Kwadrat Ex"
 
-#: ../src/live_effects/lpe-sketch.cpp:53
-msgid "How many construction lines (tangents) to draw"
-msgstr ""
+#: ../src/helper/units.cpp:52
+msgid "Ex squares"
+msgstr "Kwadraty Ex"
 
-#: ../src/live_effects/lpe-sketch.cpp:54 ../src/selection-chemistry.cpp:1450
-#: ../src/seltrans.cpp:454 ../src/ui/dialog/filter-effects-dialog.cpp:2235
-#: ../src/ui/dialog/transformation.cpp:736
-msgid "Scale"
-msgstr "Skaluj"
+#: ../src/helper/units.cpp:52
+msgid "ex"
+msgstr "ex"
 
-#: ../src/live_effects/lpe-sketch.cpp:55
-msgid ""
-"Scale factor relating curvature and length of construction lines (try "
-"5*offset)"
-msgstr ""
+#: ../src/inkscape.cpp:329
+msgid "Autosaving documents..."
+msgstr "Automatyczne zapisywanie dokumentów..."
 
-#: ../src/live_effects/lpe-sketch.cpp:56
-msgid "Max. length"
-msgstr "Maks. długość"
+#: ../src/inkscape.cpp:400
+msgid "Autosave failed! Could not find inkscape extension to save document."
+msgstr "Nie można znaleźć rozszerzenia inkscape do zapisu dokumentu"
 
-#: ../src/live_effects/lpe-sketch.cpp:56
-msgid "Maximum length of construction lines"
-msgstr ""
+#: ../src/inkscape.cpp:403
+#: ../src/inkscape.cpp:410
+#, c-format
+msgid "Autosave failed! File %s could not be saved."
+msgstr "Plik %s nie mógł zostać zapisany"
 
-#: ../src/live_effects/lpe-sketch.cpp:57
-#, fuzzy
-msgid "Length variation"
-msgstr "Mniejsze nasycenie"
+#: ../src/inkscape.cpp:425
+msgid "Autosave complete."
+msgstr "Zakończono zapis"
 
-#: ../src/live_effects/lpe-sketch.cpp:57
-#, fuzzy
-msgid "Random variation of the length of construction lines"
-msgstr "Skaluje szerokość ścieżki konturu relatywnie do długości"
+#: ../src/inkscape.cpp:647
+msgid "Untitled document"
+msgstr "Dokument bez nazwy"
 
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:63
-#: ../share/extensions/motion.inx.h:1 ../share/extensions/restack.inx.h:1
-msgid "Angle"
-msgstr "Kąt"
+#. Show nice dialog box
+#: ../src/inkscape.cpp:676
+msgid "Inkscape encountered an internal error and will close now.\n"
+msgstr "W programie Inkscape wystąpił wewnętrzny błąd i nastąpi jego zamknięcie.\n"
 
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:63
-msgid "Additional angle between tangent and curve"
-msgstr ""
+#: ../src/inkscape.cpp:677
+msgid "Automatic backups of unsaved documents were done to the following locations:\n"
+msgstr "Kopie niezapisanych dokumentów zostały automatycznie utworzone w następujących lokalizacjach:\n"
 
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:64
-msgid "Location along curve"
-msgstr ""
+#: ../src/inkscape.cpp:678
+msgid "Automatic backup of the following documents failed:\n"
+msgstr "Nie udało się automatycznie utworzyć kopii następujących dokumentów:\n"
 
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:64
-msgid ""
-"Location of the point of attachment along the curve (between 0.0 and number-"
-"of-segments)"
-msgstr ""
+#. sp_ui_menu_append_check_item_from_verb(m, view, _("_Menu"), _("Show or hide the menu bar"), "menu",
+#. checkitem_toggled, checkitem_update, 0);
+#: ../src/interface.cpp:842
+msgid "Commands Bar"
+msgstr "Pasek p_oleceń"
 
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:65
-msgid "Specifies the left end of the tangent"
-msgstr ""
+#: ../src/interface.cpp:842
+msgid "Show or hide the Commands bar (under the menu)"
+msgstr "Wyświetla lub ukrywa pasek poleceń (pod menu)"
 
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:66
-msgid "Specifies the right end of the tangent"
-msgstr ""
+#: ../src/interface.cpp:844
+msgid "Show or hide the Tool Controls bar"
+msgstr "Wyświetla lub ukrywa pasek narzędzi"
 
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:73
-#, fuzzy
-msgid "Adjust the \"left\" end of the tangent"
-msgstr "Definiuje kolor źródła światła"
+#: ../src/interface.cpp:844
+msgid "Tool Controls Bar"
+msgstr "Pasek _narzędzi"
 
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:74
-#, fuzzy
-msgid "Adjust the \"right\" end of the tangent"
-msgstr "Pobranie jasności koloru"
+#: ../src/interface.cpp:846
+msgid "Show or hide the main toolbox (on the left)"
+msgstr "Wyświetla lub ukrywa przybornik (po lewej stronie)"
 
-#: ../src/live_effects/lpe-tangent_to_curve.cpp:75
-msgid "Adjust the point of attachment of the tangent"
-msgstr ""
+#: ../src/interface.cpp:846
+msgid "_Toolbox"
+msgstr "_Przybornik"
 
-#: ../src/live_effects/lpe-test-doEffect-stack.cpp:23
-msgid "Stack step"
-msgstr "Tworzenie stosu przebiegów"
+#: ../src/interface.cpp:852
+msgid "Show or hide the color palette"
+msgstr "Wyświetla lub ukrywa paletę z kolorami"
 
-#: ../src/live_effects/lpe-test-doEffect-stack.cpp:24
-#, fuzzy
-msgid "point param"
-msgstr "pentagram"
+#: ../src/interface.cpp:852
+msgid "_Palette"
+msgstr "Paletę _kolorów"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:42
-#, fuzzy
-msgid "Bounding box"
-msgstr "Stosuj poniższy typ obramowania obiektu:"
+#: ../src/interface.cpp:854
+msgid "Show or hide the statusbar (at the bottom of the window)"
+msgstr "Wyświetla lub ukrywa pasek statusu (na dole okna)"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:43
-msgid "Last gen. segment"
-msgstr "Ostatnio wygenerowany odcinek"
+#: ../src/interface.cpp:854
+msgid "_Statusbar"
+msgstr "Pasek _stanu"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:49
-#, fuzzy
-msgid "Nb of generations"
-msgstr "Liczba obrotów"
+#: ../src/interface.cpp:908
+#, c-format
+msgid "Verb \"%s\" Unknown"
+msgstr "Polecenie \"%s\" Nieznane"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:49
-msgid "Depth of the recursion --- keep low!!"
-msgstr "Głębokość rekurencji - utrzymuj najmniejszą!"
+#. TRANSLATORS: #%s is the id of the group e.g. <g id="#g7">, not a number.
+#: ../src/interface.cpp:1027
+#, c-format
+msgid "Enter group #%s"
+msgstr "Wejdź do grupy #%s"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:50
-msgid "Generating path"
-msgstr "Generowanie ścieżki"
+#: ../src/interface.cpp:1038
+msgid "Go to parent"
+msgstr "Przejdź do rodzica"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:50
-msgid "Path whos segments define the fractal"
-msgstr ""
+#: ../src/interface.cpp:1129
+#: ../src/interface.cpp:1214
+#: ../src/ui/widget/selected-style.cpp:462
+msgid "Drop color"
+msgstr "Przeciągnij kolor"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:51
-msgid "Draw all generations"
-msgstr ""
+#: ../src/interface.cpp:1168
+msgid "Drop color on gradient"
+msgstr "Przeciągnij kolor na gradient"
+
+#: ../src/interface.cpp:1227
+msgid "Could not parse SVG data"
+msgstr "Nie można odczytać danych SVG"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:51
-msgid "If unchecked, draw only the last generation"
-msgstr ""
+#: ../src/interface.cpp:1269
+msgid "Drop SVG"
+msgstr "Upuść grafikę SVG"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:52
-#, fuzzy
-msgid "Reference"
-msgstr "Różnica"
+#: ../src/interface.cpp:1327
+msgid "Drop bitmap image"
+msgstr "Upuść bitmapę"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:52
+#: ../src/interface.cpp:1419
+#, c-format
 msgid ""
-"Generating path segments define transforms in reference to bbox or last "
-"segment"
+"<span weight=\"bold\" size=\"larger\">A file named \"%s\" already exists. Do you want to replace it?</span>\n"
+"\n"
+"The file already exists in \"%s\". Replacing it will overwrite its contents."
 msgstr ""
+"<span weight=\"bold\" size=\"larger\">Plik o nazwie \"%s\" już istnieje. Czy chcesz go zamienić?</span>\n"
+"\n"
+"W \"%s\" istnieje już plik o takiej nazwie. Zamiana spowoduje nadpisane jego zawartości."
 
-#: ../src/live_effects/lpe-vonkoch.cpp:53
-msgid "Max complexity"
-msgstr ""
+#: ../src/interface.cpp:1426
+msgid "Replace"
+msgstr "Zamień"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:53
-msgid "Disable effect if the output is too complex"
+#: ../src/io/sys.cpp:411
+#: ../src/io/sys.cpp:419
+#, c-format
+msgid "Failed to read from child pipe (%s)"
 msgstr ""
 
-#: ../src/live_effects/parameter/bool.cpp:69
-msgid "Change bool parameter"
-msgstr "Zmień parametr wartości logicznej"
-
-#: ../src/live_effects/parameter/enum.h:51
-msgid "Change enumeration parameter"
-msgstr "Zmień parametr numeryczny"
-
-#: ../src/live_effects/parameter/parameter.cpp:138
-msgid "Change scalar parameter"
-msgstr "Zmień skalar"
-
-#: ../src/live_effects/parameter/path.cpp:157
-#: ../src/live_effects/parameter/point.cpp:110
-msgid "Edit on-canvas"
-msgstr "Edytuj w obszarze roboczym"
+#: ../src/io/sys.cpp:443
+#, c-format
+msgid "Failed to change to directory '%s' (%s)"
+msgstr "Nie można zmienić katalogu  \"%s\" (%s)"
 
-#: ../src/live_effects/parameter/path.cpp:167
-msgid "Copy path"
-msgstr "Kopiuj ścieżkę"
+#: ../src/io/sys.cpp:449
+#: ../src/io/sys.cpp:675
+#, c-format
+msgid "Failed to execute child process (%s)"
+msgstr "Nie udało się wczytać żądanego pliku %s"
 
-#: ../src/live_effects/parameter/path.cpp:177
-msgid "Paste path"
-msgstr "Wklej ścieżkę"
+#: ../src/io/sys.cpp:622
+#, c-format
+msgid "Invalid program name: %s"
+msgstr "Nieprawidłowa nazwa programu: %s"
 
-#: ../src/live_effects/parameter/path.cpp:187
-msgid "Link to path"
-msgstr "Odnośnik na śc_eżkę"
+#: ../src/io/sys.cpp:632
+#: ../src/io/sys.cpp:921
+#, c-format
+msgid "Invalid string in argument vector at %d: %s"
+msgstr "Nieprawidłowy ciąg znaków w argumencie wektora dla %d: %s"
 
-#: ../src/live_effects/parameter/path.cpp:363
-msgid "Paste path parameter"
-msgstr "Wklej parametr ścieżki"
+#: ../src/io/sys.cpp:643
+#: ../src/io/sys.cpp:936
+#, c-format
+msgid "Invalid string in environment: %s"
+msgstr "Nieprawidłowy ciąg znaków w środowisku: %s"
 
-#: ../src/live_effects/parameter/path.cpp:395
-#, fuzzy
-msgid "Link path parameter to path"
-msgstr "Wklej parametr ścieżki"
+#: ../src/io/sys.cpp:704
+#, c-format
+msgid "Failed to create pipe for communicating with child process (%s)"
+msgstr "Nie udało sie utworzyć ciągu komunikacyjnego z procesem pokrewnym (%s)"
 
-#: ../src/live_effects/parameter/point.cpp:95
-msgid "Change point parameter"
-msgstr "Zmień parametr punktu"
+#: ../src/io/sys.cpp:917
+#, c-format
+msgid "Invalid working directory: %s"
+msgstr "Niewłaściwy katalog roboczy: %s"
 
-#: ../src/live_effects/parameter/pointparam-knotholder.cpp:134
-#, fuzzy
-msgid "Change LPE point parameter"
-msgstr "Zmień parametr punktu"
+#: ../src/io/sys.cpp:985
+#, c-format
+msgid "Failed to execute helper program (%s)"
+msgstr "Nie udało się otworzyć programu pomocniczego (%s)"
 
-#: ../src/live_effects/parameter/random.cpp:137
-msgid "Change random parameter"
-msgstr "Zmień parametr losowy"
+#: ../src/jabber_whiteboard/invitation-confirm-dialog.cpp:26
+#: ../src/jabber_whiteboard/session-file-selector.cpp:24
+msgid "_Write session file:"
+msgstr "_Zapisz plik sesji:"
 
-#: ../src/main-cmdlineact.cpp:49
-#, c-format
-msgid "Unable to find verb ID '%s' specified on the command line.\n"
-msgstr ""
-"Nie można znaleźć polecenia o ID \"%s\" określonego w wierszu poleceń.\n"
+#: ../src/jabber_whiteboard/pedrogui.cpp:2630
+msgid "Shared SVG whiteboard tool."
+msgstr "Narzędzie do wspólnej pracy."
 
-#: ../src/main-cmdlineact.cpp:61
-#, c-format
-msgid "Unable to find node ID: '%s'\n"
-msgstr "Nie można znaleźć węzła o ID: \"%s\"\n"
+#: ../src/jabber_whiteboard/pedrogui.cpp:2631
+msgid "Based on the Pedro XMPP client"
+msgstr "Stworzony w oparciu o aplikację Pedro XMPP"
 
-#: ../src/main.cpp:218
-msgid "Print the Inkscape version number"
-msgstr "Wypisz numer wersji programu Inkscape"
+#: ../src/jabber_whiteboard/session-file-selector.cpp:60
+msgid "Select a location and filename"
+msgstr "Wybierz położenie i nazwę pliku"
 
-#: ../src/main.cpp:223
-msgid "Do not use X server (only process files from console)"
-msgstr "Nie używaj X serwera (przetwarzaj jedynie pliki z poziomu konsoli)"
+#: ../src/jabber_whiteboard/session-file-selector.cpp:62
+msgid "Set filename"
+msgstr "Ustaw nazwę pliku"
 
-#: ../src/main.cpp:228
-msgid "Try to use X server (even if $DISPLAY is not set)"
-msgstr "Spróbuj używać X serwera (nawet, gdy nie ustawiono zmiennej $DISPLAY)"
+#: ../src/jabber_whiteboard/session-manager.cpp:308
+msgid "<b>%1</b> has invited you to a whiteboard session."
+msgstr "<b>%1</b> zaprosił cię do wspólnej pracy na planszy"
 
-#: ../src/main.cpp:233
-msgid "Open specified document(s) (option string may be excluded)"
-msgstr "Otwiera podany(e) dokument(y) (tekst opcji może zostać wyłączony)"
+#: ../src/jabber_whiteboard/session-manager.cpp:310
+msgid "Do you wish to accept <b>%1</b>'s whiteboard session invitation?"
+msgstr "Czy chcesz przyjąć zaproszenie do wspólnej pracy na planszy od <b>%1</b>?"
 
-#: ../src/main.cpp:234 ../src/main.cpp:239 ../src/main.cpp:244
-#: ../src/main.cpp:311 ../src/main.cpp:316 ../src/main.cpp:321
-#: ../src/main.cpp:326 ../src/main.cpp:332
-msgid "FILENAME"
-msgstr "NAZWA_PLIKU"
+#: ../src/jabber_whiteboard/session-manager.cpp:314
+msgid "Accept invitation"
+msgstr "Przyjmij zaproszenie"
 
-#: ../src/main.cpp:238
-msgid "Print document(s) to specified output file (use '| program' for pipe)"
-msgstr ""
-"Drukuje dokumenty do podanego pliku wyjściowego (zapis do potoku - \"| "
-"program\")"
+#: ../src/jabber_whiteboard/session-manager.cpp:315
+msgid "Decline invitation"
+msgstr "Odrzuć zaproszenie"
 
-#: ../src/main.cpp:243
-msgid "Export document to a PNG file"
-msgstr "Eksportuje dokument jako plik PNG"
+#: ../src/jabber_whiteboard/session-manager.cpp:370
+msgid "Inkboard session (%1 to %2)"
+msgstr "Sesja Inkboard (%1 do %2)"
 
-#: ../src/main.cpp:248
-msgid "The resolution used for exporting SVG into bitmap (default 90)"
-msgstr "Rozdzielczość używana dla konwersji SVG do bitmapy (domyślnie 90)"
+#: ../src/knot.cpp:431
+msgid "Node or handle drag canceled."
+msgstr "Anulowano przeciąganie węzła lub uchwytu"
 
-#: ../src/main.cpp:249 ../src/ui/widget/rendering-options.cpp:43
-msgid "DPI"
-msgstr "DPI"
+#: ../src/knotholder.cpp:130
+msgid "Change handle"
+msgstr "Zmień uchwyt"
 
-#: ../src/main.cpp:253
-msgid ""
-"Exported area in SVG user units (default is the canvas; 0,0 is lower-left "
-"corner)"
-msgstr ""
-"Eksportowany obszar w jednostkach SVG użytkownika - domyślnie jest to obszar "
-"roboczy; (0,0 oznacza lewy dolny narożnik)"
+#: ../src/knotholder.cpp:203
+msgid "Move handle"
+msgstr "Przesuń uchwyt"
 
-#: ../src/main.cpp:254
-msgid "x0:y0:x1:y1"
-msgstr "x0:y0:x1:y1"
+#. TRANSLATORS: This refers to the pattern that's inside the object
+#: ../src/knotholder.cpp:224
+msgid "<b>Move</b> the pattern fill inside the object"
+msgstr "<b>Przesuń</b> deseń wypełnienia wewnątrz obiektu"
 
-#: ../src/main.cpp:258
-msgid "Exported area is the entire drawing (not canvas)"
-msgstr "Obszarem eksportu jest cały rysunek, nie obszar roboczy"
+#: ../src/knotholder.cpp:227
+msgid "<b>Scale</b> the pattern fill uniformly"
+msgstr "<b>Skalowanie</b> proporcjonalne desenia wypełnienia"
 
-#: ../src/main.cpp:263
-msgid "Exported area is the entire canvas"
-msgstr "Obszarem eksportu jest cały obszar roboczy"
+#: ../src/knotholder.cpp:230
+msgid "<b>Rotate</b> the pattern fill; with <b>Ctrl</b> to snap angle"
+msgstr "<b>Obracanie</b> wzoru wypełnienia; z <b>Ctrl</b> przyciąganie do kąta"
 
-#: ../src/main.cpp:268
-msgid ""
-"Snap the bitmap export area outwards to the nearest integer values (in SVG "
-"user units)"
-msgstr ""
-"Wyrównaj obszar eksportu bitmapy na zewnątrz do najbliższej całkowitej "
-"wartości (w jednostkach SVG użytkownika)"
+#: ../src/libgdl/gdl-dock-bar.c:108
+msgid "Master"
+msgstr "Element główny"
 
-#: ../src/main.cpp:273
-msgid "The width of exported bitmap in pixels (overrides export-dpi)"
-msgstr "Szerokość generowanej bitmapy w pikselach (przesłania dpi)"
+#: ../src/libgdl/gdl-dock-bar.c:109
+msgid "GdlDockMaster object which the dockbar widget is attached to"
+msgstr "Główny element dokowalny, do którego jest dołączony pasek dokowania"
 
-#: ../src/main.cpp:274
-msgid "WIDTH"
-msgstr "SZEROKOŚĆ"
+#: ../src/libgdl/gdl-dock-bar.c:116
+msgid "Dockbar style"
+msgstr "Styl paska elementów dokowalnych"
 
-#: ../src/main.cpp:278
-msgid "The height of exported bitmap in pixels (overrides export-dpi)"
-msgstr "Wysokość generowanej bitmapy w pikselach (przesłania dpi)"
+#: ../src/libgdl/gdl-dock-bar.c:117
+msgid "Dockbar style to show items on it"
+msgstr "Styl paska elementów dokowalnych"
 
-#: ../src/main.cpp:279
-msgid "HEIGHT"
-msgstr "WYSOKOŚĆ"
+#: ../src/libgdl/gdl-dock-item-grip.c:395
+msgid "Iconify"
+msgstr "Minimalizuj"
 
-#: ../src/main.cpp:283
-msgid "The ID of the object to export"
-msgstr "Identyfikator ID eksportowanego obiektu"
+#: ../src/libgdl/gdl-dock-item-grip.c:395
+msgid "Iconify this dock"
+msgstr "Minimalizuj ten element"
 
-#: ../src/main.cpp:284 ../src/main.cpp:382
-msgid "ID"
-msgstr "ID"
+#: ../src/libgdl/gdl-dock-item-grip.c:397
+msgid "Close"
+msgstr "Zamknij"
 
-#. TRANSLATORS: this means: "Only export the object whose id is given in --export-id".
-#. See "man inkscape" for details.
-#: ../src/main.cpp:290
-msgid ""
-"Export just the object with export-id, hide all others (only with export-id)"
-msgstr ""
-"Eksportuj tylko obiekty oznaczone identyfikatorem eksportu, ukryj pozostałe "
-"(tylko z 'export-id')"
+#: ../src/libgdl/gdl-dock-item-grip.c:397
+msgid "Close this dock"
+msgstr "Zamknij ten element"
 
-#: ../src/main.cpp:295
-msgid "Use stored filename and DPI hints when exporting (only with export-id)"
-msgstr ""
-"Podczas eksportu zastosuj zapisaną nazwę pliku i DPI (tylko z 'export-id')"
+#: ../src/libgdl/gdl-dock-item-grip.c:706
+#: ../src/libgdl/gdl-dock-tablabel.c:128
+msgid "Controlling dock item"
+msgstr "Zarządzanie elementem dokowalnym"
 
-#: ../src/main.cpp:300
-msgid "Background color of exported bitmap (any SVG-supported color string)"
-msgstr ""
-"Kolor tła eksportowanej bitmapy (dowolny string koloru obsługiwany przez SVG)"
+#: ../src/libgdl/gdl-dock-item-grip.c:707
+msgid "Dockitem which 'owns' this grip"
+msgstr "Element dokowalny posiadający uchwyt zmiany rozmiaru"
 
-#: ../src/main.cpp:301
-msgid "COLOR"
-msgstr "KOLOR"
+#: ../src/libgdl/gdl-dock-item.c:287
+msgid "Orientation"
+msgstr "Orientacja"
 
-#: ../src/main.cpp:305
-msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)"
-msgstr "Krycie tła eksportowanej bitmapy (w formacie 0.0 do 1.0, lub 1 do 255)"
+#: ../src/libgdl/gdl-dock-item.c:288
+msgid "Orientation of the docking item"
+msgstr "Orientacja elementu dokowalnego"
 
-#: ../src/main.cpp:306
-msgid "VALUE"
-msgstr "WARTOŚĆ"
+#: ../src/libgdl/gdl-dock-item.c:303
+msgid "Resizable"
+msgstr "Zmienny rozmiar"
 
-#: ../src/main.cpp:310
-msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)"
-msgstr ""
-"Eksportuj dokument do czystego formatu SVG (bez przestrzeni nazw używanych "
-"przez programy Sodipodi i Inkscape)"
+#: ../src/libgdl/gdl-dock-item.c:304
+msgid "If set, the dock item can be resized when docked in a panel"
+msgstr "Będzie można zmieniać rozmiar elementów dokowalnych"
 
-#: ../src/main.cpp:315
-msgid "Export document to a PS file"
-msgstr "Eksportuje dokument do pliku PS"
+#: ../src/libgdl/gdl-dock-item.c:311
+msgid "Item behavior"
+msgstr "Zachowanie elementu"
 
-#: ../src/main.cpp:320
-msgid "Export document to an EPS file"
-msgstr "Eksportuje dokument do pliku EPS"
+#: ../src/libgdl/gdl-dock-item.c:312
+msgid "General behavior for the dock item (i.e. whether it can float, if it's locked, etc.)"
+msgstr "Zachowanie elementów dokowalnych (przestawne, zablokowane itp.)"
 
-#: ../src/main.cpp:325
-msgid "Export document to a PDF file"
-msgstr "Eksportuje dokument do pliku PDF"
+#: ../src/libgdl/gdl-dock-item.c:320
+#: ../src/libgdl/gdl-dock-master.c:151
+msgid "Locked"
+msgstr "Zablokowany"
 
-#: ../src/main.cpp:331
-msgid "Export document to an Enhanced Metafile (EMF) File"
-msgstr "Eksportuje dokument do pliku Enhanced Metafile (EMF)"
+#: ../src/libgdl/gdl-dock-item.c:321
+msgid "If set, the dock item cannot be dragged around and it doesn't show a grip"
+msgstr "Nie będzie można zmieniać położenia i rozmiaru elementów dokowalnych"
 
-#: ../src/main.cpp:337
-msgid "Convert text object to paths on export (EPS)"
-msgstr "Podczas eksportu do pliku EPS konwertuj obiekt tekstowy na ścieżki"
+#: ../src/libgdl/gdl-dock-item.c:329
+msgid "Preferred width"
+msgstr "Preferowana szerokość"
 
-#: ../src/main.cpp:342
-msgid "Embed fonts on export (Type 1 only) (EPS)"
-msgstr "Podczas eksportu do pliku EPS osadź czcionki (tylko Typ 1)"
+#: ../src/libgdl/gdl-dock-item.c:330
+msgid "Preferred width for the dock item"
+msgstr "Preferowana szerokość elementów dokowalnych"
 
-#: ../src/main.cpp:347
-msgid "Export files with the bounding box set to the page size (EPS)"
-msgstr ""
-"Eksportuj pliki z obramowaniem obiektu ustawionym jako rozmiar strony (dla "
-"plików EPS)"
+#: ../src/libgdl/gdl-dock-item.c:336
+msgid "Preferred height"
+msgstr "Preferowana wysokość"
 
-#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:353
-msgid ""
-"Query the X coordinate of the drawing or, if specified, of the object with --"
-"query-id"
-msgstr ""
-"Pytaj o współrzędną X rysunku, lub obiektu jeśli jest podany za pomocą --"
-"query-id"
+#: ../src/libgdl/gdl-dock-item.c:337
+msgid "Preferred height for the dock item"
+msgstr "Preferowana wysokość elementów dokowalnych"
 
-#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:359
-msgid ""
-"Query the Y coordinate of the drawing or, if specified, of the object with --"
-"query-id"
-msgstr ""
-"Pytaj o współrzędną Y rysunku, lub obiektu jeśli jest podany za pomocą --"
-"query-id"
+#: ../src/libgdl/gdl-dock-item.c:616
+#, c-format
+msgid "You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or some other compound dock object."
+msgstr "Nie można dodać obiektu dokowalnego (%p typu %s) wewnątrz %s. Proszę użyć GdlDock lub innego złożonego obiektu dokowalnego."
 
-#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:365
-msgid ""
-"Query the width of the drawing or, if specified, of the object with --query-"
-"id"
-msgstr ""
-"Pytaj o szerokość rysunku, lub obiektu jeśli jest podany za pomocą --query-id"
+#: ../src/libgdl/gdl-dock-item.c:623
+#, c-format
+msgid "Attempting to add a widget with type %s to a %s, but it can only contain one widget at a time; it already contains a widget of type %s"
+msgstr "Nastąpiła próba dodania elementu typu %s do %s, ale ten typ może zawierać tylko jeden element. Zawiera on już element typu %s."
 
-#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:371
-msgid ""
-"Query the height of the drawing or, if specified, of the object with --query-"
-"id"
-msgstr ""
-"Pytaj o wysokość rysunku, lub obiektu jeśli jest podany za pomocą --query-id"
+#: ../src/libgdl/gdl-dock-item.c:1345
+#: ../src/libgdl/gdl-dock-item.c:1390
+#, c-format
+msgid "Unsupported docking strategy %s in dock object of type %s"
+msgstr "Nieobsługiwana metoda dokowania %s w obiekcie dokowalnym typu %s"
 
-#: ../src/main.cpp:376
-msgid "List id,x,y,w,h for all objects"
-msgstr "Pokaż id,x,y,w,h dla wszystkich obiektów"
+#. UnLock menuitem
+#: ../src/libgdl/gdl-dock-item.c:1479
+msgid "UnLock"
+msgstr "Odblokuj"
 
-#: ../src/main.cpp:381
-msgid "The ID of the object whose dimensions are queried"
-msgstr "Identyfikator ID obiektu, o którego wymiary zapytano"
+#. Hide menuitem.
+#: ../src/libgdl/gdl-dock-item.c:1486
+msgid "Hide"
+msgstr "Ukryj"
 
-#. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory
-#: ../src/main.cpp:387
-msgid "Print out the extension directory and exit"
-msgstr "Wyświetl katalog rozszerzeń i zakończ"
+#. Lock menuitem
+#: ../src/libgdl/gdl-dock-item.c:1491
+msgid "Lock"
+msgstr "Zablokuj"
 
-#: ../src/main.cpp:392
-msgid "Remove unused definitions from the defs section(s) of the document"
-msgstr "Usuń nieużywane definicje z sekcji &lt;defs&gt; dokumentu"
+#: ../src/libgdl/gdl-dock-item.c:1717
+#, c-format
+msgid "Attempt to bind an unbound item %p"
+msgstr "Połącz element %p"
 
-#: ../src/main.cpp:397
-msgid "List the IDs of all the verbs in Inkscape"
-msgstr "Lista identyfikatorów wszystkich poleceń w Inkscape"
+#: ../src/libgdl/gdl-dock-master.c:144
+#: ../src/libgdl/gdl-dock.c:183
+msgid "Default title"
+msgstr "Domyślny tytuł"
 
-#: ../src/main.cpp:402
-msgid "Verb to call when Inkscape opens."
-msgstr "Polecenie wywoływane podczas uruchamiania Inkscape"
+#: ../src/libgdl/gdl-dock-master.c:145
+msgid "Default title for newly created floating docks"
+msgstr "Domyślna nazwa nowo tworzonych przestawnych elementów dokowalnych"
 
-#: ../src/main.cpp:403
-msgid "VERB-ID"
-msgstr "ID polecenia"
+#: ../src/libgdl/gdl-dock-master.c:152
+msgid "If is set to 1, all the dock items bound to the master are locked; if it's 0, all are unlocked; -1 indicates inconsistency among the items"
+msgstr "Jeśli zostanie ustawiona wartość 1 wszystkie obiekty dokowalne połączone z obiektem głównym będą zablokowane. Jeśli 0, obiekty będą odblokowane, -1  elementy będą niespójne pomiędzy sobą."
 
-#: ../src/main.cpp:407
-msgid "Object ID to select when Inkscape opens."
-msgstr "ID obiektu do zaznaczenia podczas uruchamiania Inkscape"
+#: ../src/libgdl/gdl-dock-master.c:160
+#: ../src/libgdl/gdl-switcher.c:707
+msgid "Switcher Style"
+msgstr "Styl przełącznika"
 
-#: ../src/main.cpp:408
-msgid "OBJECT-ID"
-msgstr "ID obiektu"
+#: ../src/libgdl/gdl-dock-master.c:161
+#: ../src/libgdl/gdl-switcher.c:708
+msgid "Switcher buttons style"
+msgstr "Styl przycisków przełączających"
 
-#: ../src/main.cpp:687
-msgid ""
-"[OPTIONS...] [FILE...]\n"
-"\n"
-"Available options:"
-msgstr ""
-"[OPCJE...] [PLIK...]\n"
-"\n"
-"Dostępne opcje:"
+#: ../src/libgdl/gdl-dock-master.c:168
+msgid "Expand direction"
+msgstr "Kierunek rozszerzania"
 
-#: ../src/menus-skeleton.h:17
-msgid "_New"
-msgstr "_Nowy"
+#: ../src/libgdl/gdl-dock-master.c:169
+msgid "Allow the master's dock items to expand their container dock objects in the given direction"
+msgstr "Pozwala głównym elementom dokowalnym na rozszerzenie ich obiektów dokowalnych w określonym kierunku"
 
-#: ../src/menus-skeleton.h:22
-msgid "Open _Recent"
-msgstr "Otwórz o_statnio używane"
+#: ../src/libgdl/gdl-dock-master.c:796
+#, c-format
+msgid "master %p: unable to add object %p[%s] to the hash.  There already is an item with that name (%p)."
+msgstr "Główny %p: nie można dodać obiektu %p[%s] do zbioru. Już istnieje element o nazwie (%p)."
 
-#: ../src/menus-skeleton.h:50 ../src/verbs.cpp:2403 ../src/verbs.cpp:2409
-msgid "_Edit"
-msgstr "_Edycja"
+#: ../src/libgdl/gdl-dock-master.c:969
+#, c-format
+msgid "The new dock controller %p is automatic.  Only manual dock objects should be named controller."
+msgstr "Nowy sterownik dokowania %p jest automatyczny. Tylko ręcznie dokowalne obiekty powinny nazywać się sterownikiem."
 
-#: ../src/menus-skeleton.h:60 ../src/verbs.cpp:2205
-msgid "Paste Si_ze"
-msgstr "Wklej roz_miar"
+#: ../src/libgdl/gdl-dock-notebook.c:134
+#: ../src/ui/dialog/align-and-distribute.cpp:916
+#: ../src/ui/dialog/document-properties.cpp:134
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1367
+#: ../src/widgets/desktop-widget.cpp:1572
+msgid "Page"
+msgstr "Strona"
 
-#: ../src/menus-skeleton.h:72
-msgid "Clo_ne"
-msgstr "Klo_nuj"
+#: ../src/libgdl/gdl-dock-notebook.c:135
+msgid "The index of the current page"
+msgstr "Indeks bieżącej strony"
 
-#: ../src/menus-skeleton.h:91
-msgid "_View"
-msgstr "_Widok"
+#: ../src/libgdl/gdl-dock-object.c:120
+#: ../src/ui/widget/page-sizer.cpp:216
+msgid "Name"
+msgstr "Nazwa"
 
-#: ../src/menus-skeleton.h:92
-msgid "_Zoom"
-msgstr "P_owiększenie"
+#: ../src/libgdl/gdl-dock-object.c:121
+msgid "Unique name for identifying the dock object"
+msgstr "Unikalna nazwa identyfikująca obiekt dokowalny"
 
-#: ../src/menus-skeleton.h:108
-msgid "_Display mode"
-msgstr "_Tryb wyświetlania"
+#: ../src/libgdl/gdl-dock-object.c:128
+msgid "Long name"
+msgstr "Długa nazwa"
 
-#: ../src/menus-skeleton.h:120
-msgid "Show/Hide"
-msgstr "Wyświetl/U_kryj"
+#: ../src/libgdl/gdl-dock-object.c:129
+msgid "Human readable name for the dock object"
+msgstr "Zrozumiała dla wszystkich nazwa obiektu dokowalnego"
 
-#: ../src/menus-skeleton.h:137
-msgid "_Layer"
-msgstr "W_arstwa"
+#: ../src/libgdl/gdl-dock-object.c:135
+msgid "Stock Icon"
+msgstr "Zbiór ikon"
 
-#: ../src/menus-skeleton.h:156
-msgid "_Object"
-msgstr "_Obiekt"
+#: ../src/libgdl/gdl-dock-object.c:136
+msgid "Stock icon for the dock object"
+msgstr "Zbiór ikon dla obiektów dokowalnych"
 
-#: ../src/menus-skeleton.h:166
-msgid "Cli_p"
-msgstr "Przytni_j"
+#: ../src/libgdl/gdl-dock-object.c:142
+msgid "Pixbuf Icon"
+msgstr "Ikona Pixbuf"
 
-#: ../src/menus-skeleton.h:170
-msgid "Mas_k"
-msgstr "Mas_ka"
+#: ../src/libgdl/gdl-dock-object.c:143
+msgid "Pixbuf icon for the dock object"
+msgstr "Ikona Pixbuf dla obiektu dokowalnego"
 
-#: ../src/menus-skeleton.h:174
-msgid "Patter_n"
-msgstr "D_eseń"
+#: ../src/libgdl/gdl-dock-object.c:148
+msgid "Dock master"
+msgstr "Główny element dokowalny"
 
-#: ../src/menus-skeleton.h:198
-msgid "_Path"
-msgstr "Ścież_ka"
+#: ../src/libgdl/gdl-dock-object.c:149
+msgid "Dock master this dock object is bound to"
+msgstr "Główny element dokowalny tego obiektu jest połączony z"
 
-#: ../src/menus-skeleton.h:221
-msgid "Path Effects"
-msgstr "Efekty ścieżki"
+#: ../src/libgdl/gdl-dock-object.c:434
+#, c-format
+msgid "Call to gdl_dock_object_dock in a dock object %p (object type is %s) which hasn't implemented this method"
+msgstr "Wywołanie metody gdl_dock_object_dock w obiekcie %p (typ obiektu %s), który nie posiada implementacji tej metody"
 
-#: ../src/menus-skeleton.h:227
-msgid "_Text"
-msgstr "_Tekst"
+#: ../src/libgdl/gdl-dock-object.c:563
+#, c-format
+msgid "Dock operation requested in a non-bound object %p. The application might crash"
+msgstr "Zażądano wykonania operacji dokowania w niepołączonym obiekcie %p. Kontynuowanie może spowodować zamknięcie aplikacji."
 
-#: ../src/menus-skeleton.h:239
-msgid "Effe_cts"
-msgstr "E_fekty"
+#: ../src/libgdl/gdl-dock-object.c:570
+#, c-format
+msgid "Cannot dock %p to %p because they belong to different masters"
+msgstr "Nie można zadokować %p do %p ponieważ jest ono połączone i innym elementem głównym"
 
-#: ../src/menus-skeleton.h:246
-msgid "Whiteboa_rd"
-msgstr "Ta_blica"
+#: ../src/libgdl/gdl-dock-object.c:612
+#, c-format
+msgid "Attempt to bind to %p an already bound dock object %p (current master: %p)"
+msgstr "Próba połączenia z %p już połączonego obiektu dokowalnego %p Aktualny element główny: %p)"
 
-#: ../src/menus-skeleton.h:250
-msgid "_Help"
-msgstr "Pomo_c"
+#: ../src/libgdl/gdl-dock-paned.c:132
+msgid "Position"
+msgstr "Lokalizacja"
 
-#: ../src/menus-skeleton.h:254
-msgid "Tutorials"
-msgstr "Poradniki"
+#: ../src/libgdl/gdl-dock-paned.c:133
+msgid "Position of the divider in pixels"
+msgstr "Położenie przegrody (w px)"
 
-#: ../src/node-context.cpp:255
-msgid ""
-"<b>Ctrl</b>: toggle node type, snap handle angle, move hor/vert; <b>Ctrl"
-"+Alt</b>: move along handles"
-msgstr ""
-"<b>Ctrl</b> - przełącza typ węzła, przyciąga uchwyt do kąta, prowadzi "
-"poziomo/pionowo. <b>Ctrl + Alt</b> -  prowadzi po linii uchwytu."
+#: ../src/libgdl/gdl-dock-placeholder.c:143
+msgid "Sticky"
+msgstr "Przyklejone"
 
-#: ../src/node-context.cpp:256
-msgid ""
-"<b>Shift</b>: toggle node selection, disable snapping, rotate both handles"
-msgstr ""
-"<b>Shift</b> - przełącza wybór węzła, wyłącza przyciąganie, obraca oba "
-"uchwyty"
+#: ../src/libgdl/gdl-dock-placeholder.c:144
+msgid "Whether the placeholder will stick to its host or move up the hierarchy when the host is redocked"
+msgstr "Okienko zadań będzie połączone ze swoim miejscem dokowania i podczas ponownego dokowania będzie dokowane w tym miejscu lub przesuwane w górę hierarchii panelu dokowania"
 
-#: ../src/node-context.cpp:257
-msgid "<b>Alt</b>: lock handle length; <b>Ctrl+Alt</b>: move along handles"
-msgstr ""
-"<b>Alt</b> - blokuje odległość uchwytu. <b>Ctrl + Alt</b> - prowadzi po "
-"linii uchwytu."
+#: ../src/libgdl/gdl-dock-placeholder.c:151
+msgid "Host"
+msgstr "Host"
 
-#: ../src/nodepath.cpp:651 ../src/seltrans.cpp:547
-msgid "Stamp"
-msgstr "Znacznik czasu"
+#: ../src/libgdl/gdl-dock-placeholder.c:152
+msgid "The dock object this placeholder is attached to"
+msgstr "Dokowalny obiekt tego miejsca dokowania jest dołączony do niego"
 
-#: ../src/nodepath.cpp:1486 ../src/nodepath.cpp:1513
-msgid "Move nodes vertically"
-msgstr "Przesuń węzły w pionie"
+#: ../src/libgdl/gdl-dock-placeholder.c:159
+msgid "Next placement"
+msgstr "Następne położenie"
 
-#: ../src/nodepath.cpp:1488 ../src/nodepath.cpp:1515
-msgid "Move nodes horizontally"
-msgstr "Przesuń węzły w poziomie"
+#: ../src/libgdl/gdl-dock-placeholder.c:160
+msgid "The position an item will be docked to our host if a request is made to dock to us"
+msgstr "Jeśli zażądano zadokowania w panelu dokowania, pozycja elementu zostanie zapamiętana"
 
-#: ../src/nodepath.cpp:1490 ../src/nodepath.cpp:1517 ../src/nodepath.cpp:1532
-#: ../src/nodepath.cpp:3359
-msgid "Move nodes"
-msgstr "Przesuń węzły"
+#: ../src/libgdl/gdl-dock-placeholder.c:170
+msgid "Width for the widget when it's attached to the placeholder"
+msgstr "Szerokość elementu załączanego do miejsca dokowania"
 
-#: ../src/nodepath.cpp:1570
-msgid ""
-"<b>Node handle</b>: drag to shape the curve; with <b>Ctrl</b> to snap angle; "
-"with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both handles"
-msgstr ""
-"<b>Uchwyt węzła</b> - ciągnięcie edytuje ścieżkę. Z <b>Ctrl</b> - "
-"przyciąganie do kąta, z <b>Alt</b> blokada odległości, z <b>Shift</b> obrót "
-"obu uchwytów."
+#: ../src/libgdl/gdl-dock-placeholder.c:178
+msgid "Height for the widget when it's attached to the placeholder"
+msgstr "Wysokość elementu załączanego do miejsca dokowania"
 
-#: ../src/nodepath.cpp:1740
-msgid "Align nodes"
-msgstr "Wyrównaj węzły"
+#: ../src/libgdl/gdl-dock-placeholder.c:184
+msgid "Floating Toplevel"
+msgstr "Najwyższy poziom elementów w trybie przestawnym"
 
-#: ../src/nodepath.cpp:1802
-msgid "Distribute nodes"
-msgstr "Rozmieść węzły"
+#: ../src/libgdl/gdl-dock-placeholder.c:185
+msgid "Whether the placeholder is standing in for a floating toplevel dock"
+msgstr "Czy miejsce dokowania jest stałe dla przestawnych obiektów dokowalnych najwyższego poziomu"
 
-#: ../src/nodepath.cpp:1840
-msgid "Add nodes"
-msgstr "Dodaj węzły"
+#: ../src/libgdl/gdl-dock-placeholder.c:191
+msgid "X-Coordinate"
+msgstr "Współrzędna X"
 
-#: ../src/nodepath.cpp:1842 ../src/nodepath.cpp:1914
-msgid "Add node"
-msgstr "Dodaj węzeł"
+#: ../src/libgdl/gdl-dock-placeholder.c:192
+msgid "X coordinate for dock when floating"
+msgstr "Współrzędna X okna dokowalnego w trybie przestawnym"
 
-#: ../src/nodepath.cpp:1995
-msgid "Break path"
-msgstr "Rozdziel ścieżkę"
+#: ../src/libgdl/gdl-dock-placeholder.c:198
+msgid "Y-Coordinate"
+msgstr "Współrzędna Y"
 
-#: ../src/nodepath.cpp:2051
-msgid "Close subpath"
-msgstr "Zamknij subścieżkę"
+#: ../src/libgdl/gdl-dock-placeholder.c:199
+msgid "Y coordinate for dock when floating"
+msgstr "Współrzędna Y okna dokowalnego w trybie przestawnym"
 
-#: ../src/nodepath.cpp:2112
-msgid "Join nodes"
-msgstr "Połącz węzły"
+#: ../src/libgdl/gdl-dock-placeholder.c:494
+msgid "Attempt to dock a dock object to an unbound placeholder"
+msgstr "Próba zadokowania obiektu do niepołączonego miejsca dokowania"
 
-#: ../src/nodepath.cpp:2139
-msgid "Close subpath by segment"
-msgstr "Zamyka subścieżkę za pomocą odcinka"
+#: ../src/libgdl/gdl-dock-placeholder.c:618
+#, c-format
+msgid "Got a detach signal from an object (%p) who is not our host %p"
+msgstr "Otrzymano sygnał odłączenia od obiektu (%p), który nie jest naszym serwerem %p"
 
-#: ../src/nodepath.cpp:2193
-msgid "Join nodes by segment"
-msgstr "Łączy zaznaczone węzły końcowe za pomocą odcinka"
+#: ../src/libgdl/gdl-dock-placeholder.c:643
+#, c-format
+msgid "Something weird happened while getting the child placement for %p from parent %p"
+msgstr "Stało się coś dziwnego podczas otwierania okna dokowalnego dla %p pochodzącego z %p"
 
-#: ../src/nodepath.cpp:2206 ../src/nodepath.cpp:2221
-msgid "To join, you must have <b>two endnodes</b> selected."
-msgstr "Aby połączyć, należy wybrać <b>dwa węzły końcowe</b>"
+#: ../src/libgdl/gdl-dock-tablabel.c:129
+msgid "Dockitem which 'owns' this tablabel"
+msgstr "Okno dokowalne, które posiada tę etykietę karty"
 
-#: ../src/nodepath.cpp:2378 ../src/nodepath.cpp:2414 ../src/nodepath.cpp:2418
-msgid "Delete nodes"
-msgstr "Usuń węzły"
+#: ../src/libgdl/gdl-dock.c:175
+#: ../src/ui/dialog/inkscape-preferences.cpp:506
+#: ../src/ui/dialog/inkscape-preferences.cpp:527
+msgid "Floating"
+msgstr "Przestawne"
 
-#: ../src/nodepath.cpp:2380
-msgid "Delete nodes preserving shape"
-msgstr "Usuwa węzły zachowując kształt"
+#: ../src/libgdl/gdl-dock.c:176
+msgid "Whether the dock is floating in its own window"
+msgstr "Czy okno dokowalne może być przestawnym w swoim własnym oknie"
 
-#: ../src/nodepath.cpp:2437 ../src/nodepath.cpp:2451
-msgid ""
-"Select <b>two non-endpoint nodes</b> on a path between which to delete "
-"segments."
-msgstr ""
-"Wybierz <b>dwa nie końcowe węzły</b> na ścieżce, aby usunąć odcinki pomiędzy "
-"nimi"
+#: ../src/libgdl/gdl-dock.c:184
+msgid "Default title for the newly created floating docks"
+msgstr "Domyślna nazwa tworzonych okien dokowalnych"
 
-#: ../src/nodepath.cpp:2547
-msgid "Cannot find path between nodes."
-msgstr "Nie znaleziono ścieżki pomiędzy węzłami"
+#: ../src/libgdl/gdl-dock.c:191
+msgid "Width for the dock when it's of floating type"
+msgstr "Szerokość okna dokowalnego w trybie przestawnym"
 
-#: ../src/nodepath.cpp:2579 ../src/widgets/toolbox.cpp:1129
-msgid "Delete segment"
-msgstr "Usuń odcinek"
+#: ../src/libgdl/gdl-dock.c:199
+msgid "Height for the dock when it's of floating type"
+msgstr "Wysokość okna dokowalnego w trybie przestawnym"
 
-#: ../src/nodepath.cpp:2600
-msgid "Change segment type"
-msgstr "Zmień typ odcinka"
+#: ../src/libgdl/gdl-dock.c:206
+msgid "Float X"
+msgstr "Współrzędna X"
 
-#: ../src/nodepath.cpp:2617 ../src/nodepath.cpp:3317
-msgid "Change node type"
-msgstr "Zmień typ węzła"
+#: ../src/libgdl/gdl-dock.c:207
+msgid "X coordinate for a floating dock"
+msgstr "Współrzędna X okna dokowalnego w trybie przestawnym"
 
-#: ../src/nodepath.cpp:3605
-msgid "Retract handle"
-msgstr "Cofnij uchwyt"
+#: ../src/libgdl/gdl-dock.c:214
+msgid "Float Y"
+msgstr "Współrzędna Y"
 
-#: ../src/nodepath.cpp:3654
-msgid "Move node handle"
-msgstr "Przesuń uchwyt węzła"
+#: ../src/libgdl/gdl-dock.c:215
+msgid "Y coordinate for a floating dock"
+msgstr "Współrzędna Y okna dokowalnego w trybie przestawnym"
 
-#: ../src/nodepath.cpp:3823
+#: ../src/libgdl/gdl-dock.c:499
 #, c-format
-msgid ""
-"<b>Node handle</b>: angle %0.2f&#176;, length %s; with <b>Ctrl</b> to snap "
-"angle; with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both "
-"handles"
-msgstr ""
-"<b>Uchwyt węzła</b>. Kąt %0.2f&#176;, długość %s; z <b>Ctrl</b> przyciąganie "
-"do kąta; z <b>Alt</b> blokada odległości; z <b>Shift</b> obrót obu uchwytów"
+msgid "Dock #%d"
+msgstr "Okno dokowalne #%d"
 
-#: ../src/nodepath.cpp:4017
-msgid "Rotate nodes"
-msgstr "Obróć węzły"
+#: ../src/libnrtype/FontFactory.cpp:778
+msgid "Ignoring font without family that will crash Pango"
+msgstr "Pomijanie czcionki bez rodziny, która może powodować błędy w bibliotece Pango"
 
-#: ../src/nodepath.cpp:4148
-msgid "Scale nodes"
-msgstr "Skaluj węzły"
+#. {constant defined in effect.h, N_("name of your effect"), "name of your effect in SVG"}
+#: ../src/live_effects/effect.cpp:76
+#, fuzzy
+msgid "Angle bisector"
+msgstr "Kąt w orientacji X"
 
-#: ../src/nodepath.cpp:4192
-msgid "Flip nodes"
-msgstr "Odbij węzły"
+#: ../src/live_effects/effect.cpp:77
+msgid "Bend"
+msgstr "Zagięcie"
 
-#: ../src/nodepath.cpp:4361
-msgid ""
-"<b>Node</b>: drag to edit the path; with <b>Ctrl</b> to snap to horizontal/"
-"vertical; with <b>Ctrl+Alt</b> to snap to handles' directions"
+#: ../src/live_effects/effect.cpp:78
+msgid "Boolops"
 msgstr ""
-"<b>Węzeł</b>: edytuj ścieżkę przeciągając; z <b>Ctrl</b> tylko poziomo/"
-"pionowo; z <b>Ctrl + Alt</b> wzdłuż linii uchwytów"
 
-#. TRANSLATORS: "end" is an adjective here (NOT a verb)
-#: ../src/nodepath.cpp:4587
-msgid "end node"
-msgstr "węzeł końcowy"
+#: ../src/live_effects/effect.cpp:79
+msgid "Circle (by center and radius)"
+msgstr "Okrąg (środek+kąt)"
 
-#. TRANSLATORS: "cusp" means "sharp" (cusp node); see also the Advanced Tutorial
-#: ../src/nodepath.cpp:4592
-msgid "cusp"
-msgstr "ostry"
+#: ../src/live_effects/effect.cpp:80
+msgid "Circle by 3 points"
+msgstr "Okrąg oparty na 3 punktach"
 
-#. TRANSLATORS: "smooth" is an adjective here
-#: ../src/nodepath.cpp:4595
-msgid "smooth"
-msgstr "gładki"
+#: ../src/live_effects/effect.cpp:81
+msgid "Construct grid"
+msgstr "Utwórz siatkę"
 
-#: ../src/nodepath.cpp:4597
-msgid "symmetric"
-msgstr "symetryczny"
+#: ../src/live_effects/effect.cpp:83
+msgid "doEffect stack test"
+msgstr "Wykonaj test efektu stosu"
 
-#. TRANSLATORS: "end" is an adjective here (NOT a verb)
-#: ../src/nodepath.cpp:4603
-msgid "end node, handle retracted (drag with <b>Shift</b> to extend)"
-msgstr ""
-"węzeł końcowy, uchwyt zredukowany (ciągnij z <b>Shift</b>, aby go rozciągnąć)"
+#: ../src/live_effects/effect.cpp:85
+msgid "Envelope Deformation"
+msgstr "Deformacja obwiedni"
 
-#: ../src/nodepath.cpp:4605
-msgid "one handle retracted (drag with <b>Shift</b> to extend)"
-msgstr ""
-"jeden z uchwytów został zredukowany (ciągnij z <b>Shift</b>, aby go "
-"rozciągnąć)"
+#: ../src/live_effects/effect.cpp:86
+msgid "Freehand Shape"
+msgstr "Kształt odręczny"
 
-#: ../src/nodepath.cpp:4608
-msgid "both handles retracted (drag with <b>Shift</b> to extend)"
-msgstr ""
-"oba uchwyty zostały zredukowane (przeciągnij z <b>Shift</b>, aby je "
-"rozciągnąć)"
+#. this is actually a special type of PatternAlongPath, used to paste shapes in pen/pencil tool
+#: ../src/live_effects/effect.cpp:87
+msgid "Gears"
+msgstr "Koła zębate"
 
-#: ../src/nodepath.cpp:4620
-msgid ""
-"<b>Drag</b> nodes or node handles; <b>Alt+drag</b> nodes to sculpt; "
-"<b>arrow</b> keys to move nodes, <b>&lt; &gt;</b> to scale, <b>[ ]</b> to "
-"rotate"
-msgstr ""
-"<b>Przeciągnie</b> węzłów lub ich uchwytów: <b>Alt + ciągnięcie</b> węzłów - "
-"modelowanie. Klawisze: <b>strzałek</b> - przesuwanie węzłów, <b>&lt; &gt;</"
-"b> - skalowanie, <b>[ ]</b> - obracanie"
+#: ../src/live_effects/effect.cpp:88
+#, fuzzy
+msgid "Interpolate Sub-Paths"
+msgstr "Interpolacja"
 
-#: ../src/nodepath.cpp:4621
-msgid "<b>Drag</b> the node or its handles; <b>arrow</b> keys to move the node"
-msgstr ""
-"<b>Przeciąganie</b> węzłów lub ich uchwytów: Klawisze <b>strzałek</b> "
-"przesuwają węzeł"
+#: ../src/live_effects/effect.cpp:89
+msgid "Knot"
+msgstr "Supeł"
 
-#: ../src/nodepath.cpp:4646 ../src/nodepath.cpp:4658
-msgid "Select a single object to edit its nodes or handles."
-msgstr "Zaznacz pojedynczy obiekt, aby edytować jego węzły lub uchwyty"
+#: ../src/live_effects/effect.cpp:90
+msgid "Lattice Deformation"
+msgstr "Deformacja segmentowa"
 
-#: ../src/nodepath.cpp:4650
-#, c-format
-msgid ""
-"<b>0</b> out of <b>%i</b> node selected. <b>Click</b>, <b>Shift+click</b>, "
-"or <b>drag around</b> nodes to select."
-msgid_plural ""
-"<b>0</b> out of <b>%i</b> nodes selected. <b>Click</b>, <b>Shift+click</b>, "
-"or <b>drag around</b> nodes to select."
-msgstr[0] ""
-"Zaznaczono <b>0</b> z <b>%i</b> węzłów. Aby zaznaczyć węzły <b>kliknij</b>, "
-"<b>Shift + kliknij</b>, lub wykonaj <b>ciągnięcie</b> wokół węzłów."
-msgstr[1] ""
-"Zaznaczono <b>0</b> z <b>%i</b> węzłów. Aby zaznaczyć węzły <b>kliknij</b>, "
-"<b>Shift + kliknij</b>, lub wykonaj <b>ciągnięcie</b> wokół węzłów."
-msgstr[2] ""
-"Zaznaczono <b>0</b> z <b>%i</b> węzłów. Aby zaznaczyć węzły <b>kliknij</b>, "
-"<b>Shift + kliknij</b>, lub wykonaj <b>ciągnięcie</b> wokół węzłów."
-
-#: ../src/nodepath.cpp:4656
-msgid "Drag the handles of the object to modify it."
-msgstr "Aby zmodyfikować obiekt przeciągnij uchwyty"
+#: ../src/live_effects/effect.cpp:91
+msgid "Line Segment"
+msgstr "Odcinek"
 
-#: ../src/nodepath.cpp:4664
-#, c-format
-msgid "<b>%i</b> of <b>%i</b> node selected; %s. %s."
-msgid_plural "<b>%i</b> of <b>%i</b> nodes selected; %s. %s."
-msgstr[0] "Zaznaczono <b>%i</b> z <b>%i</b> węzła. %s. %s"
-msgstr[1] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów. %s. %s"
-msgstr[2] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów. %s. %s"
+#: ../src/live_effects/effect.cpp:92
+msgid "Mirror symmetry"
+msgstr "Symetria lustrzana"
 
-#: ../src/nodepath.cpp:4671
-#, c-format
-msgid ""
-"<b>%i</b> of <b>%i</b> node selected in <b>%i</b> of <b>%i</b> subpaths. %s."
-msgid_plural ""
-"<b>%i</b> of <b>%i</b> nodes selected in <b>%i</b> of <b>%i</b> subpaths. %s."
-msgstr[0] ""
-"Zaznaczono <b>%i</b> z <b>%i</b> węzła na <b>%i</b> z <b>%i</b> ścieżek "
-"zagnieżdżonych. %s."
-msgstr[1] ""
-"Zaznaczono <b>%i</b> z <b>%i</b> węzłów na <b>%i</b> z <b>%i</b> ścieżek "
-"zagnieżdżonych. %s."
-msgstr[2] ""
-"Zaznaczono <b>%i</b> z <b>%i</b> węzłów na <b>%i</b> z <b>%i</b> ścieżek "
-"zagnieżdżonych. %s."
-
-#: ../src/nodepath.cpp:4677
-#, c-format
-msgid "<b>%i</b> of <b>%i</b> node selected. %s."
-msgid_plural "<b>%i</b> of <b>%i</b> nodes selected. %s."
-msgstr[0] "Zaznaczono <b>%i</b> z <b>%i</b> węzła. %s"
-msgstr[1] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów. %s"
-msgstr[2] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów. %s"
+#: ../src/live_effects/effect.cpp:94
+#, fuzzy
+msgid "Parallel"
+msgstr "Przesunięcie normalne"
 
-#: ../src/object-edit.cpp:420
-msgid ""
-"Adjust the <b>horizontal rounding</b> radius; with <b>Ctrl</b> to make the "
-"vertical radius the same"
-msgstr ""
-"Ustawianie promienia <b>poziomego zaokrąglenia</b>; z <b>Ctrl</b> ta sama "
-"wartość dla promienia zaokrąglenia pionowego"
+#: ../src/live_effects/effect.cpp:95
+msgid "Path length"
+msgstr "Długość ścieżki"
 
-#: ../src/object-edit.cpp:424
-msgid ""
-"Adjust the <b>vertical rounding</b> radius; with <b>Ctrl</b> to make the "
-"horizontal radius the same"
-msgstr ""
-"Ustawianie promienia <b>pionowego zaokrąglenia</b>; z <b>Ctrl</b> ta sama "
-"wartość dla promienia zaokrąglenia poziomego."
+#: ../src/live_effects/effect.cpp:96
+msgid "Pattern Along Path"
+msgstr "Deseń wzdłuż ścieżki"
 
-#: ../src/object-edit.cpp:428 ../src/object-edit.cpp:432
+#. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG
+#: ../src/live_effects/effect.cpp:97
 #, fuzzy
-msgid ""
-"Adjust the <b>width and height</b> of the rectangle; with <b>Ctrl</b>to lock "
-"ratio or stretch in one dimension only"
-msgstr ""
-"Ustawianie <b>szerokości i wysokości</b> prostokąta. Z <b>Ctrl</b> blokada "
-"proporcji lub zmiana tylko w jednym kierunku."
-
-#: ../src/object-edit.cpp:666 ../src/object-edit.cpp:669
-#: ../src/object-edit.cpp:672 ../src/object-edit.cpp:675
-msgid ""
-"Resize box in X/Y direction; with <b>Shift</b> along the Z axis; with "
-"<b>Ctrl</b> to constrain to the directions of edges or diagonals"
-msgstr ""
-"Zmiana wielkości obiektu w kierunkach X/Y. Z <b>Shift</b> wzdłuż osi Z,  "
-"z<b>Ctrl</b> zachowuje proporcje kierunków krawędzi lub przekątnych."
+msgid "Perpendicular bisector"
+msgstr "(prostopadle do konturu, \"pędzel\")"
 
-#: ../src/object-edit.cpp:678 ../src/object-edit.cpp:681
-#: ../src/object-edit.cpp:684 ../src/object-edit.cpp:687
-msgid ""
-"Resize box along the Z axis; with <b>Shift</b> in X/Y direction; with "
-"<b>Ctrl</b> to constrain to the directions of edges or diagonals"
-msgstr ""
-"Zmiana wielkości obiektu wzdłuż osi Z; z <b>Shift</b> w kierunkach X/Y, z "
-"<b>Ctrl</b> zachowuje proporcje kierunków krawędzi lub przekątnych."
+#: ../src/live_effects/effect.cpp:98
+msgid "Perspective path"
+msgstr "Ścieżka perspektywy"
 
-#: ../src/object-edit.cpp:690
-msgid "Move the box in perspective"
-msgstr "Utwórz perspektywę obiektu"
+#: ../src/live_effects/effect.cpp:99
+msgid "Rotate copies"
+msgstr "Obróć kopie"
 
-#: ../src/object-edit.cpp:908
-msgid "Adjust ellipse <b>width</b>, with <b>Ctrl</b> to make circle"
-msgstr "Ustawianie <b>szerokości</b> elipsy; z <b>Ctrl</b> - tworzenie okręgu."
+#: ../src/live_effects/effect.cpp:100
+msgid "Ruler"
+msgstr "Linijka"
 
-#: ../src/object-edit.cpp:911
-msgid "Adjust ellipse <b>height</b>, with <b>Ctrl</b> to make circle"
-msgstr "Ustawianie <b>wysokości</b> elipsy; z <b>Ctrl</b> - tworzenie okręgu."
+#: ../src/live_effects/effect.cpp:101
+msgid "Sketch"
+msgstr "Szkic"
 
-#: ../src/object-edit.cpp:914
-#, fuzzy
-msgid ""
-"Position the <b>start point</b> of the arc or segment; with <b>Ctrl</b>to "
-"snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for "
-"segment"
+#: ../src/live_effects/effect.cpp:102
+msgid "Spiro spline"
 msgstr ""
-"Ustawianie <b>początku</b> łuku lub wycinka; z <b>Ctrl</b> - przyciąganie do "
-"kąta. Ciągnięcie <b>wewnątrz</b> elipsy daje łuk, <b>na zewnątrz</b> - "
-"wycinek elipsy."
 
-#: ../src/object-edit.cpp:918
-msgid ""
-"Position the <b>end point</b> of the arc or segment; with <b>Ctrl</b> to "
-"snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for "
-"segment"
-msgstr ""
-"Ustawianie <b>końca</b> łuku lub wycinka; z <b>Ctrl</b> - przyciąganie do "
-"kąta. Ciągnięcie <b>wewnątrz</b> elipsy daje łuk, <b>na zewnątrz</b> - "
-"wycinek elipsy."
+#: ../src/live_effects/effect.cpp:103
+msgid "Stitch Sub-Paths"
+msgstr "Zszywanie ścieżek podrzędnych"
 
-#: ../src/object-edit.cpp:1057
-msgid ""
-"Adjust the <b>tip radius</b> of the star or polygon; with <b>Shift</b> to "
-"round; with <b>Alt</b> to randomize"
-msgstr ""
-"Ustawianie <b>promienia wierzchołków</b> gwiazdy lub wielokąta; z <b>Shift</"
-"b> - zaokrąglenie, z <b>Alt</b> zniekształcenie losowe."
+#: ../src/live_effects/effect.cpp:104
+msgid "Tangent to curve"
+msgstr "Styczna w krzywą"
 
-#: ../src/object-edit.cpp:1064
-msgid ""
-"Adjust the <b>base radius</b> of the star; with <b>Ctrl</b> to keep star "
-"rays radial (no skew); with <b>Shift</b> to round; with <b>Alt</b> to "
-"randomize"
-msgstr ""
-"Ustawianie <b>promienia podstawy</b> gwiazdy; z <b>Ctrl</b> zachowuje "
-"promienistość (bez skręcenia), z <b>Shift</b> - zaokrąglenie, z <b>Alt</b> - "
-"zniekształcenie losowe."
+#: ../src/live_effects/effect.cpp:105
+msgid "Text label"
+msgstr "Etykieta tekstu"
 
-#: ../src/object-edit.cpp:1245
-msgid ""
-"Roll/unroll the spiral from <b>inside</b>; with <b>Ctrl</b> to snap angle; "
-"with <b>Alt</b> to converge/diverge"
+#: ../src/live_effects/effect.cpp:106
+msgid "VonKoch"
 msgstr ""
-"Rozwijanie/zwijanie spirali od <b>środka</b>; z <b>Ctrl</b> - przyciąganie "
-"do kąta, z <b>Alt</b> - zwiększenie/zmniejszenie przyrostu."
 
-#: ../src/object-edit.cpp:1248
-msgid ""
-"Roll/unroll the spiral from <b>outside</b>; with <b>Ctrl</b> to snap angle; "
-"with <b>Shift</b> to scale/rotate"
+#: ../src/live_effects/effect.cpp:255
+msgid "If unchecked, the effect remains applied to the object but is temporarily disabled on canvas"
 msgstr ""
-"Rozwiń/zwiń spiralę od <b>zewnątrz</b>; z <b>Ctrl</b> przyciąganie do kąta; "
-"z <b>Shift</b> skalowanie/obrót; z <b>Alt</b> bez zmiany promienia"
-
-#: ../src/object-edit.cpp:1292
-msgid "Adjust the <b>offset distance</b>"
-msgstr "Ustawianie <b>odległości odsunięcia</b>."
-
-#: ../src/object-edit.cpp:1327
-msgid "Drag to resize the <b>flowed text frame</b>"
-msgstr "Ciągnij, aby zmienić rozmiar <b>ramki z tekstem</b>"
-
-#: ../src/path-chemistry.cpp:63
-msgid "Select <b>at least two objects</b> to combine."
-msgstr "Wybierz <b>co najmniej dwa obiekty</b> do połączenia"
-
-#: ../src/path-chemistry.cpp:67
-msgid "Combining paths..."
-msgstr "Łączenie ścieżek..."
 
-#: ../src/path-chemistry.cpp:169
-msgid "Combine"
-msgstr "Połącz"
-
-#: ../src/path-chemistry.cpp:176
-msgid "<b>No path(s)</b> to combine in the selection."
-msgstr "W zaznaczeniu <b>brak ścieżek</b> do połączenia"
-
-#: ../src/path-chemistry.cpp:190
-msgid "Select <b>path(s)</b> to break apart."
-msgstr "Wybierz jedną lub więcej <b>ścieżek</b> do rozdzielenia na części"
+#: ../src/live_effects/effect.cpp:255
+msgid "Is visible?"
+msgstr ""
 
-#: ../src/path-chemistry.cpp:194
-msgid "Breaking apart paths..."
-msgstr "Rozdzielanie ścieżek..."
+#: ../src/live_effects/effect.cpp:256
+msgid "Check this to deactivate knotholder handles (useful if they interfere with node handles during editing)"
+msgstr ""
 
-#: ../src/path-chemistry.cpp:280
-msgid "Break apart"
-msgstr "Rozdziel"
+#: ../src/live_effects/effect.cpp:256
+#, fuzzy
+msgid "Deactivate knotholder?"
+msgstr "Wyłączono"
 
-#: ../src/path-chemistry.cpp:282
-msgid "<b>No path(s)</b> to break apart in the selection."
-msgstr "W zaznaczeniu <b>brak ścieżek</b> do rozdzielenia na części"
+#: ../src/live_effects/effect.cpp:277
+msgid "No effect"
+msgstr "Brak efektu"
 
-#: ../src/path-chemistry.cpp:306
-msgid "Select <b>object(s)</b> to convert to path."
-msgstr "Zaznacz <b>obiekty</b> do przekształcenia na ścieżki"
+#: ../src/live_effects/effect.cpp:324
+#, c-format
+msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks"
+msgstr ""
 
-#: ../src/path-chemistry.cpp:312
-msgid "Converting objects to paths..."
-msgstr "Konwertowanie obiektów na ścieżki..."
+#: ../src/live_effects/effect.cpp:623
+#, c-format
+msgid "Editing parameter <b>%s</b>."
+msgstr "Edytowanie parametru <b>%s</b>"
 
-#: ../src/path-chemistry.cpp:334
-msgid "Object to path"
-msgstr "Obiekt na ścieżkę"
+#: ../src/live_effects/effect.cpp:628
+msgid "None of the applied path effect's parameters can be edited on-canvas."
+msgstr "Nie ma zastosowanych parametrów efektu ścieżki, które można by edytować w obszarze roboczym"
 
-#: ../src/path-chemistry.cpp:336
-msgid "<b>No objects</b> to convert to path in the selection."
-msgstr "W zaznaczeniu <b>brak obiektów</b> do przekształcenia na ścieżki"
+#: ../src/live_effects/lpe-angle_bisector.cpp:51
+#: ../src/live_effects/lpe-parallel.cpp:47
+#: ../src/live_effects/lpe-perp_bisector.cpp:103
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:58
+#, fuzzy
+msgid "Length left"
+msgstr "Podetnij z lewej"
 
-#: ../src/path-chemistry.cpp:487
-msgid "Select <b>path(s)</b> to reverse."
-msgstr ""
-"Zaznacz jedną lub więcej <b>ścieżek</b>, których kierunek zostanie odwrócony"
+#: ../src/live_effects/lpe-angle_bisector.cpp:51
+#: ../src/live_effects/lpe-perp_bisector.cpp:103
+#, fuzzy
+msgid "Specifies the left end of the bisector"
+msgstr "Definiuje kolor źródła światła"
 
-#: ../src/path-chemistry.cpp:496
-msgid "Reversing paths..."
-msgstr "Odwracanie ścieżek..."
+#: ../src/live_effects/lpe-angle_bisector.cpp:52
+#: ../src/live_effects/lpe-parallel.cpp:48
+#: ../src/live_effects/lpe-perp_bisector.cpp:104
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:59
+#, fuzzy
+msgid "Length right"
+msgstr "Jednostka długości:"
 
-#: ../src/path-chemistry.cpp:523
-msgid "Reverse path"
-msgstr "Odwróć kierunek ścieżki"
+#: ../src/live_effects/lpe-angle_bisector.cpp:52
+#: ../src/live_effects/lpe-perp_bisector.cpp:104
+#, fuzzy
+msgid "Specifies the right end of the bisector"
+msgstr "Pobranie jasności koloru"
 
-#: ../src/path-chemistry.cpp:525
-msgid "<b>No paths</b> to reverse in the selection."
-msgstr "W zaznaczeniu <b>brak ścieżek</b>, dla których można odwrócić kierunek"
+#: ../src/live_effects/lpe-angle_bisector.cpp:59
+#, fuzzy
+msgid "Adjust the \"left\" end of the bisector"
+msgstr "Definiuje kolor źródła światła"
 
-#: ../src/pencil-context.cpp:239 ../src/pen-context.cpp:441
-msgid "Continuing selected path"
-msgstr "Kontynuowanie zaznaczonej ścieżki"
+#: ../src/live_effects/lpe-angle_bisector.cpp:60
+#, fuzzy
+msgid "Adjust the \"right\" of the bisector"
+msgstr "Pobranie jasności koloru"
 
-#: ../src/pencil-context.cpp:248 ../src/pen-context.cpp:451
-msgid "Creating new path"
-msgstr "Tworzenie nowej ścieżki"
+#: ../src/live_effects/lpe-bendpath.cpp:55
+msgid "Bend path"
+msgstr "Ścieżka zagięcia"
 
-#: ../src/pencil-context.cpp:253 ../src/pen-context.cpp:453
-msgid "Appending to selected path"
-msgstr "Dodawanie segmentów do zaznaczonej ścieżki"
+#: ../src/live_effects/lpe-bendpath.cpp:55
+msgid "Path along which to bend the original path"
+msgstr "Ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
 
-#: ../src/pencil-context.cpp:336
-msgid "<b>Release</b> here to close and finish the path."
-msgstr "<b>Zwolnij przycisk</b> w tym miejscu, aby zamknąć i zakończyć ścieżkę"
+#: ../src/live_effects/lpe-bendpath.cpp:56
+msgid "Width of the path"
+msgstr "Szerokość ścieżki"
 
-#: ../src/pencil-context.cpp:342
-msgid "Drawing a freehand path"
-msgstr "Rysowanie krzywej odręcznej"
+#: ../src/live_effects/lpe-bendpath.cpp:57
+msgid "Scale the width of the path in units of its length"
+msgstr "Skaluje szerokość ścieżki w jednostkach jej długości"
 
-#: ../src/pencil-context.cpp:347
-msgid "<b>Drag</b> to continue the path from this point."
-msgstr "<b>Ciągnij</b>, aby kontynuować ścieżkę od tego punktu"
+#: ../src/live_effects/lpe-bendpath.cpp:57
+#: ../src/live_effects/lpe-patternalongpath.cpp:64
+msgid "Width in units of length"
+msgstr "Szerokość w jednostkach długości"
 
-#. Write curves to object
-#: ../src/pencil-context.cpp:409
-msgid "Finishing freehand"
-msgstr "Zakończono rysowanie krzywej"
+#: ../src/live_effects/lpe-bendpath.cpp:58
+msgid "Original path is vertical"
+msgstr "Oryginalna ścieżka o orientacji pionowej"
 
-#: ../src/pencil-context.cpp:460 ../src/pen-context.cpp:237
-msgid "Drawing cancelled"
-msgstr "Rysowanie anulowane"
+#: ../src/live_effects/lpe-bendpath.cpp:58
+msgid "Rotates the original 90 degrees, before bending it along the bend path"
+msgstr "Przed zagięciem ścieżki wzdłuż ścieżki zagięcia obraca ścieżkę o 90°"
 
-#: ../src/pen-context.cpp:620
-msgid "<b>Click</b> or <b>click and drag</b> to close and finish the path."
+#: ../src/live_effects/lpe-boolops.cpp:23
+msgid "Null"
 msgstr ""
-"<b>Kliknij</b> lub <b>kliknij i ciągnij</b>, aby zamknąć i zakończyć ścieżkę"
 
-#: ../src/pen-context.cpp:630
-msgid ""
-"<b>Click</b> or <b>click and drag</b> to continue the path from this point."
-msgstr ""
-"<b>Kliknij</b> lub <b>kliknij i ciągnij</b>, aby kontynuować ścieżkę od tego "
-"punktu"
+#: ../src/live_effects/lpe-boolops.cpp:24
+#, fuzzy
+msgid "Intersect"
+msgstr "Część wspólna"
 
-#: ../src/pen-context.cpp:1177
-#, fuzzy, c-format
-msgid ""
-"<b>Curve segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to "
-"snap angle, <b>Enter</b> to finish the path"
-msgstr ""
-" kąt %3.2f&#176;, odległość %s; z <b>Ctrl</b> przyciąganie do kąta, "
-"<b>Enter</b>, aby zakończyć ścieżkę"
+#: ../src/live_effects/lpe-boolops.cpp:25
+msgid "Subtract A-B"
+msgstr "Odejmij A-B"
 
-#: ../src/pen-context.cpp:1178
-#, fuzzy, c-format
-msgid ""
-"<b>Line segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to "
-"snap angle, <b>Enter</b> to finish the path"
-msgstr ""
-" kąt %3.2f&#176;, odległość %s; z <b>Ctrl</b> przyciąganie do kąta, "
-"<b>Enter</b>, aby zakończyć ścieżkę"
+#: ../src/live_effects/lpe-boolops.cpp:26
+msgid "Identity A"
+msgstr "Tożsamość A"
 
-#: ../src/pen-context.cpp:1196
-#, c-format
-msgid ""
-"<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap "
-"angle"
-msgstr ""
-"<b>Uchwyt krzywej</b>: kąt %3.2f&#176;, odległość %s; z <b>Ctrl</b> - "
-"przyciąganie do kąta."
+#: ../src/live_effects/lpe-boolops.cpp:27
+msgid "Subtract B-A"
+msgstr "Odejmij B-A"
 
-#: ../src/pen-context.cpp:1218
-#, fuzzy, c-format
-msgid ""
-"<b>Curve handle, symmetric</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</"
-"b> to snap angle, with <b>Shift</b> to move this handle only"
-msgstr ""
-" kąt %3.2f&#176;, długość %s; z <b>Ctrl</b> - przyciąganie do kąta, z "
-"<b>Shift</b> - przesuwanie tylko tego uchwytu."
+#: ../src/live_effects/lpe-boolops.cpp:28
+msgid "Identity B"
+msgstr "Tożsamość B"
 
-#: ../src/pen-context.cpp:1219
-#, fuzzy, c-format
-msgid ""
-"<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap "
-"angle, with <b>Shift</b> to move this handle only"
-msgstr ""
-" kąt %3.2f&#176;, długość %s; z <b>Ctrl</b> - przyciąganie do kąta, z "
-"<b>Shift</b> - przesuwanie tylko tego uchwytu."
+#: ../src/live_effects/lpe-boolops.cpp:29
+#: ../src/splivarot.cpp:96
+msgid "Exclusion"
+msgstr "Wykluczenie"
 
-#: ../src/pen-context.cpp:1259
-msgid "Drawing finished"
-msgstr "Zakończono rysowanie"
+#: ../src/live_effects/lpe-boolops.cpp:30
+#: ../src/splivarot.cpp:66
+#: ../src/splivarot.cpp:72
+msgid "Union"
+msgstr "Suma"
 
-#: ../src/persp3d.cpp:335
-msgid "Toggle vanishing point"
-msgstr "Przełącz punkty zbiegu"
+#: ../src/live_effects/lpe-boolops.cpp:36
+msgid "2nd path"
+msgstr "Druga ścieżka"
 
-#: ../src/persp3d.cpp:346
-msgid "Toggle multiple vanishing points"
-msgstr "Przełącz wiele punktów zbiegu"
+#: ../src/live_effects/lpe-boolops.cpp:36
+#, fuzzy
+msgid "Path to which the original path will be boolop'ed."
+msgstr "Ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
 
-#: ../src/preferences.cpp:59
-#, c-format
-msgid ""
-"%s is not a valid preferences file.\n"
-"%s"
+#: ../src/live_effects/lpe-boolops.cpp:37
+msgid "Boolop type"
 msgstr ""
-"%s nie jest poprawnym plikiem ustawień.\n"
-"%s"
 
-#: ../src/preferences.cpp:60
-msgid ""
-"Inkscape will run with default settings.\n"
-"New settings will not be saved."
+#: ../src/live_effects/lpe-boolops.cpp:37
+msgid "Determines which kind of boolop will be performed."
 msgstr ""
-"Inkscape zostanie uruchomiony z domyślnymi ustawieniami.\n"
-"Nowe ustawienia nie zostaną zapisane."
 
-#: ../src/rect-context.cpp:382
-msgid ""
-"<b>Ctrl</b>: make square or integer-ratio rect, lock a rounded corner "
-"circular"
-msgstr "<b>Ctrl</b> - tworzy kwadrat, lub prostokąt o równych proporcjach, "
+#: ../src/live_effects/lpe-constructgrid.cpp:28
+msgid "Size X"
+msgstr "Wielkość X"
 
-#: ../src/rect-context.cpp:536
-#, c-format
-msgid ""
-"<b>Rectangle</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</"
-"b> to draw around the starting point"
-msgstr ""
-"<b>Prostokąt</b>:  %s &#215; %s (o proporcjach %d:%d). Z <b>Shift</b> - "
-"rysowanie wokół punktu początkowego."
+#: ../src/live_effects/lpe-constructgrid.cpp:28
+msgid "The size of the grid in X direction."
+msgstr "Rozwiar siatki w orientacji X"
 
-#: ../src/rect-context.cpp:539
-#, c-format
-msgid ""
-"<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1.618 : 1); with "
-"<b>Shift</b> to draw around the starting point"
-msgstr ""
-"<b>Prostokąt</b>: %s &#215; %s; (o ustalonej złotej proporcji 1.618 : 1). Z "
-"<b>Shift</b> - rysowanie wokół punktu początkowego."
+#: ../src/live_effects/lpe-constructgrid.cpp:29
+msgid "Size Y"
+msgstr "Rozmiar Y"
 
-#: ../src/rect-context.cpp:541
-#, c-format
-msgid ""
-"<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1 : 1.618); with "
-"<b>Shift</b> to draw around the starting point"
-msgstr ""
-"<b>Prostokąt</b>: %s &#215; %s; (o ustalonej złotej proporcji 1.618 : 1). Z "
-"<b>Shift</b> - rysowanie wokół punktu początkowego."
+#: ../src/live_effects/lpe-constructgrid.cpp:29
+msgid "The size of the grid in Y direction."
+msgstr "Rozmiar siatki w orientacji Y"
 
-#: ../src/rect-context.cpp:545
-#, c-format
-msgid ""
-"<b>Rectangle</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-"
-"ratio rectangle; with <b>Shift</b> to draw around the starting point"
-msgstr ""
-"<b>Prostokąt</b>:  %s &#215; %s; z <b>Ctrl</b> - rysowanie kwadratu lub "
-"prostokąta o równych proporcjach, z <b>Shift</b> -  rysowanie wokół punktu "
-"początkowego."
+#: ../src/live_effects/lpe-copy_rotate.cpp:47
+msgid "Angle of the first copy"
+msgstr "Kąt pierwszej kopii"
 
-#: ../src/rect-context.cpp:566
-msgid "Create rectangle"
-msgstr "Utwórz prostokąt"
+#: ../src/live_effects/lpe-copy_rotate.cpp:47
+msgid "Starting"
+msgstr "Początek"
 
-#: ../src/select-context.cpp:230
-msgid "Move canceled."
-msgstr "Przesunięcie anulowane"
+#: ../src/live_effects/lpe-copy_rotate.cpp:48
+msgid "Angle between two successive copies"
+msgstr "Kąt pomiędzy dwoma sąsiadującymi kopiami"
 
-#: ../src/select-context.cpp:238
-msgid "Selection canceled."
-msgstr "Zaznaczanie anulowane"
+#: ../src/live_effects/lpe-copy_rotate.cpp:48
+msgid "Rotation angle"
+msgstr "Kąt obrotu"
 
-#: ../src/select-context.cpp:545
-msgid ""
-"<b>Draw over</b> objects to select them; release <b>Alt</b> to switch to "
-"rubberband selection"
-msgstr ""
-"<b>Wykonaj ciągnięcie</b> ponad obiektami, aby je zaznaczyć. Naciśnij "
-"<b>Alt</b>, aby przełączyć do zaznaczania elastycznego."
+#: ../src/live_effects/lpe-copy_rotate.cpp:49
+msgid "Number of copies"
+msgstr "Liczba kopii"
 
-#: ../src/select-context.cpp:547
-msgid ""
-"<b>Drag around</b> objects to select them; press <b>Alt</b> to switch to "
-"touch selection"
-msgstr ""
-"<b>Wykonaj ciągnięcie</b> wokół obiektów, aby je zaznaczyć. Naciśnij <b>Alt</"
-"b>, aby przełączyć do zaznaczania dotykowego."
+#: ../src/live_effects/lpe-copy_rotate.cpp:49
+msgid "Number of copies of the original path"
+msgstr "Liczba kopii orginalnej ścieżki"
 
-#: ../src/select-context.cpp:707
-msgid "<b>Ctrl</b>: click to select in groups; drag to move hor/vert"
-msgstr ""
-"<b>Ctrl</b> + kliknięcie, aby zaznaczyć wewnątrz grupy, ciągnięcie, aby "
-"przesunąć w poziomie/pionie"
+#: ../src/live_effects/lpe-copy_rotate.cpp:50
+#, fuzzy
+msgid "Origin"
+msgstr "Punkt początkowy X:"
 
-#: ../src/select-context.cpp:708
-msgid "<b>Shift</b>: click to toggle select; drag for rubberband selection"
-msgstr ""
-"<b>Shift</b> + kliknięcie, aby przełączyć zaznaczenie, ciągnięcie, aby "
-"elastycznie zaznaczyć"
+#: ../src/live_effects/lpe-copy_rotate.cpp:50
+#, fuzzy
+msgid "Origin of the rotation"
+msgstr "Orientacja"
 
-#: ../src/select-context.cpp:709
-msgid ""
-"<b>Alt</b>: click to select under; drag to move selected or select by touch"
-msgstr ""
-"<b>Alt</b> + kliknięcie, aby zaznaczyć zasłonięty obiekt, ciągnięcie, aby "
-"przesunąć zaznaczenie lub zaznaczyć przez dotknięcie"
+#: ../src/live_effects/lpe-copy_rotate.cpp:61
+msgid "Adjust the starting angle"
+msgstr "Dostosuj kąt początkowy"
 
-#: ../src/select-context.cpp:880
-msgid "Selected object is not a group. Cannot enter."
-msgstr "Zaznaczony obiekt nie jest grupą. Nie można do niego wejść."
+#: ../src/live_effects/lpe-copy_rotate.cpp:62
+msgid "Adjust the rotation angle"
+msgstr "Dostosuj kąt obrotu"
 
-#: ../src/selection-chemistry.cpp:194
-msgid "Delete text"
-msgstr "Usuń tekst"
+#: ../src/live_effects/lpe-curvestitch.cpp:42
+#, fuzzy
+msgid "Stitch path"
+msgstr "Zszywanie ścieżek podrzędnych"
 
-#: ../src/selection-chemistry.cpp:202
-msgid "<b>Nothing</b> was deleted."
-msgstr "<b>Nic</b> nie usunięto"
+#: ../src/live_effects/lpe-curvestitch.cpp:42
+msgid "The path that will be used as stitch."
+msgstr "Ścieżka, która będzie użyta jako zszywacz"
 
-#: ../src/selection-chemistry.cpp:220 ../src/text-context.cpp:995
-#: ../src/widgets/toolbox.cpp:1090 ../src/widgets/toolbox.cpp:4335
-msgid "Delete"
-msgstr "Usuń"
+#: ../src/live_effects/lpe-curvestitch.cpp:43
+msgid "Number of paths"
+msgstr "Liczba ścieżek"
 
-#: ../src/selection-chemistry.cpp:235
-msgid "Select <b>object(s)</b> to duplicate."
-msgstr "Zaznacz <b>obiekty</b> do powielenia"
+#: ../src/live_effects/lpe-curvestitch.cpp:43
+msgid "The number of paths that will be generated."
+msgstr "Liczba ścieżek jaka zostanie wygenerowana"
 
-#: ../src/selection-chemistry.cpp:285
-msgid "Delete all"
-msgstr "Usuń wszystko"
+#: ../src/live_effects/lpe-curvestitch.cpp:44
+msgid "Start edge variance"
+msgstr "Krawędź początkowa wariancji"
 
-#: ../src/selection-chemistry.cpp:409
-msgid "Select <b>some objects</b> to group."
-msgstr "Zaznacz <b>kilka obiektów</b>, aby połączyć je w grupę"
+#: ../src/live_effects/lpe-curvestitch.cpp:44
+msgid "The amount of random jitter to move the start points of the stitches inside & outside the guide path"
+msgstr "Ilość losowo zmieniających się wahnięć, aby przesunąć punkty początkowe zszywaczy do wewnątrz i na zewnątrz ścieżki prowadnicy"
 
-#: ../src/selection-chemistry.cpp:482 ../src/selection-describer.cpp:51
-msgid "Group"
-msgstr "Grupa"
+#: ../src/live_effects/lpe-curvestitch.cpp:45
+msgid "Start spacing variance"
+msgstr "Początek odstępu wariancji"
 
-#: ../src/selection-chemistry.cpp:497
-msgid "Select a <b>group</b> to ungroup."
-msgstr "Zaznacz <b>grupę</b> do rozdzielenia"
+#: ../src/live_effects/lpe-curvestitch.cpp:45
+msgid "The amount of random shifting to move the start points of the stitches back & forth along the guide path"
+msgstr "Ilość losowo zmieniających się przesunięć, aby przesunąć punkty początkowe zszywaczy do przodu i do tyłu wzdłuż ścieżki prowadnicy"
 
-#: ../src/selection-chemistry.cpp:538
-msgid "<b>No groups</b> to ungroup in the selection."
-msgstr "W zaznaczeniu <b>brak grup</b> do rozdzielenia"
+#: ../src/live_effects/lpe-curvestitch.cpp:46
+msgid "End edge variance"
+msgstr "Krawędź końcowa wariancji"
 
-#: ../src/selection-chemistry.cpp:544 ../src/sp-item-group.cpp:488
-msgid "Ungroup"
-msgstr "Rozdziel grupę"
+#: ../src/live_effects/lpe-curvestitch.cpp:46
+msgid "The amount of randomness that moves the end points of the stitches inside & outside the guide path"
+msgstr "Ilość przypadków, które przesuwają punkty końcowe zszywaczy do wewnątrz i na zewnątrz ścieżki prowadnicy"
 
-#: ../src/selection-chemistry.cpp:605
-msgid "Select <b>object(s)</b> to raise."
-msgstr "Zaznacz <b>obiekt(y)</b> do przeniesienia wyżej"
+#: ../src/live_effects/lpe-curvestitch.cpp:47
+msgid "End spacing variance"
+msgstr "Koniec odstępu wariancji"
 
-#: ../src/selection-chemistry.cpp:611 ../src/selection-chemistry.cpp:672
-#: ../src/selection-chemistry.cpp:707 ../src/selection-chemistry.cpp:772
-msgid ""
-"You cannot raise/lower objects from <b>different groups</b> or <b>layers</b>."
-msgstr ""
-"Nie można przenieść wyżej/niżej obiektów należących do <b>różnych grup</b> "
-"lub <b>warstw</b>"
+#: ../src/live_effects/lpe-curvestitch.cpp:47
+msgid "The amount of random shifting to move the end points of the stitches back & forth along the guide path"
+msgstr "Ilość losowo zmieniających się przesunięć, aby przesunąć punkty końcowe zszywaczy do przodu i do tyłu wzdłuż ścieżki prowadnicy"
 
-#. TRANSLATORS: Only put the word "Raise" in the translation. Means "to raise an object" in the undo history
-#: ../src/selection-chemistry.cpp:651
-msgid "undo_action|Raise"
-msgstr "Podwyższenie"
+#: ../src/live_effects/lpe-curvestitch.cpp:48
+#, fuzzy
+msgid "Scale the width of the stitch path"
+msgstr "Skala szerokości ścieżki konturu"
 
-#: ../src/selection-chemistry.cpp:664
-msgid "Select <b>object(s)</b> to raise to top."
-msgstr "Zaznacz <b>obiekt(y)</b> do przeniesienia na wierzch"
+#: ../src/live_effects/lpe-curvestitch.cpp:48
+msgid "Scale width"
+msgstr "Skala szerokości"
 
-#: ../src/selection-chemistry.cpp:687
-msgid "Raise to top"
-msgstr "Przenieś na wierzch"
+#: ../src/live_effects/lpe-curvestitch.cpp:49
+msgid "Scale the width of the stitch path relative to its length"
+msgstr "Skaluje szerokość ścieżki zszywania relatywnie do długości"
 
-#: ../src/selection-chemistry.cpp:701
-msgid "Select <b>object(s)</b> to lower."
-msgstr "Zaznacz <b>obiekt(y)</b> do przeniesienia niżej"
+#: ../src/live_effects/lpe-curvestitch.cpp:49
+msgid "Scale width relative to length"
+msgstr "Skaluj szerokość relatywnie do długości"
 
-#: ../src/selection-chemistry.cpp:751
-msgid "Lower"
-msgstr "Przesuń niżej"
+#: ../src/live_effects/lpe-envelope.cpp:33
+msgid "Top bend path"
+msgstr "Górna ścieżka zagięcia"
 
-#: ../src/selection-chemistry.cpp:764
-msgid "Select <b>object(s)</b> to lower to bottom."
-msgstr "Zaznacz <b>obiekt(y)</b> do przeniesienia na spód"
+#: ../src/live_effects/lpe-envelope.cpp:33
+msgid "Top path along which to bend the original path"
+msgstr "Górna ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
 
-#: ../src/selection-chemistry.cpp:799
-msgid "Lower to bottom"
-msgstr "Przenieś na spód"
+#: ../src/live_effects/lpe-envelope.cpp:34
+msgid "Right bend path"
+msgstr "Prawa ścieżka zagięcia"
 
-#: ../src/selection-chemistry.cpp:806
-msgid "Nothing to undo."
-msgstr "Brak zmian do cofnięcia"
+#: ../src/live_effects/lpe-envelope.cpp:34
+msgid "Right path along which to bend the original path"
+msgstr "Prawa ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
 
-#: ../src/selection-chemistry.cpp:813
-msgid "Nothing to redo."
-msgstr "Brak zmian do przywrócenia"
+#: ../src/live_effects/lpe-envelope.cpp:35
+msgid "Bottom bend path"
+msgstr "Dolna ścieżka zagięcia"
 
-#: ../src/selection-chemistry.cpp:873
-msgid "Paste"
-msgstr "Wklej"
+#: ../src/live_effects/lpe-envelope.cpp:35
+msgid "Bottom path along which to bend the original path"
+msgstr "Dolna ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
 
-#: ../src/selection-chemistry.cpp:880
-msgid "Paste style"
-msgstr "Wklej styl"
+#: ../src/live_effects/lpe-envelope.cpp:36
+msgid "Left bend path"
+msgstr "Lewa ścieżka zagięcia"
 
-#: ../src/selection-chemistry.cpp:889
-msgid "Paste live path effect"
-msgstr "Wklej efekt żywej ścieżki"
+#: ../src/live_effects/lpe-envelope.cpp:36
+msgid "Left path along which to bend the original path"
+msgstr "Lewa ścieżka wzdłuż, której nastąpi zagięcie oryginalnej ścieżki"
 
-#: ../src/selection-chemistry.cpp:909
-msgid "Select <b>object(s)</b> to remove live path effects from."
-msgstr "Zaznacz <b>obiekt(y)</b> z których usunąć efekt żywej ścieżki"
+#: ../src/live_effects/lpe-envelope.cpp:37
+msgid "Enable left & right paths"
+msgstr "Włącz lewą i prawą ścieżkę"
 
-#: ../src/selection-chemistry.cpp:921
-msgid "Remove live path effect"
-msgstr "Usuń efekt żywej ścieżki"
+#: ../src/live_effects/lpe-envelope.cpp:37
+msgid "Enable the left and right deformation paths"
+msgstr "Włącz deformację prawej i lewej ścieżki"
+
+#: ../src/live_effects/lpe-envelope.cpp:38
+msgid "Enable the top and bottom deformation paths"
+msgstr "Włącza deformację górnej i dolnej ścieżki"
+
+#: ../src/live_effects/lpe-envelope.cpp:38
+msgid "Enable top & bottom paths"
+msgstr "Włącz górną i dolną ścieżkę"
 
-#: ../src/selection-chemistry.cpp:933
-#, fuzzy
-msgid "Select <b>object(s)</b> to remove filters from."
-msgstr "Zaznacz <b>tekst(y)</b> do usunięcia kerningu ręcznego"
+#: ../src/live_effects/lpe-gears.cpp:212
+msgid "Teeth"
+msgstr "Zęby"
 
-#: ../src/selection-chemistry.cpp:943
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1363
-msgid "Remove filter"
-msgstr "Usuń filtr"
+#: ../src/live_effects/lpe-gears.cpp:212
+msgid "The number of teeth"
+msgstr "Liczba zębów w kole"
 
-#: ../src/selection-chemistry.cpp:952
-msgid "Paste size"
-msgstr "Wklej rozmiar"
+#: ../src/live_effects/lpe-gears.cpp:213
+msgid "Phi"
+msgstr "Podziałka zęba (px)"
 
-#: ../src/selection-chemistry.cpp:960
-msgid "Paste size separately"
-msgstr "Wklej rozmiar oddzielnie"
+#: ../src/live_effects/lpe-gears.cpp:213
+msgid "Tooth pressure angle (typically 20-25 deg).  The ratio of teeth not in contact."
+msgstr "Kąt przyporu zęba (zazwyczaj 20-25 stopni). Część zęba, która nie ma kontaktu."
 
-#: ../src/selection-chemistry.cpp:971
-msgid "Select <b>object(s)</b> to move to the layer above."
-msgstr "Wybierz <b>obiekt(y)</b> do przeniesienia na wyższą warstwę"
+#: ../src/live_effects/lpe-interpolate.cpp:30
+msgid "Path along which intermediate steps are created."
+msgstr "Ścieżka wzdłuż, której są tworzone kroki pośrednie"
 
-#: ../src/selection-chemistry.cpp:996
-msgid "Raise to next layer"
-msgstr "Przenieś na wyższą warstwę"
+#: ../src/live_effects/lpe-interpolate.cpp:30
+msgid "Trajectory"
+msgstr "Trajektoria"
 
-#: ../src/selection-chemistry.cpp:1002
-msgid "No more layers above."
-msgstr "Brak wyższych warstw"
+#: ../src/live_effects/lpe-interpolate.cpp:31
+msgid "Determines the number of steps from start to end path."
+msgstr "Określa liczbę kroków od początku do końca ścieżki"
 
-#: ../src/selection-chemistry.cpp:1016
-msgid "Select <b>object(s)</b> to move to the layer below."
-msgstr "Wybierz <b>obiekt(y)</b> do przeniesienia na niższą warstwę"
+#: ../src/live_effects/lpe-interpolate.cpp:31
+#: ../src/ui/dialog/inkscape-preferences.cpp:202
+msgid "Steps"
+msgstr "Postęp"
 
-#: ../src/selection-chemistry.cpp:1041
-msgid "Lower to previous layer"
-msgstr "Przenieś na niższą warstwę"
+#: ../src/live_effects/lpe-interpolate.cpp:32
+msgid "Equidistant spacing"
+msgstr "Odstępy równoległe"
 
-#: ../src/selection-chemistry.cpp:1047
-msgid "No more layers below."
-msgstr "Brak niższych warstw"
+#: ../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 trajectory path."
+msgstr ""
 
-#: ../src/selection-chemistry.cpp:1234
-msgid "Remove transform"
-msgstr "Usuń przekształcenie"
+#. initialise your parameters here:
+#: ../src/live_effects/lpe-knot.cpp:327
+msgid "Gap width"
+msgstr "Szerokość odstępu"
 
-#: ../src/selection-chemistry.cpp:1343
-msgid "Rotate 90&#176; CW"
-msgstr "Obróć o 90&#176; w prawo"
+#: ../src/live_effects/lpe-knot.cpp:327
+#, fuzzy
+msgid "The width of the gap in the path where it self-intersects"
+msgstr "Skaluje szerokość ścieżki zszywania relatywnie do długości"
 
-#: ../src/selection-chemistry.cpp:1367
-msgid "Rotate 90&#176; CCW"
-msgstr "Obróć o 90&#176; w lewo"
+#: ../src/live_effects/lpe-knot.cpp:328
+msgid "Orientation indicator/switcher size"
+msgstr "Wskaźnik orientacji/przełącznik rozmiaru"
 
-#: ../src/selection-chemistry.cpp:1388 ../src/seltrans.cpp:457
-#: ../src/ui/dialog/transformation.cpp:757
-msgid "Rotate"
-msgstr "Obróć"
+#: ../src/live_effects/lpe-knot.cpp:328
+#, fuzzy
+msgid "Switcher size"
+msgstr "Styl przełącznika"
 
-#: ../src/selection-chemistry.cpp:1420
-msgid "Rotate by pixels"
-msgstr "Obróć wg pikseli"
+#: ../src/live_effects/lpe-knot.cpp:329
+msgid "Crossing Signs"
+msgstr ""
 
-#: ../src/selection-chemistry.cpp:1475
-msgid "Scale by whole factor"
-msgstr "Skaluj przez cały faktor"
+#: ../src/live_effects/lpe-knot.cpp:329
+msgid "Crossings signs"
+msgstr ""
 
-#: ../src/selection-chemistry.cpp:1491
-msgid "Move vertically"
-msgstr "Przesuń w pionie"
+#: ../src/live_effects/lpe-knot.cpp:336
+msgid "Drag to select a crossing, click to flip it"
+msgstr ""
 
-#: ../src/selection-chemistry.cpp:1494
-msgid "Move horizontally"
-msgstr "Przesuń w poziomie"
+#. initialise your parameters here:
+#: ../src/live_effects/lpe-lattice.cpp:47
+msgid "Control handle 0"
+msgstr "Uchwyt kontrolny 0"
 
-#: ../src/selection-chemistry.cpp:1497 ../src/selection-chemistry.cpp:1525
-#: ../src/seltrans.cpp:451 ../src/ui/dialog/transformation.cpp:680
-msgid "Move"
-msgstr "Przesuń"
+#: ../src/live_effects/lpe-lattice.cpp:48
+msgid "Control handle 1"
+msgstr "Uchwyt kontrolny 1"
 
-#: ../src/selection-chemistry.cpp:1519
-msgid "Move vertically by pixels"
-msgstr "Przesuwa w pionie o zadaną wartość podaną w pikselach"
+#: ../src/live_effects/lpe-lattice.cpp:49
+msgid "Control handle 2"
+msgstr "Uchwyt kontrolny 2"
 
-#: ../src/selection-chemistry.cpp:1522
-msgid "Move horizontally by pixels"
-msgstr "Przesuwa w poziomie o zadaną wartość podaną w pikselach"
+#: ../src/live_effects/lpe-lattice.cpp:50
+msgid "Control handle 3"
+msgstr "Uchwyt kontrolny 3"
 
-#: ../src/selection-chemistry.cpp:1650
-msgid "The selection has no applied path effect."
-msgstr "Zaznaczenie nie zaakceptowało efektu ścieżki"
+#: ../src/live_effects/lpe-lattice.cpp:51
+msgid "Control handle 4"
+msgstr "Uchwyt kontrolny 4"
 
-#: ../src/selection-chemistry.cpp:1694
-msgid "The selection has no applied clip path."
-msgstr "Zaznaczenie nie zaakceptowało przycięcia ścieżki"
+#: ../src/live_effects/lpe-lattice.cpp:52
+msgid "Control handle 5"
+msgstr "Uchwyt kontrolny 5"
 
-#: ../src/selection-chemistry.cpp:1696
-msgid "The selection has no applied mask."
-msgstr "Zaznaczenie nie zaakceptowało maski"
+#: ../src/live_effects/lpe-lattice.cpp:53
+msgid "Control handle 6"
+msgstr "Uchwyt kontrolny 6"
 
-#: ../src/selection-chemistry.cpp:1854
-msgid "action|Clone"
-msgstr "Klonuj"
+#: ../src/live_effects/lpe-lattice.cpp:54
+msgid "Control handle 7"
+msgstr "Uchwyt kontrolny 7"
 
-#: ../src/selection-chemistry.cpp:1871
-msgid "Select a <b>clone</b> to unlink."
-msgstr "Wybierz <b>klon</b> do odłączenia"
+#: ../src/live_effects/lpe-lattice.cpp:55
+msgid "Control handle 8"
+msgstr "Uchwyt kontrolny 8"
 
-#: ../src/selection-chemistry.cpp:1920
-msgid "<b>No clones to unlink</b> in the selection."
-msgstr "W zaznaczeniu <b>brak klonów do odłączenia</b>"
+#: ../src/live_effects/lpe-lattice.cpp:56
+msgid "Control handle 9"
+msgstr "Uchwyt kontrolny 9"
 
-#: ../src/selection-chemistry.cpp:1924
-msgid "Unlink clone"
-msgstr "Odłącz klon"
+#: ../src/live_effects/lpe-lattice.cpp:57
+msgid "Control handle 10"
+msgstr "Uchwyt kontrolny 10"
 
-#: ../src/selection-chemistry.cpp:1938
-msgid ""
-"Select a <b>clone</b> to go to its original. Select a <b>linked offset</b> "
-"to go to its source. Select a <b>text on path</b> to go to the path. Select "
-"a <b>flowed text</b> to go to its frame."
-msgstr ""
-"Zaznacz <b>klon</b>, aby przejść do oryginału. Zaznacz <b>połączone "
-"odsunięcie</b>, aby przejść do jego źródła. Zaznacz <b>tekst na ścieżce</b>, "
-"aby przejść do ścieżki. Zaznacz <b>dopasowany tekst</b>, aby przejść do jego "
-"ramki."
+#: ../src/live_effects/lpe-lattice.cpp:58
+msgid "Control handle 11"
+msgstr "Uchwyt kontrolny 11"
 
-#: ../src/selection-chemistry.cpp:1961
-msgid ""
-"<b>Cannot find</b> the object to select (orphaned clone, offset, textpath, "
-"flowed text?)"
-msgstr ""
-"<b>Nie można odnaleźć</b> obiektu do zaznaczenia (osierocony klon, "
-"odsunięcie, tekst na ścieżce, tekst opływający?)"
+#: ../src/live_effects/lpe-lattice.cpp:59
+msgid "Control handle 12"
+msgstr "Uchwyt kontrolny 12"
 
-#: ../src/selection-chemistry.cpp:1967
-msgid ""
-"The object you're trying to select is <b>not visible</b> (it is in &lt;"
-"defs&gt;)"
-msgstr ""
-"Obiekt, który próbujesz zaznaczyć jest <b>niewidoczny</b> (jest on w &lt;"
-"defs&gt;)"
+#: ../src/live_effects/lpe-lattice.cpp:60
+msgid "Control handle 13"
+msgstr "Uchwyt kontrolny 13"
 
-#: ../src/selection-chemistry.cpp:1995
-msgid "Select <b>object(s)</b> to convert to marker."
-msgstr "Zaznacz <b>obiekt(y)</b> do zamiany na znacznik"
+#: ../src/live_effects/lpe-lattice.cpp:61
+msgid "Control handle 14"
+msgstr "Uchwyt kontrolny 14"
 
-#: ../src/selection-chemistry.cpp:2061
-msgid "Objects to marker"
-msgstr "Obiekty na znacznik"
+#: ../src/live_effects/lpe-lattice.cpp:62
+msgid "Control handle 15"
+msgstr "Uchwyt kontrolny 15"
 
-#: ../src/selection-chemistry.cpp:2090
-msgid "Select <b>object(s)</b> to convert to guides."
-msgstr "Zaznacz <b>obiekt(y)</b> do zamiany na prowadnice"
+#: ../src/live_effects/lpe-line_segment.cpp:27
+#: ../src/widgets/toolbox.cpp:5051
+msgid "Closed"
+msgstr "Zamknięty"
 
-#: ../src/selection-chemistry.cpp:2101
-msgid "Objects to guides"
-msgstr "Obiekty na prowadnice"
+#: ../src/live_effects/lpe-line_segment.cpp:28
+#: ../src/widgets/toolbox.cpp:5053
+#, fuzzy
+msgid "Open start"
+msgstr "Łuk otwarty"
 
-#: ../src/selection-chemistry.cpp:2118
-msgid "Select <b>object(s)</b> to convert to pattern."
-msgstr "Zaznacz <b>obiekt(y)</b> do zamiany na deseń"
+#: ../src/live_effects/lpe-line_segment.cpp:29
+#: ../src/widgets/toolbox.cpp:5055
+#, fuzzy
+msgid "Open end"
+msgstr "Otwórz o_statnio używane"
 
-#: ../src/selection-chemistry.cpp:2205
-msgid "Objects to pattern"
-msgstr "Obiekty na deseń"
+#: ../src/live_effects/lpe-line_segment.cpp:30
+#: ../src/widgets/toolbox.cpp:5057
+msgid "Open both"
+msgstr "Otwórz obydwa"
 
-#: ../src/selection-chemistry.cpp:2222
-msgid "Select an <b>object with pattern fill</b> to extract objects from."
+#: ../src/live_effects/lpe-line_segment.cpp:36
+msgid "Determines on which side the line or line segment is infinite."
 msgstr ""
-"Zaznacz <b>obiekt z wypełnieniem deseniem</b>, z którego wyodrębnione "
-"zostaną obiekty"
-
-#: ../src/selection-chemistry.cpp:2275
-msgid "<b>No pattern fills</b> in the selection."
-msgstr "W zaznaczeniu <b>brak deseni wypełnienia</b>"
 
-#: ../src/selection-chemistry.cpp:2278
-msgid "Pattern to objects"
-msgstr "Deseń na obiekty"
+#: ../src/live_effects/lpe-line_segment.cpp:36
+#, fuzzy
+msgid "End type"
+msgstr "  typ: "
 
-#: ../src/selection-chemistry.cpp:2364
-msgid "Select <b>object(s)</b> to make a bitmap copy."
-msgstr "Zaznacz <b>obiekt(y)</b> do skopiowania jako bitmapa"
+#: ../src/live_effects/lpe-mirror_symmetry.cpp:30
+msgid "Check this to only keep the mirrored part of the path"
+msgstr ""
 
-#: ../src/selection-chemistry.cpp:2368
-#, fuzzy
-msgid "Rendering bitmap..."
-msgstr "Odwracanie ścieżek..."
+#: ../src/live_effects/lpe-mirror_symmetry.cpp:30
+msgid "Discard original path?"
+msgstr "Odrzucić oryginalną ścieżkę?"
 
-#: ../src/selection-chemistry.cpp:2530
-msgid "Create bitmap"
-msgstr "Utwórz bitmapę"
+#: ../src/live_effects/lpe-mirror_symmetry.cpp:31
+msgid "Line which serves as 'mirror' for the reflection"
+msgstr ""
 
-#: ../src/selection-chemistry.cpp:2563
-msgid "Select <b>object(s)</b> to create clippath or mask from."
-msgstr "Zaznacz <b>obiekt(y)</b> do utworzenia ścieżki przycinania lub maski"
+#: ../src/live_effects/lpe-mirror_symmetry.cpp:31
+msgid "Reflection line"
+msgstr "Linia odbicia"
 
-#: ../src/selection-chemistry.cpp:2566
-msgid "Select mask object and <b>object(s)</b> to apply clippath or mask to."
+#: ../src/live_effects/lpe-offset.cpp:30
+msgid "Handle to control the distance of the offset from the curve"
 msgstr ""
-"Zaznacz obiekt maskujący i <b>obiekt(y)</b>, dla których zastosować ścieżkę "
-"przycinania lub maskę"
 
-#: ../src/selection-chemistry.cpp:2672
-msgid "Set clipping path"
-msgstr "Określ ścieżkę przycinania"
+#: ../src/live_effects/lpe-parallel.cpp:46
+msgid "Adjust the offset"
+msgstr "Ustaw odsunięcie"
 
-#: ../src/selection-chemistry.cpp:2674
-msgid "Set mask"
-msgstr "Określ maskę"
+#: ../src/live_effects/lpe-parallel.cpp:47
+msgid "Specifies the left end of the parallel"
+msgstr "Definiuje lewy koniec równoległej"
 
-#: ../src/selection-chemistry.cpp:2688
-msgid "Select <b>object(s)</b> to remove clippath or mask from."
-msgstr "Zaznacz <b>obiekt(y)</b> do usunięcia ścieżki przycinania lub maski"
+#: ../src/live_effects/lpe-parallel.cpp:48
+msgid "Specifies the right end of the parallel"
+msgstr "Definiuje prawy koniec równoległej"
 
-#: ../src/selection-chemistry.cpp:2756
-msgid "Release clipping path"
-msgstr "Zdejmij ścieżkę przycinania"
+#: ../src/live_effects/lpe-parallel.cpp:56
+msgid "Adjust the \"left\" end of the parallel"
+msgstr "Dostosuj \"lewy\" koniec równoległej"
 
-#: ../src/selection-chemistry.cpp:2758
-msgid "Release mask"
-msgstr "Zdejmij maskę"
+#: ../src/live_effects/lpe-parallel.cpp:57
+msgid "Adjust the \"right\" end of the parallel"
+msgstr "Dostosuj \"prawy\" koniec równoległej"
 
-#: ../src/selection-chemistry.cpp:2769
-msgid "Select <b>object(s)</b> to fit canvas to."
-msgstr "Zaznacz <b>obiekt(y)</b> do wypełnienia obszaru roboczego"
+#: ../src/live_effects/lpe-path_length.cpp:25
+#: ../src/live_effects/lpe-sketch.cpp:54
+#: ../src/selection-chemistry.cpp:1478
+#: ../src/seltrans.cpp:449
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2240
+#: ../src/ui/dialog/transformation.cpp:736
+msgid "Scale"
+msgstr "Skaluj"
 
-#: ../src/selection-chemistry.cpp:2803
-msgid "Fit page to selection"
-msgstr "Dopasuj stronę do ramki zaznaczenia"
+#: ../src/live_effects/lpe-path_length.cpp:25
+msgid "Scaling factor"
+msgstr "Współczynnik skalowania"
 
-#. TRANSLATORS: only translate and put "Link" in the translation. It means internet link (anchor)
-#: ../src/selection-describer.cpp:43
-msgid "web|Link"
-msgstr "Odnośnik"
+#: ../src/live_effects/lpe-path_length.cpp:28
+#, fuzzy
+msgid "Display unit"
+msgstr "Dostrajanie monitora"
 
-#: ../src/selection-describer.cpp:45
-msgid "Circle"
-msgstr "Okrąg"
+#: ../src/live_effects/lpe-path_length.cpp:28
+#, fuzzy
+msgid "Print unit after path length"
+msgstr "Szerokość w jednostkach długości"
 
-#. ellipse
-#: ../src/selection-describer.cpp:47 ../src/selection-describer.cpp:73
-#: ../src/ui/dialog/inkscape-preferences.cpp:424 ../src/verbs.cpp:2425
-msgid "Ellipse"
-msgstr "Elipsa"
+#: ../src/live_effects/lpe-patternalongpath.cpp:61
+msgid "Path to put along the skeleton path"
+msgstr "Scieżka do nałożenia wzdłuż szkieletu ścieżki"
 
-#: ../src/selection-describer.cpp:49
-msgid "Flowed text"
-msgstr "Tekst opływający"
+#: ../src/live_effects/lpe-patternalongpath.cpp:61
+msgid "Pattern source"
+msgstr "Źródło desenia"
 
-#: ../src/selection-describer.cpp:55
-msgid "Line"
-msgstr "Linia"
+#: ../src/live_effects/lpe-patternalongpath.cpp:62
+msgid "How many pattern copies to place along the skeleton path"
+msgstr "Ilość kopii desenia do umieszczenia wzdłuż szkieletu ścieżki"
 
-#: ../src/selection-describer.cpp:57
-msgid "Path"
-msgstr "Ścieżka"
+#: ../src/live_effects/lpe-patternalongpath.cpp:62
+msgid "Pattern copies"
+msgstr "Kopie desenia"
 
-#: ../src/selection-describer.cpp:59 ../src/widgets/toolbox.cpp:2028
-msgid "Polygon"
-msgstr "Wielokąt"
+#: ../src/live_effects/lpe-patternalongpath.cpp:63
+msgid "Width of the pattern"
+msgstr "Szerokość desenia"
 
-#: ../src/selection-describer.cpp:61
-msgid "Polyline"
-msgstr "Linia łamana"
+#: ../src/live_effects/lpe-patternalongpath.cpp:64
+msgid "Scale the width of the pattern in units of its length"
+msgstr "Skaluje szerokość desenia w jednostkach jego długości"
 
-#. Rectangle
-#: ../src/selection-describer.cpp:63
-#: ../src/ui/dialog/inkscape-preferences.cpp:414 ../src/verbs.cpp:2421
-msgid "Rectangle"
-msgstr "Prostokąt"
+#: ../src/live_effects/lpe-patternalongpath.cpp:65
+#, fuzzy, c-format
+msgid "Space between copies of the pattern. Negative values allowed, but are limited to -90% of pattern width."
+msgstr "Odstęp pomiedzy kopiami wzorca. Dozwolone są wartości ujemne, ale tylko do wartości -90&#37; szerokości wzorca."
 
-#. 3D box
-#: ../src/selection-describer.cpp:65
-#: ../src/ui/dialog/inkscape-preferences.cpp:419 ../src/verbs.cpp:2423
-msgid "3D Box"
-msgstr "Obiekt 3D"
+#: ../src/live_effects/lpe-patternalongpath.cpp:65
+msgid "Spacing"
+msgstr "Odstępy"
 
-#: ../src/selection-describer.cpp:71
-msgid "object|Clone"
-msgstr "Klon"
+#: ../src/live_effects/lpe-patternalongpath.cpp:68
+#, fuzzy
+msgid "Offsets in unit of pattern size"
+msgstr "Obiekty na deseń"
 
-#: ../src/selection-describer.cpp:75
-msgid "Offset path"
-msgstr "Ścieżka odsunięta"
+#: ../src/live_effects/lpe-patternalongpath.cpp:68
+msgid "Spacing, tangential and normal offset are expressed as a ratio of width/height"
+msgstr "Odstęp, tangensowe i normalne odsunięcie wyrażane jako proporcja szerokości/wysokości"
 
-#. spiral
-#: ../src/selection-describer.cpp:77
-#: ../src/ui/dialog/inkscape-preferences.cpp:432 ../src/verbs.cpp:2429
-msgid "Spiral"
-msgstr "Spirala"
+#: ../src/live_effects/lpe-patternalongpath.cpp:69
+msgid "Rotate pattern 90 deg before applying"
+msgstr "Przed zastosowaniem obróć deseń o 90&#176;"
 
-#. star
-#: ../src/selection-describer.cpp:79
-#: ../src/ui/dialog/inkscape-preferences.cpp:428 ../src/verbs.cpp:2427
-#: ../src/widgets/toolbox.cpp:2035
-msgid "Star"
-msgstr "Gwiazda"
+#: ../src/live_effects/lpe-perp_bisector.cpp:113
+#, fuzzy
+msgid "Adjust the bisector's \"left\" end"
+msgstr "Definiuje kolor źródła światła"
 
-#: ../src/selection-describer.cpp:107
-msgid "Click selection to toggle scale/rotation handles"
-msgstr ""
-"Kliknij na zaznaczenie, aby przełączać pomiędzy trybem skalowania/obracania "
-"uchwytów"
+#: ../src/live_effects/lpe-perp_bisector.cpp:114
+#, fuzzy
+msgid "Adjust the bisector's \"right\" end"
+msgstr "Pobranie jasności koloru"
 
-#. no items
-#: ../src/selection-describer.cpp:109
-msgid ""
-"No objects selected. Click, Shift+click, or drag around objects to select."
-msgstr ""
-"Nie zaznaczono obiektów. Aby zaznaczyć obiekt należy kliknąć na nim, "
-"nacisnąć Shift + kliknąć lub wykonać ciągnięcie wokół obiektów"
+#: ../src/live_effects/lpe-perspective_path.cpp:52
+msgid "Scale factor in x direction"
+msgstr "Wskażnik skalowania w orientacji X"
 
-#: ../src/selection-describer.cpp:118
-msgid "root"
-msgstr "warstwie głównej"
+#. initialise your parameters here:
+#: ../src/live_effects/lpe-perspective_path.cpp:52
+msgid "Scale x"
+msgstr "Skala X"
 
-#: ../src/selection-describer.cpp:130
-#, c-format
-msgid "layer <b>%s</b>"
-msgstr "warstwie <b>%s</b>"
+#: ../src/live_effects/lpe-perspective_path.cpp:53
+msgid "Scale factor in y direction"
+msgstr "Wskażnik skalowania w orientacji Y"
 
-#: ../src/selection-describer.cpp:132
-#, c-format
-msgid "layer <b><i>%s</i></b>"
-msgstr "warstwie <b><i>%s</i></b>"
+#: ../src/live_effects/lpe-perspective_path.cpp:53
+msgid "Scale y"
+msgstr "Skala Y"
 
-#: ../src/selection-describer.cpp:141
-#, c-format
-msgid "<i>%s</i>"
-msgstr "<i>%s</i>"
+#: ../src/live_effects/lpe-perspective_path.cpp:54
+msgid "Offset in x direction"
+msgstr "Przesunięcie w orientacji X"
 
-#: ../src/selection-describer.cpp:150
-#, c-format
-msgid " in %s"
-msgstr " na %s"
+#: ../src/live_effects/lpe-perspective_path.cpp:54
+msgid "Offset x"
+msgstr "Przesunięcie X"
 
-#: ../src/selection-describer.cpp:152
-#, c-format
-msgid " in group %s (%s)"
-msgstr " w grupie %s (%s)"
+#: ../src/live_effects/lpe-perspective_path.cpp:55
+msgid "Offset in y direction"
+msgstr "Przesunięcie w orientacji Y"
 
-#: ../src/selection-describer.cpp:154
-#, c-format
-msgid " in <b>%i</b> parents (%s)"
-msgid_plural " in <b>%i</b> parents (%s)"
-msgstr[0] " w <b>%i</b> nadrzędnych (%s)"
-msgstr[1] " w <b>%i</b> nadrzędnych (%s)"
-msgstr[2] " w <b>%i</b> nadrzędnych (%s)"
+#: ../src/live_effects/lpe-perspective_path.cpp:55
+msgid "Offset y"
+msgstr "Przesunięcie Y"
 
-#: ../src/selection-describer.cpp:157
-#, c-format
-msgid " in <b>%i</b> layers"
-msgid_plural " in <b>%i</b> layers"
-msgstr[0] " na <b>%i</b> warstwie"
-msgstr[1] " na <b>%i</b> warstwach"
-msgstr[2] " na <b>%i</b> warstwach"
+#: ../src/live_effects/lpe-perspective_path.cpp:56
+msgid "If true, put the path on the left side of an imaginary box, otherwise on the right side"
+msgstr "Jeśli tak, ułóży ścieżkę po lewej stronie wyimaginowanego pudełka, jeśłi nie - po prawej"
 
-#: ../src/selection-describer.cpp:167
-msgid "Use <b>Shift+D</b> to look up original"
-msgstr "Naciśnij <b>Shift + D</b>, aby odszukać oryginał"
+#: ../src/live_effects/lpe-perspective_path.cpp:56
+msgid "Uses XY plane?"
+msgstr "Używasz płaszczyzny XY?"
 
-#: ../src/selection-describer.cpp:171
-msgid "Use <b>Shift+D</b> to look up path"
-msgstr "Naciśnij <b>Shift + D</b>, aby odszukać ścieżkę"
+#: ../src/live_effects/lpe-perspective_path.cpp:65
+#, fuzzy
+msgid "Adjust the origin"
+msgstr "Dostosuj barwę"
 
-#: ../src/selection-describer.cpp:175
-msgid "Use <b>Shift+D</b> to look up frame"
-msgstr "Naciśnij <b>Shift + D</b>, aby odszukać ramkę"
+#: ../src/live_effects/lpe-ruler.cpp:29
+#: ../src/live_effects/lpe-ruler.cpp:37
+msgid "Both"
+msgstr "Obydwa"
 
-#. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:190
-#, c-format
-msgid "<b>%i</b> object selected"
-msgid_plural "<b>%i</b> objects selected"
-msgstr[0] "Zaznaczono <b>%i</b> obiekt"
-msgstr[1] "Zaznaczono <b>%i</b> obiekty"
-msgstr[2] "Zaznaczono <b>%i</b> obiektów"
+#: ../src/live_effects/lpe-ruler.cpp:35
+#: ../src/widgets/toolbox.cpp:4710
+msgid "Start"
+msgstr "Początek"
 
-#. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:195
-#, c-format
-msgid "<b>%i</b> object of type <b>%s</b>"
-msgid_plural "<b>%i</b> objects of type <b>%s</b>"
-msgstr[0] "<b>%i</b> obiekt typu <b>%s</b>"
-msgstr[1] "<b>%i</b> obiekty typu <b>%s</b>"
-msgstr[2] "<b>%i</b> obiektów typu <b>%s</b>"
+#: ../src/live_effects/lpe-ruler.cpp:36
+#: ../src/widgets/toolbox.cpp:4723
+msgid "End"
+msgstr "Koniec"
 
-#. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:200
-#, c-format
-msgid "<b>%i</b> object of types <b>%s</b>, <b>%s</b>"
-msgid_plural "<b>%i</b> objects of types <b>%s</b>, <b>%s</b>"
-msgstr[0] "<b>%i</b> obiekt typu <b>%s</b>, <b>%s</b>"
-msgstr[1] "<b>%i</b> obiekty typu <b>%s</b>, <b>%s</b>"
-msgstr[2] "<b>%i</b> obiektów typu <b>%s</b>, <b>%s</b>"
+#: ../src/live_effects/lpe-ruler.cpp:43
+msgid "Distance between successive ruler marks"
+msgstr "Odległość pomiędzy kolejnymi znakami linijki"
 
-#. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:205
-#, c-format
-msgid "<b>%i</b> object of types <b>%s</b>, <b>%s</b>, <b>%s</b>"
-msgid_plural "<b>%i</b> objects of types <b>%s</b>, <b>%s</b>, <b>%s</b>"
-msgstr[0] "<b>%i</b> obiekt typu <b>%s</b>, <b>%s</b>, <b>%s</b>"
-msgstr[1] "<b>%i</b> obiekty typu <b>%s</b>, <b>%s</b>, <b>%s</b>"
-msgstr[2] "<b>%i</b> obiektów typu <b>%s</b>, <b>%s</b>, <b>%s</b>"
+#: ../src/live_effects/lpe-ruler.cpp:43
+msgid "Mark distance"
+msgstr "Określ odległość"
 
-#. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:210
-#, c-format
-msgid "<b>%i</b> object of <b>%i</b> types"
-msgid_plural "<b>%i</b> objects of <b>%i</b> types"
-msgstr[0] "<b>%i</b> obiekt <b>%i</b> typów"
-msgstr[1] "<b>%i</b> obiekty <b>%i</b> typów"
-msgstr[2] "<b>%i</b> obiektów <b>%i</b> typów"
+#: ../src/live_effects/lpe-ruler.cpp:44
+msgid "Length of major ruler marks"
+msgstr "Długość głównych znaków linijki"
 
-#: ../src/selection-describer.cpp:215
-#, c-format
-msgid "%s%s. %s."
-msgstr "%s%s. %s."
+#: ../src/live_effects/lpe-ruler.cpp:44
+msgid "Major length"
+msgstr ""
 
-#: ../src/seltrans.cpp:460 ../src/ui/dialog/transformation.cpp:815
-msgid "Skew"
-msgstr "Pochyl"
+#: ../src/live_effects/lpe-ruler.cpp:45
+msgid "Length of minor ruler marks"
+msgstr "Długość drugorzędnych znaków linijki"
 
-#: ../src/seltrans.cpp:472
-msgid "Set center"
-msgstr "Określ środek"
+#: ../src/live_effects/lpe-ruler.cpp:45
+msgid "Minor length"
+msgstr ""
 
-#: ../src/seltrans.cpp:569
-msgid ""
-"<b>Center</b> of rotation and skewing: drag to reposition; scaling with "
-"Shift also uses this center"
+#: ../src/live_effects/lpe-ruler.cpp:46
+msgid "Draw a major mark every ... steps"
 msgstr ""
-"<b>Środek</b> obrotu i skręcenia. Ciągnij, aby przesunąć. Skalowanie z Shift "
-"także wykorzystuje ten środek."
 
-#: ../src/seltrans.cpp:596
-msgid ""
-"<b>Squeeze or stretch</b> selection; with <b>Ctrl</b> to scale uniformly; "
-"with <b>Shift</b> to scale around rotation center"
+#: ../src/live_effects/lpe-ruler.cpp:46
+msgid "Major steps"
 msgstr ""
-"<b>Ścieśnij lub rozciągnij</b> zaznaczenie; z <b>Ctrl</b> - skalowanie "
-"proporcjonalne, z <b>Shift</b> - skalowanie od środka obrotu."
 
-#: ../src/seltrans.cpp:597
-msgid ""
-"<b>Scale</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</"
-"b> to scale around rotation center"
+#: ../src/live_effects/lpe-ruler.cpp:47
+msgid "Shift marks by"
 msgstr ""
-"<b>Skalowanie</b> zaznaczenia; z <b>Ctrl</b> - skalowanie proporcjonalne, z "
-"<b>Shift</b> - skalowanie od środka obrotu."
 
-#: ../src/seltrans.cpp:601
-msgid ""
-"<b>Skew</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to "
-"skew around the opposite side"
+#: ../src/live_effects/lpe-ruler.cpp:47
+msgid "Shift marks by this many steps"
 msgstr ""
-"<b>Pochylenie</b> zaznaczenia; z <b>Ctrl</b> - przyciąganie do kąta, z "
-"<b>Shift</b> - obrót wokół narożnika przeciwległego do uchwytu."
 
-#: ../src/seltrans.cpp:602
-msgid ""
-"<b>Rotate</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> "
-"to rotate around the opposite corner"
+#: ../src/live_effects/lpe-ruler.cpp:48
+msgid "Direction of marks (when viewing along the path from start to end)"
 msgstr ""
-"<b>Obrót</b> zaznaczenia; z <b>Ctrl</b> - przyciąganie do kąta, z <b>Shift</"
-"b> - obrót wokół narożnika przeciwległego do uchwytu."
 
-#: ../src/seltrans.cpp:736
-msgid "Reset center"
-msgstr "Resetuj środek"
+#: ../src/live_effects/lpe-ruler.cpp:48
+msgid "Mark direction"
+msgstr "Określ kierunek"
 
-#: ../src/seltrans.cpp:980 ../src/seltrans.cpp:1079
-#, c-format
-msgid "<b>Scale</b>: %0.2f%% x %0.2f%%; with <b>Ctrl</b> to lock ratio"
+#: ../src/live_effects/lpe-ruler.cpp:49
+msgid "Offset of first mark"
 msgstr ""
-"<b>Skalowanie</b>: %0.2f%% x %0.2f%%; z <b>Ctrl</b> - blokada proporcji."
 
-#. TRANSLATORS: don't modify the first ";"
-#. (it will NOT be displayed as ";" - only the second one will be)
-#: ../src/seltrans.cpp:1196
-#, c-format
-msgid "<b>Skew</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
-msgstr "<b>Pochylenie</b>: %0.2f&#176; z <b>Ctrl</b> - przyciąganie do kąta."
+#: ../src/live_effects/lpe-ruler.cpp:50
+#, fuzzy
+msgid "Border marks"
+msgstr "Kolor konturu:"
 
-#. TRANSLATORS: don't modify the first ";"
-#. (it will NOT be displayed as ";" - only the second one will be)
-#: ../src/seltrans.cpp:1255
-#, c-format
-msgid "<b>Rotate</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
-msgstr "<b>Obrót</b>: %0.2f&#176; z <b>Ctrl</b> - przyciąganie do kąta."
+#: ../src/live_effects/lpe-ruler.cpp:50
+msgid "Choose whether to draw marks at the beginning and end of the path"
+msgstr ""
 
-#: ../src/seltrans.cpp:1296
-#, c-format
-msgid "Move <b>center</b> to %s, %s"
-msgstr "Przesunięcie <b>środka</b> do %s, %s"
+#. initialise your parameters here:
+#: ../src/live_effects/lpe-skeleton.cpp:33
+msgid "Float parameter"
+msgstr "Parametr przepływu"
 
-#: ../src/seltrans.cpp:1457
-#, c-format
-msgid ""
-"<b>Move</b> by %s, %s; with <b>Ctrl</b> to restrict to horizontal/vertical; "
-"with <b>Shift</b> to disable snapping"
+#: ../src/live_effects/lpe-skeleton.cpp:33
+msgid "just a real number like 1.4!"
+msgstr "rzeczywista liczba, taka jak 1.4!"
+
+#: ../src/live_effects/lpe-sketch.cpp:35
+msgid "Draw that many approximating strokes"
 msgstr ""
-"<b>Przesunięcie</b> o %s, %s; z <b>Ctrl</b> - poziomo/pionowo, z <b>Shift</"
-"b> - wyłączenie przyciągania."
 
-#: ../src/shape-editor.cpp:397
-msgid "Drag curve"
-msgstr "Przeciągnij krzywą"
+#. initialise your parameters here:
+#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)),
+#: ../src/live_effects/lpe-sketch.cpp:35
+msgid "Strokes"
+msgstr "Kontury"
 
-#: ../src/sp-anchor.cpp:178
-#, c-format
-msgid "<b>Link</b> to %s"
-msgstr "<b>Odnośnik</b> do %s"
+#: ../src/live_effects/lpe-sketch.cpp:36
+msgid "Max stroke length"
+msgstr "Maksymalna długość konturu"
 
-#: ../src/sp-anchor.cpp:182
-msgid "<b>Link</b> without URI"
-msgstr "<b>Odnośnik</b> bez identyfikatora URI"
+#: ../src/live_effects/lpe-sketch.cpp:37
+msgid "Maximum length of approximating strokes"
+msgstr "Maksymalna długość przybliżających się konturów"
 
-#: ../src/sp-ellipse.cpp:494 ../src/sp-ellipse.cpp:873
-msgid "<b>Ellipse</b>"
-msgstr "<b>Elipsa</b>"
+#: ../src/live_effects/lpe-sketch.cpp:38
+#, fuzzy
+msgid "Stroke length variation"
+msgstr "Krawędź początkowa wariancji"
 
-#: ../src/sp-ellipse.cpp:635
-msgid "<b>Circle</b>"
-msgstr "<b>Okrąg</b>"
+#: ../src/live_effects/lpe-sketch.cpp:39
+#, fuzzy
+msgid "Random variation of stroke length (relative to maximum length)"
+msgstr "Skaluje szerokość ścieżki konturu relatywnie do długości"
 
-#: ../src/sp-ellipse.cpp:868
-msgid "<b>Segment</b>"
-msgstr "<b>Odcinek</b>"
+#: ../src/live_effects/lpe-sketch.cpp:40
+msgid "Max. overlap"
+msgstr "Maks. nachodzenie na siebie"
 
-#: ../src/sp-ellipse.cpp:870
-msgid "<b>Arc</b>"
-msgstr "<b>Łuk</b>"
+#: ../src/live_effects/lpe-sketch.cpp:41
+#, fuzzy
+msgid "How much successive strokes should overlap (relative to maximum length)"
+msgstr "Skaluje szerokość ścieżki konturu relatywnie do długości"
 
-#. TRANSLATORS: "Flow region" is an area where text is allowed to flow
-#: ../src/sp-flowregion.cpp:269
-msgid "Flow region"
-msgstr "Obszar wypełniany tekstem"
+#: ../src/live_effects/lpe-sketch.cpp:42
+msgid "Overlap variation"
+msgstr "Odchylenia nachodzenia na siebie"
 
-#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the
-#. * flow excluded region.  flowRegionExclude in SVG 1.2: see
-#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and
-#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem.
-#: ../src/sp-flowregion.cpp:488
-msgid "Flow excluded region"
-msgstr "Obszar niewypełniany tekstem"
+#: ../src/live_effects/lpe-sketch.cpp:43
+#, fuzzy
+msgid "Random variation of overlap (relative to maximum overlap)"
+msgstr "Skaluje szerokość ścieżki konturu relatywnie do długości"
 
-#: ../src/sp-flowtext.cpp:377
-#, c-format
-msgid "<b>Flowed text</b> (%d character)"
-msgid_plural "<b>Flowed text</b> (%d characters)"
-msgstr[0] "<b>Tekst wpisany</b> (%d znak)"
-msgstr[1] "<b>Tekst wpisany</b> (%d znaki)"
-msgstr[2] "<b>Tekst wpisany</b> (%d znaków)"
+#: ../src/live_effects/lpe-sketch.cpp:44
+msgid "Max. end tolerance"
+msgstr "Maks. tolerancja końcowa"
 
-#: ../src/sp-flowtext.cpp:379
-#, c-format
-msgid "<b>Linked flowed text</b> (%d character)"
-msgid_plural "<b>Linked flowed text</b> (%d characters)"
-msgstr[0] "<b>Połączony tekst wpisany</b> (%d znak)"
-msgstr[1] "<b>Połączony tekst wpisany</b> (%d znaki)"
-msgstr[2] "<b>Połączony tekst wpisany</b> (%d znaków)"
+#: ../src/live_effects/lpe-sketch.cpp:45
+msgid "Maximum distance between ends of original and approximating paths (relative to maximum length)"
+msgstr "Maksymalny odstęp pomiędzy końcami oryginału przybliżającą się ścieżka (relatywnie do maksymalnej długości)"
+
+#: ../src/live_effects/lpe-sketch.cpp:46
+msgid "Parallel offset"
+msgstr "Przesunięcie równoległe"
+
+#: ../src/live_effects/lpe-sketch.cpp:47
+msgid "Average distance from approximating path to original path"
+msgstr "Przybliżona odległość pomiędzy przybliżającą się ścieżką a oryginałem"
+
+#: ../src/live_effects/lpe-sketch.cpp:48
+msgid "Max. tremble"
+msgstr "Maks. drżenie"
+
+#: ../src/live_effects/lpe-sketch.cpp:49
+msgid "Maximum tremble magnitude"
+msgstr "Maksymalna wielkość drgań"
+
+#: ../src/live_effects/lpe-sketch.cpp:50
+msgid "Tremble frequency"
+msgstr "Częstotliwość drgań"
+
+#: ../src/live_effects/lpe-sketch.cpp:51
+#, fuzzy
+msgid "Average number of tremble periods in an approximating stroke"
+msgstr "Średnia liczba okresów drgań w przybliżającym się pociągnięciu"
+
+#: ../src/live_effects/lpe-sketch.cpp:52
+msgid "Construction lines"
+msgstr "Linie konstrukcyjne"
+
+#: ../src/live_effects/lpe-sketch.cpp:53
+msgid "How many construction lines (tangents) to draw"
+msgstr ""
+
+#: ../src/live_effects/lpe-sketch.cpp:55
+msgid "Scale factor relating curvature and length of construction lines (try 5*offset)"
+msgstr ""
 
-#: ../src/sp-guide.cpp:285
-msgid "Guides around page"
-msgstr "Prowadnice wokół strony"
+#: ../src/live_effects/lpe-sketch.cpp:56
+msgid "Max. length"
+msgstr "Maks. długość"
 
-#: ../src/sp-guide.cpp:418
-#, c-format
-msgid "vertical, at %s"
-msgstr "pionowa, na %s"
+#: ../src/live_effects/lpe-sketch.cpp:56
+msgid "Maximum length of construction lines"
+msgstr ""
 
-#: ../src/sp-guide.cpp:421
-#, c-format
-msgid "horizontal, at %s"
-msgstr "pozioma, na %s"
+#: ../src/live_effects/lpe-sketch.cpp:57
+#, fuzzy
+msgid "Length variation"
+msgstr "Mniejsze nasycenie"
 
-#: ../src/sp-guide.cpp:426
-#, c-format
-msgid "at %d degrees, through (%s,%s); <b>Ctrl</b>+click to delete"
-msgstr "o %d stopni, przez (%s,%s). Użyj <b>Ctrl</b> + kliknięcie, aby usunąć"
+#: ../src/live_effects/lpe-sketch.cpp:57
+#, fuzzy
+msgid "Random variation of the length of construction lines"
+msgstr "Skaluje szerokość ścieżki konturu relatywnie do długości"
 
-#: ../src/sp-image.cpp:1098
-msgid "embedded"
-msgstr "osadzony"
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:56
+msgid "Additional angle between tangent and curve"
+msgstr ""
 
-#: ../src/sp-image.cpp:1106
-#, c-format
-msgid "<b>Image with bad reference</b>: %s"
-msgstr "<b>Obrazek z niepoprawnym odwołaniem</b>: %s"
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:57
+msgid "Location along curve"
+msgstr ""
 
-#: ../src/sp-image.cpp:1107
-#, c-format
-msgid "<b>Image</b> %d &#215; %d: %s"
-msgstr "<b>Obrazek</b> %d &#215; %d: %s"
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:57
+msgid "Location of the point of attachment along the curve (between 0.0 and number-of-segments)"
+msgstr ""
 
-#: ../src/spiral-context.cpp:341
-msgid "<b>Ctrl</b>: snap angle"
-msgstr "<b>Ctrl</b> - przyciąganie do kąta"
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:58
+msgid "Specifies the left end of the tangent"
+msgstr ""
 
-#: ../src/spiral-context.cpp:343
-msgid "<b>Alt</b>: lock spiral radius"
-msgstr "<b>Alt</b> - blokada promienia spirali"
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:59
+msgid "Specifies the right end of the tangent"
+msgstr ""
 
-#: ../src/spiral-context.cpp:466
-#, c-format
-msgid ""
-"<b>Spiral</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:68
+msgid "Adjust the point of attachment of the tangent"
 msgstr ""
-"<b>Spirala</b>: promień %s, kąt %5g&#176; z <b>Ctrl</b> - przyciąganie do "
-"kąta"
 
-#: ../src/spiral-context.cpp:487
-msgid "Create spiral"
-msgstr "Utwórz spiralę"
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:69
+#, fuzzy
+msgid "Adjust the \"left\" end of the tangent"
+msgstr "Definiuje kolor źródła światła"
 
-#: ../src/sp-item.cpp:959
-msgid "Object"
-msgstr "Obiekt"
+#: ../src/live_effects/lpe-tangent_to_curve.cpp:70
+#, fuzzy
+msgid "Adjust the \"right\" end of the tangent"
+msgstr "Pobranie jasności koloru"
 
-#: ../src/sp-item.cpp:976
-#, c-format
-msgid "%s; <i>clipped</i>"
-msgstr "%s; <i>przycięte</i>"
+#: ../src/live_effects/lpe-test-doEffect-stack.cpp:22
+msgid "Stack step"
+msgstr "Tworzenie stosu przebiegów"
 
-#: ../src/sp-item.cpp:981
-#, c-format
-msgid "%s; <i>masked</i>"
-msgstr "%s; <i>zamaskowany</i>"
+#: ../src/live_effects/lpe-test-doEffect-stack.cpp:23
+msgid "point param"
+msgstr ""
 
-#: ../src/sp-item.cpp:986
-#, c-format
-msgid "%s; <i>filtered</i>"
-msgstr "%s; <i>odfiltrowane</i>"
+#: ../src/live_effects/lpe-test-doEffect-stack.cpp:24
+msgid "path param"
+msgstr "parametr ścieżki"
 
-#: ../src/sp-item-group.cpp:738
-#, c-format
-msgid "<b>Group</b> of <b>%d</b> object"
-msgid_plural "<b>Group</b> of <b>%d</b> objects"
-msgstr[0] "<b>Grupa</b> z <b>%d</b> obiektem"
-msgstr[1] "<b>Grupa</b> <b>%d</b> obiektów"
-msgstr[2] "<b>Grupa</b> <b>%d</b> obiektów"
+#: ../src/live_effects/lpe-text_label.cpp:22
+msgid "Label"
+msgstr "Etykieta"
 
-#: ../src/sp-line.cpp:188
-msgid "<b>Line</b>"
-msgstr "<b>Linia</b>"
+#: ../src/live_effects/lpe-text_label.cpp:22
+msgid "Text label attached to the path"
+msgstr ""
 
-#: ../src/splivarot.cpp:71 ../src/splivarot.cpp:77
-msgid "Union"
-msgstr "Suma"
+#: ../src/live_effects/lpe-vonkoch.cpp:47
+#, fuzzy
+msgid "Reference segment"
+msgstr "Usuń odcinek"
 
-#: ../src/splivarot.cpp:83
-msgid "Intersection"
-msgstr "Część wspólna"
+#: ../src/live_effects/lpe-vonkoch.cpp:47
+msgid "The reference segment. Defaults to bbox diameter."
+msgstr ""
 
-#: ../src/splivarot.cpp:89 ../src/splivarot.cpp:95
-msgid "Difference"
-msgstr "Różnica"
+#. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this),
+#. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this),
+#: ../src/live_effects/lpe-vonkoch.cpp:50
+msgid "Generating path"
+msgstr "Generowanie ścieżki"
 
-#: ../src/splivarot.cpp:101
-msgid "Exclusion"
-msgstr "Wykluczenie"
+#: ../src/live_effects/lpe-vonkoch.cpp:50
+msgid "Path whose segments define the iterated transforms"
+msgstr ""
 
-#: ../src/splivarot.cpp:106
-msgid "Division"
-msgstr "Podział"
+#: ../src/live_effects/lpe-vonkoch.cpp:51
+msgid "2 consecutive segments are used to reverse/preserve orientation only (otherwise, they define a general transform)."
+msgstr ""
 
-#: ../src/splivarot.cpp:111
-msgid "Cut path"
-msgstr "Rozcięcie ścieżki"
+#: ../src/live_effects/lpe-vonkoch.cpp:51
+msgid "Use uniform transforms only"
+msgstr ""
 
-#: ../src/splivarot.cpp:128
-msgid "Select <b>at least 2 paths</b> to perform a boolean operation."
-msgstr "Zaznacz <b>co najmniej 2 ścieżki</b>, aby wykonać operację logiczną"
+#: ../src/live_effects/lpe-vonkoch.cpp:52
+msgid "Depth of the recursion --- keep low!!"
+msgstr "Głębokość rekurencji - utrzymuj najmniejszą!"
 
-#: ../src/splivarot.cpp:132
-msgid "Select <b>at least 1 path</b> to perform a boolean union."
-msgstr "Zaznacz <b>co najmniej 1 ścieżkę</b>, aby wykonać sumę logiczną"
+#: ../src/live_effects/lpe-vonkoch.cpp:52
+msgid "Nb of generations"
+msgstr "Liczba pokoleń"
 
-#: ../src/splivarot.cpp:138
-msgid ""
-"Select <b>exactly 2 paths</b> to perform difference, XOR, division, or path "
-"cut."
+#: ../src/live_effects/lpe-vonkoch.cpp:53
+msgid "Draw all generations"
 msgstr ""
-"Zaznacz <b>2 ścieżki</b>, aby wykonać operację różnicy, wykluczenia, "
-"podziału lub rozcięcia ścieżki"
 
-#: ../src/splivarot.cpp:155 ../src/splivarot.cpp:170
-msgid ""
-"Unable to determine the <b>z-order</b> of the objects selected for "
-"difference, XOR, division, or path cut."
+#: ../src/live_effects/lpe-vonkoch.cpp:53
+msgid "If unchecked, draw only the last generation"
 msgstr ""
-"Nie można rozpoznać <b>kolejności</b> obiektów zaznaczonych do różnicy, "
-"wykluczenia, podziału lub rozcięcia ścieżki"
 
-#: ../src/splivarot.cpp:200
-msgid ""
-"One of the objects is <b>not a path</b>, cannot perform boolean operation."
+#: ../src/live_effects/lpe-vonkoch.cpp:55
+msgid "Disable effect if the output is too complex"
 msgstr ""
-"Jeden z obiektów <b>nie jest ścieżką</b>. Nie można wykonać operacji "
-"logicznej."
 
-#: ../src/splivarot.cpp:610
-msgid "Select <b>stroked path(s)</b> to convert stroke to path."
-msgstr "Wybierz <b>ścieżkę(i) konturu</b> do konwersji konturu na ścieżkę"
+#. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug.
+#: ../src/live_effects/lpe-vonkoch.cpp:55
+msgid "Max complexity"
+msgstr ""
 
-#: ../src/splivarot.cpp:894
-msgid "Convert stroke to path"
-msgstr "Konwertuje kontur na ścieżkę"
+#: ../src/live_effects/parameter/bool.cpp:69
+msgid "Change bool parameter"
+msgstr "Zmień parametr wartości logicznej"
 
-#. TRANSLATORS: "to outline" means "to convert stroke to path"
-#: ../src/splivarot.cpp:897
-msgid "<b>No stroked paths</b> in the selection."
-msgstr "W zaznaczeniu <b>brak ścieżek z konturem</b>"
+#: ../src/live_effects/parameter/enum.h:50
+msgid "Change enumeration parameter"
+msgstr "Zmień parametr numeryczny"
 
-#: ../src/splivarot.cpp:981
-msgid "Selected object is <b>not a path</b>, cannot inset/outset."
-msgstr ""
-"Zaznaczony obiekt <b>nie jest ścieżką</b>. Nie można wykonać odsunięcia do "
-"wewnątrz/na zewnątrz."
+#: ../src/live_effects/parameter/parameter.cpp:138
+msgid "Change scalar parameter"
+msgstr "Zmień skalar"
 
-#: ../src/splivarot.cpp:1101 ../src/splivarot.cpp:1170
-msgid "Create linked offset"
-msgstr "Utwórz połączone odsunięcie"
+#: ../src/live_effects/parameter/path.cpp:158
+msgid "Edit on-canvas"
+msgstr "Edytuj w obszarze roboczym"
 
-#: ../src/splivarot.cpp:1102 ../src/splivarot.cpp:1171
-msgid "Create dynamic offset"
-msgstr "Tworzy dynamiczny obiekt odsunięcia"
+#: ../src/live_effects/parameter/path.cpp:168
+msgid "Copy path"
+msgstr "Kopiuj ścieżkę"
 
-#: ../src/splivarot.cpp:1198
-msgid "Select <b>path(s)</b> to inset/outset."
-msgstr "Zaznacz <b>ścieżkę(i)</b> do odsunięcia na zewnątrz/do wewnątrz"
+#: ../src/live_effects/parameter/path.cpp:178
+msgid "Paste path"
+msgstr "Wklej ścieżkę"
 
-#: ../src/splivarot.cpp:1416
-msgid "Outset path"
-msgstr "Ścieżka przesunięcia zewnętrznego"
+#: ../src/live_effects/parameter/path.cpp:188
+msgid "Link to path"
+msgstr "Odnośnik na śc_eżkę"
 
-#: ../src/splivarot.cpp:1416
-msgid "Inset path"
-msgstr "Ścieżka przesunięcia wewnętrznego"
+#: ../src/live_effects/parameter/path.cpp:409
+msgid "Paste path parameter"
+msgstr "Wklej parametr ścieżki"
 
-#: ../src/splivarot.cpp:1418
-msgid "<b>No paths</b> to inset/outset in the selection."
-msgstr ""
-"W zaznaczeniu <b>brak ścieżek</b> do odsunięcia do wewnątrz/na zewnątrz"
+#: ../src/live_effects/parameter/path.cpp:441
+#, fuzzy
+msgid "Link path parameter to path"
+msgstr "Wklej parametr ścieżki"
 
-#: ../src/splivarot.cpp:1579
-msgid "Simplifying paths (separately):"
-msgstr "Upraszczanie ścieżek (oddzielnie):"
+#: ../src/live_effects/parameter/point.cpp:91
+msgid "Change point parameter"
+msgstr "Zmień parametr punktu"
 
-#: ../src/splivarot.cpp:1581
-msgid "Simplifying paths:"
-msgstr "Upraszczanie ścieżek:"
+#: ../src/live_effects/parameter/pointparam-knotholder.cpp:134
+#, fuzzy
+msgid "Change LPE point parameter"
+msgstr "Zmień parametr punktu"
 
-#: ../src/splivarot.cpp:1618
-#, c-format
-msgid "%s <b>%d</b> of <b>%d</b> paths simplified..."
-msgstr "Uproszczono %s <b>%d</b> z <b>%d</b> ścieżek"
+#: ../src/live_effects/parameter/random.cpp:137
+msgid "Change random parameter"
+msgstr "Zmień parametr losowy"
 
-#: ../src/splivarot.cpp:1629
-#, c-format
-msgid "<b>%d</b> paths simplified."
-msgstr "Uproszczono <b>%d</b> ścieżek"
+#: ../src/live_effects/parameter/text.cpp:100
+msgid "Change text parameter"
+msgstr "Zmień parametr tekstu"
 
-#: ../src/splivarot.cpp:1645
-msgid "Select <b>path(s)</b> to simplify."
-msgstr "Zaznacz <b>ścieżkę(i)</b> do uproszczenia"
+#: ../src/live_effects/parameter/unit.cpp:77
+msgid "Change unit parameter"
+msgstr "Zmień parametr jednostki"
 
-#: ../src/splivarot.cpp:1659
-msgid "Simplify"
-msgstr "Uprość"
+#: ../src/lpe-tool-context.cpp:269
+msgid "Choose a construction tool from the toolbar."
+msgstr ""
 
-#: ../src/splivarot.cpp:1661
-msgid "<b>No paths</b> to simplify in the selection."
-msgstr "W zaznaczeniu <b>brak ścieżek</b> do uproszczenia"
+#: ../src/main-cmdlineact.cpp:49
+#, c-format
+msgid "Unable to find verb ID '%s' specified on the command line.\n"
+msgstr "Nie można znaleźć polecenia o ID \"%s\" określonego w wierszu poleceń.\n"
 
-#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign
-#: ../src/sp-offset.cpp:432
+#: ../src/main-cmdlineact.cpp:61
 #, c-format
-msgid "<b>Linked offset</b>, %s by %f pt"
-msgstr "<b>Połączone przesunięcie</b>, %s o %f pkt"
+msgid "Unable to find node ID: '%s'\n"
+msgstr "Nie można znaleźć węzła o ID: \"%s\"\n"
 
-#: ../src/sp-offset.cpp:433 ../src/sp-offset.cpp:437
-msgid "outset"
-msgstr "na zewnątrz"
+#: ../src/main.cpp:262
+msgid "Print the Inkscape version number"
+msgstr "Wypisz numer wersji programu Inkscape"
 
-#: ../src/sp-offset.cpp:433 ../src/sp-offset.cpp:437
-msgid "inset"
-msgstr "do wewnątrz"
+#: ../src/main.cpp:267
+msgid "Do not use X server (only process files from console)"
+msgstr "Nie używaj X serwera (przetwarzaj jedynie pliki z poziomu konsoli)"
 
-#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign
-#: ../src/sp-offset.cpp:436
-#, c-format
-msgid "<b>Dynamic offset</b>, %s by %f pt"
-msgstr "<b>Odsunięcie dynamiczne</b>, %s o %f pkt"
+#: ../src/main.cpp:272
+msgid "Try to use X server (even if $DISPLAY is not set)"
+msgstr "Spróbuj używać X serwera (nawet, gdy nie ustawiono zmiennej $DISPLAY)"
 
-#: ../src/sp-path.cpp:135
-#, c-format
-msgid "<b>Path</b> (%i node, path effect)"
-msgid_plural "<b>Path</b> (%i nodes, path effect)"
-msgstr[0] "<b>Ścieżka</b> (%i węzeł, efekt ścieżki)"
-msgstr[1] "<b>Ścieżka</b> (%i węzły, efekt ścieżki)"
-msgstr[2] "<b>Ścieżka</b> (%i węzłów, efekt ścieżki)"
+#: ../src/main.cpp:277
+msgid "Open specified document(s) (option string may be excluded)"
+msgstr "Otwiera podany(e) dokument(y) (tekst opcji może zostać wyłączony)"
 
-#: ../src/sp-path.cpp:138
-#, c-format
-msgid "<b>Path</b> (%i node)"
-msgid_plural "<b>Path</b> (%i nodes)"
-msgstr[0] "<b>Ścieżka</b> (%i węzeł)"
-msgstr[1] "<b>Ścieżka</b> (%i węzły)"
-msgstr[2] "<b>Ścieżka</b> (%i węzłów)"
+#: ../src/main.cpp:278
+#: ../src/main.cpp:283
+#: ../src/main.cpp:288
+#: ../src/main.cpp:355
+#: ../src/main.cpp:360
+#: ../src/main.cpp:365
+#: ../src/main.cpp:370
+#: ../src/main.cpp:376
+msgid "FILENAME"
+msgstr "NAZWA_PLIKU"
 
-#: ../src/sp-path.cpp:540
-msgid "Creating single dot"
-msgstr "Tworzenie pojedynczego punktu"
+#: ../src/main.cpp:282
+msgid "Print document(s) to specified output file (use '| program' for pipe)"
+msgstr "Drukuje dokumenty do podanego pliku wyjściowego (zapis do potoku - \"| program\")"
 
-#: ../src/sp-path.cpp:541
-msgid "Create single dot"
-msgstr "Utwórz pojedynczy punkt"
+#: ../src/main.cpp:287
+msgid "Export document to a PNG file"
+msgstr "Eksportuje dokument jako plik PNG"
 
-#: ../src/sp-polygon.cpp:235
-msgid "<b>Polygon</b>"
-msgstr "<b>Wielokąt</b>:"
+#: ../src/main.cpp:292
+msgid "The resolution used for exporting SVG into bitmap (default 90)"
+msgstr "Rozdzielczość używana dla konwersji SVG do bitmapy (domyślnie 90)"
+
+#: ../src/main.cpp:293
+#: ../src/ui/widget/rendering-options.cpp:43
+msgid "DPI"
+msgstr "DPI"
 
-#: ../src/sp-polyline.cpp:177
-msgid "<b>Polyline</b>"
-msgstr "<b>Linia łamana</b>"
+#: ../src/main.cpp:297
+msgid "Exported area in SVG user units (default is the canvas; 0,0 is lower-left corner)"
+msgstr "Eksportowany obszar w jednostkach SVG użytkownika - domyślnie jest to obszar roboczy; (0,0 oznacza lewy dolny narożnik)"
 
-#: ../src/sp-rect.cpp:226
-msgid "<b>Rectangle</b>"
-msgstr "<b>Prostokąt</b>"
+#: ../src/main.cpp:298
+msgid "x0:y0:x1:y1"
+msgstr "x0:y0:x1:y1"
 
-#. TRANSLATORS: since turn count isn't an integer, please adjust the
-#. string as needed to deal with an localized plural forms.
-#: ../src/sp-spiral.cpp:324
-#, c-format
-msgid "<b>Spiral</b> with %3f turns"
-msgstr "<b>Spirala</b> z %3f obrotami"
+#: ../src/main.cpp:302
+msgid "Exported area is the entire drawing (not canvas)"
+msgstr "Obszarem eksportu jest cały rysunek, nie obszar roboczy"
 
-#: ../src/sp-star.cpp:307
-#, c-format
-msgid "<b>Star</b> with %d vertex"
-msgid_plural "<b>Star</b> with %d vertices"
-msgstr[0] "<b>Gwiazda</b> z %d ramieniem"
-msgstr[1] "<b>Gwiazda</b> z %d ramionami"
-msgstr[2] "<b>Gwiazda</b> z %d ramionami"
+#: ../src/main.cpp:307
+msgid "Exported area is the entire canvas"
+msgstr "Obszarem eksportu jest cały obszar roboczy"
 
-#: ../src/sp-star.cpp:311
-#, c-format
-msgid "<b>Polygon</b> with %d vertex"
-msgid_plural "<b>Polygon</b> with %d vertices"
-msgstr[0] "<b>Wielokąt</b> z %d wierzchołkiem"
-msgstr[1] "<b>Wielokąt</b> z %d wierzchołkami"
-msgstr[2] "<b>Wielokąt</b> z %d wierzchołkami"
+#: ../src/main.cpp:312
+msgid "Snap the bitmap export area outwards to the nearest integer values (in SVG user units)"
+msgstr "Wyrównaj obszar eksportu bitmapy na zewnątrz do najbliższej całkowitej wartości (w jednostkach SVG użytkownika)"
 
-#: ../src/sp-switch.cpp:100
-#, c-format
-msgid "<b>Conditional group</b> of <b>%d</b> object"
-msgid_plural "<b>Conditional group</b> of <b>%d</b> objects"
-msgstr[0] "<b>Grupa warunkowa</b> <b>%d</b> obiekt"
-msgstr[1] "<b>Grupa warunkowa</b> <b>%d</b> obiekty"
-msgstr[2] "<b>Grupa warunkowa</b> <b>%d</b> obiektów"
+#: ../src/main.cpp:317
+msgid "The width of exported bitmap in pixels (overrides export-dpi)"
+msgstr "Szerokość generowanej bitmapy w pikselach (przesłania dpi)"
 
-#. TRANSLATORS: For description of font with no name.
-#: ../src/sp-text.cpp:414
-msgid "&lt;no name found&gt;"
-msgstr "&lt;nie znaleziono nazwy&gt;"
+#: ../src/main.cpp:318
+msgid "WIDTH"
+msgstr "SZEROKOŚĆ"
 
-#: ../src/sp-text.cpp:420
-#, c-format
-msgid "<b>Text on path</b> (%s, %s)"
-msgstr "<b>Tekst na ścieżce</b> (%s, %s)"
+#: ../src/main.cpp:322
+msgid "The height of exported bitmap in pixels (overrides export-dpi)"
+msgstr "Wysokość generowanej bitmapy w pikselach (przesłania dpi)"
 
-#: ../src/sp-text.cpp:421
-#, c-format
-msgid "<b>Text</b> (%s, %s)"
-msgstr "<b>Tekst</b> (%s, %s)"
+#: ../src/main.cpp:323
+msgid "HEIGHT"
+msgstr "WYSOKOŚĆ"
 
-#: ../src/sp-tref.cpp:368
-#, c-format
-msgid "<b>Cloned character data</b>%s%s"
-msgstr "<b>Dane sklonowanego znaku</b> %s%s"
+#: ../src/main.cpp:327
+msgid "The ID of the object to export"
+msgstr "Identyfikator ID eksportowanego obiektu"
 
-#: ../src/sp-tref.cpp:369
-msgid " from "
-msgstr "z"
+#: ../src/main.cpp:328
+#: ../src/main.cpp:426
+msgid "ID"
+msgstr "ID"
 
-#: ../src/sp-tref.cpp:374
-msgid "<b>Orphaned cloned character data</b>"
-msgstr "<b>Dane osieroconego sklonowanego znaku</b>"
+#. TRANSLATORS: this means: "Only export the object whose id is given in --export-id".
+#. See "man inkscape" for details.
+#: ../src/main.cpp:334
+msgid "Export just the object with export-id, hide all others (only with export-id)"
+msgstr "Eksportuj tylko obiekty oznaczone identyfikatorem eksportu, ukryj pozostałe (tylko z 'export-id')"
 
-#: ../src/sp-tspan.cpp:284
-msgid "<b>Text span</b>"
-msgstr "<b>Rozpiętość tekstu</b>"
+#: ../src/main.cpp:339
+msgid "Use stored filename and DPI hints when exporting (only with export-id)"
+msgstr "Podczas eksportu zastosuj zapisaną nazwę pliku i DPI (tylko z 'export-id')"
 
-#. TRANSLATORS: Used for statusbar description for long <use> chains:
-#. * "Clone of: Clone of: ... in Layer 1".
-#: ../src/sp-use.cpp:318
-msgid "..."
-msgstr "..."
+#: ../src/main.cpp:344
+msgid "Background color of exported bitmap (any SVG-supported color string)"
+msgstr "Kolor tła eksportowanej bitmapy (dowolny string koloru obsługiwany przez SVG)"
 
-#: ../src/sp-use.cpp:326
-#, c-format
-msgid "<b>Clone</b> of: %s"
-msgstr "<b>Klon</b> obiektu: %s"
+#: ../src/main.cpp:345
+msgid "COLOR"
+msgstr "KOLOR"
 
-#: ../src/sp-use.cpp:330
-msgid "<b>Orphaned clone</b>"
-msgstr "<b>Osierocony klon</b>"
+#: ../src/main.cpp:349
+msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)"
+msgstr "Krycie tła eksportowanej bitmapy (w formacie 0.0 do 1.0, lub 1 do 255)"
 
-#: ../src/star-context.cpp:352
-msgid "<b>Ctrl</b>: snap angle; keep rays radial"
-msgstr "<b>Ctrl</b> - przyciąganie do kąta, zachowanie promienistości"
+#: ../src/main.cpp:350
+msgid "VALUE"
+msgstr "WARTOŚĆ"
 
-#: ../src/star-context.cpp:476
-#, c-format
-msgid ""
-"<b>Polygon</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
-msgstr ""
-"<b>Wielokąt</b>: promień %s, kąt %5g&#176;; z <b>Ctrl</b> przyciąganie do "
-"kąta."
+#: ../src/main.cpp:354
+msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)"
+msgstr "Eksportuj dokument do czystego formatu SVG (bez przestrzeni nazw używanych przez programy Sodipodi i Inkscape)"
 
-#: ../src/star-context.cpp:477
-#, c-format
-msgid "<b>Star</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
-msgstr ""
-"<b>Gwiazda</b>: promień %s, kąt %5g&#176;; z <b>Ctrl</b> przyciąganie do "
-"kąta."
+#: ../src/main.cpp:359
+msgid "Export document to a PS file"
+msgstr "Eksportuje dokument do pliku PS"
 
-#: ../src/star-context.cpp:500
-msgid "Create star"
-msgstr "Utwórz gwiazdę"
+#: ../src/main.cpp:364
+msgid "Export document to an EPS file"
+msgstr "Eksportuje dokument do pliku EPS"
 
-#: ../src/text-chemistry.cpp:104
-msgid "Select <b>a text and a path</b> to put text on path."
-msgstr "Zaznacz <b>tekst i ścieżkę</b>, aby wprowadzić tekst na ścieżkę"
+#: ../src/main.cpp:369
+msgid "Export document to a PDF file"
+msgstr "Eksportuje dokument do pliku PDF"
 
-#: ../src/text-chemistry.cpp:109
-msgid ""
-"This text object is <b>already put on a path</b>. Remove it from the path "
-"first. Use <b>Shift+D</b> to look up its path."
-msgstr ""
-"Ten obiekt tekstowy <b>jest już wprowadzony na ścieżkę</b>. Zdejmij go "
-"najpierw ze ścieżki. Użyj <b>Shift + D</b>, aby odnaleźć jego ścieżkę."
+#: ../src/main.cpp:375
+msgid "Export document to an Enhanced Metafile (EMF) File"
+msgstr "Eksportuje dokument do pliku Enhanced Metafile (EMF)"
 
-#. rect is the only SPShape which is not <path> yet, and thus SVG forbids us from putting text on it
-#: ../src/text-chemistry.cpp:115
-msgid ""
-"You cannot put text on a rectangle in this version. Convert rectangle to "
-"path first."
-msgstr ""
-"W tej wersji programu nie można wprowadzić tekstu na prostokąt. Dokonaj "
-"najpierw konwersji prostokąta na ścieżkę."
+#: ../src/main.cpp:381
+msgid "Convert text object to paths on export (EPS)"
+msgstr "Podczas eksportu do pliku EPS konwertuj obiekt tekstowy na ścieżki"
 
-#: ../src/text-chemistry.cpp:125
-msgid "The flowed text(s) must be <b>visible</b> in order to be put on a path."
-msgstr "Tekst musi być <b>widoczny</b>, aby został wstawiony na ścieżkę"
+#: ../src/main.cpp:386
+msgid "Embed fonts on export (Type 1 only) (EPS)"
+msgstr "Podczas eksportu do pliku EPS osadź czcionki (tylko Typ 1)"
 
-#: ../src/text-chemistry.cpp:192 ../src/verbs.cpp:2283
-msgid "Put text on path"
-msgstr "Wstawia tekst na ścieżkę"
+#: ../src/main.cpp:391
+msgid "Export files with the bounding box set to the page size (EPS)"
+msgstr "Eksportuj pliki z obramowaniem obiektu ustawionym jako rozmiar strony (dla plików EPS)"
 
-#: ../src/text-chemistry.cpp:204
-msgid "Select <b>a text on path</b> to remove it from path."
-msgstr "Zaznacz <b>tekst na ścieżce</b>, aby zdjąć go ze ścieżki"
+#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
+#: ../src/main.cpp:397
+msgid "Query the X coordinate of the drawing or, if specified, of the object with --query-id"
+msgstr "Pytaj o współrzędną X rysunku, lub obiektu jeśli jest podany za pomocą --query-id"
 
-#: ../src/text-chemistry.cpp:226
-msgid "<b>No texts-on-paths</b> in the selection."
-msgstr "W zaznaczeniu <b>brak tekstów na ścieżce</b>"
+#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
+#: ../src/main.cpp:403
+msgid "Query the Y coordinate of the drawing or, if specified, of the object with --query-id"
+msgstr "Pytaj o współrzędną Y rysunku, lub obiektu jeśli jest podany za pomocą --query-id"
 
-#: ../src/text-chemistry.cpp:229 ../src/verbs.cpp:2285
-msgid "Remove text from path"
-msgstr "Zdejmuje tekst ze ścieżki"
+#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
+#: ../src/main.cpp:409
+msgid "Query the width of the drawing or, if specified, of the object with --query-id"
+msgstr "Pytaj o szerokość rysunku, lub obiektu jeśli jest podany za pomocą --query-id"
 
-#: ../src/text-chemistry.cpp:269 ../src/text-chemistry.cpp:290
-msgid "Select <b>text(s)</b> to remove kerns from."
-msgstr "Zaznacz <b>tekst(y)</b> do usunięcia kerningu ręcznego"
+#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
+#: ../src/main.cpp:415
+msgid "Query the height of the drawing or, if specified, of the object with --query-id"
+msgstr "Pytaj o wysokość rysunku, lub obiektu jeśli jest podany za pomocą --query-id"
 
-#: ../src/text-chemistry.cpp:293
-msgid "Remove manual kerns"
-msgstr "Usuń ręczny kerning"
+#: ../src/main.cpp:420
+msgid "List id,x,y,w,h for all objects"
+msgstr "Pokaż id,x,y,w,h dla wszystkich obiektów"
 
-#: ../src/text-chemistry.cpp:313
-msgid ""
-"Select <b>a text</b> and one or more <b>paths or shapes</b> to flow text "
-"into frame."
-msgstr ""
-"Zaznacz <b>tekst</b> i jedną lub więcej <b>ścieżek lub kształtów</b>, aby "
-"wprowadzić tekst do ramki"
+#: ../src/main.cpp:425
+msgid "The ID of the object whose dimensions are queried"
+msgstr "Identyfikator ID obiektu, o którego wymiary zapytano"
 
-#: ../src/text-chemistry.cpp:381
-msgid "Flow text into shape"
-msgstr "Wprowadź tekst do kształtu"
+#. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory
+#: ../src/main.cpp:431
+msgid "Print out the extension directory and exit"
+msgstr "Wyświetl katalog rozszerzeń i zakończ"
 
-#: ../src/text-chemistry.cpp:403
-msgid "Select <b>a flowed text</b> to unflow it."
-msgstr "Zaznacz <b>tekst wpisany</b>, aby go uwolnić z ramki"
+#: ../src/main.cpp:436
+msgid "Remove unused definitions from the defs section(s) of the document"
+msgstr "Usuń nieużywane definicje z sekcji &lt;defs&gt; dokumentu"
 
-#: ../src/text-chemistry.cpp:470
-msgid "Unflow flowed text"
-msgstr "Uwolnij tekst wpisany"
+#: ../src/main.cpp:441
+msgid "List the IDs of all the verbs in Inkscape"
+msgstr "Lista identyfikatorów wszystkich poleceń w Inkscape"
 
-#: ../src/text-chemistry.cpp:482
-msgid "Select <b>flowed text(s)</b> to convert."
-msgstr "Zaznacz <b>tekst wpisany</b>, aby go konwertować"
+#: ../src/main.cpp:446
+msgid "Verb to call when Inkscape opens."
+msgstr "Polecenie wywoływane podczas uruchamiania Inkscape"
 
-#: ../src/text-chemistry.cpp:500
-msgid "The flowed text(s) must be <b>visible</b> in order to be converted."
-msgstr "Aby skonwertować tekst wpisany musi być on <b>widoczny</b>"
+#: ../src/main.cpp:447
+msgid "VERB-ID"
+msgstr "ID polecenia"
 
-#: ../src/text-chemistry.cpp:528
-msgid "Convert flowed text to text"
-msgstr "Konwertuj tekst wpisany na tekst"
+#: ../src/main.cpp:451
+msgid "Object ID to select when Inkscape opens."
+msgstr "ID obiektu do zaznaczenia podczas uruchamiania Inkscape"
 
-#: ../src/text-chemistry.cpp:533
-msgid "<b>No flowed text(s)</b> to convert in the selection."
-msgstr "W zaznaczeniu <b>brak tekstu wpisanego</b> do konwersji"
+#: ../src/main.cpp:452
+msgid "OBJECT-ID"
+msgstr "ID obiektu"
 
-#: ../src/text-context.cpp:452
-msgid "<b>Click</b> to edit the text, <b>drag</b> to select part of the text."
+#: ../src/main.cpp:456
+msgid "Start Inkscape in interative shell mode."
 msgstr ""
-"<b>Kliknij</b>, aby edytować tekst. <b>Ciągnij</b>, aby zaznaczyć jego "
-"fragment."
 
-#: ../src/text-context.cpp:454
+#: ../src/main.cpp:737
+#: ../src/main.cpp:973
 msgid ""
-"<b>Click</b> to edit the flowed text, <b>drag</b> to select part of the text."
+"[OPTIONS...] [FILE...]\n"
+"\n"
+"Available options:"
 msgstr ""
-"<b>Kliknij</b>, aby edytować tekst wpisany. <b>Ciągnij</b>, aby zaznaczyć "
-"jego fragment."
+"[OPCJE...] [PLIK...]\n"
+"\n"
+"Dostępne opcje:"
 
-#: ../src/text-context.cpp:508
-msgid "Create text"
-msgstr "Utwórz tekst"
+#: ../src/menus-skeleton.h:17
+msgid "_New"
+msgstr "_Nowy"
 
-#: ../src/text-context.cpp:532
-msgid "Non-printable character"
-msgstr "Znak niedrukowany"
+#: ../src/menus-skeleton.h:22
+msgid "Open _Recent"
+msgstr "Otwórz o_statnio używane"
 
-#: ../src/text-context.cpp:547
-msgid "Insert Unicode character"
-msgstr "Wprowadź znak Unicode"
+#: ../src/menus-skeleton.h:50
+#: ../src/verbs.cpp:2484
+#: ../src/verbs.cpp:2490
+msgid "_Edit"
+msgstr "_Edycja"
 
-#: ../src/text-context.cpp:582
-#, c-format
-msgid "Unicode (<b>Enter</b> to finish): %s: %s"
-msgstr "Unicode (<b>Enter</b>, aby zakończyć): %s: %s"
+#: ../src/menus-skeleton.h:60
+#: ../src/verbs.cpp:2272
+msgid "Paste Si_ze"
+msgstr "Wklej roz_miar"
 
-#: ../src/text-context.cpp:584 ../src/text-context.cpp:849
-msgid "Unicode (<b>Enter</b> to finish): "
-msgstr "Unicode (<b>Enter</b>, aby zakończyć): "
+#: ../src/menus-skeleton.h:72
+msgid "Clo_ne"
+msgstr "Klo_nuj"
 
-#: ../src/text-context.cpp:659
-#, c-format
-msgid "<b>Flowed text frame</b>: %s &#215; %s"
-msgstr "<b>Ramka tekstu wpisanego</b>: %s &#215; %s"
+#: ../src/menus-skeleton.h:92
+msgid "_View"
+msgstr "_Widok"
+
+#: ../src/menus-skeleton.h:93
+msgid "_Zoom"
+msgstr "P_owiększenie"
+
+#: ../src/menus-skeleton.h:109
+msgid "_Display mode"
+msgstr "_Tryb wyświetlania"
+
+#: ../src/menus-skeleton.h:121
+msgid "Show/Hide"
+msgstr "Wyświetl/U_kryj"
+
+#. Not quite ready to be in the menus.
+#. "       <verb verb-id=\"FocusToggle\" />\n"
+#: ../src/menus-skeleton.h:140
+msgid "_Layer"
+msgstr "W_arstwa"
+
+#: ../src/menus-skeleton.h:160
+msgid "_Object"
+msgstr "_Obiekt"
+
+#: ../src/menus-skeleton.h:170
+msgid "Cli_p"
+msgstr "Przytni_j"
+
+#: ../src/menus-skeleton.h:174
+msgid "Mas_k"
+msgstr "Mas_ka"
 
-#: ../src/text-context.cpp:691 ../src/text-context.cpp:1544
-msgid "Type text; <b>Enter</b> to start new line."
-msgstr "Wprowadź tekst; <b>Enter</b>, aby przejść do nowej linii"
+#: ../src/menus-skeleton.h:178
+msgid "Patter_n"
+msgstr "D_eseń"
 
-#: ../src/text-context.cpp:704
-msgid "Flowed text is created."
-msgstr "Utworzono tekst wpisany"
+#: ../src/menus-skeleton.h:202
+msgid "_Path"
+msgstr "Ścież_ka"
 
-#: ../src/text-context.cpp:706
-msgid "Create flowed text"
-msgstr "Utwórz tekst wpisany"
+#: ../src/menus-skeleton.h:225
+msgid "Path Effects"
+msgstr "Efekty ścieżki"
 
-#: ../src/text-context.cpp:708
-msgid ""
-"The frame is <b>too small</b> for the current font size. Flowed text not "
-"created."
-msgstr ""
-"Ramka jest <b>zbyt mała</b> dla wybranej wielkości czcionki. Nie utworzono "
-"tekstu wpisanego."
+#: ../src/menus-skeleton.h:231
+msgid "_Text"
+msgstr "_Tekst"
 
-#: ../src/text-context.cpp:834
-msgid "No-break space"
-msgstr "Spacja nie łamiąca wiersza"
+#: ../src/menus-skeleton.h:246
+msgid "Effe_cts"
+msgstr "E_fekty"
 
-#: ../src/text-context.cpp:836
-msgid "Insert no-break space"
-msgstr "Wstawia spację nie łamiącą wiersza"
+#: ../src/menus-skeleton.h:253
+msgid "Whiteboa_rd"
+msgstr "Ta_blica"
 
-#: ../src/text-context.cpp:873
-msgid "Make bold"
-msgstr "Pogrubienie"
+#: ../src/menus-skeleton.h:257
+msgid "_Help"
+msgstr "Pomo_c"
 
-#: ../src/text-context.cpp:891
-msgid "Make italic"
-msgstr "Pochylenie"
+#: ../src/menus-skeleton.h:261
+msgid "Tutorials"
+msgstr "Poradniki"
 
-#: ../src/text-context.cpp:930
-msgid "New line"
-msgstr "Nowy wiersz"
+#: ../src/node-context.cpp:228
+msgid "<b>Ctrl</b>: toggle node type, snap handle angle, move hor/vert; <b>Ctrl+Alt</b>: move along handles"
+msgstr "<b>Ctrl</b> - przełącza typ węzła, przyciąga uchwyt do kąta, prowadzi poziomo/pionowo. <b>Ctrl + Alt</b> -  prowadzi po linii uchwytu."
 
-#: ../src/text-context.cpp:964
-msgid "Backspace"
-msgstr "Backspace"
+#: ../src/node-context.cpp:229
+msgid "<b>Shift</b>: toggle node selection, disable snapping, rotate both handles"
+msgstr "<b>Shift</b> - przełącza wybór węzła, wyłącza przyciąganie, obraca oba uchwyty"
 
-#: ../src/text-context.cpp:1012
-msgid "Kern to the left"
-msgstr "Podetnij z lewej"
+#: ../src/node-context.cpp:230
+msgid "<b>Alt</b>: lock handle length; <b>Ctrl+Alt</b>: move along handles"
+msgstr "<b>Alt</b> - blokuje odległość uchwytu. <b>Ctrl + Alt</b> - prowadzi po linii uchwytu."
 
-#: ../src/text-context.cpp:1034
-msgid "Kern to the right"
-msgstr "Podetnij z prawej"
+#: ../src/nodepath.cpp:748
+#: ../src/seltrans.cpp:542
+msgid "Stamp"
+msgstr "Znacznik czasu"
 
-#: ../src/text-context.cpp:1056
-msgid "Kern up"
-msgstr "Podetnij od góry"
+#: ../src/nodepath.cpp:1600
+#: ../src/nodepath.cpp:1626
+msgid "Move nodes vertically"
+msgstr "Przesuń węzły w pionie"
 
-#: ../src/text-context.cpp:1079
-msgid "Kern down"
-msgstr "Podetnij od dołu"
+#: ../src/nodepath.cpp:1602
+#: ../src/nodepath.cpp:1628
+msgid "Move nodes horizontally"
+msgstr "Przesuń węzły w poziomie"
 
-#: ../src/text-context.cpp:1135
-msgid "Rotate counterclockwise"
-msgstr "Obróć w lewo"
+#: ../src/nodepath.cpp:1604
+#: ../src/nodepath.cpp:1630
+#: ../src/nodepath.cpp:1645
+#: ../src/nodepath.cpp:3499
+msgid "Move nodes"
+msgstr "Przesuń węzły"
 
-#: ../src/text-context.cpp:1156
-msgid "Rotate clockwise"
-msgstr "Obróć w prawo"
+#: ../src/nodepath.cpp:1683
+msgid "<b>Node handle</b>: drag to shape the curve; with <b>Ctrl</b> to snap angle; with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both handles"
+msgstr "<b>Uchwyt węzła</b> - ciągnięcie edytuje ścieżkę. Z <b>Ctrl</b> - przyciąganie do kąta, z <b>Alt</b> blokada odległości, z <b>Shift</b> obrót obu uchwytów."
 
-#: ../src/text-context.cpp:1173
-msgid "Contract line spacing"
-msgstr "Zmniejsz odstęp pomiędzy wierszami"
+#: ../src/nodepath.cpp:1853
+msgid "Align nodes"
+msgstr "Wyrównaj węzły"
 
-#: ../src/text-context.cpp:1181
-msgid "Contract letter spacing"
-msgstr "Zmniejsz odstęp pomiędzy literami"
+#: ../src/nodepath.cpp:1915
+msgid "Distribute nodes"
+msgstr "Rozmieść węzły"
 
-#: ../src/text-context.cpp:1200
-msgid "Expand line spacing"
-msgstr "Zwiększ odstęp pomiędzy wierszami"
+#: ../src/nodepath.cpp:1953
+msgid "Add nodes"
+msgstr "Dodaj węzły"
 
-#: ../src/text-context.cpp:1208
-msgid "Expand letter spacing"
-msgstr "Zwiększ odstęp pomiędzy literami"
+#: ../src/nodepath.cpp:1955
+#: ../src/nodepath.cpp:2054
+msgid "Add node"
+msgstr "Dodaj węzeł"
 
-#: ../src/text-context.cpp:1312
-msgid "Paste text"
-msgstr "Wklej tekst"
+#: ../src/nodepath.cpp:2137
+msgid "Break path"
+msgstr "Rozdziel ścieżkę"
 
-#: ../src/text-context.cpp:1542
-msgid "Type flowed text; <b>Enter</b> to start new paragraph."
-msgstr ""
-"Wprowadź tekst wpisany. Naciśnij <b>Enter</b>, aby rozpocząć nowy akapit."
+#: ../src/nodepath.cpp:2193
+msgid "Close subpath"
+msgstr "Zamknij subścieżkę"
 
-#: ../src/text-context.cpp:1552 ../src/tools-switch.cpp:211
-msgid ""
-"<b>Click</b> to select or create text, <b>drag</b> to create flowed text; "
-"then type."
-msgstr ""
-"<b>Kliknij</b>, aby zaznaczyć lub utworzyć tekst. <b>Ciągnij</b>, aby "
-"utworzyć tekst wpisany, następnie wprowadź treść."
+#: ../src/nodepath.cpp:2254
+msgid "Join nodes"
+msgstr "Połącz węzły"
 
-#: ../src/text-context.cpp:1659
-msgid "Type text"
-msgstr "Wprowadź tekst"
+#: ../src/nodepath.cpp:2281
+msgid "Close subpath by segment"
+msgstr "Zamyka subścieżkę za pomocą odcinka"
 
-#: ../src/text-editing.cpp:40
-msgid "You cannot edit <b>cloned character data</b>."
-msgstr "Nie można edytować <b>danych skolonowanego znaku</b>."
+#: ../src/nodepath.cpp:2335
+msgid "Join nodes by segment"
+msgstr "Łączy zaznaczone węzły końcowe za pomocą odcinka"
 
-#: ../src/tools-switch.cpp:151
-msgid ""
-"To edit a path, <b>click</b>, <b>Shift+click</b>, or <b>drag around</b> "
-"nodes to select them, then <b>drag</b> nodes and handles. <b>Click</b> on an "
-"object to select."
-msgstr ""
-"<b>Kliknij</b>, aby edytować ścieżkę. <b>Shift + kliknięcie</b> lub "
-"<b>ciągnięcie</b> wokół węzłów, aby je zaznaczyć, następnie przeciągaj węzły "
-"i uchwyty. <b>Kliknij</b> na obiekcie, aby go zaznaczyć."
+#: ../src/nodepath.cpp:2348
+#: ../src/nodepath.cpp:2363
+msgid "To join, you must have <b>two endnodes</b> selected."
+msgstr "Aby połączyć, należy wybrać <b>dwa węzły końcowe</b>"
 
-#: ../src/tools-switch.cpp:157
-msgid "To tweak a path by pushing, select it and drag over it."
-msgstr ""
-"Aby udoskonalić ścieżkę za pomocą spychania, zaznacz ją, a następnie "
-"zmodyfikuj pociągnięciami myszy"
+#: ../src/nodepath.cpp:2520
+#: ../src/nodepath.cpp:2556
+#: ../src/nodepath.cpp:2560
+msgid "Delete nodes"
+msgstr "Usuń węzły"
 
-#: ../src/tools-switch.cpp:163
-msgid ""
-"<b>Drag</b> to create a rectangle. <b>Drag controls</b> to round corners and "
-"resize. <b>Click</b> to select."
-msgstr ""
-"<b>Ciągnij</b>, aby utworzyć prostokąt. <b>Ciągnij punkty kontrolne</b>, aby "
-"zaokrąglić narożniki i zmienić rozmiar. <b>Kliknij</b>, aby zaznaczyć."
+#: ../src/nodepath.cpp:2522
+msgid "Delete nodes preserving shape"
+msgstr "Usuwa węzły zachowując kształt"
 
-#: ../src/tools-switch.cpp:169
-msgid ""
-"<b>Drag</b> to create a 3D box. <b>Drag controls</b> to resize in "
-"perspective. <b>Click</b> to select (with <b>Ctrl+Alt</b> for single faces)."
-msgstr ""
-"<b>Ciągnij</b>, aby utworzyć obiekt 3D. <b>Ciągnij punkty kontrolne</b>, aby "
-"zmienić wielkość w perspektywie. <b>Kliknij</b>, aby zaznaczyć (z <b>Ctrl + "
-"Alt</b> dla pojedynczego oblicza)."
+#: ../src/nodepath.cpp:2579
+#: ../src/nodepath.cpp:2593
+msgid "Select <b>two non-endpoint nodes</b> on a path between which to delete segments."
+msgstr "Wybierz <b>dwa nie końcowe węzły</b> na ścieżce, aby usunąć odcinki pomiędzy nimi"
 
-#: ../src/tools-switch.cpp:175
-msgid ""
-"<b>Drag</b> to create an ellipse. <b>Drag controls</b> to make an arc or "
-"segment. <b>Click</b> to select."
-msgstr ""
-"<b>Ciągnij</b>, aby utworzyć elipsę. <b>Ciągnij punkty kontrolne</b>, aby "
-"utworzyć łuk lub odcinek. <b>Kliknij</b>, aby zaznaczyć."
+#: ../src/nodepath.cpp:2689
+msgid "Cannot find path between nodes."
+msgstr "Nie znaleziono ścieżki pomiędzy węzłami"
 
-#: ../src/tools-switch.cpp:181
-msgid ""
-"<b>Drag</b> to create a star. <b>Drag controls</b> to edit the star shape. "
-"<b>Click</b> to select."
-msgstr ""
-"<b>Ciągnij</b>, aby utworzyć gwiazdę. <b>Ciągnij punkty kontrolne</b>, aby "
-"zmienić kształt gwiazdy. <b>Kliknij</b>, aby zaznaczyć."
+#: ../src/nodepath.cpp:2721
+#: ../src/widgets/toolbox.cpp:1319
+msgid "Delete segment"
+msgstr "Usuń odcinek"
 
-#: ../src/tools-switch.cpp:187
-msgid ""
-"<b>Drag</b> to create a spiral. <b>Drag controls</b> to edit the spiral "
-"shape. <b>Click</b> to select."
-msgstr ""
-"<b>Ciągnij</b>, aby utworzyć spiralę. <b>Ciągnij punkty kontrolne</b>, aby "
-"zmienić kształt spirali. <b>Kliknij</b>, aby zaznaczyć."
+#: ../src/nodepath.cpp:2742
+msgid "Change segment type"
+msgstr "Zmień typ odcinka"
 
-#: ../src/tools-switch.cpp:193
-msgid ""
-"<b>Drag</b> to create a freehand line. Start drawing with <b>Shift</b> to "
-"append to selected path. <b>Ctrl+click</b> to create single dots."
-msgstr ""
-"<b>Ciągnij</b>, aby utworzyć linię odręczną. Rozpocznij rysowanie z "
-"<b>Shift</b>, aby dołączyć do zaznaczonej ścieżki. <b>Ctrl + kliknięcie</b>, "
-"aby tworzyć pojedyncze kropki."
+#: ../src/nodepath.cpp:2759
+#: ../src/nodepath.cpp:3457
+msgid "Change node type"
+msgstr "Zmień typ węzła"
 
-#: ../src/tools-switch.cpp:199
-msgid ""
-"<b>Click</b> or <b>click and drag</b> to start a path; with <b>Shift</b> to "
-"append to selected path. <b>Ctrl+click</b> to create single dots."
-msgstr ""
-"<b>Kliknij</b> lub <b>kliknij i ciągnij</b>, aby rozpocząć ścieżkę, z "
-"<b>Shift</b>, aby dołączyć do zaznaczonej ścieżki. <b>Ctrl + kliknięcie</b>, "
-"aby tworzyć pojedyncze kropki."
+#: ../src/nodepath.cpp:3745
+msgid "Retract handle"
+msgstr "Cofnij uchwyt"
 
-#: ../src/tools-switch.cpp:205
-msgid ""
-"<b>Drag</b> to draw a calligraphic stroke; with <b>Ctrl</b> to track a "
-"guide, with <b>Alt</b> to thin/thicken. <b>Arrow keys</b> adjust width (left/"
-"right) and angle (up/down)."
-msgstr ""
-"<b>Ciągnij</b>, aby utworzyć pociągnięcie kaligraficzne. Z <b>Ctrl</b> - "
-"śledzi prowadnicę, z <b>Alt</b> - cieniej. <b>Klawisze strzałek</b> lewa/"
-"prawa - zmieniają szerokość, góra/dół - kąt. "
+#: ../src/nodepath.cpp:3794
+msgid "Move node handle"
+msgstr "Przesuń uchwyt węzła"
 
-#: ../src/tools-switch.cpp:217
-msgid ""
-"<b>Drag</b> or <b>double click</b> to create a gradient on selected objects, "
-"<b>drag handles</b> to adjust gradients."
-msgstr ""
-"<b>Ciągnij</b> lub <b>kliknij dwukrotnie</b>, aby utworzyć gradient na "
-"zaznaczonych obiektach. <b>Ciągnij uchwyty</b>, aby edytować gradienty."
+#: ../src/nodepath.cpp:3979
+#, c-format
+msgid "<b>Node handle</b>: angle %0.2f&#176;, length %s; with <b>Ctrl</b> to snap angle; with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both handles"
+msgstr "<b>Uchwyt węzła</b>. Kąt %0.2f&#176;, długość %s; z <b>Ctrl</b> przyciąganie do kąta; z <b>Alt</b> blokada odległości; z <b>Shift</b> obrót obu uchwytów"
 
-#: ../src/tools-switch.cpp:223
-msgid ""
-"<b>Click</b> or <b>drag around an area</b> to zoom in, <b>Shift+click</b> to "
-"zoom out."
-msgstr ""
-"<b>Kliknij</b> lub <b>wykonaj ciągnięcie</b> wokół obszaru, aby go "
-"powiększyć. <b>Shift + kliknięcie</b>, aby pomniejszyć widok."
+#: ../src/nodepath.cpp:4173
+msgid "Rotate nodes"
+msgstr "Obróć węzły"
 
-#: ../src/tools-switch.cpp:235
-msgid "<b>Click and drag</b> between shapes to create a connector."
-msgstr "<b>Kliknij i ciągnij</b> pomiędzy kształtami, aby utworzyć łącznik"
+#: ../src/nodepath.cpp:4304
+msgid "Scale nodes"
+msgstr "Skaluj węzły"
 
-#: ../src/tools-switch.cpp:241
-msgid ""
-"<b>Click</b> to paint a bounded area, <b>Shift+click</b> to union the new "
-"fill with the current selection, <b>Ctrl+click</b> to change the clicked "
-"object's fill and stroke to the current setting."
-msgstr ""
-"<b>Kliknij</b>, aby malować zaznaczony obszar, <b>Shift + kliknięcie</b>, "
-"aby połączyć nowe wypełnienie z aktywnym zaznaczeniem, <b>Ctrl + kliknięcie</"
-"b>, aby zmienić wypełnienie i kontur klikniętego obiektu na aktualne "
-"ustawienia"
+#: ../src/nodepath.cpp:4348
+msgid "Flip nodes"
+msgstr "Odbij węzły"
 
-#: ../src/tools-switch.cpp:247
-msgid "<b>Drag</b> to erase."
-msgstr "<b>Przeciągnij</b>, aby usunąć."
+#: ../src/nodepath.cpp:4517
+msgid "<b>Node</b>: drag to edit the path; with <b>Ctrl</b> to snap to horizontal/vertical; with <b>Ctrl+Alt</b> to snap to handles' directions"
+msgstr "<b>Węzeł</b>: edytuj ścieżkę przeciągając; z <b>Ctrl</b> tylko poziomo/pionowo; z <b>Ctrl + Alt</b> wzdłuż linii uchwytów"
 
-#: ../src/trace/potrace/inkscape-potrace.cpp:524
-#: ../src/trace/potrace/inkscape-potrace.cpp:598
-#, c-format
-msgid "Trace: %d.  %ld nodes"
-msgstr "Wektoryzacja: %d.  %ld węzłów"
+#. TRANSLATORS: "end" is an adjective here (NOT a verb)
+#: ../src/nodepath.cpp:4751
+msgid "end node"
+msgstr "węzeł końcowy"
 
-#: ../src/trace/trace.cpp:71 ../src/trace/trace.cpp:136
-#: ../src/trace/trace.cpp:144 ../src/trace/trace.cpp:243
-msgid "Select an <b>image</b> to trace"
-msgstr "Wybierz <b>obrazek</b> do wektoryzacji"
+#. TRANSLATORS: "cusp" means "sharp" (cusp node); see also the Advanced Tutorial
+#: ../src/nodepath.cpp:4756
+msgid "cusp"
+msgstr "ostry"
 
-#: ../src/trace/trace.cpp:106
-msgid "Select only one <b>image</b> to trace"
-msgstr "Wybierz dokładnie jeden <b>obrazek</b> do wektoryzacji"
+#. TRANSLATORS: "smooth" is an adjective here
+#: ../src/nodepath.cpp:4759
+msgid "smooth"
+msgstr "gładki"
 
-#: ../src/trace/trace.cpp:124
-msgid "Select one image and one or more shapes above it"
-msgstr "Wybierz jeden obrazek i jeden lub więcej kształtów ponad nim"
+#: ../src/nodepath.cpp:4761
+msgid "symmetric"
+msgstr "symetryczny"
 
-#: ../src/trace/trace.cpp:234
-msgid "Trace: No active desktop"
-msgstr "Wektoryzacja: Brak aktywnego obszaru roboczego"
+#. TRANSLATORS: "end" is an adjective here (NOT a verb)
+#: ../src/nodepath.cpp:4767
+msgid "end node, handle retracted (drag with <b>Shift</b> to extend)"
+msgstr "węzeł końcowy, uchwyt zredukowany (ciągnij z <b>Shift</b>, aby go rozciągnąć)"
 
-#: ../src/trace/trace.cpp:333
-msgid "Invalid SIOX result"
-msgstr "Nieprawidłowy wynik SIOX"
+#: ../src/nodepath.cpp:4769
+msgid "one handle retracted (drag with <b>Shift</b> to extend)"
+msgstr "jeden z uchwytów został zredukowany (ciągnij z <b>Shift</b>, aby go rozciągnąć)"
 
-#: ../src/trace/trace.cpp:438
-msgid "Trace: No active document"
-msgstr "Wektoryzacja: Brak aktywnego dokumentu"
+#: ../src/nodepath.cpp:4772
+msgid "both handles retracted (drag with <b>Shift</b> to extend)"
+msgstr "oba uchwyty zostały zredukowane (przeciągnij z <b>Shift</b>, aby je rozciągnąć)"
 
-#: ../src/trace/trace.cpp:461
-msgid "Trace: Image has no bitmap data"
-msgstr "Wektoryzacja: W obrazie nie ma danych rastrowych"
+#: ../src/nodepath.cpp:4784
+msgid "<b>Drag</b> nodes or node handles; <b>Alt+drag</b> nodes to sculpt; <b>arrow</b> keys to move nodes, <b>&lt; &gt;</b> to scale, <b>[ ]</b> to rotate"
+msgstr "<b>Przeciągnie</b> węzłów lub ich uchwytów: <b>Alt + ciągnięcie</b> węzłów - modelowanie. Klawisze: <b>strzałek</b> - przesuwanie węzłów, <b>&lt; &gt;</b> - skalowanie, <b>[ ]</b> - obracanie"
 
-#: ../src/trace/trace.cpp:468
-msgid "Trace: Starting trace..."
-msgstr "Wektoryzacja: Rozpocznij wektoryzację..."
+#: ../src/nodepath.cpp:4785
+msgid "<b>Drag</b> the node or its handles; <b>arrow</b> keys to move the node"
+msgstr "<b>Przeciąganie</b> węzłów lub ich uchwytów: Klawisze <b>strzałek</b> przesuwają węzeł"
 
-#. ## inform the document, so we can undo
-#: ../src/trace/trace.cpp:570
-msgid "Trace bitmap"
-msgstr "Wektoryzuj bitmapę"
+#: ../src/nodepath.cpp:4811
+#: ../src/nodepath.cpp:4823
+msgid "Select a single object to edit its nodes or handles."
+msgstr "Zaznacz pojedynczy obiekt, aby edytować jego węzły lub uchwyty"
 
-#: ../src/trace/trace.cpp:574
+#: ../src/nodepath.cpp:4815
 #, c-format
-msgid "Trace: Done. %ld nodes created"
-msgstr "Wektoryzacja: Zakończono. Utworzono %ld węzłów."
+msgid "<b>0</b> out of <b>%i</b> node selected. <b>Click</b>, <b>Shift+click</b>, or <b>drag around</b> nodes to select."
+msgid_plural "<b>0</b> out of <b>%i</b> nodes selected. <b>Click</b>, <b>Shift+click</b>, or <b>drag around</b> nodes to select."
+msgstr[0] "Zaznaczono <b>0</b> z <b>%i</b> węzłów. Aby zaznaczyć węzły <b>kliknij</b>, <b>Shift + kliknij</b>, lub wykonaj <b>ciągnięcie</b> wokół węzłów."
+msgstr[1] "Zaznaczono <b>0</b> z <b>%i</b> węzłów. Aby zaznaczyć węzły <b>kliknij</b>, <b>Shift + kliknij</b>, lub wykonaj <b>ciągnięcie</b> wokół węzłów."
+msgstr[2] "Zaznaczono <b>0</b> z <b>%i</b> węzłów. Aby zaznaczyć węzły <b>kliknij</b>, <b>Shift + kliknij</b>, lub wykonaj <b>ciągnięcie</b> wokół węzłów."
 
-#: ../src/tweak-context.cpp:960
-msgid "<b>Nothing selected!</b> Select objects to tweak."
-msgstr ""
-"<b>Nie zaznaczono żadnego obiektu!</b> Zaznacz obiekty do usprawnienia."
+#: ../src/nodepath.cpp:4821
+msgid "Drag the handles of the object to modify it."
+msgstr "Aby zmodyfikować obiekt przeciągnij uchwyty"
 
-#: ../src/tweak-context.cpp:965
+#: ../src/nodepath.cpp:4829
 #, c-format
-msgid "<b>Pushing %d</b> selected object"
-msgid_plural "<b>Pushing %d</b> selected objects"
-msgstr[0] "<b>Popychanie %d</b> zaznaczonego obiektu"
-msgstr[1] "<b>Popychanie %d</b> zaznaczonych obiektów"
-msgstr[2] "<b>Popychanie %d</b> zaznaczonych obiektów"
+msgid "<b>%i</b> of <b>%i</b> node selected; %s. %s."
+msgid_plural "<b>%i</b> of <b>%i</b> nodes selected; %s. %s."
+msgstr[0] "Zaznaczono <b>%i</b> z <b>%i</b> węzła. %s. %s"
+msgstr[1] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów. %s. %s"
+msgstr[2] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów. %s. %s"
 
-#: ../src/tweak-context.cpp:970
+#: ../src/nodepath.cpp:4836
 #, c-format
-msgid "<b>Shrinking %d</b> selected object"
-msgid_plural "<b>Shrinking %d</b> selected objects"
-msgstr[0] "<b>Zmniejszanie %d</b> zaznaczonego obiektu"
-msgstr[1] "<b>Zmniejszanie %d</b> zaznaczonych obiektów"
-msgstr[2] "<b>Zmniejszanie %d</b> zaznaczonych obiektów"
+msgid "<b>%i</b> of <b>%i</b> node selected in <b>%i</b> of <b>%i</b> subpaths. %s."
+msgid_plural "<b>%i</b> of <b>%i</b> nodes selected in <b>%i</b> of <b>%i</b> subpaths. %s."
+msgstr[0] "Zaznaczono <b>%i</b> z <b>%i</b> węzła na <b>%i</b> z <b>%i</b> ścieżek zagnieżdżonych. %s."
+msgstr[1] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów na <b>%i</b> z <b>%i</b> ścieżek zagnieżdżonych. %s."
+msgstr[2] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów na <b>%i</b> z <b>%i</b> ścieżek zagnieżdżonych. %s."
 
-#: ../src/tweak-context.cpp:975
+#: ../src/nodepath.cpp:4842
 #, c-format
-msgid "<b>Growing %d</b> selected object"
-msgid_plural "<b>Growing %d</b> selected objects"
-msgstr[0] "<b>Powiększanie %d</b> zaznaczonego obiektu"
-msgstr[1] "<b>Powiększanie %d</b> zaznaczonych obiektów"
-msgstr[2] "<b>Powiększanie %d</b> zaznaczonych obiektów"
+msgid "<b>%i</b> of <b>%i</b> node selected. %s."
+msgid_plural "<b>%i</b> of <b>%i</b> nodes selected. %s."
+msgstr[0] "Zaznaczono <b>%i</b> z <b>%i</b> węzła. %s"
+msgstr[1] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów. %s"
+msgstr[2] "Zaznaczono <b>%i</b> z <b>%i</b> węzłów. %s"
 
-#: ../src/tweak-context.cpp:980
-#, c-format
-msgid "<b>Attracting %d</b> selected object"
-msgid_plural "<b>Attracting %d</b> selected objects"
-msgstr[0] "<b>Przyciąganie %d</b> zaznaczonego obiektu"
-msgstr[1] "<b>Przyciąganie %d</b> zaznaczonych obiektów"
-msgstr[2] "<b>Przyciąganie %d</b> zaznaczonych obiektów"
+#: ../src/object-edit.cpp:408
+msgid "Adjust the <b>horizontal rounding</b> radius; with <b>Ctrl</b> to make the vertical radius the same"
+msgstr "Ustawianie promienia <b>poziomego zaokrąglenia</b>; z <b>Ctrl</b> ta sama wartość dla promienia zaokrąglenia pionowego"
 
-#: ../src/tweak-context.cpp:985
-#, c-format
-msgid "<b>Repelling %d</b> selected object"
-msgid_plural "<b>Repelling %d</b> selected objects"
-msgstr[0] "<b>Odsuwanie %d</b> zaznaczonego obiektu"
-msgstr[1] "<b>Odsuwanie %d</b> zaznaczonych obiektów"
-msgstr[2] "<b>Odsuwanie %d</b> zaznaczonych obiektów"
+#: ../src/object-edit.cpp:412
+msgid "Adjust the <b>vertical rounding</b> radius; with <b>Ctrl</b> to make the horizontal radius the same"
+msgstr "Ustawianie promienia <b>pionowego zaokrąglenia</b>; z <b>Ctrl</b> ta sama wartość dla promienia zaokrąglenia poziomego."
 
-#: ../src/tweak-context.cpp:990
-#, c-format
-msgid "<b>Roughening %d</b> selected object"
-msgid_plural "<b>Roughening %d</b> selected objects"
-msgstr[0] "<b>Tworzenie chropowatości %d</b> zaznaczonego obiektu"
-msgstr[1] "<b>Tworzenie chropowatości %d</b> zaznaczonych obiektów"
-msgstr[2] "<b>Tworzenie chropowatości %d</b> zaznaczonych obiektów"
+#: ../src/object-edit.cpp:416
+#: ../src/object-edit.cpp:420
+msgid "Adjust the <b>width and height</b> of the rectangle; with <b>Ctrl</b>to lock ratio or stretch in one dimension only"
+msgstr "Ustawianie <b>szerokości i wysokości</b> prostokąta; z <b>Ctrl</b> blokada proporcji lub zmiana tylko w jednym kierunku."
+
+#: ../src/object-edit.cpp:654
+#: ../src/object-edit.cpp:657
+#: ../src/object-edit.cpp:660
+#: ../src/object-edit.cpp:663
+msgid "Resize box in X/Y direction; with <b>Shift</b> along the Z axis; with <b>Ctrl</b> to constrain to the directions of edges or diagonals"
+msgstr "Zmiana wielkości obiektu w kierunkach X/Y. Z <b>Shift</b> wzdłuż osi Z,  z<b>Ctrl</b> zachowuje proporcje kierunków krawędzi lub przekątnych."
+
+#: ../src/object-edit.cpp:666
+#: ../src/object-edit.cpp:669
+#: ../src/object-edit.cpp:672
+#: ../src/object-edit.cpp:675
+msgid "Resize box along the Z axis; with <b>Shift</b> in X/Y direction; with <b>Ctrl</b> to constrain to the directions of edges or diagonals"
+msgstr "Zmiana wielkości obiektu wzdłuż osi Z; z <b>Shift</b> w kierunkach X/Y, z <b>Ctrl</b> zachowuje proporcje kierunków krawędzi lub przekątnych."
+
+#: ../src/object-edit.cpp:678
+msgid "Move the box in perspective"
+msgstr "Utwórz perspektywę obiektu"
 
-#: ../src/tweak-context.cpp:995
-#, c-format
-msgid "<b>Painting %d</b> selected object"
-msgid_plural "<b>Painting %d</b> selected objects"
-msgstr[0] "<b>Malowanie %d</b> zaznaczonego obiektu"
-msgstr[1] "<b>Malowanie %d</b> zaznaczonych obiektów"
-msgstr[2] "<b>Malowanie %d</b> zaznaczonych obiektów"
+#: ../src/object-edit.cpp:894
+msgid "Adjust ellipse <b>width</b>, with <b>Ctrl</b> to make circle"
+msgstr "Ustawianie <b>szerokości</b> elipsy; z <b>Ctrl</b> - tworzenie okręgu."
 
-#: ../src/tweak-context.cpp:1000
-#, c-format
-msgid "<b>Jittering colors in %d</b> selected object"
-msgid_plural "<b>Jittering colors in %d</b> selected objects"
-msgstr[0] "<b>Desynchronizacja kolorów w %d</b> zaznaczonym obiekcie"
-msgstr[1] "<b>Desynchronizacja kolorów w %d</b> zaznaczonych obiektach"
-msgstr[2] "<b>Desynchronizacja kolorów w %d</b> zaznaczonych obiektach"
-
-#: ../src/tweak-context.cpp:1040
-msgid "Push tweak"
-msgstr "Udoskonalanie metodą odpychania"
+#: ../src/object-edit.cpp:897
+msgid "Adjust ellipse <b>height</b>, with <b>Ctrl</b> to make circle"
+msgstr "Ustawianie <b>wysokości</b> elipsy; z <b>Ctrl</b> - tworzenie okręgu."
 
-#: ../src/tweak-context.cpp:1044
-msgid "Shrink tweak"
-msgstr "Udoskonalanie wklęśnięć"
+#: ../src/object-edit.cpp:900
+#, fuzzy
+msgid "Position the <b>start point</b> of the arc or segment; with <b>Ctrl</b>to snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for segment"
+msgstr "Ustawianie <b>początku</b> łuku lub wycinka; z <b>Ctrl</b> - przeciąganie o kąt 15°. Ciągnięcie do <b>wewnątrz</b> elipsy daje łuk, na <b>zewnątrz</b> - wycinek elipsy."
 
-#: ../src/tweak-context.cpp:1048
-msgid "Grow tweak"
-msgstr "Udoskonalanie uwypuklania"
+#: ../src/object-edit.cpp:904
+msgid "Position the <b>end point</b> of the arc or segment; with <b>Ctrl</b> to snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for segment"
+msgstr "Ustawianie <b>końca</b> łuku lub wycinka; z <b>Ctrl</b> - przyciąganie o kąt 15°. Ciągnięcie do <b>wewnątrz</b> elipsy daje łuk, na <b>zewnątrz</b> - wycinek elipsy."
 
-#: ../src/tweak-context.cpp:1052
-msgid "Attract tweak"
-msgstr "Udoskonalanie przyciągania ścieżek do kursora"
+#: ../src/object-edit.cpp:1043
+msgid "Adjust the <b>tip radius</b> of the star or polygon; with <b>Shift</b> to round; with <b>Alt</b> to randomize"
+msgstr "Ustawianie <b>promienia wierzchołków</b> gwiazdy lub wielokąta; z <b>Shift</b> - zaokrąglenie, z <b>Alt</b> zniekształcenie losowe."
 
-#: ../src/tweak-context.cpp:1056
-msgid "Repel tweak"
-msgstr "Udoskonalanie odpychania ścieżek od kursora"
+#: ../src/object-edit.cpp:1050
+msgid "Adjust the <b>base radius</b> of the star; with <b>Ctrl</b> to keep star rays radial (no skew); with <b>Shift</b> to round; with <b>Alt</b> to randomize"
+msgstr "Ustawianie <b>promienia podstawy</b> gwiazdy; z <b>Ctrl</b> zachowuje promienistość (bez skręcenia), z <b>Shift</b> - zaokrąglenie, z <b>Alt</b> - zniekształcenie losowe."
 
-#: ../src/tweak-context.cpp:1060
-msgid "Roughen tweak"
-msgstr "Udoskonalanie chropowatości"
+#: ../src/object-edit.cpp:1231
+msgid "Roll/unroll the spiral from <b>inside</b>; with <b>Ctrl</b> to snap angle; with <b>Alt</b> to converge/diverge"
+msgstr "Rozwijanie/zwijanie spirali od <b>środka</b>; z <b>Ctrl</b> - przyciąganie do kąta, z <b>Alt</b> - zwiększenie/zmniejszenie przyrostu."
 
-#: ../src/tweak-context.cpp:1064
-msgid "Color paint tweak"
-msgstr "Udoskonalanie malowania kolorem"
+#: ../src/object-edit.cpp:1234
+msgid "Roll/unroll the spiral from <b>outside</b>; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to scale/rotate"
+msgstr "Rozwiń/zwiń spiralę od <b>zewnątrz</b>; z <b>Ctrl</b> przyciąganie do kąta; z <b>Shift</b> skalowanie/obrót; z <b>Alt</b> bez zmiany promienia"
 
-#: ../src/tweak-context.cpp:1068
-msgid "Color jitter tweak"
-msgstr "Udoskonalanie desynchronizacji koloru"
+#: ../src/object-edit.cpp:1278
+msgid "Adjust the <b>offset distance</b>"
+msgstr "Ustawianie <b>odległości odsunięcia</b>."
+
+#: ../src/object-edit.cpp:1314
+msgid "Drag to resize the <b>flowed text frame</b>"
+msgstr "Ciągnij, aby zmienić rozmiar <b>ramki z tekstem</b>"
+
+#: ../src/path-chemistry.cpp:60
+msgid "Select <b>at least two objects</b> to combine."
+msgstr "Wybierz <b>co najmniej dwa obiekty</b> do połączenia"
+
+#: ../src/path-chemistry.cpp:64
+msgid "Combining paths..."
+msgstr "Łączenie ścieżek..."
+
+#: ../src/path-chemistry.cpp:166
+msgid "Combine"
+msgstr "Połącz"
 
-#. check whether something is selected
-#: ../src/ui/clipboard.cpp:205
-msgid "Nothing was copied."
-msgstr "Nic nie skopiowano"
+#: ../src/path-chemistry.cpp:173
+msgid "<b>No path(s)</b> to combine in the selection."
+msgstr "W zaznaczeniu <b>brak ścieżek</b> do połączenia"
 
-#: ../src/ui/clipboard.cpp:266 ../src/ui/clipboard.cpp:428
-#: ../src/ui/clipboard.cpp:452
-msgid "Nothing on the clipboard."
-msgstr "Schowek jest pusty"
+#: ../src/path-chemistry.cpp:185
+msgid "Select <b>path(s)</b> to break apart."
+msgstr "Wybierz jedną lub więcej <b>ścieżek</b> do rozdzielenia na części"
 
-#: ../src/ui/clipboard.cpp:288
-msgid "Select <b>object(s)</b> to paste style to."
-msgstr "Zaznacz <b>obiekt(y)</b>, do którego(ych) wkleić styl"
+#: ../src/path-chemistry.cpp:189
+msgid "Breaking apart paths..."
+msgstr "Rozdzielanie ścieżek..."
 
-#: ../src/ui/clipboard.cpp:294 ../src/ui/clipboard.cpp:311
-msgid "No style on the clipboard."
-msgstr "Schowek jest pusty"
+#: ../src/path-chemistry.cpp:275
+msgid "Break apart"
+msgstr "Rozdziel"
 
-#: ../src/ui/clipboard.cpp:333
-msgid "Select <b>object(s)</b> to paste size to."
-msgstr "Zaznacz <b>obiekt(y)</b>, do których wkleić rozmiar"
+#: ../src/path-chemistry.cpp:277
+msgid "<b>No path(s)</b> to break apart in the selection."
+msgstr "W zaznaczeniu <b>brak ścieżek</b> do rozdzielenia na części"
 
-#: ../src/ui/clipboard.cpp:340
-msgid "No size on the clipboard."
-msgstr "Schowek jest pusty"
+#: ../src/path-chemistry.cpp:295
+msgid "Select <b>object(s)</b> to convert to path."
+msgstr "Zaznacz <b>obiekty</b> do przekształcenia na ścieżki"
 
-#: ../src/ui/clipboard.cpp:391
-msgid "Select <b>object(s)</b> to paste live path effect to."
-msgstr "Zaznacz <b>obiekt(y)</b>, do których wkleić efekt ścieżki"
+#: ../src/path-chemistry.cpp:301
+msgid "Converting objects to paths..."
+msgstr "Konwertowanie obiektów na ścieżki..."
 
-#. no_effect:
-#: ../src/ui/clipboard.cpp:415
-msgid "No effect on the clipboard."
-msgstr "Schowek jest pusty"
+#: ../src/path-chemistry.cpp:323
+msgid "Object to path"
+msgstr "Obiekt na ścieżkę"
 
-#: ../src/ui/clipboard.cpp:435 ../src/ui/clipboard.cpp:462
-msgid "Clipboard does not contain a path."
-msgstr "Schowek nie zawiera ścieżki"
+#: ../src/path-chemistry.cpp:325
+msgid "<b>No objects</b> to convert to path in the selection."
+msgstr "W zaznaczeniu <b>brak obiektów</b> do przekształcenia na ścieżki"
 
-#. Item dialog
-#: ../src/ui/context-menu.cpp:100
-msgid "Object _Properties"
-msgstr "Właściwości _obiektu"
+#: ../src/path-chemistry.cpp:489
+msgid "Select <b>path(s)</b> to reverse."
+msgstr "Zaznacz jedną lub więcej <b>ścieżek</b>, których kierunek zostanie odwrócony"
 
-#. Select item
-#: ../src/ui/context-menu.cpp:110
-msgid "_Select This"
-msgstr "_Zaznacz ten obiekt"
+#: ../src/path-chemistry.cpp:498
+msgid "Reversing paths..."
+msgstr "Odwracanie ścieżek..."
 
-#. Create link
-#: ../src/ui/context-menu.cpp:120
-msgid "_Create Link"
-msgstr "_Utwórz odnośnik"
+#: ../src/path-chemistry.cpp:525
+msgid "Reverse path"
+msgstr "Odwróć kierunek ścieżki"
 
-#: ../src/ui/context-menu.cpp:177
-msgid "Create link"
-msgstr "Utwórz odnośnik"
+#: ../src/path-chemistry.cpp:527
+msgid "<b>No paths</b> to reverse in the selection."
+msgstr "W zaznaczeniu <b>brak ścieżek</b>, dla których można odwrócić kierunek"
 
-#. "Ungroup"
-#: ../src/ui/context-menu.cpp:195 ../src/verbs.cpp:2279
-msgid "_Ungroup"
-msgstr "_Rozdziel grupę"
+#: ../src/pen-context.cpp:252
+#: ../src/pencil-context.cpp:486
+msgid "Drawing cancelled"
+msgstr "Rysowanie anulowane"
 
-#. Link dialog
-#: ../src/ui/context-menu.cpp:235
-msgid "Link _Properties"
-msgstr "Wł_aściwości odnośnika"
+#: ../src/pen-context.cpp:483
+#: ../src/pencil-context.cpp:250
+msgid "Continuing selected path"
+msgstr "Kontynuowanie zaznaczonej ścieżki"
 
-#. Select item
-#: ../src/ui/context-menu.cpp:241
-msgid "_Follow Link"
-msgstr "_Podążaj za odnośnikiem"
+#: ../src/pen-context.cpp:493
+#: ../src/pencil-context.cpp:259
+msgid "Creating new path"
+msgstr "Tworzenie nowej ścieżki"
 
-#. Reset transformations
-#: ../src/ui/context-menu.cpp:246
-msgid "_Remove Link"
-msgstr "_Usuń odnośnik"
+#: ../src/pen-context.cpp:495
+#: ../src/pencil-context.cpp:264
+msgid "Appending to selected path"
+msgstr "Dodawanie segmentów do zaznaczonej ścieżki"
 
-#. Link dialog
-#: ../src/ui/context-menu.cpp:294
-msgid "Image _Properties"
-msgstr "Wł_aściwości obrazka"
+#: ../src/pen-context.cpp:655
+msgid "<b>Click</b> or <b>click and drag</b> to close and finish the path."
+msgstr "<b>Kliknij</b> lub <b>kliknij i ciągnij</b>, aby zamknąć i zakończyć ścieżkę"
 
-#: ../src/ui/context-menu.cpp:300
-#, fuzzy
-msgid "Edit Externally..."
-msgstr "Edytuj wypełnienie..."
+#: ../src/pen-context.cpp:665
+msgid "<b>Click</b> or <b>click and drag</b> to continue the path from this point."
+msgstr "<b>Kliknij</b> lub <b>kliknij i ciągnij</b>, aby kontynuować ścieżkę od tego punktu"
 
-#. Item dialog
-#: ../src/ui/context-menu.cpp:392
-msgid "_Fill and Stroke"
-msgstr "_Wypełnienie i kontur"
+#: ../src/pen-context.cpp:1256
+#, fuzzy, c-format
+msgid "<b>Curve segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to snap angle, <b>Enter</b> to finish the path"
+msgstr " kąt %3.2f&#176;, odległość %s; z <b>Ctrl</b> przyciąganie do kąta, <b>Enter</b>, aby zakończyć ścieżkę"
 
-#. *
-#. * Constructor
-#.
-#: ../src/ui/dialog/aboutbox.cpp:77
-msgid "About Inkscape"
-msgstr "Informacje o programie Inkscape"
+#: ../src/pen-context.cpp:1257
+#, fuzzy, c-format
+msgid "<b>Line segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to snap angle, <b>Enter</b> to finish the path"
+msgstr " kąt %3.2f&#176;, odległość %s; z <b>Ctrl</b> przyciąganie do kąta, <b>Enter</b>, aby zakończyć ścieżkę"
 
-#: ../src/ui/dialog/aboutbox.cpp:88
-msgid "_Splash"
-msgstr "_Ekran powitalny"
+#: ../src/pen-context.cpp:1275
+#, c-format
+msgid "<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle"
+msgstr "<b>Uchwyt krzywej</b>: kąt %3.2f&#176;, odległość %s; z <b>Ctrl</b> - przyciąganie do kąta."
 
-#: ../src/ui/dialog/aboutbox.cpp:92
-msgid "_Authors"
-msgstr "_Autorzy"
+#: ../src/pen-context.cpp:1297
+#, fuzzy, c-format
+msgid "<b>Curve handle, symmetric</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle, with <b>Shift</b> to move this handle only"
+msgstr " kąt %3.2f&#176;, długość %s; z <b>Ctrl</b> - przyciąganie do kąta, z <b>Shift</b> - przesuwanie tylko tego uchwytu."
 
-#: ../src/ui/dialog/aboutbox.cpp:94
-msgid "_Translators"
-msgstr "_Tłumacze"
+#: ../src/pen-context.cpp:1298
+#, fuzzy, c-format
+msgid "<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle, with <b>Shift</b> to move this handle only"
+msgstr " kąt %3.2f&#176;, długość %s; z <b>Ctrl</b> - przyciąganie do kąta, z <b>Shift</b> - przesuwanie tylko tego uchwytu."
 
-#: ../src/ui/dialog/aboutbox.cpp:96
-msgid "_License"
-msgstr "_Licencja"
+#: ../src/pen-context.cpp:1345
+msgid "Drawing finished"
+msgstr "Zakończono rysowanie"
 
-#. TRANSLATORS: This is the filename of the `About Inkscape' picture in
-#. the `screens' directory.  Thus the translation of "about.svg" should be
-#. the filename of its translated version, e.g. about.zh.svg for Chinese.
-#.
-#. N.B. about.svg changes once per release.  (We should probably rename
-#. the original to about-0.40.svg etc. as soon as we have a translation.
-#. If we do so, then add an item to release-checklist saying that the
-#. string here should be changed.)
-#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the
-#. native filename encoding... and the filename passed to sp_document_new
-#. should be in UTF-*8..
-#: ../src/ui/dialog/aboutbox.cpp:149
-msgid "about.svg"
-msgstr "about.svg"
+#: ../src/pencil-context.cpp:362
+msgid "<b>Release</b> here to close and finish the path."
+msgstr "<b>Zwolnij przycisk</b> w tym miejscu, aby zamknąć i zakończyć ścieżkę"
 
-#. 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:338
-msgid "translator-credits"
-msgstr ""
-"Polska lokalizacja wykonana przez:\n"
-"2005-2006 - Przemysław Loesch (p_loesch@poczta.onet.pl)\n"
-"2008 - Polski Zespół lokalizacyjny Inkscape (inkscapeplteam@gmail.com)\n"
-"W składzie: Leszek(teo)Życzkowski, Marcin Floryan, Piotr Parafiniuk i inni"
+#: ../src/pencil-context.cpp:368
+msgid "Drawing a freehand path"
+msgstr "Rysowanie krzywej odręcznej"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:234
-#: ../src/ui/dialog/align-and-distribute.cpp:776
-msgid "Align"
-msgstr "Wyrównaj"
+#: ../src/pencil-context.cpp:373
+msgid "<b>Drag</b> to continue the path from this point."
+msgstr "<b>Ciągnij</b>, aby kontynuować ścieżkę od tego punktu"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:392
-#: ../src/ui/dialog/align-and-distribute.cpp:777
-msgid "Distribute"
-msgstr "Rozłóż"
+#. Write curves to object
+#: ../src/pencil-context.cpp:435
+msgid "Finishing freehand"
+msgstr "Zakończono rysowanie krzywej"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:461
-msgid "Minimum horizontal gap (in px units) between bounding boxes"
-msgstr "Minimalny odstęp poziomy (w pikselach) pomiędzy obramowaniami obiektów"
+#: ../src/persp3d.cpp:335
+msgid "Toggle vanishing point"
+msgstr "Przełącz punkty zbiegu"
 
-#. TRANSLATORS: Horizontal gap. Only put "H:" equivalent in the translation
-#: ../src/ui/dialog/align-and-distribute.cpp:463
-msgid "gap|H:"
-msgstr "Poziom:"
+#: ../src/persp3d.cpp:346
+msgid "Toggle multiple vanishing points"
+msgstr "Przełącz wiele punktów zbiegu"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:471
-msgid "Minimum vertical gap (in px units) between bounding boxes"
-msgstr "Minimalny odstęp pionowy (w pikselach) pomiędzy obramowaniami obiektów"
+#: ../src/preferences.cpp:74
+#, fuzzy
+msgid "Inkscape will run with default settings, and new settings will not be saved. "
+msgstr ""
+"Inkscape zostanie uruchomiony z domyślnymi ustawieniami.\n"
+"Nowe ustawienia nie zostaną zapisane."
 
-#. TRANSLATORS: Vertical gap
-#: ../src/ui/dialog/align-and-distribute.cpp:473
-msgid "V:"
-msgstr "Pion.:"
+#. the creation failed
+#. _errorDialog(Glib::ustring::compose(_("Cannot create profile directory %1."),
+#. Glib::filename_to_utf8(_prefs_dir)), not_saved);
+#: ../src/preferences.cpp:89
+#, c-format
+msgid "Cannot create profile directory %s."
+msgstr "Nie można utworzyć katalogu profilu %s."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:501
-#: ../src/ui/dialog/align-and-distribute.cpp:778
-#: ../src/widgets/toolbox.cpp:5626
-msgid "Remove overlaps"
-msgstr "Usuń nakładanie"
+#. The profile dir is not actually a directory
+#. _errorDialog(Glib::ustring::compose(_("%1 is not a valid directory."),
+#. Glib::filename_to_utf8(_prefs_dir)), not_saved);
+#: ../src/preferences.cpp:107
+#, c-format
+msgid "%s is not a valid directory."
+msgstr "%s nie jest poprawnym katalogiem."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:531
-#: ../src/widgets/toolbox.cpp:5484
-msgid "Arrange connector network"
-msgstr "Rozmieść łącznik sieci"
+#. The write failed.
+#. _errorDialog(Glib::ustring::compose(_("Failed to create the preferences file %1."),
+#. Glib::filename_to_utf8(_prefs_filename)), not_saved);
+#: ../src/preferences.cpp:118
+#, c-format
+msgid "Failed to create the preferences file %s."
+msgstr "Nie udało się utworzyć pliku ustawień %s"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:561
-msgid "Unclump"
-msgstr "Rozproszenie"
+#. _errorDialog(Glib::ustring::compose(_("The preferences file %1 is not a regular file."),
+#. Glib::filename_to_utf8(_prefs_filename)), not_saved);
+#: ../src/preferences.cpp:136
+#, c-format
+msgid "The preferences file %s is not a regular file."
+msgstr "Plik ustawień %s nie jest poprawnym plikiem."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:631
-msgid "Randomize positions"
-msgstr "Zmiana losowa położenia"
+#. _errorDialog(Glib::ustring::compose(_("The preferences file %1 could not be read."),
+#. Glib::filename_to_utf8(_prefs_filename)), not_saved);
+#: ../src/preferences.cpp:148
+#, c-format
+msgid "The preferences file %s could not be read."
+msgstr "Nie można odczytać pliku ustawień %s."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:728
-msgid "Distribute text baselines"
-msgstr "Ułóż tekst wg linii bazowej"
+#. _errorDialog(Glib::ustring::compose(_("The preferences file %1 is not a valid XML document."),
+#. Glib::filename_to_utf8(_prefs_filename)), not_saved);
+#: ../src/preferences.cpp:160
+#, c-format
+msgid "The preferences file %s is not a valid XML document."
+msgstr ""
 
-#: ../src/ui/dialog/align-and-distribute.cpp:748
-msgid "Align text baselines"
-msgstr "Wyrównaj tekst wg linii bazowej"
+#. _errorDialog(Glib::ustring::compose(_("The file %1 is not a valid Inkscape preferences file."),
+#. Glib::filename_to_utf8(_prefs_filename)), not_saved);
+#: ../src/preferences.cpp:170
+#, c-format
+msgid "The file %s is not a valid Inkscape preferences file."
+msgstr "Plik %s nie jest poprawnym plikiem ustawień Inkscape'a."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:779
-msgid "Connector network layout"
-msgstr "Wygląd łączników sieci"
+#: ../src/rect-context.cpp:383
+msgid "<b>Ctrl</b>: make square or integer-ratio rect, lock a rounded corner circular"
+msgstr "<b>Ctrl</b> - tworzy kwadrat, lub prostokąt o równych proporcjach, "
 
-#: ../src/ui/dialog/align-and-distribute.cpp:780
-msgid "Nodes"
-msgstr "Węzły"
+#: ../src/rect-context.cpp:524
+#, c-format
+msgid "<b>Rectangle</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> to draw around the starting point"
+msgstr "<b>Prostokąt</b>:  %s &#215; %s (o proporcjach %d:%d). Z <b>Shift</b> - rysowanie wokół punktu początkowego."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:786
-msgid "Relative to: "
-msgstr "Element sterujący: "
+#: ../src/rect-context.cpp:527
+#, c-format
+msgid "<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1.618 : 1); with <b>Shift</b> to draw around the starting point"
+msgstr "<b>Prostokąt</b>: %s &#215; %s; (o ustalonej złotej proporcji 1.618 : 1). Z <b>Shift</b> - rysowanie wokół punktu początkowego."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:791
-msgid "Align right sides of objects to left side of anchor"
-msgstr ""
-"Wyrównuje prawe krawędzie obiektów do lewej strony elementu sterującego"
+#: ../src/rect-context.cpp:529
+#, c-format
+msgid "<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1 : 1.618); with <b>Shift</b> to draw around the starting point"
+msgstr "<b>Prostokąt</b>: %s &#215; %s; (o ustalonej złotej proporcji 1.618 : 1). Z <b>Shift</b> - rysowanie wokół punktu początkowego."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:794
-msgid "Align left sides"
-msgstr "Wyrównuje lewe krawędzie"
+#: ../src/rect-context.cpp:533
+#, c-format
+msgid "<b>Rectangle</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-ratio rectangle; with <b>Shift</b> to draw around the starting point"
+msgstr "<b>Prostokąt</b>:  %s &#215; %s; z <b>Ctrl</b> - rysowanie kwadratu lub prostokąta o równych proporcjach, z <b>Shift</b> -  rysowanie wokół punktu początkowego."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:797
-msgid "Center on vertical axis"
-msgstr "Wyśrodkowuje na osi pionowej"
+#: ../src/rect-context.cpp:554
+msgid "Create rectangle"
+msgstr "Utwórz prostokąt"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:800
-msgid "Align right sides"
-msgstr "Wyrównuje prawe krawędzie"
+#: ../src/select-context.cpp:230
+msgid "Move canceled."
+msgstr "Przesunięcie anulowane"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:803
-msgid "Align left sides of objects to right side of anchor"
-msgstr ""
-"Wyrównuje lewe krawędzie obiektów do prawej strony elementu sterującego"
+#: ../src/select-context.cpp:238
+msgid "Selection canceled."
+msgstr "Zaznaczanie anulowane"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:806
-msgid "Align bottoms of objects to top of anchor"
-msgstr "Wyrównuje dolne krawędzie obiektów do góry elementu sterującego"
+#: ../src/select-context.cpp:545
+msgid "<b>Draw over</b> objects to select them; release <b>Alt</b> to switch to rubberband selection"
+msgstr "<b>Wykonaj ciągnięcie</b> ponad obiektami, aby je zaznaczyć. Naciśnij <b>Alt</b>, aby przełączyć do zaznaczania elastycznego."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:809
-msgid "Align tops"
-msgstr "Wyrównuje górne krawędzie"
+#: ../src/select-context.cpp:547
+msgid "<b>Drag around</b> objects to select them; press <b>Alt</b> to switch to touch selection"
+msgstr "<b>Wykonaj ciągnięcie</b> wokół obiektów, aby je zaznaczyć. Naciśnij <b>Alt</b>, aby przełączyć do zaznaczania dotykowego."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:812
-msgid "Center on horizontal axis"
-msgstr "Wyśrodkowuje na osi poziomej"
+#: ../src/select-context.cpp:707
+msgid "<b>Ctrl</b>: click to select in groups; drag to move hor/vert"
+msgstr "<b>Ctrl</b> + kliknięcie, aby zaznaczyć wewnątrz grupy, ciągnięcie, aby przesunąć w poziomie/pionie"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:815
-msgid "Align bottoms"
-msgstr "Wyrównuje dolne krawędzie"
+#: ../src/select-context.cpp:708
+msgid "<b>Shift</b>: click to toggle select; drag for rubberband selection"
+msgstr "<b>Shift</b> + kliknięcie, aby przełączyć zaznaczenie, ciągnięcie, aby elastycznie zaznaczyć"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:818
-msgid "Align tops of objects to bottom of anchor"
-msgstr "Wyrównuje górne krawędzie obiektów do dołu elementu sterującego"
+#: ../src/select-context.cpp:709
+msgid "<b>Alt</b>: click to select under; drag to move selected or select by touch"
+msgstr "<b>Alt</b> + kliknięcie, aby zaznaczyć zasłonięty obiekt, ciągnięcie, aby przesunąć zaznaczenie lub zaznaczyć przez dotknięcie"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:823
-msgid "Align baseline anchors of texts vertically"
-msgstr "Wyrównuje linie bazowe kotwic tekstów do linii pionowej"
+#: ../src/select-context.cpp:880
+msgid "Selected object is not a group. Cannot enter."
+msgstr "Zaznaczony obiekt nie jest grupą. Nie można do niego wejść."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:826
-msgid "Align baseline anchors of texts horizontally"
-msgstr "Wyrównuje linie bazowe kotwic tekstów do linii poziomej"
+#: ../src/selection-chemistry.cpp:192
+msgid "Delete text"
+msgstr "Usuń tekst"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:831
-msgid "Make horizontal gaps between objects equal"
-msgstr "Wyrównuje odstępy pomiędzy obiektami w poziomie"
+#: ../src/selection-chemistry.cpp:200
+msgid "<b>Nothing</b> was deleted."
+msgstr "<b>Nic</b> nie usunięto"
+
+#: ../src/selection-chemistry.cpp:218
+#: ../src/text-context.cpp:1012
+#: ../src/widgets/toolbox.cpp:1280
+#: ../src/widgets/toolbox.cpp:5294
+msgid "Delete"
+msgstr "Usuń"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:835
-msgid "Distribute left sides equidistantly"
-msgstr "Rozkłada lewe krawędzie obiektów w równych odstępach"
+#: ../src/selection-chemistry.cpp:246
+msgid "Select <b>object(s)</b> to duplicate."
+msgstr "Zaznacz <b>obiekty</b> do powielenia"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:838
-msgid "Distribute centers equidistantly horizontally"
-msgstr "Rozkłada środki obiektów w równych odstępach poziomo"
+#: ../src/selection-chemistry.cpp:336
+msgid "Delete all"
+msgstr "Usuń wszystko"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:841
-msgid "Distribute right sides equidistantly"
-msgstr "Rozkłada prawe krawędzie obiektów w równych odstępach"
+#: ../src/selection-chemistry.cpp:459
+msgid "Select <b>some objects</b> to group."
+msgstr "Zaznacz <b>kilka obiektów</b>, aby połączyć je w grupę"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:845
-msgid "Make vertical gaps between objects equal"
-msgstr "Wyrównuje odstępy pomiędzy obiektami w pionie"
+#: ../src/selection-chemistry.cpp:532
+#: ../src/selection-describer.cpp:51
+msgid "Group"
+msgstr "Grupa"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:849
-msgid "Distribute tops equidistantly"
-msgstr "Rozkłada górne krawędzie obiektów w równych odstępach"
+#: ../src/selection-chemistry.cpp:546
+msgid "Select a <b>group</b> to ungroup."
+msgstr "Zaznacz <b>grupę</b> do rozdzielenia"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:852
-msgid "Distribute centers equidistantly vertically"
-msgstr "Rozkłada środki obiektów w równych odstępach w pionie"
+#: ../src/selection-chemistry.cpp:587
+msgid "<b>No groups</b> to ungroup in the selection."
+msgstr "W zaznaczeniu <b>brak grup</b> do rozdzielenia"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:855
-msgid "Distribute bottoms equidistantly"
-msgstr "Rozkłada dolne krawędzie obiektów w równych odstępach"
+#: ../src/selection-chemistry.cpp:593
+#: ../src/sp-item-group.cpp:498
+msgid "Ungroup"
+msgstr "Rozdziel grupę"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:860
-msgid "Distribute baseline anchors of texts horizontally"
-msgstr "Rozkłada kotwice tekstów w równych odstępach w poziomie"
+#: ../src/selection-chemistry.cpp:653
+msgid "Select <b>object(s)</b> to raise."
+msgstr "Zaznacz <b>obiekt(y)</b> do przeniesienia wyżej"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:863
-msgid "Distribute baseline anchors of texts vertically"
-msgstr "Rozkłada kotwice tekstów w równych odstępach w pionie"
+#: ../src/selection-chemistry.cpp:659
+#: ../src/selection-chemistry.cpp:719
+#: ../src/selection-chemistry.cpp:753
+#: ../src/selection-chemistry.cpp:817
+msgid "You cannot raise/lower objects from <b>different groups</b> or <b>layers</b>."
+msgstr "Nie można przenieść wyżej/niżej obiektów należących do <b>różnych grup</b> lub <b>warstw</b>"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:868
-msgid "Randomize centers in both dimensions"
-msgstr "Rozkłada losowo środki obiektów w obu kierunkach"
+#. TRANSLATORS: Only put the word "Raise" in the translation. Means "to raise an object" in the undo history
+#: ../src/selection-chemistry.cpp:699
+msgid "undo_action|Raise"
+msgstr "Podwyższenie"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:871
-msgid "Unclump objects: try to equalize edge-to-edge distances"
-msgstr "Rozkłada obiekty próbując wyrównać odległości pomiędzy krawędziami"
+#: ../src/selection-chemistry.cpp:711
+msgid "Select <b>object(s)</b> to raise to top."
+msgstr "Zaznacz <b>obiekt(y)</b> do przeniesienia na wierzch"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:876
-msgid ""
-"Move objects as little as possible so that their bounding boxes do not "
-"overlap"
-msgstr "Przesuwa obiekty tylko o tyle, aby ich obramowania nie nakładały się"
+#: ../src/selection-chemistry.cpp:734
+msgid "Raise to top"
+msgstr "Przenieś na wierzch"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:880
-#: ../src/widgets/toolbox.cpp:5588
-msgid "Nicely arrange selected connector network"
-msgstr "Rozłóż równomiernie zaznaczone łączniki"
+#: ../src/selection-chemistry.cpp:747
+msgid "Select <b>object(s)</b> to lower."
+msgstr "Zaznacz <b>obiekt(y)</b> do przeniesienia niżej"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:885
-msgid "Align selected nodes horizontally"
-msgstr "Ustawia zaznaczone węzły w linii poziomej"
+#: ../src/selection-chemistry.cpp:797
+msgid "Lower"
+msgstr "Przesuń niżej"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:888
-msgid "Align selected nodes vertically"
-msgstr "Ustawia zaznaczone węzły w linii pionowej"
+#: ../src/selection-chemistry.cpp:809
+msgid "Select <b>object(s)</b> to lower to bottom."
+msgstr "Zaznacz <b>obiekt(y)</b> do przeniesienia na spód"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:891
-msgid "Distribute selected nodes horizontally"
-msgstr "Wyrównuje odstępy w poziomie pomiędzy zaznaczonymi węzłami"
+#: ../src/selection-chemistry.cpp:844
+msgid "Lower to bottom"
+msgstr "Przenieś na spód"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:894
-msgid "Distribute selected nodes vertically"
-msgstr "Wyrównuje odstępy w pionie pomiędzy zaznaczonymi węzłami"
+#: ../src/selection-chemistry.cpp:851
+msgid "Nothing to undo."
+msgstr "Brak zmian do cofnięcia"
 
-#. Rest of the widgetry
-#: ../src/ui/dialog/align-and-distribute.cpp:899
-msgid "Last selected"
-msgstr "Ostatni zaznaczony"
+#: ../src/selection-chemistry.cpp:858
+msgid "Nothing to redo."
+msgstr "Brak zmian do przywrócenia"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:900
-msgid "First selected"
-msgstr "Pierwszy zaznaczony"
+#: ../src/selection-chemistry.cpp:918
+msgid "Paste"
+msgstr "Wklej"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:901
-msgid "Biggest item"
-msgstr "Największy element"
+#: ../src/selection-chemistry.cpp:925
+msgid "Paste style"
+msgstr "Wklej styl"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:902
-msgid "Smallest item"
-msgstr "Najmniejszy element"
+#: ../src/selection-chemistry.cpp:934
+msgid "Paste live path effect"
+msgstr "Wklej efekt żywej ścieżki"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:904
-#: ../src/widgets/desktop-widget.cpp:1548
-msgid "Drawing"
-msgstr "Rysunek"
+#: ../src/selection-chemistry.cpp:953
+msgid "Select <b>object(s)</b> to remove live path effects from."
+msgstr "Zaznacz <b>obiekt(y)</b> z których usunąć efekt żywej ścieżki"
 
-#: ../src/ui/dialog/document-metadata.cpp:79
-msgid "Metadata"
-msgstr "Metadane"
+#: ../src/selection-chemistry.cpp:965
+msgid "Remove live path effect"
+msgstr "Usuń efekt żywej ścieżki"
 
-#: ../src/ui/dialog/document-metadata.cpp:80
-msgid "License"
-msgstr "Licencja"
+#: ../src/selection-chemistry.cpp:976
+msgid "Select <b>object(s)</b> to remove filters from."
+msgstr "Zaznacz <b>obiekt(y)</b> do usunięcia filtrów"
 
-#: ../src/ui/dialog/document-metadata.cpp:160
-msgid "<b>Dublin Core Entities</b>"
-msgstr "<b>Jednostki Dublin Core</b>"
+#: ../src/selection-chemistry.cpp:986
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1367
+msgid "Remove filter"
+msgstr "Usuń filtr"
 
-#: ../src/ui/dialog/document-metadata.cpp:182
-msgid "<b>License</b>"
-msgstr "<b>Licencja</b>"
+#: ../src/selection-chemistry.cpp:995
+msgid "Paste size"
+msgstr "Wklej rozmiar"
 
-#. ---------------------------------------------------------------
-#: ../src/ui/dialog/document-properties.cpp:88
-msgid "Show page _border"
-msgstr "Wyświetlaj _kontur strony"
+#: ../src/selection-chemistry.cpp:1003
+msgid "Paste size separately"
+msgstr "Wklej rozmiar oddzielnie"
 
-#: ../src/ui/dialog/document-properties.cpp:88
-msgid "If set, rectangular page border is shown"
-msgstr "Jeśli opcja ta zostanie zaznaczona, będzie wyświetlany kontur strony"
+#: ../src/selection-chemistry.cpp:1012
+msgid "Select <b>object(s)</b> to move to the layer above."
+msgstr "Wybierz <b>obiekt(y)</b> do przeniesienia na wyższą warstwę"
 
-#: ../src/ui/dialog/document-properties.cpp:89
-msgid "Border on _top of drawing"
-msgstr "Kontur _widoczny przez rysunek"
+#: ../src/selection-chemistry.cpp:1038
+msgid "Raise to next layer"
+msgstr "Przenieś na wyższą warstwę"
 
-#: ../src/ui/dialog/document-properties.cpp:89
-msgid "If set, border is always on top of the drawing"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, poprzez elementy rysunku będzie widoczny "
-"kontur strony"
+#: ../src/selection-chemistry.cpp:1045
+msgid "No more layers above."
+msgstr "Brak wyższych warstw"
 
-#: ../src/ui/dialog/document-properties.cpp:90
-msgid "_Show border shadow"
-msgstr "Wyświetlaj _cień strony"
+#: ../src/selection-chemistry.cpp:1057
+msgid "Select <b>object(s)</b> to move to the layer below."
+msgstr "Wybierz <b>obiekt(y)</b> do przeniesienia na niższą warstwę"
 
-#: ../src/ui/dialog/document-properties.cpp:90
-msgid "If set, page border shows a shadow on its right and lower side"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, po prawej stronie i na dole konturu "
-"będzie wyświetlany cień"
+#: ../src/selection-chemistry.cpp:1083
+msgid "Lower to previous layer"
+msgstr "Przenieś na niższą warstwę"
 
-#: ../src/ui/dialog/document-properties.cpp:91
-msgid "Back_ground:"
-msgstr "_Tło:"
+#: ../src/selection-chemistry.cpp:1090
+msgid "No more layers below."
+msgstr "Brak niższych warstw"
 
-#: ../src/ui/dialog/document-properties.cpp:91
-msgid "Background color"
-msgstr "Kolor tła"
+#: ../src/selection-chemistry.cpp:1277
+msgid "Remove transform"
+msgstr "Usuń przekształcenie"
 
-#: ../src/ui/dialog/document-properties.cpp:91
-msgid ""
-"Color and transparency of the page background (also used for bitmap export)"
-msgstr ""
-"Kolor i przezroczystość tła strony (używane również przy eksporcie do "
-"bitmapy)"
+#: ../src/selection-chemistry.cpp:1380
+msgid "Rotate 90&#176; CCW"
+msgstr "Obróć o 90&#176; w lewo"
 
-#: ../src/ui/dialog/document-properties.cpp:92
-msgid "Border _color:"
-msgstr "Kolor konturu:"
+#: ../src/selection-chemistry.cpp:1380
+msgid "Rotate 90&#176; CW"
+msgstr "Obróć o 90&#176; w prawo"
 
-#: ../src/ui/dialog/document-properties.cpp:92
-msgid "Page border color"
-msgstr "Kolor konturu strony"
+#: ../src/selection-chemistry.cpp:1401
+#: ../src/seltrans.cpp:452
+#: ../src/ui/dialog/transformation.cpp:757
+msgid "Rotate"
+msgstr "Obróć"
 
-#: ../src/ui/dialog/document-properties.cpp:92
-msgid "Color of the page border"
-msgstr "Kolor konturu strony"
+#: ../src/selection-chemistry.cpp:1448
+msgid "Rotate by pixels"
+msgstr "Obróć wg pikseli"
 
-#: ../src/ui/dialog/document-properties.cpp:93
-msgid "Default _units:"
-msgstr "Domyślne _jednostki:"
+#: ../src/selection-chemistry.cpp:1503
+msgid "Scale by whole factor"
+msgstr "Skaluj przez cały faktor"
 
-#. ---------------------------------------------------------------
-#. General snap options
-#: ../src/ui/dialog/document-properties.cpp:97
-msgid "Show _guides"
-msgstr "_Wyświetlaj prowadnice"
+#: ../src/selection-chemistry.cpp:1518
+msgid "Move vertically"
+msgstr "Przesuń w pionie"
 
-#: ../src/ui/dialog/document-properties.cpp:97
-msgid "Show or hide guides"
-msgstr "Jeśli opcja ta zostanie zaznaczona, będą wyświetlane prowadnice"
+#: ../src/selection-chemistry.cpp:1521
+msgid "Move horizontally"
+msgstr "Przesuń w poziomie"
 
-#: ../src/ui/dialog/document-properties.cpp:98
-msgid "_Snap guides while dragging"
-msgstr "_Przyciągaj prowadnice podczas przeciągania"
+#: ../src/selection-chemistry.cpp:1524
+#: ../src/selection-chemistry.cpp:1550
+#: ../src/seltrans.cpp:446
+#: ../src/ui/dialog/transformation.cpp:680
+msgid "Move"
+msgstr "Przesuń"
 
-#: ../src/ui/dialog/document-properties.cpp:98
-msgid ""
-"While dragging a guide, snap to object nodes or bounding box corners ('Snap "
-"to nodes' or 'snap to bounding box corners' must be enabled in the 'Snap' "
-"tab; only a small part of the guide near the cursor will snap)"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, podczas przeciągania prowadnicy będzie "
-"następowało przyciąganie do węzłów obiektu lub narożników obramowania. Na "
-"karcie \"Przyciąganie\" musi być włączona opcja \"Przyciągaj do węzłów\" lub "
-"\"Przyciągaj do narożników obramowania\". Będzie przyciągana tylko niewielka "
-"część prowadnicy znajdująca się blisko kursora."
+#: ../src/selection-chemistry.cpp:1544
+msgid "Move vertically by pixels"
+msgstr "Przesuwa w pionie o zadaną wartość podaną w pikselach"
 
-#: ../src/ui/dialog/document-properties.cpp:100
-msgid "Guide co_lor:"
-msgstr "Kolor p_rowadnicy:"
+#: ../src/selection-chemistry.cpp:1547
+msgid "Move horizontally by pixels"
+msgstr "Przesuwa w poziomie o zadaną wartość podaną w pikselach"
 
-#: ../src/ui/dialog/document-properties.cpp:100
-msgid "Guideline color"
-msgstr "Kolor prowadnic"
+#: ../src/selection-chemistry.cpp:1675
+msgid "The selection has no applied path effect."
+msgstr "Zaznaczenie nie zaakceptowało efektu ścieżki"
 
-#: ../src/ui/dialog/document-properties.cpp:100
-msgid "Color of guidelines"
-msgstr "Kolor prowadnic"
+#: ../src/selection-chemistry.cpp:1722
+msgid "The selection has no applied clip path."
+msgstr "Zaznaczenie nie zaakceptowało przycięcia ścieżki"
 
-#: ../src/ui/dialog/document-properties.cpp:101
-msgid "_Highlight color:"
-msgstr "Kolor po_dświetlenia:"
+#: ../src/selection-chemistry.cpp:1724
+msgid "The selection has no applied mask."
+msgstr "Zaznaczenie nie zaakceptowało maski"
 
-#: ../src/ui/dialog/document-properties.cpp:101
-msgid "Highlighted guideline color"
-msgstr "Kolor podświetlenia prowadnic"
+#: ../src/selection-chemistry.cpp:1881
+msgid "action|Clone"
+msgstr "Klonuj"
 
-#: ../src/ui/dialog/document-properties.cpp:101
-msgid "Color of a guideline when it is under mouse"
-msgstr "Kolor prowadnicy po umieszczeniu na niej wskaźnika myszy"
+#: ../src/selection-chemistry.cpp:1897
+#, fuzzy
+msgid "Select <b>clones</b> to relink."
+msgstr "Wybierz <b>klon</b> do odłączenia"
 
-#. ---------------------------------------------------------------
-#: ../src/ui/dialog/document-properties.cpp:103
-msgid "_Enable snapping"
-msgstr "Włącz _przyciąganie"
+#: ../src/selection-chemistry.cpp:1904
+#, fuzzy
+msgid "Copy an <b>object</b> to clipboard to relink clones to."
+msgstr "Wybierz <b>obiekt</b> do klonowania"
 
-#: ../src/ui/dialog/document-properties.cpp:103 ../src/verbs.cpp:2498
-msgid "Toggle snapping on or off"
-msgstr "Włącza/wyłącza przyciąganie"
+#: ../src/selection-chemistry.cpp:1928
+#, fuzzy
+msgid "<b>No clones to relink</b> in the selection."
+msgstr "W zaznaczeniu <b>brak klonów do odłączenia</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:104
-msgid "_Enable snap indicator"
-msgstr "Włącz wskaźnik _przyciągania"
+#: ../src/selection-chemistry.cpp:1931
+#, fuzzy
+msgid "Relink clone"
+msgstr "Odłącz klon"
 
-#: ../src/ui/dialog/document-properties.cpp:104
-msgid "After snapping, a symbol is drawn at the point that has snapped"
-msgstr ""
+#: ../src/selection-chemistry.cpp:1945
+#, fuzzy
+msgid "Select <b>clones</b> to unlink."
+msgstr "Wybierz <b>klon</b> do odłączenia"
 
-#: ../src/ui/dialog/document-properties.cpp:105
-msgid "_Bounding box corners"
-msgstr "_Narożniki obramowania obiektu"
+#: ../src/selection-chemistry.cpp:1994
+msgid "<b>No clones to unlink</b> in the selection."
+msgstr "W zaznaczeniu <b>brak klonów do odłączenia</b>"
+
+#: ../src/selection-chemistry.cpp:1998
+msgid "Unlink clone"
+msgstr "Odłącz klon"
 
-#: ../src/ui/dialog/document-properties.cpp:105
-msgid ""
-"Only available in the selector tool: snap bounding box corners to guides, to "
-"grids, and to other bounding boxes (but not to nodes or paths)"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje przyciąganie narożników obramowania obiektu "
-"do prowadnic, siatek i innych ramek obiektu, ale nie do węzłów lub ścieżek. "
-"Dostępne tylko w narzędziu \"Wskaźnik\"."
+#: ../src/selection-chemistry.cpp:2011
+msgid "Select a <b>clone</b> to go to its original. Select a <b>linked offset</b> to go to its source. Select a <b>text on path</b> to go to the path. Select a <b>flowed text</b> to go to its frame."
+msgstr "Zaznacz <b>klon</b>, aby przejść do oryginału. Zaznacz <b>połączone odsunięcie</b>, aby przejść do jego źródła. Zaznacz <b>tekst na ścieżce</b>, aby przejść do ścieżki. Zaznacz <b>dopasowany tekst</b>, aby przejść do jego ramki."
 
-#: ../src/ui/dialog/document-properties.cpp:107
-msgid "_Nodes"
-msgstr "_Węzły"
+#: ../src/selection-chemistry.cpp:2034
+msgid "<b>Cannot find</b> the object to select (orphaned clone, offset, textpath, flowed text?)"
+msgstr "<b>Nie można odnaleźć</b> obiektu do zaznaczenia (osierocony klon, odsunięcie, tekst na ścieżce, tekst opływający?)"
 
-#: ../src/ui/dialog/document-properties.cpp:107
-msgid ""
-"Snap nodes (e.g. path nodes, special points in shapes, gradient handles, "
-"text base points, transformation origins, etc.) to guides, to grids, to "
-"paths and to other nodes"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje przyciąganie węzłów (np. węzłów ścieżki, "
-"specjalnych punktów w kształtach, uchwytów gradientu, punktów bazowych "
-"tekstu itp.) do linii siatki, prowadnic, ścieżek i innych węzłów"
+#: ../src/selection-chemistry.cpp:2040
+msgid "The object you're trying to select is <b>not visible</b> (it is in &lt;defs&gt;)"
+msgstr "Obiekt, który próbujesz zaznaczyć jest <b>niewidoczny</b> (jest on w &lt;defs&gt;)"
 
-#. Options for snapping to objects
-#: ../src/ui/dialog/document-properties.cpp:110
-msgid "Snap to path_s"
-msgstr "Przyciągaj do ści_eżek"
+#: ../src/selection-chemistry.cpp:2086
+msgid "Select <b>object(s)</b> to convert to marker."
+msgstr "Zaznacz <b>obiekt(y)</b> do zamiany na znacznik"
 
-#: ../src/ui/dialog/document-properties.cpp:110
-msgid "Snap nodes to object paths"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje przyciąganie węzłów do ścieżek obiektów"
+#: ../src/selection-chemistry.cpp:2154
+msgid "Objects to marker"
+msgstr "Obiekty na znacznik"
 
-#: ../src/ui/dialog/document-properties.cpp:111
-msgid "Snap to n_odes"
-msgstr "Przyciągaj do wę_złów"
+#: ../src/selection-chemistry.cpp:2182
+msgid "Select <b>object(s)</b> to convert to guides."
+msgstr "Zaznacz <b>obiekt(y)</b> do zamiany na prowadnice"
 
-#: ../src/ui/dialog/document-properties.cpp:111
-msgid "Snap nodes and guides to object nodes"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje przyciąganie węzłów i prowadnic do węzłów "
-"obiektu"
+#: ../src/selection-chemistry.cpp:2194
+msgid "Objects to guides"
+msgstr "Obiekty na prowadnice"
 
-#: ../src/ui/dialog/document-properties.cpp:112
-msgid "Snap to bounding bo_x edges"
-msgstr "Przyciągaj do _krawędzi obramowania obiektu"
+#: ../src/selection-chemistry.cpp:2210
+msgid "Select <b>object(s)</b> to convert to pattern."
+msgstr "Zaznacz <b>obiekt(y)</b> do zamiany na deseń"
 
-#: ../src/ui/dialog/document-properties.cpp:112
-msgid "Snap bounding box corners and guides to bounding box edges"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje przyciąganie narożników obramowania obiektu "
-"i prowadnic do krawędzi obramowania obiektu"
+#: ../src/selection-chemistry.cpp:2298
+msgid "Objects to pattern"
+msgstr "Obiekty na deseń"
 
-#: ../src/ui/dialog/document-properties.cpp:113
-msgid "Snap to bounding box co_rners"
-msgstr "Przyciągaj do narożników obra_mowania"
+#: ../src/selection-chemistry.cpp:2314
+msgid "Select an <b>object with pattern fill</b> to extract objects from."
+msgstr "Zaznacz <b>obiekt z wypełnieniem deseniem</b>, z którego wyodrębnione zostaną obiekty"
 
-#: ../src/ui/dialog/document-properties.cpp:113
-msgid "Snap bounding box corners to other bounding box corners"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje przyciąganie narożników obramowania obiektu "
-"do innych narożników obramowania"
+#: ../src/selection-chemistry.cpp:2367
+msgid "<b>No pattern fills</b> in the selection."
+msgstr "W zaznaczeniu <b>brak deseni wypełnienia</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:114
-msgid "Snap to page border"
-msgstr "Przyciągaj do obramowania strony"
+#: ../src/selection-chemistry.cpp:2370
+msgid "Pattern to objects"
+msgstr "Deseń na obiekty"
 
-#: ../src/ui/dialog/document-properties.cpp:114
-msgid "Snap bounding box corners and nodes to the page border"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje przyciąganie narożników obramowania obiektu "
-"i węzłów do krawędzi obramowania strony"
+#: ../src/selection-chemistry.cpp:2455
+msgid "Select <b>object(s)</b> to make a bitmap copy."
+msgstr "Zaznacz <b>obiekt(y)</b> do skopiowania jako bitmapa"
 
-#. ---------------------------------------------------------------
-#. Applies to both nodes and guides, but not to bboxes, that's why its located here
-#: ../src/ui/dialog/document-properties.cpp:117
-msgid "Rotation _center"
-msgstr "Środek o_brotu"
+#: ../src/selection-chemistry.cpp:2459
+msgid "Rendering bitmap..."
+msgstr "Rendeowanie bitmapy..."
 
-#: ../src/ui/dialog/document-properties.cpp:117
-msgid "Consider the rotation center of an object when snapping"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona podczas przyciągania będzie uwzględniany "
-"środek obrotu obiektu"
+#: ../src/selection-chemistry.cpp:2623
+msgid "Create bitmap"
+msgstr "Utwórz bitmapę"
 
-#: ../src/ui/dialog/document-properties.cpp:118
-msgid "_Grid with guides"
-msgstr "_Siatka z prowadnicami"
+#: ../src/selection-chemistry.cpp:2655
+msgid "Select <b>object(s)</b> to create clippath or mask from."
+msgstr "Zaznacz <b>obiekt(y)</b> do utworzenia ścieżki przycinania lub maski"
 
-#: ../src/ui/dialog/document-properties.cpp:118
-msgid "Snap to grid-guide intersections"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona będzie następowało przyciąganie do "
-"punktów przecięcia siatki i prowadnic"
+#: ../src/selection-chemistry.cpp:2658
+msgid "Select mask object and <b>object(s)</b> to apply clippath or mask to."
+msgstr "Zaznacz obiekt maskujący i <b>obiekt(y)</b>, dla których zastosować ścieżkę przycinania lub maskę"
 
-#: ../src/ui/dialog/document-properties.cpp:119
-msgid "_Line segments"
-msgstr "_Odcinki"
+#: ../src/selection-chemistry.cpp:2765
+msgid "Set clipping path"
+msgstr "Określ ścieżkę przycinania"
 
-#: ../src/ui/dialog/document-properties.cpp:119
-msgid ""
-"Snap to intersections of line segments ('snap to paths' must be enabled, see "
-"the previous tab)"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona będzie następowało przyciąganie do "
-"przecięcia odcinków. Na poprzedniej karcie musi być zaznaczona opcja "
-"\"Przyciągaj do ścieżek\"."
+#: ../src/selection-chemistry.cpp:2767
+msgid "Set mask"
+msgstr "Określ maskę"
 
-#. TRANSLATORS: In Grid|_New translate only the word _New. It ref to grid
-#: ../src/ui/dialog/document-properties.cpp:124
-msgid "Grid|_New"
-msgstr "_Nowa"
+#: ../src/selection-chemistry.cpp:2780
+msgid "Select <b>object(s)</b> to remove clippath or mask from."
+msgstr "Zaznacz <b>obiekt(y)</b> do usunięcia ścieżki przycinania lub maski"
 
-#: ../src/ui/dialog/document-properties.cpp:124
-msgid "Create new grid."
-msgstr "Utwórz nową siatkę"
+#: ../src/selection-chemistry.cpp:2853
+msgid "Release clipping path"
+msgstr "Zdejmij ścieżkę przycinania"
 
-#: ../src/ui/dialog/document-properties.cpp:125
-msgid "_Remove"
-msgstr "_Usuń"
+#: ../src/selection-chemistry.cpp:2855
+msgid "Release mask"
+msgstr "Zdejmij maskę"
 
-#: ../src/ui/dialog/document-properties.cpp:125
-msgid "Remove selected grid."
-msgstr "Usuń zaznaczoną siatkę"
+#: ../src/selection-chemistry.cpp:2871
+msgid "Select <b>object(s)</b> to fit canvas to."
+msgstr "Zaznacz <b>obiekt(y)</b> do wypełnienia obszaru roboczego"
 
-#: ../src/ui/dialog/document-properties.cpp:135
-msgid "Guides"
-msgstr "Prowadnice"
+#. Fit Page
+#: ../src/selection-chemistry.cpp:2891
+#: ../src/verbs.cpp:2715
+msgid "Fit Page to Selection"
+msgstr "Dopasuj stronę do ramki zaznaczenia"
 
-#: ../src/ui/dialog/document-properties.cpp:136
-#: ../src/ui/dialog/inkscape-preferences.cpp:905
-msgid "Grids"
-msgstr "Siatki"
+#: ../src/selection-chemistry.cpp:2916
+#: ../src/verbs.cpp:2717
+msgid "Fit Page to Drawing"
+msgstr "Dopasuj stronę do rysunku"
 
-#: ../src/ui/dialog/document-properties.cpp:137 ../src/verbs.cpp:2498
-msgid "Snap"
-msgstr "Przyciąganie"
+#: ../src/selection-chemistry.cpp:2932
+#: ../src/verbs.cpp:2719
+msgid "Fit Page to Selection or Drawing"
+msgstr "Dopasuj stronę do zaznaczenia lub rysunku"
 
-#: ../src/ui/dialog/document-properties.cpp:138
-msgid "Snap points"
-msgstr "Punkty przyciągania"
+#. TRANSLATORS: only translate and put "Link" in the translation. It means internet link (anchor)
+#: ../src/selection-describer.cpp:43
+msgid "web|Link"
+msgstr "Odnośnik"
 
-#: ../src/ui/dialog/document-properties.cpp:227
-msgid "<b>General</b>"
-msgstr "<b>Ogólne</b>"
+#: ../src/selection-describer.cpp:45
+msgid "Circle"
+msgstr "Okrąg"
 
-#: ../src/ui/dialog/document-properties.cpp:229
-msgid "<b>Border</b>"
-msgstr "<b>Kontur</b>"
+#. ellipse
+#: ../src/selection-describer.cpp:47
+#: ../src/selection-describer.cpp:73
+#: ../src/ui/dialog/inkscape-preferences.cpp:434
+#: ../src/verbs.cpp:2506
+#: ../src/widgets/toolbox.cpp:3411
+msgid "Ellipse"
+msgstr "Elipsa"
 
-#: ../src/ui/dialog/document-properties.cpp:231
-msgid "<b>Format</b>"
-msgstr "<b>Format strony</b>"
+#: ../src/selection-describer.cpp:49
+msgid "Flowed text"
+msgstr "Tekst opływający"
 
-#: ../src/ui/dialog/document-properties.cpp:259
-msgid "<b>Guides</b>"
-msgstr "<b>Prowadnice</b>"
+#: ../src/selection-describer.cpp:55
+msgid "Line"
+msgstr "Linia"
 
-#: ../src/ui/dialog/document-properties.cpp:278
-msgid "Snap _distance"
-msgstr "Odległość p_rzyciągania"
+#: ../src/selection-describer.cpp:57
+msgid "Path"
+msgstr "Ścieżka"
 
-#: ../src/ui/dialog/document-properties.cpp:278
-msgid "Snap only when _closer than:"
-msgstr "Przyciągaj tylko z _odległości mniejszej niż:"
+#: ../src/selection-describer.cpp:59
+#: ../src/widgets/toolbox.cpp:2247
+msgid "Polygon"
+msgstr "Wielokąt"
 
-#: ../src/ui/dialog/document-properties.cpp:278
-#: ../src/ui/dialog/document-properties.cpp:284
-#: ../src/ui/dialog/document-properties.cpp:290
-msgid "Always snap"
-msgstr "Zawsze przyciągaj"
+#: ../src/selection-describer.cpp:61
+msgid "Polyline"
+msgstr "Linia łamana"
 
-#: ../src/ui/dialog/document-properties.cpp:279
-msgid "Snapping distance, in screen pixels, for snapping to objects"
-msgstr "Odległość przyciągania (w pikselach) z jakiej obiekty będą przyciągane"
+#. Rectangle
+#: ../src/selection-describer.cpp:63
+#: ../src/ui/dialog/inkscape-preferences.cpp:424
+#: ../src/verbs.cpp:2502
+msgid "Rectangle"
+msgstr "Prostokąt"
 
-#: ../src/ui/dialog/document-properties.cpp:279
-msgid "Always snap to objects, regardless of their distance"
-msgstr "Zawsze przyciągaj do obiektów, bez względu na ich odległość"
+#. 3D box
+#: ../src/selection-describer.cpp:65
+#: ../src/ui/dialog/inkscape-preferences.cpp:429
+#: ../src/verbs.cpp:2504
+msgid "3D Box"
+msgstr "Obiekt 3D"
 
-#: ../src/ui/dialog/document-properties.cpp:280
-msgid ""
-"If set, objects only snap to another object when it's within the range "
-"specified below"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, obiekty będą przyciągane do innego "
-"obiektu tylko jeśli ten obiekt znajduje się w zasięgu określonym poniżej"
+#: ../src/selection-describer.cpp:71
+msgid "object|Clone"
+msgstr "Klon"
 
-#. Options for snapping to grids
-#: ../src/ui/dialog/document-properties.cpp:284
-msgid "Snap d_istance"
-msgstr "Odległość przy_ciągania"
+#: ../src/selection-describer.cpp:75
+msgid "Offset path"
+msgstr "Ścieżka odsunięta"
 
-#: ../src/ui/dialog/document-properties.cpp:284
-msgid "Snap only when c_loser than:"
-msgstr "Przyciągaj tylko z o_dległości mniejszej niż:"
+#. spiral
+#: ../src/selection-describer.cpp:77
+#: ../src/ui/dialog/inkscape-preferences.cpp:442
+#: ../src/verbs.cpp:2510
+msgid "Spiral"
+msgstr "Spirala"
 
-#: ../src/ui/dialog/document-properties.cpp:285
-msgid "Snapping distance, in screen pixels, for snapping to grid"
-msgstr ""
-"Odległość przyciągania, w pikselach, z jakiej obiekty będą przyciągane do "
-"siatki"
+#. star
+#: ../src/selection-describer.cpp:79
+#: ../src/ui/dialog/inkscape-preferences.cpp:438
+#: ../src/verbs.cpp:2508
+#: ../src/widgets/toolbox.cpp:2254
+msgid "Star"
+msgstr "Gwiazda"
 
-#: ../src/ui/dialog/document-properties.cpp:285
-msgid "Always snap to grids, regardless of the distance"
-msgstr "Zawsze przyciągaj do siatek, bez względu na odległość"
+#: ../src/selection-describer.cpp:115
+msgid "Click selection to toggle scale/rotation handles"
+msgstr "Kliknij na zaznaczenie, aby przełączać pomiędzy trybem skalowania/obracania uchwytów"
 
-#: ../src/ui/dialog/document-properties.cpp:286
-msgid ""
-"If set, objects only snap to a grid line when it's within the range "
-"specified below"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, obiekty będą przyciągane do siatki "
-"tylko, gdy znajdują się w określonym poniżej zasięgu"
+#. no items
+#: ../src/selection-describer.cpp:117
+msgid "No objects selected. Click, Shift+click, or drag around objects to select."
+msgstr "Nie zaznaczono obiektów. Aby zaznaczyć obiekt należy kliknąć na nim, nacisnąć Shift + kliknąć lub wykonać ciągnięcie wokół obiektów"
 
-#. Options for snapping to guides
-#: ../src/ui/dialog/document-properties.cpp:290
-msgid "Snap dist_ance"
-msgstr "Odległość _przyciągania"
+#: ../src/selection-describer.cpp:126
+msgid "root"
+msgstr "warstwie głównej"
 
-#: ../src/ui/dialog/document-properties.cpp:290
-msgid "Snap only when close_r than:"
-msgstr "Przyciągaj tylko z odle_głości mniejszej niż:"
+#: ../src/selection-describer.cpp:138
+#, c-format
+msgid "layer <b>%s</b>"
+msgstr "warstwie <b>%s</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:291
-msgid "Snapping distance, in screen pixels, for snapping to guides"
-msgstr ""
-"Odległość przyciągania, w pikselach, z jakiej obiekty będą przyciągane do "
-"prowadnic"
+#: ../src/selection-describer.cpp:140
+#, c-format
+msgid "layer <b><i>%s</i></b>"
+msgstr "warstwie <b><i>%s</i></b>"
 
-#: ../src/ui/dialog/document-properties.cpp:291
-msgid "Always snap to guides, regardless of the distance"
-msgstr "Zawsze przyciągaj do prowadnic, bez względu na odległość"
+#: ../src/selection-describer.cpp:149
+#, c-format
+msgid "<i>%s</i>"
+msgstr "<i>%s</i>"
 
-#: ../src/ui/dialog/document-properties.cpp:292
-msgid ""
-"If set, objects only snap to a guide when it's within the range specified "
-"below"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, obiekty będą przyciągane do prowadnicy "
-"tylko, gdy znajdują się w określonym poniżej zasięgu"
+#: ../src/selection-describer.cpp:158
+#, c-format
+msgid " in %s"
+msgstr " na %s"
 
-#: ../src/ui/dialog/document-properties.cpp:315
-msgid "<b>Snapping</b>"
-msgstr "<b>Przyciąganie</b>"
+#: ../src/selection-describer.cpp:160
+#, c-format
+msgid " in group %s (%s)"
+msgstr " w grupie %s (%s)"
+
+#: ../src/selection-describer.cpp:162
+#, c-format
+msgid " in <b>%i</b> parents (%s)"
+msgid_plural " in <b>%i</b> parents (%s)"
+msgstr[0] " w <b>%i</b> nadrzędnych (%s)"
+msgstr[1] " w <b>%i</b> nadrzędnych (%s)"
+msgstr[2] " w <b>%i</b> nadrzędnych (%s)"
 
-#: ../src/ui/dialog/document-properties.cpp:317
-msgid "<b>What snaps</b>"
-msgstr "<b>Elementy przyciągane</b>"
+#: ../src/selection-describer.cpp:165
+#, c-format
+msgid " in <b>%i</b> layers"
+msgid_plural " in <b>%i</b> layers"
+msgstr[0] " na <b>%i</b> warstwie"
+msgstr[1] " na <b>%i</b> warstwach"
+msgstr[2] " na <b>%i</b> warstwach"
 
-#: ../src/ui/dialog/document-properties.cpp:319
-msgid "<b>Snap to objects</b>"
-msgstr "<b>Przyciąganie do obiektów</b>"
+#: ../src/selection-describer.cpp:175
+msgid "Use <b>Shift+D</b> to look up original"
+msgstr "Naciśnij <b>Shift + D</b>, aby odszukać oryginał"
 
-#: ../src/ui/dialog/document-properties.cpp:321
-msgid "<b>Snap to grids</b>"
-msgstr "<b>Przyciąganie do siatek</b>"
+#: ../src/selection-describer.cpp:179
+msgid "Use <b>Shift+D</b> to look up path"
+msgstr "Naciśnij <b>Shift + D</b>, aby odszukać ścieżkę"
 
-#: ../src/ui/dialog/document-properties.cpp:323
-msgid "<b>Snap to guides</b>"
-msgstr "<b>Przyciąganie do prowadnic</b>"
+#: ../src/selection-describer.cpp:183
+msgid "Use <b>Shift+D</b> to look up frame"
+msgstr "Naciśnij <b>Shift + D</b>, aby odszukać ramkę"
 
-#: ../src/ui/dialog/document-properties.cpp:361
-msgid "<b>Snapping to intersections of</b>"
-msgstr "<b>Przyciąganie do skrzyżowania siatki z prowadnicą</b>"
+#. this is only used with 2 or more objects
+#: ../src/selection-describer.cpp:198
+#: ../src/tweak-context.cpp:204
+#, c-format
+msgid "<b>%i</b> object selected"
+msgid_plural "<b>%i</b> objects selected"
+msgstr[0] "Zaznaczono <b>%i</b> obiekt"
+msgstr[1] "Zaznaczono <b>%i</b> obiekty"
+msgstr[2] "Zaznaczono <b>%i</b> obiektów"
 
-#: ../src/ui/dialog/document-properties.cpp:363
-msgid "<b>Special points to consider</b>"
-msgstr "<b>Punkty specjalne do uwzględnienia</b>"
+#. this is only used with 2 or more objects
+#: ../src/selection-describer.cpp:203
+#, c-format
+msgid "<b>%i</b> object of type <b>%s</b>"
+msgid_plural "<b>%i</b> objects of type <b>%s</b>"
+msgstr[0] "<b>%i</b> obiekt typu <b>%s</b>"
+msgstr[1] "<b>%i</b> obiekty typu <b>%s</b>"
+msgstr[2] "<b>%i</b> obiektów typu <b>%s</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:433
-msgid "<b>Creation</b>"
-msgstr "<b>Tworzenie</b>"
+#. this is only used with 2 or more objects
+#: ../src/selection-describer.cpp:208
+#, c-format
+msgid "<b>%i</b> object of types <b>%s</b>, <b>%s</b>"
+msgid_plural "<b>%i</b> objects of types <b>%s</b>, <b>%s</b>"
+msgstr[0] "<b>%i</b> obiekt typu <b>%s</b>, <b>%s</b>"
+msgstr[1] "<b>%i</b> obiekty typu <b>%s</b>, <b>%s</b>"
+msgstr[2] "<b>%i</b> obiektów typu <b>%s</b>, <b>%s</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:434
-msgid "<b>Defined grids</b>"
-msgstr "<b>Zdefiniowane siatki</b>"
+#. this is only used with 2 or more objects
+#: ../src/selection-describer.cpp:213
+#, c-format
+msgid "<b>%i</b> object of types <b>%s</b>, <b>%s</b>, <b>%s</b>"
+msgid_plural "<b>%i</b> objects of types <b>%s</b>, <b>%s</b>, <b>%s</b>"
+msgstr[0] "<b>%i</b> obiekt typu <b>%s</b>, <b>%s</b>, <b>%s</b>"
+msgstr[1] "<b>%i</b> obiekty typu <b>%s</b>, <b>%s</b>, <b>%s</b>"
+msgstr[2] "<b>%i</b> obiektów typu <b>%s</b>, <b>%s</b>, <b>%s</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:650
-msgid "Remove grid"
-msgstr "Usuń siatkę"
+#. this is only used with 2 or more objects
+#: ../src/selection-describer.cpp:218
+#, c-format
+msgid "<b>%i</b> object of <b>%i</b> types"
+msgid_plural "<b>%i</b> objects of <b>%i</b> types"
+msgstr[0] "<b>%i</b> obiekt <b>%i</b> typów"
+msgstr[1] "<b>%i</b> obiekty <b>%i</b> typów"
+msgstr[2] "<b>%i</b> obiektów <b>%i</b> typów"
 
-#: ../src/ui/dialog/export.cpp:32
-msgid "Export"
-msgstr "Eksportuj"
+#: ../src/selection-describer.cpp:223
+#, c-format
+msgid "%s%s. %s."
+msgstr "%s%s. %s."
 
-#: ../src/ui/dialog/extension-editor.cpp:80
-msgid "Information"
-msgstr "Informacje"
+#: ../src/seltrans.cpp:455
+#: ../src/ui/dialog/transformation.cpp:815
+msgid "Skew"
+msgstr "Pochyl"
 
-#: ../src/ui/dialog/extension-editor.cpp:81
-#: ../share/extensions/lindenmayer.inx.h:3 ../share/extensions/measure.inx.h:2
-msgid "Help"
-msgstr "Pomoc"
+#: ../src/seltrans.cpp:467
+msgid "Set center"
+msgstr "Określ środek"
 
-#: ../src/ui/dialog/extension-editor.cpp:82
-msgid "Parameters"
-msgstr "Parametry"
+#: ../src/seltrans.cpp:564
+msgid "<b>Center</b> of rotation and skewing: drag to reposition; scaling with Shift also uses this center"
+msgstr "<b>Środek</b> obrotu i skręcenia. Ciągnij, aby przesunąć. Skalowanie z Shift także wykorzystuje ten środek."
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:382
-msgid "No preview"
-msgstr "Brak podglądu"
+#: ../src/seltrans.cpp:591
+msgid "<b>Squeeze or stretch</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
+msgstr "<b>Ścieśnij lub rozciągnij</b> zaznaczenie; z <b>Ctrl</b> - skalowanie proporcjonalne, z <b>Shift</b> - skalowanie od środka obrotu."
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:488
-msgid "too large for preview"
-msgstr "Za duży, aby otworzyć podgląd"
+#: ../src/seltrans.cpp:592
+msgid "<b>Scale</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
+msgstr "<b>Skalowanie</b> zaznaczenia; z <b>Ctrl</b> - skalowanie proporcjonalne, z <b>Shift</b> - skalowanie od środka obrotu."
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:577
-msgid "Enable preview"
-msgstr "Włącz podgląd"
+#: ../src/seltrans.cpp:596
+msgid "<b>Skew</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to skew around the opposite side"
+msgstr "<b>Pochylenie</b> zaznaczenia; z <b>Ctrl</b> - przyciąganie do kąta, z <b>Shift</b> - obrót wokół narożnika przeciwległego do uchwytu."
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:711
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:712
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:198
-msgid "All Inkscape Files"
-msgstr "Wszystkie pliki Inkscape'a"
+#: ../src/seltrans.cpp:597
+msgid "<b>Rotate</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to rotate around the opposite corner"
+msgstr "<b>Obrót</b> zaznaczenia; z <b>Ctrl</b> - przyciąganie do kąta, z <b>Shift</b> - obrót wokół narożnika przeciwległego do uchwytu."
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:716
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:717
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:197
-msgid "All Files"
-msgstr "Wszystkie pliki"
+#: ../src/seltrans.cpp:731
+msgid "Reset center"
+msgstr "Resetuj środek"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:722
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:723
-msgid "All Images"
-msgstr "Wszystkie obrazki"
+#: ../src/seltrans.cpp:975
+#: ../src/seltrans.cpp:1074
+#, c-format
+msgid "<b>Scale</b>: %0.2f%% x %0.2f%%; with <b>Ctrl</b> to lock ratio"
+msgstr "<b>Skalowanie</b>: %0.2f%% x %0.2f%%; z <b>Ctrl</b> - blokada proporcji."
 
-#. ###### Add the file types menu
-#. createFilterMenu();
-#. ###### Do we want the .xxx extension automatically added?
-#. ###### File options
-#. ###### Do we want the .xxx extension automatically added?
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:887
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1429
-msgid "Append filename extension automatically"
-msgstr "Dodaj automatycznie rozszerzenie nazwy pliku"
+#. TRANSLATORS: don't modify the first ";"
+#. (it will NOT be displayed as ";" - only the second one will be)
+#: ../src/seltrans.cpp:1185
+#, c-format
+msgid "<b>Skew</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
+msgstr "<b>Pochylenie</b>: %0.2f&#176; z <b>Ctrl</b> - przyciąganie do kąta."
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1042
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1294
-msgid "Guess from extension"
-msgstr "Wszystkie pliki (*.*)"
+#. TRANSLATORS: don't modify the first ";"
+#. (it will NOT be displayed as ";" - only the second one will be)
+#: ../src/seltrans.cpp:1244
+#, c-format
+msgid "<b>Rotate</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
+msgstr "<b>Obrót</b>: %0.2f&#176; z <b>Ctrl</b> - przyciąganie do kąta."
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1315
-msgid "Left edge of source"
-msgstr "Lewa krawędź źródła"
+#: ../src/seltrans.cpp:1285
+#, c-format
+msgid "Move <b>center</b> to %s, %s"
+msgstr "Przesunięcie <b>środka</b> do %s, %s"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1316
-msgid "Top edge of source"
-msgstr "Górna krawędź źródła"
+#: ../src/seltrans.cpp:1446
+#, c-format
+msgid "<b>Move</b> by %s, %s; with <b>Ctrl</b> to restrict to horizontal/vertical; with <b>Shift</b> to disable snapping"
+msgstr "<b>Przesunięcie</b> o %s, %s; z <b>Ctrl</b> - poziomo/pionowo, z <b>Shift</b> - wyłączenie przyciągania."
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1317
-msgid "Right edge of source"
-msgstr "Prawa krawędź źródła"
+#: ../src/shape-editor.cpp:474
+msgid "Drag curve"
+msgstr "Przeciągnij krzywą"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1318
-msgid "Bottom edge of source"
-msgstr "Dolna krawędź źródła"
+#: ../src/sp-anchor.cpp:178
+#, c-format
+msgid "<b>Link</b> to %s"
+msgstr "<b>Odnośnik</b> do %s"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1319
-msgid "Source width"
-msgstr "Szerokość źródła"
+#: ../src/sp-anchor.cpp:182
+msgid "<b>Link</b> without URI"
+msgstr "<b>Odnośnik</b> bez identyfikatora URI"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1320
-msgid "Source height"
-msgstr "Wysokość źródła"
+#: ../src/sp-ellipse.cpp:466
+#: ../src/sp-ellipse.cpp:845
+msgid "<b>Ellipse</b>"
+msgstr "<b>Elipsa</b>"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1321
-msgid "Destination width"
-msgstr "Szerokość miejsca docelowego"
+#: ../src/sp-ellipse.cpp:607
+msgid "<b>Circle</b>"
+msgstr "<b>Okrąg</b>"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1322
-msgid "Destination height"
-msgstr "Wysokość miejsca docelowego"
+#: ../src/sp-ellipse.cpp:840
+msgid "<b>Segment</b>"
+msgstr "<b>Odcinek</b>"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1323
-msgid "Resolution (dots per inch)"
-msgstr "Rozdzielczość (w dpi)"
+#: ../src/sp-ellipse.cpp:842
+msgid "<b>Arc</b>"
+msgstr "<b>Łuk</b>"
 
-#. #########################################
-#. ## EXTRA WIDGET -- SOURCE SIDE
-#. #########################################
-#. ##### Export options buttons/spinners, etc
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1360
-msgid "Document"
-msgstr "Dokument"
+#. TRANSLATORS: "Flow region" is an area where text is allowed to flow
+#: ../src/sp-flowregion.cpp:273
+#, c-format
+msgid "Flow region"
+msgstr "Obszar wypełniany tekstem"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1372
-#: ../share/extensions/color_custom.inx.h:3
-msgid "Custom"
-msgstr "Dostosuj"
+#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the
+#. * flow excluded region.  flowRegionExclude in SVG 1.2: see
+#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and
+#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem.
+#: ../src/sp-flowregion.cpp:492
+#, c-format
+msgid "Flow excluded region"
+msgstr "Obszar niewypełniany tekstem"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1412
-msgid "Cairo"
-msgstr "Cairo"
+#: ../src/sp-flowtext.cpp:377
+#, c-format
+msgid "<b>Flowed text</b> (%d character)"
+msgid_plural "<b>Flowed text</b> (%d characters)"
+msgstr[0] "<b>Tekst wpisany</b> (%d znak)"
+msgstr[1] "<b>Tekst wpisany</b> (%d znaki)"
+msgstr[2] "<b>Tekst wpisany</b> (%d znaków)"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1415
-msgid "Antialias"
-msgstr "Wygładzanie"
+#: ../src/sp-flowtext.cpp:379
+#, c-format
+msgid "<b>Linked flowed text</b> (%d character)"
+msgid_plural "<b>Linked flowed text</b> (%d characters)"
+msgstr[0] "<b>Połączony tekst wpisany</b> (%d znak)"
+msgstr[1] "<b>Połączony tekst wpisany</b> (%d znaki)"
+msgstr[2] "<b>Połączony tekst wpisany</b> (%d znaków)"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1418
-msgid "Background"
-msgstr "Tło"
+#: ../src/sp-guide.cpp:287
+msgid "Guides around page"
+msgstr "Prowadnice wokół strony"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1441
-msgid "Destination"
-msgstr "Miejsce docelowe"
+#: ../src/sp-guide.cpp:420
+#, c-format
+msgid "vertical, at %s"
+msgstr "pionowa, na %s"
 
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:199
-msgid "All Image Files"
-msgstr "Wszystkie obrazki"
+#: ../src/sp-guide.cpp:423
+#, c-format
+msgid "horizontal, at %s"
+msgstr "pozioma, na %s"
 
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:428
-msgid "Show Preview"
-msgstr "Podgląd"
+#: ../src/sp-guide.cpp:428
+#, c-format
+msgid "at %d degrees, through (%s,%s); <b>Ctrl</b>+click to delete"
+msgstr "o %d stopni, przez (%s,%s). Użyj <b>Ctrl</b> + kliknięcie, aby usunąć"
 
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:564
-msgid "No file selected"
-msgstr "Nie wybrano pliku"
+#: ../src/sp-image.cpp:1100
+msgid "embedded"
+msgstr "osadzony"
 
-#: ../src/ui/dialog/fill-and-stroke.cpp:53
-msgid "Fill"
-msgstr "Wypełnienie"
+#: ../src/sp-image.cpp:1108
+#, c-format
+msgid "<b>Image with bad reference</b>: %s"
+msgstr "<b>Obrazek z niepoprawnym odwołaniem</b>: %s"
 
-#: ../src/ui/dialog/fill-and-stroke.cpp:54
-msgid "Stroke _paint"
-msgstr "_Kontur"
+#: ../src/sp-image.cpp:1109
+#, c-format
+msgid "<b>Image</b> %d &#215; %d: %s"
+msgstr "<b>Obrazek</b> %d &#215; %d: %s"
 
-#: ../src/ui/dialog/fill-and-stroke.cpp:55
-msgid "Stroke st_yle"
-msgstr "_Styl konturu"
+#: ../src/sp-item-group.cpp:746
+#, c-format
+msgid "<b>Group</b> of <b>%d</b> object"
+msgid_plural "<b>Group</b> of <b>%d</b> objects"
+msgstr[0] "<b>Grupa</b> z <b>%d</b> obiektem"
+msgstr[1] "<b>Grupa</b> <b>%d</b> obiektów"
+msgstr[2] "<b>Grupa</b> <b>%d</b> obiektów"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:504
-msgid ""
-"This matrix determines a linear transform on colour space. Each line affects "
-"one of the color components. Each column determines how much of each color "
-"component from the input is passed to the output. The last column does not "
-"depend on input colors, so can be used to adjust a constant component value."
-msgstr ""
-"Ta macierz określa liniową transformację przestrzeni koloru. Każdy wiersz "
-"wpływa na jedną składową koloru. Każda kolumna określa jaka część koloru "
-"wejściowego jest używana na wyjściu. Ostatnia kolumna nie jest zależna od "
-"koloru wejściowego, może być więc użyta do ustawienia dodatkowej stałej "
-"wartości składowej."
+#: ../src/sp-item.cpp:1018
+msgid "Object"
+msgstr "Obiekt"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:614
-msgid "Image File"
-msgstr "Plik obrazka"
+#: ../src/sp-item.cpp:1035
+#, c-format
+msgid "%s; <i>clipped</i>"
+msgstr "%s; <i>przycięte</i>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:617
-msgid "Selected SVG Element"
-msgstr "Zaznaczony element SVG"
+#: ../src/sp-item.cpp:1040
+#, c-format
+msgid "%s; <i>masked</i>"
+msgstr "%s; <i>zamaskowany</i>"
 
-#. TODO: any image, not justy svg
-#: ../src/ui/dialog/filter-effects-dialog.cpp:686
-msgid "Select an image to be used as feImage input"
-msgstr "Zaznacz obrazek, który będzie użyty jako źródło filtru \"feImage\""
+#: ../src/sp-item.cpp:1045
+#, c-format
+msgid "%s; <i>filtered</i>"
+msgstr "%s; <i>odfiltrowane</i>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:778
-msgid "This SVG filter effect does not require any parameters."
-msgstr "Ten efekt filtru SVG nie wymaga żadnych parametrów"
+#: ../src/sp-line.cpp:188
+msgid "<b>Line</b>"
+msgstr "<b>Linia</b>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:784
-msgid "This SVG filter effect is not yet implemented in Inkscape."
-msgstr "Ten efekt filtru SVG nie został jeszcze zaimplementowany w Inkscape."
+#: ../src/sp-lpe-item.cpp:339
+msgid "An exception occurred during execution of the Path Effect."
+msgstr "Wystąpił błąd podczas wykonywania efektu ścieżki"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:975
-msgid "Light Source:"
-msgstr "Źródło światła:"
+#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign
+#: ../src/sp-offset.cpp:426
+#, c-format
+msgid "<b>Linked offset</b>, %s by %f pt"
+msgstr "<b>Połączone przesunięcie</b>, %s o %f pkt"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:992
-msgid "Direction angle for the light source on the XY plane, in degrees"
-msgstr "Kierunek kąta źródła światła na płaszczyźnie XY (w stopniach)"
+#: ../src/sp-offset.cpp:427
+#: ../src/sp-offset.cpp:431
+msgid "inset"
+msgstr "do wewnątrz"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:993
-msgid "Direction angle for the light source on the YZ plane, in degrees"
-msgstr "Kierunek kąta źródła światła na płaszczyźnie YZ (w stopniach)"
+#: ../src/sp-offset.cpp:427
+#: ../src/sp-offset.cpp:431
+msgid "outset"
+msgstr "na zewnątrz"
 
-#. default x:
-#. default y:
-#. default z:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:996
-#: ../src/ui/dialog/filter-effects-dialog.cpp:999
-msgid "Location"
-msgstr "Lokalizacja"
+#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign
+#: ../src/sp-offset.cpp:430
+#, c-format
+msgid "<b>Dynamic offset</b>, %s by %f pt"
+msgstr "<b>Odsunięcie dynamiczne</b>, %s o %f pkt"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:996
-#: ../src/ui/dialog/filter-effects-dialog.cpp:999
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1002
-msgid "X coordinate"
-msgstr "Współrzędna X"
+#: ../src/sp-path.cpp:137
+#, c-format
+msgid "<b>Path</b> (%i node, path effect)"
+msgid_plural "<b>Path</b> (%i nodes, path effect)"
+msgstr[0] "<b>Ścieżka</b> (%i węzeł, efekt ścieżki)"
+msgstr[1] "<b>Ścieżka</b> (%i węzły, efekt ścieżki)"
+msgstr[2] "<b>Ścieżka</b> (%i węzłów, efekt ścieżki)"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:996
-#: ../src/ui/dialog/filter-effects-dialog.cpp:999
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1002
-msgid "Y coordinate"
-msgstr "Współrzędna Y"
+#: ../src/sp-path.cpp:140
+#, c-format
+msgid "<b>Path</b> (%i node)"
+msgid_plural "<b>Path</b> (%i nodes)"
+msgstr[0] "<b>Ścieżka</b> (%i węzeł)"
+msgstr[1] "<b>Ścieżka</b> (%i węzły)"
+msgstr[2] "<b>Ścieżka</b> (%i węzłów)"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:996
-#: ../src/ui/dialog/filter-effects-dialog.cpp:999
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1002
-msgid "Z coordinate"
-msgstr "Współrzędna Z"
+#: ../src/sp-polygon.cpp:226
+msgid "<b>Polygon</b>"
+msgstr "<b>Wielokąt</b>:"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1002
-msgid "Points At"
-msgstr "Punkty"
+#: ../src/sp-polyline.cpp:177
+msgid "<b>Polyline</b>"
+msgstr "<b>Linia łamana</b>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1003
-msgid "Specular Exponent"
-msgstr "Wykładnik odbicia lustrzanego"
+#: ../src/sp-rect.cpp:225
+msgid "<b>Rectangle</b>"
+msgstr "<b>Prostokąt</b>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1003
-msgid "Exponent value controlling the focus for the light source"
-msgstr "Wykładnik kontrolujący skupienie źródła światła"
+#. TRANSLATORS: since turn count isn't an integer, please adjust the
+#. string as needed to deal with an localized plural forms.
+#: ../src/sp-spiral.cpp:324
+#, c-format
+msgid "<b>Spiral</b> with %3f turns"
+msgstr "<b>Spirala</b> z %3f obrotami"
 
-#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option.
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1005
-msgid "Cone Angle"
-msgstr "Kąt stożka"
+#: ../src/sp-star.cpp:307
+#, c-format
+msgid "<b>Star</b> with %d vertex"
+msgid_plural "<b>Star</b> with %d vertices"
+msgstr[0] "<b>Gwiazda</b> z %d ramieniem"
+msgstr[1] "<b>Gwiazda</b> z %d ramionami"
+msgstr[2] "<b>Gwiazda</b> z %d ramionami"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1005
-msgid ""
-"This is the angle between the spot light axis (i.e. the axis between the "
-"light source and the point to which it is pointing at) and the spot light "
-"cone. No light is projected outside this cone."
-msgstr ""
-"Jest to kąt pomiędzy osią punktu światła (np. oś pomiędzy źródłem światła i "
-"punktem, do którego on jest skierowany), a punktem światła stożka. Na "
-"zewnątrz tego stożka nie ma projekcji światła."
+#: ../src/sp-star.cpp:311
+#, c-format
+msgid "<b>Polygon</b> with %d vertex"
+msgid_plural "<b>Polygon</b> with %d vertices"
+msgstr[0] "<b>Wielokąt</b> z %d wierzchołkiem"
+msgstr[1] "<b>Wielokąt</b> z %d wierzchołkami"
+msgstr[2] "<b>Wielokąt</b> z %d wierzchołkami"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1065
-msgid "New light source"
-msgstr "Nowe źródło światła"
+#: ../src/sp-switch.cpp:100
+#, c-format
+msgid "<b>Conditional group</b> of <b>%d</b> object"
+msgid_plural "<b>Conditional group</b> of <b>%d</b> objects"
+msgstr[0] "<b>Grupa warunkowa</b> <b>%d</b> obiekt"
+msgstr[1] "<b>Grupa warunkowa</b> <b>%d</b> obiekty"
+msgstr[2] "<b>Grupa warunkowa</b> <b>%d</b> obiektów"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1106
-msgid "_Duplicate"
-msgstr "_Powiel"
+#. TRANSLATORS: For description of font with no name.
+#: ../src/sp-text.cpp:419
+msgid "&lt;no name found&gt;"
+msgstr "&lt;nie znaleziono nazwy&gt;"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1132
-msgid "_Filter"
-msgstr "_Filtr"
+#: ../src/sp-text.cpp:425
+#, c-format
+msgid "<b>Text on path</b> (%s, %s)"
+msgstr "<b>Tekst na ścieżce</b> (%s, %s)"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1146
-msgid "R_ename"
-msgstr "Z_mień nazwę"
+#: ../src/sp-text.cpp:426
+#, c-format
+msgid "<b>Text</b> (%s, %s)"
+msgstr "<b>Tekst</b> (%s, %s)"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1240
-msgid "Rename filter"
-msgstr "Zmień nazwę filtru"
+#: ../src/sp-tref.cpp:368
+#, c-format
+msgid "<b>Cloned character data</b>%s%s"
+msgstr "<b>Dane sklonowanego znaku</b> %s%s"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1276
-msgid "Apply filter"
-msgstr "Zastosuj filtr"
+#: ../src/sp-tref.cpp:369
+msgid " from "
+msgstr "z"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1352
-msgid "Add filter"
-msgstr "Dodaj filtr"
+#: ../src/sp-tref.cpp:374
+msgid "<b>Orphaned cloned character data</b>"
+msgstr "<b>Dane osieroconego sklonowanego znaku</b>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1378
-msgid "Duplicate filter"
-msgstr "Powiel filtr"
+#: ../src/sp-tspan.cpp:284
+msgid "<b>Text span</b>"
+msgstr "<b>Rozpiętość tekstu</b>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1445
-msgid "_Effect"
-msgstr "_Efekt"
+#. TRANSLATORS: Used for statusbar description for long <use> chains:
+#. * "Clone of: Clone of: ... in Layer 1".
+#: ../src/sp-use.cpp:327
+msgid "..."
+msgstr "..."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1453
-msgid "Connections"
-msgstr "Połączenia"
+#: ../src/sp-use.cpp:335
+#, c-format
+msgid "<b>Clone</b> of: %s"
+msgstr "<b>Klon</b> obiektu: %s"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1569
-msgid "Remove filter primitive"
-msgstr "Usuń efekt specjalny"
+#: ../src/sp-use.cpp:339
+msgid "<b>Orphaned clone</b>"
+msgstr "<b>Osierocony klon</b>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1940
-msgid "Remove merge node"
-msgstr "Usuń połączenie węzła"
+#: ../src/spiral-context.cpp:344
+msgid "<b>Ctrl</b>: snap angle"
+msgstr "<b>Ctrl</b> - przyciąganie do kąta"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2056
-msgid "Reorder filter primitive"
-msgstr "Zmień ustawienia efektu specjalnego"
+#: ../src/spiral-context.cpp:346
+msgid "<b>Alt</b>: lock spiral radius"
+msgstr "<b>Alt</b> - blokada promienia spirali"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2092
-msgid "Add Effect:"
-msgstr "Dodaj efekt:"
+#: ../src/spiral-context.cpp:471
+#, c-format
+msgid "<b>Spiral</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
+msgstr "<b>Spirala</b>: promień %s, kąt %5g&#176; z <b>Ctrl</b> - przyciąganie do kąta"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2093
-msgid "No effect selected"
-msgstr "Nie wybrano efektu"
+#: ../src/spiral-context.cpp:492
+msgid "Create spiral"
+msgstr "Utwórz spiralę"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2094
-msgid "No filter selected"
-msgstr "Nie wybrano filtru"
+#: ../src/splivarot.cpp:78
+msgid "Intersection"
+msgstr "Część wspólna"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2130
-msgid "Effect parameters"
-msgstr "Parametry efektu"
+#: ../src/splivarot.cpp:84
+#: ../src/splivarot.cpp:90
+msgid "Difference"
+msgstr "Różnica"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2131
-msgid "Filter General Settings"
-msgstr "Ustawienia filtrów"
+#: ../src/splivarot.cpp:101
+msgid "Division"
+msgstr "Podział"
 
-#. default x:
-#. default y:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2187
-msgid "Coordinates"
-msgstr "Współrzędne"
+#: ../src/splivarot.cpp:106
+msgid "Cut path"
+msgstr "Rozcięcie ścieżki"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2187
-msgid "X coordinate of the left corners of filter effects region"
-msgstr "Współrzędna X lewych narożników obszaru efektów filtra"
+#: ../src/splivarot.cpp:121
+msgid "Select <b>at least 2 paths</b> to perform a boolean operation."
+msgstr "Zaznacz <b>co najmniej 2 ścieżki</b>, aby wykonać operację logiczną"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2187
-msgid "Y coordinate of the upper corners of filter effects region"
-msgstr "Współrzędna Y lewych narożników obszaru efektów filtra"
+#: ../src/splivarot.cpp:125
+msgid "Select <b>at least 1 path</b> to perform a boolean union."
+msgstr "Zaznacz <b>co najmniej 1 ścieżkę</b>, aby wykonać sumę logiczną"
 
-#. default width:
-#. default height:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2188
-#: ../share/extensions/dimension.inx.h:1
-msgid "Dimensions"
-msgstr "Wymiary"
+#: ../src/splivarot.cpp:131
+msgid "Select <b>exactly 2 paths</b> to perform difference, XOR, division, or path cut."
+msgstr "Zaznacz <b>2 ścieżki</b>, aby wykonać operację różnicy, wykluczenia, podziału lub rozcięcia ścieżki"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2188
-msgid "Width of filter effects region"
-msgstr "Szerokość obszaru efektów filtra"
+#: ../src/splivarot.cpp:148
+#: ../src/splivarot.cpp:163
+msgid "Unable to determine the <b>z-order</b> of the objects selected for difference, XOR, division, or path cut."
+msgstr "Nie można rozpoznać <b>kolejności</b> obiektów zaznaczonych do różnicy, wykluczenia, podziału lub rozcięcia ścieżki"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2188
-msgid "Height of filter effects region"
-msgstr "Wysokość obszaru efektów filtra"
+#: ../src/splivarot.cpp:193
+msgid "One of the objects is <b>not a path</b>, cannot perform boolean operation."
+msgstr "Jeden z obiektów <b>nie jest ścieżką</b>. Nie można wykonać operacji logicznej."
 
-#. # end multiple scan
-#. ## end mode page
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2191
-#: ../src/ui/dialog/tracedialog.cpp:553 ../src/widgets/toolbox.cpp:3328
-#: ../share/extensions/triangle.inx.h:9
-msgid "Mode"
-msgstr "Tryb"
+#: ../src/splivarot.cpp:634
+msgid "Select <b>stroked path(s)</b> to convert stroke to path."
+msgstr "Wybierz <b>ścieżkę(i) konturu</b> do konwersji konturu na ścieżkę"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2194
-msgid ""
-"Indicates the type of matrix operation. The keyword 'matrix' indicates that "
-"a full 5x4 matrix of values will be provided. The other keywords represent "
-"convenience shortcuts to allow commonly used color operations to be "
-"performed without specifying a complete matrix."
-msgstr ""
-"Wskazuje na operację typu \"macierz\". Słowo kluczowe \"macierz\" wskazuje, "
-"że zostaną przeprowadzone wszystkie wartości macierzy 5x4. Inne słowa "
-"kluczowe reprezentują wygodne w użyciu skróty do przeprowadzenia operacji na "
-"kolorach bez specyfikowania całej macierzy."
+#: ../src/splivarot.cpp:949
+msgid "Convert stroke to path"
+msgstr "Konwertuje kontur na ścieżkę"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2195
-msgid "Value(s)"
-msgstr "Wartość(i)"
+#. TRANSLATORS: "to outline" means "to convert stroke to path"
+#: ../src/splivarot.cpp:952
+msgid "<b>No stroked paths</b> in the selection."
+msgstr "W zaznaczeniu <b>brak ścieżek z konturem</b>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2209
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2250
-msgid "Operator"
-msgstr "Operator"
+#: ../src/splivarot.cpp:1033
+msgid "Selected object is <b>not a path</b>, cannot inset/outset."
+msgstr "Zaznaczony obiekt <b>nie jest ścieżką</b>. Nie można wykonać odsunięcia do wewnątrz/na zewnątrz."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2210
-msgid "K1"
-msgstr "K1"
+#: ../src/splivarot.cpp:1153
+#: ../src/splivarot.cpp:1222
+msgid "Create linked offset"
+msgstr "Utwórz połączone odsunięcie"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2210
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2211
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2212
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2213
-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 ""
-"Jeśli została wybrana operacja arytmetyczna, każdy wynikowy piksel będzie "
-"przeliczany za pomocą formuły k1*i1*i2 + k2*i1 + k3*i2 + k4, gdzie 1 i 2 są "
-"odpowiednio wartościami pierwszego i drugiego piksela.    "
+#: ../src/splivarot.cpp:1154
+#: ../src/splivarot.cpp:1223
+msgid "Create dynamic offset"
+msgstr "Tworzy dynamiczny obiekt odsunięcia"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2211
-msgid "K2"
-msgstr "K2"
+#: ../src/splivarot.cpp:1248
+msgid "Select <b>path(s)</b> to inset/outset."
+msgstr "Zaznacz <b>ścieżkę(i)</b> do odsunięcia na zewnątrz/do wewnątrz"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2212
-msgid "K3"
-msgstr "K3"
+#: ../src/splivarot.cpp:1466
+msgid "Inset path"
+msgstr "Ścieżka przesunięcia wewnętrznego"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2213
-msgid "K4"
-msgstr "K4"
+#: ../src/splivarot.cpp:1466
+msgid "Outset path"
+msgstr "Ścieżka przesunięcia zewnętrznego"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2216
-msgid "width of the convolve matrix"
-msgstr "szerokość macierzy skręcania"
+#: ../src/splivarot.cpp:1468
+msgid "<b>No paths</b> to inset/outset in the selection."
+msgstr "W zaznaczeniu <b>brak ścieżek</b> do odsunięcia do wewnątrz/na zewnątrz"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2216
-msgid "height of the convolve matrix"
-msgstr "wysokość macierzy skręcania"
+#: ../src/splivarot.cpp:1643
+msgid "Simplifying paths (separately):"
+msgstr "Upraszczanie ścieżek (oddzielnie):"
 
-#. default x:
-#. default y:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2217
-msgid "Target"
-msgstr "Cel"
+#: ../src/splivarot.cpp:1645
+msgid "Simplifying paths:"
+msgstr "Upraszczanie ścieżek:"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2217
-msgid ""
-"X coordinate of the target point in the convolve matrix. The convolution is "
-"applied to pixels around this point."
-msgstr ""
-"Współrzędna X punktu docelowego w macierzy skręcania. Skręcenie jest "
-"stosowane do pikseli wokół tego punktu."
+#: ../src/splivarot.cpp:1682
+#, c-format
+msgid "%s <b>%d</b> of <b>%d</b> paths simplified..."
+msgstr "Uproszczono %s <b>%d</b> z <b>%d</b> ścieżek"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2217
-msgid ""
-"Y coordinate of the target point in the convolve matrix. The convolution is "
-"applied to pixels around this point."
-msgstr ""
-"Współrzędna Y punktu docelowego w macierzy skręcania. Skręcenie jest "
-"stosowane do pikseli wokół tego punktu."
+#: ../src/splivarot.cpp:1693
+#, c-format
+msgid "<b>%d</b> paths simplified."
+msgstr "Uproszczono <b>%d</b> ścieżek"
 
-#. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix)
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2219
-msgid "Kernel"
-msgstr "Jądro"
+#: ../src/splivarot.cpp:1707
+msgid "Select <b>path(s)</b> to simplify."
+msgstr "Zaznacz <b>ścieżkę(i)</b> do uproszczenia"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2219
-msgid ""
-"This matrix describes the convolve operation that is applied to the input "
-"image in order to calculate the pixel colors at the output. Different "
-"arrangements of values in this matrix result in various possible visual "
-"effects. An identity matrix would lead to a motion blur effect (parallel to "
-"the matrix diagonal) while a matrix filled with a constant non-zero value "
-"would lead to a common blur effect."
-msgstr ""
-"Ta macierz opisuje operację skręcania stosowaną na obrazku wyjściowym, aby "
-"obliczyć piksele kolorów w obrazku wynikowym. Różne wartości w tej macierzy "
-"dają różne efekty wizualne. Na przykład macierz jednostkowa da efekt "
-"ruchomego rozmycia (równolegle do przekątnej macierzy) natomiast macierz "
-"wypełniona stałą, nie zerową wartością, da efekt zwykłego rozmycia."
+#: ../src/splivarot.cpp:1721
+msgid "Simplify"
+msgstr "Uprość"
 
-#. TODO: svg spec: The default value is the sum of all values in kernelMatrix, with the exception that if the sum is zero, then the divisor is set to 1.
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2222
-msgid "Divisor"
-msgstr "Dzielnik"
+#: ../src/splivarot.cpp:1723
+msgid "<b>No paths</b> to simplify in the selection."
+msgstr "W zaznaczeniu <b>brak ścieżek</b> do uproszczenia"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2222
-msgid ""
-"After applying the kernelMatrix to the input image to yield a number, that "
-"number is divided by divisor to yield the final destination color value. A "
-"divisor that is the sum of all the matrix values tends to have an evening "
-"effect on the overall color intensity of the result."
-msgstr ""
-"Numer uzyskany przez zastosowanie jądra macierzy do obrazu wejściowego jest "
-"dzielony przez dzielnik w celu uzyskania ostatecznej wartości koloru "
-"docelowego. Dzielnik, który jest sumą wszystkich wartości w macierzy, "
-"powoduje zwykle wyrównanie intensywności kolorów obrazu wynikowego."
+#: ../src/star-context.cpp:356
+msgid "<b>Ctrl</b>: snap angle; keep rays radial"
+msgstr "<b>Ctrl</b> - przyciąganie do kąta, zachowanie promienistości"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2223
-msgid "Bias"
-msgstr "Odchylenie"
+#: ../src/star-context.cpp:481
+#, c-format
+msgid "<b>Polygon</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
+msgstr "<b>Wielokąt</b>: promień %s, kąt %5g&#176;; z <b>Ctrl</b> przyciąganie do kąta."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2223
-msgid ""
-"This value is added to each component. This is useful to define a constant "
-"value as the zero response of the filter."
-msgstr ""
-"Ta wartość jest dodawana do każdego komponentu. Jest to przydatne dla "
-"zdefiniowania stałej wartości, która będzie zerową odpowiedzią filtru."
+#: ../src/star-context.cpp:482
+#, c-format
+msgid "<b>Star</b>: radius %s, angle %5g&#176;; with <b>Ctrl</b> to snap angle"
+msgstr "<b>Gwiazda</b>: promień %s, kąt %5g&#176;; z <b>Ctrl</b> przyciąganie do kąta."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2224
-msgid "Edge Mode"
-msgstr "Tryb krawędzi"
+#: ../src/star-context.cpp:505
+msgid "Create star"
+msgstr "Utwórz gwiazdę"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2224
-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 ""
-"Określa jak rozciągać obrazek początkowy z wartościami koloru, aby mogły być "
-"zastosowane operacje macierzowe, gdy jądro filtru jest usytuowane na lub "
-"blisko krawędzi tego obrazka."
+#: ../src/text-chemistry.cpp:104
+msgid "Select <b>a text and a path</b> to put text on path."
+msgstr "Zaznacz <b>tekst i ścieżkę</b>, aby wprowadzić tekst na ścieżkę"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2225
-msgid "Preserve Alpha"
-msgstr "Zachowaj krycie"
+#: ../src/text-chemistry.cpp:109
+msgid "This text object is <b>already put on a path</b>. Remove it from the path first. Use <b>Shift+D</b> to look up its path."
+msgstr "Ten obiekt tekstowy <b>jest już wprowadzony na ścieżkę</b>. Zdejmij go najpierw ze ścieżki. Użyj <b>Shift + D</b>, aby odnaleźć jego ścieżkę."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2225
-msgid "If set, the alpha channel won't be altered by this filter primitive."
-msgstr ""
-"Jeśli opcja ta jest zaznaczona, kanał alfa nie będzie zmieniany przez ten "
-"efekt specjalny."
+#. rect is the only SPShape which is not <path> yet, and thus SVG forbids us from putting text on it
+#: ../src/text-chemistry.cpp:115
+msgid "You cannot put text on a rectangle in this version. Convert rectangle to path first."
+msgstr "W tej wersji programu nie można wprowadzić tekstu na prostokąt. Dokonaj najpierw konwersji prostokąta na ścieżkę."
 
-#. default: white
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2228
-msgid "Diffuse Color"
-msgstr "Kolor rozpraszania"
+#: ../src/text-chemistry.cpp:125
+msgid "The flowed text(s) must be <b>visible</b> in order to be put on a path."
+msgstr "Tekst musi być <b>widoczny</b>, aby został wstawiony na ścieżkę"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2228
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2261
-msgid "Defines the color of the light source"
-msgstr "Definiuje kolor źródła światła"
+#: ../src/text-chemistry.cpp:192
+#: ../src/verbs.cpp:2352
+msgid "Put text on path"
+msgstr "Wstawia tekst na ścieżkę"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2229
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2262
-msgid "Surface Scale"
-msgstr "Skaluj powierzchnię"
+#: ../src/text-chemistry.cpp:204
+msgid "Select <b>a text on path</b> to remove it from path."
+msgstr "Zaznacz <b>tekst na ścieżce</b>, aby zdjąć go ze ścieżki"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2229
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2262
-msgid ""
-"This value amplifies the heights of the bump map defined by the input alpha "
-"channel"
-msgstr ""
-"Ta wartość wzmacnia wysokości mapowania wypukłości zdefiniowane przez "
-"początkowe wartości kanału alfa"
+#: ../src/text-chemistry.cpp:226
+msgid "<b>No texts-on-paths</b> in the selection."
+msgstr "W zaznaczeniu <b>brak tekstów na ścieżce</b>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2230
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2263
-msgid "Constant"
-msgstr "Stała"
+#: ../src/text-chemistry.cpp:229
+#: ../src/verbs.cpp:2354
+msgid "Remove text from path"
+msgstr "Zdejmuje tekst ze ścieżki"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2230
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2263
-msgid "This constant affects the Phong lighting model."
-msgstr "Ta stała oddziałuje na model oświetlenia Phonga."
+#: ../src/text-chemistry.cpp:269
+#: ../src/text-chemistry.cpp:290
+msgid "Select <b>text(s)</b> to remove kerns from."
+msgstr "Zaznacz <b>tekst(y)</b> do usunięcia kerningu ręcznego"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2231
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2265
-msgid "Kernel Unit Length"
-msgstr "Długość jednostki jądra"
+#: ../src/text-chemistry.cpp:293
+msgid "Remove manual kerns"
+msgstr "Usuń ręczny kerning"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2235
-msgid "This defines the intensity of the displacement effect."
-msgstr "Definjuje intensywność efektu przesunięcia"
+#: ../src/text-chemistry.cpp:313
+msgid "Select <b>a text</b> and one or more <b>paths or shapes</b> to flow text into frame."
+msgstr "Zaznacz <b>tekst</b> i jedną lub więcej <b>ścieżek lub kształtów</b>, aby wprowadzić tekst do ramki"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2236
-msgid "X displacement"
-msgstr "Przemieszczanie w kierunku X"
+#: ../src/text-chemistry.cpp:381
+msgid "Flow text into shape"
+msgstr "Wprowadź tekst do kształtu"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2236
-msgid "Color component that controls the displacement in the X direction"
-msgstr "Składnik koloru kontrolujący przemieszczanie w kierunku X"
+#: ../src/text-chemistry.cpp:403
+msgid "Select <b>a flowed text</b> to unflow it."
+msgstr "Zaznacz <b>tekst wpisany</b>, aby go uwolnić z ramki"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2237
-msgid "Y displacement"
-msgstr "Przemieszczanie w kierunku Y"
+#: ../src/text-chemistry.cpp:470
+msgid "Unflow flowed text"
+msgstr "Uwolnij tekst wpisany"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2237
-msgid "Color component that controls the displacement in the Y direction"
-msgstr "Składnik koloru kontrolujący przemieszczanie w kierunku Y"
+#: ../src/text-chemistry.cpp:482
+msgid "Select <b>flowed text(s)</b> to convert."
+msgstr "Zaznacz <b>tekst wpisany</b>, aby go konwertować"
 
-#. default: black
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2240
-msgid "Flood Color"
-msgstr "Kolor wypełnienia"
+#: ../src/text-chemistry.cpp:500
+msgid "The flowed text(s) must be <b>visible</b> in order to be converted."
+msgstr "Aby skonwertować tekst wpisany musi być on <b>widoczny</b>"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2240
-msgid "The whole filter region will be filled with this color."
-msgstr "Cały filtrowany obszar zostanie wypełniony tym kolorem."
+#: ../src/text-chemistry.cpp:528
+msgid "Convert flowed text to text"
+msgstr "Konwertuj tekst wpisany na tekst"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2244
-msgid "Standard Deviation"
-msgstr "Odchylenie standardowe"
+#: ../src/text-chemistry.cpp:533
+msgid "<b>No flowed text(s)</b> to convert in the selection."
+msgstr "W zaznaczeniu <b>brak tekstu wpisanego</b> do konwersji"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2244
-msgid "The standard deviation for the blur operation."
-msgstr "Standardowe odchylenie operacji rozmycia."
+#: ../src/text-context.cpp:460
+msgid "<b>Click</b> to edit the text, <b>drag</b> to select part of the text."
+msgstr "<b>Kliknij</b>, aby edytować tekst. <b>Ciągnij</b>, aby zaznaczyć jego fragment."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2250
-msgid ""
-"Erode: performs \"thinning\" of input image.\n"
-"Dilate: performs \"fattenning\" of input image."
-msgstr ""
-"Erozja: wykonuje \"pocienienie\" obrazka.\n"
-"Dylatacja: wykonuje \"pogrubienie\" obrazka."
+#: ../src/text-context.cpp:462
+msgid "<b>Click</b> to edit the flowed text, <b>drag</b> to select part of the text."
+msgstr "<b>Kliknij</b>, aby edytować tekst wpisany. <b>Ciągnij</b>, aby zaznaczyć jego fragment."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2254
-msgid "Source of Image"
-msgstr "Źródło obrazka"
+#: ../src/text-context.cpp:516
+msgid "Create text"
+msgstr "Utwórz tekst"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2257
-msgid "Delta X"
-msgstr "Delta X"
+#: ../src/text-context.cpp:540
+msgid "Non-printable character"
+msgstr "Znak niedrukowany"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2257
-msgid "This is how far the input image gets shifted to the right"
-msgstr "Jak daleko obrazek wejściowy zostaje odsunięty w prawo"
+#: ../src/text-context.cpp:555
+msgid "Insert Unicode character"
+msgstr "Wprowadź znak Unicode"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2258
-msgid "Delta Y"
-msgstr "Delta Y"
+#: ../src/text-context.cpp:590
+#, c-format
+msgid "Unicode (<b>Enter</b> to finish): %s: %s"
+msgstr "Unicode (<b>Enter</b>, aby zakończyć): %s: %s"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2258
-msgid "This is how far the input image gets shifted downwards"
-msgstr "Jak daleko obrazek wejściowy zostaje odsunięty w dół"
+#: ../src/text-context.cpp:592
+#: ../src/text-context.cpp:866
+msgid "Unicode (<b>Enter</b> to finish): "
+msgstr "Unicode (<b>Enter</b>, aby zakończyć): "
 
-#. default: white
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2261
-msgid "Specular Color"
-msgstr "Kolor odbicia lustrzanego"
+#: ../src/text-context.cpp:666
+#, c-format
+msgid "<b>Flowed text frame</b>: %s &#215; %s"
+msgstr "<b>Ramka tekstu wpisanego</b>: %s &#215; %s"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2264
-#: ../share/extensions/interp.inx.h:2
-msgid "Exponent"
-msgstr "Wykładnik"
+#: ../src/text-context.cpp:698
+#: ../src/text-context.cpp:1617
+msgid "Type text; <b>Enter</b> to start new line."
+msgstr "Wprowadź tekst; <b>Enter</b>, aby przejść do nowej linii"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2264
-msgid "Exponent for specular term, larger is more \"shiny\"."
-msgstr "Wykładnik odblasków. Większa wartość - bardziej błyszczący odblask."
+#: ../src/text-context.cpp:711
+msgid "Flowed text is created."
+msgstr "Utworzono tekst wpisany"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2273
-msgid ""
-"Indicates whether the filter primitive should perform a noise or turbulence "
-"function."
-msgstr ""
-"Wskazuje, czy efekt specjalny powinien wykonać funkcję szumu lub zawirowania."
+#: ../src/text-context.cpp:713
+msgid "Create flowed text"
+msgstr "Utwórz tekst wpisany"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2274
-msgid "Base Frequency"
-msgstr "Częstotliwość bazowa"
+#: ../src/text-context.cpp:715
+msgid "The frame is <b>too small</b> for the current font size. Flowed text not created."
+msgstr "Ramka jest <b>zbyt mała</b> dla wybranej wielkości czcionki. Nie utworzono tekstu wpisanego."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2275
-msgid "Octaves"
-msgstr "Oktawy"
+#: ../src/text-context.cpp:851
+msgid "No-break space"
+msgstr "Spacja nie łamiąca wiersza"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2276
-msgid "Seed"
-msgstr "Ziarno"
+#: ../src/text-context.cpp:853
+msgid "Insert no-break space"
+msgstr "Wstawia spację nie łamiącą wiersza"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2276
-msgid "The starting number for the pseudo random number generator."
-msgstr "Początkowa liczba dla pseudo losowego generatora liczb."
+#: ../src/text-context.cpp:890
+msgid "Make bold"
+msgstr "Pogrubienie"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2288
-msgid "Add filter primitive"
-msgstr "Dodaj efekt specjalny"
+#: ../src/text-context.cpp:908
+msgid "Make italic"
+msgstr "Pochylenie"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2304
-msgid ""
-"The <b>feBlend</b> filter primitive provides 4 image blending modes: screen, "
-"multiply, darken and lighten."
-msgstr ""
-"Efekt specjalny <b>feBlend</b> dostarcza 4 tryby mieszania obrazków - "
-"zwielokrotnianie, przesiewanie, rozjaśnianie i przyciemnianie"
+#: ../src/text-context.cpp:947
+msgid "New line"
+msgstr "Nowy wiersz"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2308
-msgid ""
-"The <b>feColorMatrix</b> filter primitive applies a matrix transformation to "
-"colour of each rendered pixel. This allows for effects like turning object "
-"to grayscale, modifying colour saturation and changing colour hue."
-msgstr ""
-"Efekt specjalny <b>feColorMatrix</b> stosuje przetworzenie macierzy do "
-"koloru każdego renderowanego piksela. Pozwala to efektom na włączenie dla "
-"obiektu skali szarości, modyfikowanie nasycenia i barwy koloru."
+#: ../src/text-context.cpp:981
+msgid "Backspace"
+msgstr "Backspace"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2312
-msgid ""
-"The <b>feComponentTransfer</b> filter primitive manipulates the input's "
-"color components (red, green, blue, and alpha) according to particular "
-"transfer functions, allowing operations like brightness and contrast "
-"adjustment, color balance, and thresholding."
-msgstr ""
-"Efekt specjalny <b>feComponentTransfer</b> operuje źródłowymi komponentami "
-"koloru (czerwony, zielony, niebieski i krycie) odpowiednio do określonych "
-"funkcji transferu pozwalając na takie operacje jak ustawianie jasności i "
-"kontrastu, balansu kolorów i wartości progowych"
+#: ../src/text-context.cpp:1029
+msgid "Kern to the left"
+msgstr "Podetnij z lewej"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2316
-msgid ""
-"The <b>feComposite</b> filter primitive composites two images using one of "
-"the Porter-Duff blending modes or the aritmetic mode described in SVG "
-"standard. Porter-Duff blending modes are essentially logical operations "
-"between the corresponding pixel values of the images."
-msgstr ""
-"Efekt specjalny <b>feComposite</b> łączy dwa obrazki używając jednego z "
-"trybów mieszania Portera-Duffa (przezroczystości) lub arytmetycznego trybu "
-"opisanego w standardzie SVG. Tryby mieszania Portera-Duffa są zasadniczo "
-"operacjami logicznymi pomiędzy odpowiednimi pikselami obrazków."
+#: ../src/text-context.cpp:1054
+msgid "Kern to the right"
+msgstr "Podetnij z prawej"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2320
-msgid ""
-"The <b>feConvolveMatrix</b> lets you specify a Convolution to be applied on "
-"the image. Common effects created using convolution matrices are blur, "
-"sharpening, embossing and edge detection. Note that while gaussian blur can "
-"be created using this filter primitive, the special gaussian blur primitive "
-"is faster and resolution-independent."
-msgstr ""
-"<b>feConvolveMatrix</b> pozwala określić skręcenie stosowane do obrazka. "
-"Wspólnymi efektami utworzonymi przy użyciu macierzy skręcenia są: rozmycie, "
-"wyostrzenie, płaskorzeźba i ujawnianie krawędzi. Przy pomocy tego filtru "
-"może być utworzone rozmycie gaussowskie, ale dedykowany filtr rozmycia "
-"gausowskiego jest szybszy i niezależny od rozdzielczości.  "
+#: ../src/text-context.cpp:1079
+msgid "Kern up"
+msgstr "Podetnij od góry"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2324
-msgid ""
-"The <b>feDiffuseLighting</b> and feSpecularLighting filter primitives create "
-"\"embossed\" shadings.  The input's alpha channel is used to provide depth "
-"information: higher opacity areas are raised toward the viewer and lower "
-"opacity areas recede away from the viewer."
-msgstr ""
-"Efekty specjalne <b>feDiffuseLighting</b> i feSpecularLighting tworzą "
-"płaskorzeźbę. Kanał przezroczystości jest używany do osiągnięcia głębi. "
-"Większa przezroczystość jest ustawiana bliżej oglądającego, mniejsza dalej."
+#: ../src/text-context.cpp:1105
+msgid "Kern down"
+msgstr "Podetnij od dołu"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2328
-msgid ""
-"The <b>feDisplacementMap</b> filter primitive displaces the pixels in the "
-"first input using the second input as a displacement map, that shows from "
-"how far the pixel should come from. Classical examples are whirl and pinch "
-"effects."
-msgstr ""
-"Efekt specjalny <b>feDisplacementMap</b> wypiera piksele w pierwszym źródle "
-"używając drugiego źródła jako mapy wypierania, która pokazuje skąd piksel "
-"powinien być pobrany. Klasycznym przykładem takiego działania są efekty wiru "
-"i ściśnięcia."
+#: ../src/text-context.cpp:1182
+msgid "Rotate counterclockwise"
+msgstr "Obróć w lewo"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2332
-msgid ""
-"The <b>feFlood</b> 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 ""
-"Efekt specjalny <b>feFlood</b> wypełnia obszar zadanym kolorem i kryciem. "
-"Jest on zazwyczaj używany w początkowej fazie tworzenia grafiki i stanowi "
-"podstawę dla innych filtrów stosowanych do wprowadzania koloru do grafiki."
+#: ../src/text-context.cpp:1203
+msgid "Rotate clockwise"
+msgstr "Obróć w prawo"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2336
-msgid ""
-"The <b>feGaussianBlur</b> filter primitive uniformly blurs its input.  It is "
-"commonly used together with feOffset to create a drop shadow effect."
-msgstr ""
-"Efekt specjalny <b>feGaussianBlur</b> wykonuje jednolite rozmycie. Jest on "
-"często używany z filtrem <b>feOffset</b> do tworzenia efektu cienia."
+#: ../src/text-context.cpp:1220
+msgid "Contract line spacing"
+msgstr "Zmniejsz odstęp pomiędzy wierszami"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2340
-msgid ""
-"The <b>feImage</b> filter primitive fills the region with an external image "
-"or another part of the document."
-msgstr ""
-"Efekt specjalny <b>feImage</b> wypełnia obszar roboczy lub inną część "
-"dokumentu zewnętrznym obrazkiem."
+#: ../src/text-context.cpp:1228
+msgid "Contract letter spacing"
+msgstr "Zmniejsz odstęp pomiędzy literami"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2344
-msgid ""
-"The <b>feMerge</b> filter primitive composites several temporary images "
-"inside the filter primitive to a single image. It uses normal alpha "
-"compositing for this. This is equivalent to using several feBlend primitives "
-"in 'normal' mode or several feComposite primitives in 'over' mode."
-msgstr ""
-"Efekt specjalny <b>feMerge</b> zbiera wewnątrz filtru kilka tymczasowych "
-"obrazków do użycia w obrazku końcowym. W tym celu używa on normalnej "
-"kompozycji przezroczystości. Można go używać zamiast wielokrotnego użycia "
-"filtru <b>feBlend</b> w trybie \"normal\" lub zamiast wielokrotnego użycia "
-"filtru <b>feComposite</b> w trybie \"over\"."
+#: ../src/text-context.cpp:1247
+msgid "Expand line spacing"
+msgstr "Zwiększ odstęp pomiędzy wierszami"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2348
-msgid ""
-"The <b>feMorphology</b> filter primitive provides erode and dilate effects. "
-"For single-colour objects erode makes the object thinner and dilate makes it "
-"thicker."
-msgstr ""
-"Efekt specjalny <b>feMorphology</b> dostarcza efekty erozji i pęcznienia. W "
-"obiektach jednokolorowych erozja pocienia obiekt, a pęcznienie pogrubia."
+#: ../src/text-context.cpp:1255
+msgid "Expand letter spacing"
+msgstr "Zwiększ odstęp pomiędzy literami"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2352
-msgid ""
-"The <b>feOffset</b> 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 ""
-"Efekt specjalny <b>feOffset</b> przesuwa obrazek o zdefiniowaną przez "
-"użytkownika wielkość. Na przykład jest bardzo pomocny przy dodawaniu cieni, "
-"gdy cień jest niewiele odsunięty od obiektu."
+#: ../src/text-context.cpp:1382
+msgid "Paste text"
+msgstr "Wklej tekst"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2356
-msgid ""
-"The feDiffuseLighting and <b>feSpecularLighting</b> filter primitives create "
-"\"embossed\" shadings.  The input's alpha channel is used to provide depth "
-"information: higher opacity areas are raised toward the viewer and lower "
-"opacity areas recede away from the viewer."
-msgstr ""
-"Efekty specjalne feDiffuseLighting i <b>feSpecularLighting</b> tworzą "
-"płaskorzeźbę. Kanał przezroczystości jest używany do osiągnięcia głębi. "
-"Większa przezroczystość jest ustawiana bliżej oglądającego, mniejsza dalej."
+#: ../src/text-context.cpp:1615
+msgid "Type flowed text; <b>Enter</b> to start new paragraph."
+msgstr "Wprowadź tekst wpisany. Naciśnij <b>Enter</b>, aby rozpocząć nowy akapit."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2360
-msgid ""
-"The <b>feTile</b> filter primitive tiles a region with its input graphic"
-msgstr ""
-"Efekt specjalny <b>feTile</b> tworzy kafelkowy region ze wstawioną grafiką"
+#: ../src/text-context.cpp:1625
+#: ../src/tools-switch.cpp:214
+msgid "<b>Click</b> to select or create text, <b>drag</b> to create flowed text; then type."
+msgstr "<b>Kliknij</b>, aby zaznaczyć lub utworzyć tekst. <b>Ciągnij</b>, aby utworzyć tekst wpisany, następnie wprowadź treść."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2364
-msgid ""
-"The <b>feTurbulence</b> 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 ""
-"Efekt specjalny <b>feTurbulence</b> renderuje szum Perlina. Ten rodzaj szumu "
-"jest użyteczny do symulacji różnych zjawisk natury jak chmury, ogień, dym "
-"oraz do generowania skomplikowanych tekstur takich jak marmur, czy granit."
+#: ../src/text-context.cpp:1735
+msgid "Type text"
+msgstr "Wprowadź tekst"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2382
-msgid "Duplicate filter primitive"
-msgstr "Powiel efekt specjalny"
+#: ../src/text-editing.cpp:40
+msgid "You cannot edit <b>cloned character data</b>."
+msgstr "Nie można edytować <b>danych skolonowanego znaku</b>."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2435
-msgid "Set filter primitive attribute"
-msgstr "Określ atrybut efektu specjalnego"
+#: ../src/tools-switch.cpp:154
+msgid "To edit a path, <b>click</b>, <b>Shift+click</b>, or <b>drag around</b> nodes to select them, then <b>drag</b> nodes and handles. <b>Click</b> on an object to select."
+msgstr "<b>Kliknij</b>, aby edytować ścieżkę. <b>Shift + kliknięcie</b> lub <b>ciągnięcie</b> wokół węzłów, aby je zaznaczyć, następnie przeciągaj węzły i uchwyty. <b>Kliknij</b> na obiekcie, aby go zaznaczyć."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:147
-msgid "Mouse"
-msgstr "Mysz"
+#: ../src/tools-switch.cpp:160
+msgid "To tweak a path by pushing, select it and drag over it."
+msgstr "Aby udoskonalić ścieżkę za pomocą spychania, zaznacz ją, a następnie zmodyfikuj pociągnięciami myszy"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:149
-msgid "Grab sensitivity:"
-msgstr "Czułość chwytania:"
+#: ../src/tools-switch.cpp:166
+msgid "<b>Drag</b> to create a rectangle. <b>Drag controls</b> to round corners and resize. <b>Click</b> to select."
+msgstr "<b>Ciągnij</b>, aby utworzyć prostokąt. <b>Ciągnij punkty kontrolne</b>, aby zaokrąglić narożniki i zmienić rozmiar. <b>Kliknij</b>, aby zaznaczyć."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:149
-#: ../src/ui/dialog/inkscape-preferences.cpp:152
-#: ../src/ui/dialog/inkscape-preferences.cpp:168
-#: ../src/ui/dialog/inkscape-preferences.cpp:172
-#: ../src/ui/dialog/inkscape-preferences.cpp:182
-msgid "pixels"
-msgstr "px"
+#: ../src/tools-switch.cpp:172
+msgid "<b>Drag</b> to create a 3D box. <b>Drag controls</b> to resize in perspective. <b>Click</b> to select (with <b>Ctrl+Alt</b> for single faces)."
+msgstr "<b>Ciągnij</b>, aby utworzyć obiekt 3D. <b>Ciągnij punkty kontrolne</b>, aby zmienić wielkość w perspektywie. <b>Kliknij</b>, aby zaznaczyć (z <b>Ctrl + Alt</b> dla pojedynczego oblicza)."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:150
-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 ""
-"Odległość kursora myszy od obiektu przy jakiej staje się możliwe "
-"oddziaływanie nim na obiekt (w pikselach ekranu)"
+#: ../src/tools-switch.cpp:178
+msgid "<b>Drag</b> to create an ellipse. <b>Drag controls</b> to make an arc or segment. <b>Click</b> to select."
+msgstr "<b>Ciągnij</b>, aby utworzyć elipsę. <b>Ciągnij punkty kontrolne</b>, aby utworzyć łuk lub odcinek. <b>Kliknij</b>, aby zaznaczyć."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:152
-msgid "Click/drag threshold:"
-msgstr "Próg kliknięcia/przeciągania:"
+#: ../src/tools-switch.cpp:184
+msgid "<b>Drag</b> to create a star. <b>Drag controls</b> to edit the star shape. <b>Click</b> to select."
+msgstr "<b>Ciągnij</b>, aby utworzyć gwiazdę. <b>Ciągnij punkty kontrolne</b>, aby zmienić kształt gwiazdy. <b>Kliknij</b>, aby zaznaczyć."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:153
-msgid ""
-"Maximum mouse drag (in screen pixels) which is considered a click, not a drag"
-msgstr ""
-"Największa wartość przesunięcia myszy, po naciśnięciu przycisku, traktowana "
-"jeszcze jako kliknięcie, a nie przeciąganie (w pikselach ekranu)"
+#: ../src/tools-switch.cpp:190
+msgid "<b>Drag</b> to create a spiral. <b>Drag controls</b> to edit the spiral shape. <b>Click</b> to select."
+msgstr "<b>Ciągnij</b>, aby utworzyć spiralę. <b>Ciągnij punkty kontrolne</b>, aby zmienić kształt spirali. <b>Kliknij</b>, aby zaznaczyć."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:155
-msgid "Use pressure-sensitive tablet (requires restart)"
-msgstr "Używaj tabletu"
+#: ../src/tools-switch.cpp:196
+msgid "<b>Drag</b> to create a freehand line. Start drawing with <b>Shift</b> to append to selected path. <b>Ctrl+click</b> to create single dots."
+msgstr "<b>Ciągnij</b>, aby utworzyć linię odręczną. Rozpocznij rysowanie z <b>Shift</b>, aby dołączyć do zaznaczonej ścieżki. <b>Ctrl + kliknięcie</b>, aby tworzyć pojedyncze kropki."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:157
-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 ""
-"Po zaznaczeniu tej opcji i ponownym uruchomieniu programu można używać "
-"tabletu lub innego, opartego na technice rozróżniania czułości nacisku "
-"urządzenia. Opcję tę należy wyłączyć tylko, gdy występują problemy z "
-"używaniem tabletu. Po wyłączeniu tej opcji można nadal używać tablet jako "
-"mysz."
+#: ../src/tools-switch.cpp:202
+msgid "<b>Click</b> or <b>click and drag</b> to start a path; with <b>Shift</b> to append to selected path. <b>Ctrl+click</b> to create single dots."
+msgstr "<b>Kliknij</b> lub <b>kliknij i ciągnij</b>, aby rozpocząć ścieżkę, z <b>Shift</b>, aby dołączyć do zaznaczonej ścieżki. <b>Ctrl + kliknięcie</b>, aby tworzyć pojedyncze kropki."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:159
+#: ../src/tools-switch.cpp:208
 #, fuzzy
-msgid "Switch tool based on tablet device (requires restart)"
-msgstr "Rozmieszczenie okienek zadań (zmiana wymaga ponownego uruchomienia):"
-
-#: ../src/ui/dialog/inkscape-preferences.cpp:161
-msgid ""
-"Change tool as different devices are used on the tablet (pen, eraser, mouse)"
-msgstr ""
+msgid "<b>Drag</b> to draw a calligraphic stroke; with <b>Ctrl</b> to track a guide path. <b>Arrow keys</b> adjust width (left/right) and angle (up/down)."
+msgstr "<b>Ciągnij</b>, aby utworzyć pociągnięcie kaligraficzne. Z <b>Ctrl</b> - śledzi prowadnicę, z <b>Alt</b> - cieniej. <b>Klawisze strzałek</b> lewa/prawa - zmieniają szerokość, góra/dół - kąt. "
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:166
-msgid "Scrolling"
-msgstr "Przewijanie"
+#: ../src/tools-switch.cpp:220
+msgid "<b>Drag</b> or <b>double click</b> to create a gradient on selected objects, <b>drag handles</b> to adjust gradients."
+msgstr "<b>Ciągnij</b> lub <b>kliknij dwukrotnie</b>, aby utworzyć gradient na zaznaczonych obiektach. <b>Ciągnij uchwyty</b>, aby edytować gradienty."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:168
-msgid "Mouse wheel scrolls by:"
-msgstr "Skok kółka myszy przewija ekran o:"
+#: ../src/tools-switch.cpp:226
+msgid "<b>Click</b> or <b>drag around an area</b> to zoom in, <b>Shift+click</b> to zoom out."
+msgstr "<b>Kliknij</b> lub <b>wykonaj ciągnięcie</b> wokół obszaru, aby go powiększyć. <b>Shift + kliknięcie</b>, aby pomniejszyć widok."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:169
-msgid ""
-"One mouse wheel notch scrolls by this distance in screen pixels "
-"(horizontally with Shift)"
-msgstr ""
-"Jeden skok kółka myszy przewija ekran o określoną tutaj liczbę pikseli. "
-"Przewijanie w poziomie jest realizowane z wciśniętym klawiszem [Shift]."
+#: ../src/tools-switch.cpp:238
+msgid "<b>Click and drag</b> between shapes to create a connector."
+msgstr "<b>Kliknij i ciągnij</b> pomiędzy kształtami, aby utworzyć łącznik"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:170
-msgid "Ctrl+arrows"
-msgstr "[ Ctrl + strzałki ]"
+#: ../src/tools-switch.cpp:244
+msgid "<b>Click</b> to paint a bounded area, <b>Shift+click</b> to union the new fill with the current selection, <b>Ctrl+click</b> to change the clicked object's fill and stroke to the current setting."
+msgstr "<b>Kliknij</b>, aby malować zaznaczony obszar, <b>Shift + kliknięcie</b>, aby połączyć nowe wypełnienie z aktywnym zaznaczeniem, <b>Ctrl + kliknięcie</b>, aby zmienić wypełnienie i kontur klikniętego obiektu na aktualne ustawienia"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:172
-msgid "Scroll by:"
-msgstr "Przewijaj o:"
+#: ../src/tools-switch.cpp:250
+msgid "<b>Drag</b> to erase."
+msgstr "<b>Przeciągnij</b>, aby usunąć."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:173
-msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)"
+#: ../src/tools-switch.cpp:256
+msgid "Choose a subtool from the toolbar"
 msgstr ""
-"Naciśnięcie klawiszy [ Ctrl + strzałka ] przewija obszar roboczy o określoną "
-"tutaj odległość (w pikselach ekranowych)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:175
-msgid "Acceleration:"
-msgstr "Przyspieszenie:"
+#: ../src/trace/potrace/inkscape-potrace.cpp:524
+#: ../src/trace/potrace/inkscape-potrace.cpp:598
+#, c-format
+msgid "Trace: %d.  %ld nodes"
+msgstr "Wektoryzacja: %d.  %ld węzłów"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:176
-msgid ""
-"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no "
-"acceleration)"
-msgstr ""
-"Naciśnięcie i przytrzymanie klawiszy [ Ctrl + strzałka ] powoduje stopniowe "
-"przyspieszenie przewijania (0 - brak przyspieszania)"
+#: ../src/trace/trace.cpp:71
+#: ../src/trace/trace.cpp:136
+#: ../src/trace/trace.cpp:144
+#: ../src/trace/trace.cpp:243
+msgid "Select an <b>image</b> to trace"
+msgstr "Wybierz <b>obrazek</b> do wektoryzacji"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:177
-msgid "Autoscrolling"
-msgstr "Przewijanie automatyczne"
+#: ../src/trace/trace.cpp:106
+msgid "Select only one <b>image</b> to trace"
+msgstr "Wybierz dokładnie jeden <b>obrazek</b> do wektoryzacji"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:179
-msgid "Speed:"
-msgstr "Prędkość:"
+#: ../src/trace/trace.cpp:124
+msgid "Select one image and one or more shapes above it"
+msgstr "Wybierz jeden obrazek i jeden lub więcej kształtów ponad nim"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:180
-msgid ""
-"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn "
-"autoscroll off)"
-msgstr ""
-"Szybkość automatycznego przewijania, gdy obiekt zostaje przeciągnięty poza "
-"obrzeże obszaru roboczego (0 – przewijanie wyłączone)"
+#: ../src/trace/trace.cpp:234
+msgid "Trace: No active desktop"
+msgstr "Wektoryzacja: Brak aktywnego obszaru roboczego"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:182
-#: ../src/ui/dialog/tracedialog.cpp:410 ../src/ui/dialog/tracedialog.cpp:443
-#: ../src/ui/dialog/tracedialog.cpp:586 ../src/widgets/toolbox.cpp:5741
-msgid "Threshold:"
-msgstr "Próg:"
+#: ../src/trace/trace.cpp:333
+msgid "Invalid SIOX result"
+msgstr "Nieprawidłowy wynik SIOX"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:183
-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 ""
-"Odległość (w pikselach ekranu) od obrzeża obszaru roboczego, przy której "
-"uruchamiane jest automatyczne przewijanie. Wartość dodatnia oznacza "
-"położenie poza obszarem roboczym, ujemna wewnątrz."
+#: ../src/trace/trace.cpp:438
+msgid "Trace: No active document"
+msgstr "Wektoryzacja: Brak aktywnego dokumentu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:184
-msgid "Left mouse button pans when Space is pressed"
-msgstr ""
-"Przesuwaj obszar roboczy za pomocą klawisza spacji i lewego przycisku myszy"
+#: ../src/trace/trace.cpp:461
+msgid "Trace: Image has no bitmap data"
+msgstr "Wektoryzacja: W obrazie nie ma danych rastrowych"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:186
-msgid ""
-"When on, pressing and holding Space and dragging with left mouse button pans "
-"canvas (as in Adobe Illustrator). When off, Space temporarily switches to "
-"Selector tool (default)."
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, po naciśnięciu i przytrzymaniu klawsza "
-"spacji będzie można za pomocą lewego przycisku myszy wykonać przesuwanie "
-"obszaru roboczego (tak jak w programie Adobe Illustrator). Jeśli opcja nie "
-"zostanie zaznaczona klawisz spacji będzie przełączał tymczasowo do "
-"\"Wskaźnika\" (zachowanie domyślne)."
+#: ../src/trace/trace.cpp:468
+msgid "Trace: Starting trace..."
+msgstr "Wektoryzacja: Rozpocznij wektoryzację..."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:187
-msgid "Mouse wheel zooms by default"
-msgstr "Powiększaj obszar roboczy za pomocą kółka myszy"
+#. ## inform the document, so we can undo
+#: ../src/trace/trace.cpp:570
+msgid "Trace bitmap"
+msgstr "Wektoryzuj bitmapę"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:189
-msgid ""
-"When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when "
-"off, it zooms with Ctrl and scrolls without Ctrl."
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, kółko myszy będzie powiększać/zmniejszać "
-"obszar roboczy, z wciśniętym klawiszem [ Ctrl ] będzie przewijać obszar "
-"roboczy w pionie, a z klawiszem [Shift] w poziomie. Gdy opcja nie zostanie "
-"zaznaczona, kółko będzie przewijać obszar roboczy w pionie, a z wciśniętym "
-"klawiszem [ Ctrl ] - powiększać."
+#: ../src/trace/trace.cpp:574
+#, c-format
+msgid "Trace: Done. %ld nodes created"
+msgstr "Wektoryzacja: Zakończono. Utworzono %ld węzłów."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:194
-msgid "Steps"
-msgstr "Kroki"
+#: ../src/tweak-context.cpp:206
+#, fuzzy, c-format
+msgid "<b>Nothing</b> selected"
+msgstr "<b>Nic</b> nie usunięto"
 
-#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here
-#: ../src/ui/dialog/inkscape-preferences.cpp:198
-msgid "Arrow keys move by:"
-msgstr "Przesunięcie realizowane przez klawisze strzałek:"
+#: ../src/tweak-context.cpp:212
+#, c-format
+msgid "%s. Drag to <b>move</b>."
+msgstr "%s. Przeciągnij aby <b>przesunąć</b>."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:199
-msgid ""
-"Pressing an arrow key moves selected object(s) or node(s) by this distance "
-"(in px units)"
+#: ../src/tweak-context.cpp:217
+#, c-format
+msgid "%s. Drag or click to <b>move in</b>; with Shift to <b>move out</b>."
 msgstr ""
-"Naciśnięcie klawisza strzałki przesuwa zaznaczony obiekt(y) lub węzeł(y) o "
-"określoną tutaj wartość (w px)"
 
-#. defaultscale is limited to 1000 in select-context.cpp: use the same limit here
-#: ../src/ui/dialog/inkscape-preferences.cpp:202
-msgid "> and < scale by:"
-msgstr "Zmiana rozmiaru realizowana przez klawisze [ > ] i [ < ]:"
+#: ../src/tweak-context.cpp:220
+#, c-format
+msgid "%s. Drag or click to <b>move randomly</b>."
+msgstr "%s. Przeciągnij lub kliknij aby <b>przesunąć losowo</b>."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:203
-msgid ""
-"Pressing > or < scales selection up or down by this increment (in px units)"
+#: ../src/tweak-context.cpp:223
+#, c-format
+msgid "%s. Drag or click to <b>scale down</b>; with Shift to <b>scale up</b>."
 msgstr ""
-"Naciśnięcie klawisza [ > ] lub [ < ] odpowiednio, powiększa lub zmniejsza "
-"rozmiar zaznaczenia o określoną tutaj wartość (w px)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:205
-msgid "Inset/Outset by:"
-msgstr "Przesunięcie do wewnątrz/na zewnątrz o:"
+#: ../src/tweak-context.cpp:226
+#, c-format
+msgid "%s. Drag or click to <b>rotate clockwise</b>; with Shift, <b>counterclockwise</b>."
+msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:206
-msgid ""
-"Inset and Outset commands displace the path by this distance (in px units)"
+#: ../src/tweak-context.cpp:229
+#, c-format
+msgid "%s. Drag or click to <b>duplicate</b>; with Shift, <b>delete</b>."
 msgstr ""
-"Polecenia \"Przesunięcie do wewnątrz/na zewnątrz\" przesuwają ścieżkę o "
-"określoną tutaj wartość (w px)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:207
-msgid "Compass-like display of angles"
-msgstr "Wyświetlaj wartości kątów jak na kompasie"
+#: ../src/tweak-context.cpp:232
+#, c-format
+msgid "%s. Drag to <b>push paths</b>."
+msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:209
-msgid ""
-"When on, angles are displayed with 0 at north, 0 to 360 range, positive "
-"clockwise; otherwise with 0 at east, -180 to 180 range, positive "
-"counterclockwise"
+#: ../src/tweak-context.cpp:236
+#, c-format
+msgid "%s. Drag or click to <b>inset paths</b>; with Shift to <b>outset</b>."
 msgstr ""
-"Opcja włączona - kąty będą mierzone w zakresie 0-360° rosnąco w kierunku "
-"zgodnym z ruchem wskazówek zegara rozpoczynając od kierunku północnego. "
-"Opcja wyłączona - kąty będą mierzone w zakresie -180°-180° rosnąco w "
-"kierunku przeciwnym do ruchu wskazówek zegara rozpoczynając od kierunku "
-"wschodniego."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:215
-msgid "Rotation snaps every:"
-msgstr "Zatrzymuj obrót co:"
+#: ../src/tweak-context.cpp:244
+#, c-format
+msgid "%s. Drag or click to <b>attract paths</b>; with Shift to <b>repel</b>."
+msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:215
-msgid "degrees"
-msgstr "stopni"
+#: ../src/tweak-context.cpp:252
+#, c-format
+msgid "%s. Drag or click to <b>roughen paths</b>."
+msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:216
-msgid ""
-"Rotating with Ctrl pressed snaps every that much degrees; also, pressing "
-"[ or ] rotates by this amount"
+#: ../src/tweak-context.cpp:256
+#, c-format
+msgid "%s. Drag or click to <b>paint objects</b> with color."
 msgstr ""
-"Wykonując obracanie z wciśniętym klawiszem [ Ctrl ], obrót będzie następował "
-"o podaną tutaj wartość kąta. Także naciśnięcie [ lub ] powoduje obrót o tę "
-"wartość."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:218
-msgid "Zoom in/out by:"
-msgstr "Powiększaj/pomniejszaj o:"
+#: ../src/tweak-context.cpp:259
+#, c-format
+msgid "%s. Drag or click to <b>randomize colors</b>."
+msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:219
-msgid ""
-"Zoom tool click, +/- keys, and middle click zoom in and out by this "
-"multiplier"
+#: ../src/tweak-context.cpp:263
+#, c-format
+msgid "%s. Drag or click to <b>increase blur</b>; with Shift to <b>decrease</b>."
 msgstr ""
-"Narzędzia zmiany wielkości - klawisze [ +/- ] oraz środkowy przycisk myszy "
-"wykonują powiększenie/pomniejszenie widoku o ten mnożnik"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:225
-msgid "Show selection cue"
-msgstr "Wyróżniaj zaznaczenie"
+#: ../src/tweak-context.cpp:1181
+msgid "<b>Nothing selected!</b> Select objects to tweak."
+msgstr "<b>Nie zaznaczono żadnego obiektu!</b> Zaznacz obiekty do usprawnienia."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:226
-msgid ""
-"Whether selected objects display a selection cue (the same as in selector)"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje wyświetlanie wyróżnienia zaznaczonych "
-"obiektów"
+#: ../src/tweak-context.cpp:1217
+#, fuzzy
+msgid "Move tweak"
+msgstr "Udoskonalanie uwypuklania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:232
-msgid "Enable gradient editing"
-msgstr "Edytuj gradient na obiekcie"
+#: ../src/tweak-context.cpp:1221
+#, fuzzy
+msgid "Move in/out tweak"
+msgstr "Udoskonalanie malowania kolorem"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:233
-msgid "Whether selected objects display gradient editing controls"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, na zaznaczonych obiektach zostaną "
-"wyświetlone punkty kontrolne do edycji gradientu"
+#: ../src/tweak-context.cpp:1225
+#, fuzzy
+msgid "Move jitter tweak"
+msgstr "Udoskonalanie desynchronizacji koloru"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:238
-msgid "Conversion to guides uses edges instead of bounding box"
-msgstr ""
-"Podczas konwersji na prowadnice używaj krawędzi zamiast obramowania obiektu"
+#: ../src/tweak-context.cpp:1229
+#, fuzzy
+msgid "Scale tweak"
+msgstr "Skala X"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:239
-msgid ""
-"Converting an object to guides places these along the object's true edges "
-"(imitating the object's shape), not along the bounding box."
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, podczas konwersji obiektu na prowadnice, "
-"prowadnice będą umieszczane wzdłuż rzeczywistych krawędzi (imitacja kształtu "
-"obiektu), a nie wzdłuż obramowania"
+#: ../src/tweak-context.cpp:1233
+#, fuzzy
+msgid "Rotate tweak"
+msgstr "Udoskonalanie przyciągania ścieżek do kursora"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:246
-msgid "Ctrl+click dot size:"
-msgstr "[Ctrl + kliknięcie] - wielkość kropki:"
+#: ../src/tweak-context.cpp:1237
+#, fuzzy
+msgid "Duplicate/delete tweak"
+msgstr "Duplikuj zaznaczone obiekty"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:246
-msgid "times current stroke width"
-msgstr "krotność aktualnej szerokości konturu"
+#: ../src/tweak-context.cpp:1241
+#, fuzzy
+msgid "Push path tweak"
+msgstr "Udoskonalanie metodą odpychania"
+
+#: ../src/tweak-context.cpp:1245
+#, fuzzy
+msgid "Shrink/grow path tweak"
+msgstr "Udoskonalanie wklęśnięć"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:247
-msgid "Size of dots created with Ctrl+click (relative to current stroke width)"
-msgstr ""
-"Wielkość kropek utworzonych przy użyciu [ Ctrl + kliknięcie ] (relatywnie do "
-"aktualnej szerokości konturu)"
+#: ../src/tweak-context.cpp:1249
+#, fuzzy
+msgid "Attract/repel path tweak"
+msgstr "Udoskonalanie przyciągania ścieżek do kursora"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:262
-msgid "<b>No objects selected</b> to take the style from."
-msgstr "<b>Nie wybrano obiektów</b> do pobrania stylu"
+#: ../src/tweak-context.cpp:1253
+#, fuzzy
+msgid "Roughen path tweak"
+msgstr "Udoskonalanie chropowatości"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:271
-msgid ""
-"<b>More than one object selected.</b>  Cannot take style from multiple "
-"objects."
-msgstr ""
-"<b>Wybrano więcej niż jeden obiekt.</b> Nie można pobrać stylu z wielu "
-"obiektów"
+#: ../src/tweak-context.cpp:1257
+msgid "Color paint tweak"
+msgstr "Udoskonalanie malowania kolorem"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:305
-msgid "Create new objects with:"
-msgstr "Twórz nowe obiekty z zastosowaniem stylu:"
+#: ../src/tweak-context.cpp:1261
+msgid "Color jitter tweak"
+msgstr "Udoskonalanie desynchronizacji koloru"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:307
-msgid "Last used style"
-msgstr "Ostatnio użyty styl"
+#: ../src/tweak-context.cpp:1265
+#, fuzzy
+msgid "Blur tweak"
+msgstr "Skala X"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:309
-msgid "Apply the style you last set on an object"
-msgstr "Zostanie zastosowany ostatnio użyty styl dla tego typu obiektu"
+#. check whether something is selected
+#: ../src/ui/clipboard.cpp:224
+msgid "Nothing was copied."
+msgstr "Nic nie skopiowano"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:314
-msgid "This tool's own style:"
-msgstr "Określony tutaj styl:"
+#: ../src/ui/clipboard.cpp:285
+#: ../src/ui/clipboard.cpp:481
+#: ../src/ui/clipboard.cpp:505
+msgid "Nothing on the clipboard."
+msgstr "Schowek jest pusty"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:318
-msgid ""
-"Each tool may store its own style to apply to the newly created objects. Use "
-"the button below to set it."
-msgstr ""
-"Każde narzędzie może zachowywać własny styl dla nowo tworzonych obiektów. "
-"Przycisk poniżej pozwala ustawić własny styl narzędzia."
+#: ../src/ui/clipboard.cpp:341
+msgid "Select <b>object(s)</b> to paste style to."
+msgstr "Zaznacz <b>obiekt(y)</b>, do którego(ych) wkleić styl"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:323
-msgid "Take from selection"
-msgstr "Pobierz z zaznaczenia"
+#: ../src/ui/clipboard.cpp:347
+#: ../src/ui/clipboard.cpp:364
+msgid "No style on the clipboard."
+msgstr "Schowek jest pusty"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:327
-msgid "This tool's style of new objects"
-msgstr "Styl tego narzędzia dla nowych obiektów"
+#: ../src/ui/clipboard.cpp:386
+msgid "Select <b>object(s)</b> to paste size to."
+msgstr "Zaznacz <b>obiekt(y)</b>, do których wkleić rozmiar"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:335
-msgid "Remember the style of the (first) selected object as this tool's style"
-msgstr ""
-"Zapamiętuje styl pierwszego zaznaczonego obiektu jako domyślny dla tego "
-"narzędzia"
+#: ../src/ui/clipboard.cpp:393
+msgid "No size on the clipboard."
+msgstr "Schowek jest pusty"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:340
-msgid "Tools"
-msgstr "Narzędzia"
+#: ../src/ui/clipboard.cpp:444
+msgid "Select <b>object(s)</b> to paste live path effect to."
+msgstr "Zaznacz <b>obiekt(y)</b>, do których wkleić efekt ścieżki"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:343
-msgid "Bounding box to use:"
-msgstr "Stosuj poniższy typ obramowania obiektu:"
+#. no_effect:
+#: ../src/ui/clipboard.cpp:468
+msgid "No effect on the clipboard."
+msgstr "Schowek jest pusty"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:344
-msgid "Visual bounding box"
-msgstr "Wizualne obramowanie obiektu"
+#: ../src/ui/clipboard.cpp:488
+#: ../src/ui/clipboard.cpp:515
+msgid "Clipboard does not contain a path."
+msgstr "Schowek nie zawiera ścieżki"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:346
-msgid "This bounding box includes stroke width, markers, filter margins, etc."
-msgstr ""
-"Ten typ obramowania obiektu zawiera szerokość konturu, znaczniki, filtr "
-"marginesów itd."
+#. Item dialog
+#: ../src/ui/context-menu.cpp:100
+msgid "Object _Properties"
+msgstr "Właściwości _obiektu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:347
-msgid "Geometric bounding box"
-msgstr "Geometryczne obramowanie obiektu"
+#. Select item
+#: ../src/ui/context-menu.cpp:110
+msgid "_Select This"
+msgstr "_Zaznacz ten obiekt"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:349
-msgid "This bounding box includes only the bare path"
-msgstr "Ten typ obramowania obiektu zawiera tylko gołą ścieżkę"
+#. Create link
+#: ../src/ui/context-menu.cpp:120
+msgid "_Create Link"
+msgstr "_Utwórz odnośnik"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:351
-msgid "Conversion to guides:"
-msgstr "Konwersja na prowadnice"
+#: ../src/ui/context-menu.cpp:181
+msgid "Create link"
+msgstr "Utwórz odnośnik"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:352
-msgid "Keep objects after conversion to guides"
-msgstr "Zachowaj obiekty po konwersji na prowadnice"
+#. "Ungroup"
+#: ../src/ui/context-menu.cpp:199
+#: ../src/verbs.cpp:2348
+msgid "_Ungroup"
+msgstr "_Rozdziel grupę"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:354
-msgid ""
-"When converting an object to guides, don't delete the object after the "
-"conversion."
-msgstr ""
-"Zaznaczenie tej opcji spowoduje, że po zakończeniu konwersji obiektu na "
-"prowadnice obiekt nie będzie usuwany"
+#. Link dialog
+#: ../src/ui/context-menu.cpp:239
+msgid "Link _Properties"
+msgstr "Wł_aściwości odnośnika"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:355
-msgid "Treat groups as a single object"
-msgstr "Traktuj grupy jak pojedynczy obiekt"
+#. Select item
+#: ../src/ui/context-menu.cpp:245
+msgid "_Follow Link"
+msgstr "_Podążaj za odnośnikiem"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:357
-msgid ""
-"Treat groups as a single object during conversion to guides rather than "
-"converting each child separately."
-msgstr ""
-"Zaznaczenie tej opcji spowoduje, że podczas konwersji do prowadnic cała "
-"grupa będzie przekształcana jak pojedynczy obiekt, zamiast przekształcania "
-"każdego elementu grupy osobno."
+#. Reset transformations
+#: ../src/ui/context-menu.cpp:250
+msgid "_Remove Link"
+msgstr "_Usuń odnośnik"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:359
-msgid "Width is in absolute units"
-msgstr "Szerokość w jednostkach bezwzględnych"
+#. Link dialog
+#: ../src/ui/context-menu.cpp:298
+msgid "Image _Properties"
+msgstr "Wł_aściwości obrazka"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:360
-msgid "Select new path"
-msgstr "Zaznaczaj nową ścieżkę"
+#: ../src/ui/context-menu.cpp:304
+#, fuzzy
+msgid "Edit Externally..."
+msgstr "Edytuj wypełnienie..."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:361
-msgid "Don't attach connectors to text objects"
-msgstr "Nie prowadź łączników do obiektów tekstowych"
+#. Item dialog
+#: ../src/ui/context-menu.cpp:397
+msgid "_Fill and Stroke"
+msgstr "_Wypełnienie i kontur"
 
-#. Selector
-#: ../src/ui/dialog/inkscape-preferences.cpp:364
-msgid "Selector"
-msgstr "Wskaźnik"
+#. *
+#. * Constructor
+#.
+#: ../src/ui/dialog/aboutbox.cpp:77
+msgid "About Inkscape"
+msgstr "Informacje o programie Inkscape"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:367
-msgid "When transforming, show:"
-msgstr "Podczas przekształcania wyświetlaj:"
+#: ../src/ui/dialog/aboutbox.cpp:88
+msgid "_Splash"
+msgstr "_Ekran powitalny"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:368
-msgid "Objects"
-msgstr "Obiekty"
+#: ../src/ui/dialog/aboutbox.cpp:92
+msgid "_Authors"
+msgstr "_Autorzy"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:370
-msgid "Show the actual objects when moving or transforming"
-msgstr "Wyświetla obiekty podczas ich przemieszczania lub przekształcania"
+#: ../src/ui/dialog/aboutbox.cpp:94
+msgid "_Translators"
+msgstr "_Tłumacze"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:371
-msgid "Box outline"
-msgstr "Tylko obramowanie obiektów"
+#: ../src/ui/dialog/aboutbox.cpp:96
+msgid "_License"
+msgstr "_Licencja"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:373
-msgid "Show only a box outline of the objects when moving or transforming"
-msgstr ""
-"Podczas przemieszczania lub przekształcania obiektów wyświetla tylko ich "
-"obramowanie"
+#. TRANSLATORS: This is the filename of the `About Inkscape' picture in
+#. the `screens' directory.  Thus the translation of "about.svg" should be
+#. the filename of its translated version, e.g. about.zh.svg for Chinese.
+#.
+#. N.B. about.svg changes once per release.  (We should probably rename
+#. the original to about-0.40.svg etc. as soon as we have a translation.
+#. If we do so, then add an item to release-checklist saying that the
+#. string here should be changed.)
+#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the
+#. native filename encoding... and the filename passed to sp_document_new
+#. should be in UTF-*8..
+#: ../src/ui/dialog/aboutbox.cpp:149
+msgid "about.svg"
+msgstr "about.svg"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:374
-msgid "Per-object selection cue:"
-msgstr "Wyróżniaj obiekty wewnątrz zaznaczenia:"
+#. 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:338
+msgid "translator-credits"
+msgstr ""
+"Polska lokalizacja wykonana przez:\n"
+"2005-2006 - Przemysław Loesch (p_loesch@poczta.onet.pl)\n"
+"2008 - Polski Zespół lokalizacyjny Inkscape (inkscapeplteam@gmail.com)\n"
+"W składzie: Leszek(teo)Życzkowski, Marcin Floryan, Piotr Parafiniuk i inni"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:377
-msgid "No per-object selection indication"
-msgstr "Obiekty wewnątrz zaznaczenia nie będą wyróżniane"
+#: ../src/ui/dialog/align-and-distribute.cpp:246
+#: ../src/ui/dialog/align-and-distribute.cpp:788
+msgid "Align"
+msgstr "Wyrównaj"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:378
-msgid "Mark"
-msgstr "Uchwyt"
+#: ../src/ui/dialog/align-and-distribute.cpp:404
+#: ../src/ui/dialog/align-and-distribute.cpp:789
+msgid "Distribute"
+msgstr "Rozłóż"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:380
-msgid "Each selected object has a diamond mark in the top left corner"
-msgstr ""
-"Każdy z zaznaczonych obiektów będzie posiadał w lewym górnym rogu uchwyt w "
-"kształcie rombu"
+#: ../src/ui/dialog/align-and-distribute.cpp:473
+msgid "Minimum horizontal gap (in px units) between bounding boxes"
+msgstr "Minimalny odstęp poziomy (w pikselach) pomiędzy obramowaniami obiektów"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:381
-msgid "Box"
-msgstr "Obramowanie"
+#. TRANSLATORS: Horizontal gap. Only put "H:" equivalent in the translation
+#: ../src/ui/dialog/align-and-distribute.cpp:475
+msgid "gap|H:"
+msgstr "Poziom:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:383
-msgid "Each selected object displays its bounding box"
-msgstr "Każdy z zaznaczonych obiektów będzie otoczony obramowaniem"
+#: ../src/ui/dialog/align-and-distribute.cpp:483
+msgid "Minimum vertical gap (in px units) between bounding boxes"
+msgstr "Minimalny odstęp pionowy (w pikselach) pomiędzy obramowaniami obiektów"
 
-#. Node
-#: ../src/ui/dialog/inkscape-preferences.cpp:386
-msgid "Node"
-msgstr "Edycja węzłów"
+#. TRANSLATORS: Vertical gap
+#: ../src/ui/dialog/align-and-distribute.cpp:485
+msgid "V:"
+msgstr "Pion.:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:389
-msgid "Path outline:"
-msgstr "Ścieżka konturu:"
+#: ../src/ui/dialog/align-and-distribute.cpp:513
+#: ../src/ui/dialog/align-and-distribute.cpp:790
+#: ../src/widgets/toolbox.cpp:6580
+msgid "Remove overlaps"
+msgstr "Usuń nakładanie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:390
-#: ../src/ui/dialog/inkscape-preferences.cpp:391
-msgid "Path outline color"
-msgstr "Kolor ścieżki konturu"
+#: ../src/ui/dialog/align-and-distribute.cpp:543
+#: ../src/widgets/toolbox.cpp:6445
+msgid "Arrange connector network"
+msgstr "Rozmieść łącznik sieci"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:391
-msgid "Selects the color used for showing the path outline."
-msgstr "Wybierz kolor w jakim będzie wyświetlana ścieżka konturui"
+#: ../src/ui/dialog/align-and-distribute.cpp:573
+msgid "Unclump"
+msgstr "Rozproszenie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:392
-msgid "Path outline flash on mouse-over"
-msgstr "Migocz konturem ścieżki"
+#: ../src/ui/dialog/align-and-distribute.cpp:643
+msgid "Randomize positions"
+msgstr "Zmiana losowa położenia"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:393
-msgid "When hovering over a path, briefly flash its outline."
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, kontur ścieżki po umieszczeniu nad "
-"ścieżką wskażnika myszy będzie migotał."
+#: ../src/ui/dialog/align-and-distribute.cpp:740
+msgid "Distribute text baselines"
+msgstr "Ułóż tekst wg linii bazowej"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:395
-msgid "Flash time"
-msgstr "Czas migotania"
+#: ../src/ui/dialog/align-and-distribute.cpp:760
+msgid "Align text baselines"
+msgstr "Wyrównaj tekst wg linii bazowej"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:395
-msgid ""
-"Specifies how long the path outline will be visible after a mouse-over (in "
-"milliseconds). Specify 0 to have the outline shown until mouse leaves the "
-"path."
-msgstr ""
-"Określa, jak długo obramowanie ścieżki będzie widoczne po umieszczeniu nad "
-"nim wskaźnika myszy (w ms).Aby obramowanie ścieżki było wyświetlane do czasu "
-"przesunięcia wskaźnika myszy poza obramowanie należy wstawić wartość 0."
+#: ../src/ui/dialog/align-and-distribute.cpp:791
+msgid "Connector network layout"
+msgstr "Wygląd łączników sieci"
 
-#. Tweak
-#: ../src/ui/dialog/inkscape-preferences.cpp:398 ../src/verbs.cpp:2419
-msgid "Tweak"
-msgstr "Udoskonalanie"
+#: ../src/ui/dialog/align-and-distribute.cpp:792
+msgid "Nodes"
+msgstr "Węzły"
 
-#. Zoom
-#: ../src/ui/dialog/inkscape-preferences.cpp:403
-#: ../src/ui/view/edit-widget.cpp:1073 ../src/verbs.cpp:2441
-#: ../src/widgets/desktop-widget.cpp:490
-#: ../share/extensions/render_alphabetsoup.inx.h:5
-msgid "Zoom"
-msgstr "Powiększenie"
+#: ../src/ui/dialog/align-and-distribute.cpp:798
+msgid "Relative to: "
+msgstr "Element sterujący: "
 
-#. Shapes
-#: ../src/ui/dialog/inkscape-preferences.cpp:408
-msgid "Shapes"
-msgstr "Figury"
+#: ../src/ui/dialog/align-and-distribute.cpp:799
+#, fuzzy
+msgid "Treat selection as group: "
+msgstr "Zaznaczenie nie zaakceptowało maski"
 
-#. Pencil
-#: ../src/ui/dialog/inkscape-preferences.cpp:436 ../src/verbs.cpp:2431
-msgid "Pencil"
-msgstr "Ołówek"
+#: ../src/ui/dialog/align-and-distribute.cpp:804
+msgid "Align right sides of objects to left side of anchor"
+msgstr "Wyrównuje prawe krawędzie obiektów do lewej strony elementu sterującego"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:439
-#: ../src/ui/dialog/tracedialog.cpp:601
-msgid "Tolerance:"
-msgstr "Zaokrąglenie:"
+#: ../src/ui/dialog/align-and-distribute.cpp:807
+msgid "Align left sides"
+msgstr "Wyrównuje lewe krawędzie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:440
-msgid ""
-"This value affects the amount of smoothing applied to freehand lines; lower "
-"values produce more uneven paths with more nodes"
-msgstr ""
-"Wartość ta wpływa na wygładzanie ręcznie rysowanych krzywych. Mniejsza "
-"wartość powoduje wytworzenie większej ilości niejednolitych ścieżek z dużą "
-"ilością węzłów. "
+#: ../src/ui/dialog/align-and-distribute.cpp:810
+msgid "Center on vertical axis"
+msgstr "Wyśrodkowuje na osi pionowej"
 
-#. Pen
-#: ../src/ui/dialog/inkscape-preferences.cpp:446 ../src/verbs.cpp:2433
-msgid "Pen"
-msgstr "Pióro"
+#: ../src/ui/dialog/align-and-distribute.cpp:813
+msgid "Align right sides"
+msgstr "Wyrównuje prawe krawędzie"
 
-#. Calligraphy
-#: ../src/ui/dialog/inkscape-preferences.cpp:452 ../src/verbs.cpp:2435
-msgid "Calligraphy"
-msgstr "Kaligrafia"
+#: ../src/ui/dialog/align-and-distribute.cpp:816
+msgid "Align left sides of objects to right side of anchor"
+msgstr "Wyrównuje lewe krawędzie obiektów do prawej strony elementu sterującego"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:456
-msgid ""
-"If on, pen width is in absolute units (px) independent of zoom; otherwise "
-"pen width depends on zoom so that it looks the same at any zoom"
-msgstr ""
-"Jeśli opcja ta zostanie włączona, szerokość linii pióra - niezależnie od "
-"powiększenia - będzie wyrażona w jednostkach absolutnych (px). Jeśli "
-"zostanie wyłączona - szerokość będzie zależała od powiększenia i będzie "
-"wyglądała tak samo w każdym powiększeniu."
+#: ../src/ui/dialog/align-and-distribute.cpp:819
+msgid "Align bottoms of objects to top of anchor"
+msgstr "Wyrównuje dolne krawędzie obiektów do góry elementu sterującego"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:458
-msgid ""
-"If on, each newly created object will be selected (deselecting previous "
-"selection)"
-msgstr ""
-"Jeśli opcja ta zostanie włączona, każdy utworzony obiekt będzie zaznaczony "
-"(odznacza poprzednie zaznaczenie)"
+#: ../src/ui/dialog/align-and-distribute.cpp:822
+msgid "Align tops"
+msgstr "Wyrównuje górne krawędzie"
 
-#. Paint Bucket
-#: ../src/ui/dialog/inkscape-preferences.cpp:460 ../src/verbs.cpp:2447
-msgid "Paint Bucket"
-msgstr "Wypełnianie"
+#: ../src/ui/dialog/align-and-distribute.cpp:825
+msgid "Center on horizontal axis"
+msgstr "Wyśrodkowuje na osi poziomej"
 
-#. Eraser
-#: ../src/ui/dialog/inkscape-preferences.cpp:465 ../src/verbs.cpp:2451
-msgid "Eraser"
-msgstr "Gumka"
+#: ../src/ui/dialog/align-and-distribute.cpp:828
+msgid "Align bottoms"
+msgstr "Wyrównuje dolne krawędzie"
 
-#. Gradient
-#: ../src/ui/dialog/inkscape-preferences.cpp:475 ../src/verbs.cpp:2439
-msgid "Gradient"
-msgstr "Gradient"
+#: ../src/ui/dialog/align-and-distribute.cpp:831
+msgid "Align tops of objects to bottom of anchor"
+msgstr "Wyrównuje górne krawędzie obiektów do dołu elementu sterującego"
 
-#. Connector
-#: ../src/ui/dialog/inkscape-preferences.cpp:479 ../src/verbs.cpp:2445
-msgid "Connector"
-msgstr "Łącznik"
+#: ../src/ui/dialog/align-and-distribute.cpp:836
+msgid "Align baseline anchors of texts vertically"
+msgstr "Wyrównuje linie bazowe kotwic tekstów do linii pionowej"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:482
-msgid "If on, connector attachment points will not be shown for text objects"
-msgstr ""
-"Jeśli opcja ta zostanie włączona, punkty zaczepienia łączników nie będą "
-"wyświetlane dla obiektów tekstowych"
+#: ../src/ui/dialog/align-and-distribute.cpp:839
+msgid "Align baseline anchors of texts horizontally"
+msgstr "Wyrównuje linie bazowe kotwic tekstów do linii poziomej"
 
-#. Dropper
-#: ../src/ui/dialog/inkscape-preferences.cpp:484 ../src/verbs.cpp:2443
-msgid "Dropper"
-msgstr "Próbnik koloru"
+#: ../src/ui/dialog/align-and-distribute.cpp:844
+msgid "Make horizontal gaps between objects equal"
+msgstr "Wyrównuje odstępy pomiędzy obiektami w poziomie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:491
-msgid "Save and restore window geometry for each document"
-msgstr "Zapisuj i odtwarzaj ustawienia okna dla każdego dokumentu"
+#: ../src/ui/dialog/align-and-distribute.cpp:848
+msgid "Distribute left sides equidistantly"
+msgstr "Rozkłada lewe krawędzie obiektów w równych odstępach"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:492
-msgid "Remember and use last window's geometry"
-msgstr "Zapamiętaj i stosuj ostatnie ustawienia okna"
+#: ../src/ui/dialog/align-and-distribute.cpp:851
+msgid "Distribute centers equidistantly horizontally"
+msgstr "Rozkłada środki obiektów w równych odstępach poziomo"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:493
-msgid "Don't save window geometry"
-msgstr "Nie zapisuj ustawień okna"
+#: ../src/ui/dialog/align-and-distribute.cpp:854
+msgid "Distribute right sides equidistantly"
+msgstr "Rozkłada prawe krawędzie obiektów w równych odstępach"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:495
-#: ../src/ui/dialog/inkscape-preferences.cpp:515
-msgid "Dockable"
-msgstr "Zadokowane"
+#: ../src/ui/dialog/align-and-distribute.cpp:858
+msgid "Make vertical gaps between objects equal"
+msgstr "Wyrównuje odstępy pomiędzy obiektami w pionie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:498
-msgid "Dialogs are hidden in taskbar"
-msgstr "Ukrywaj okienka zadań na pasku zadań"
+#: ../src/ui/dialog/align-and-distribute.cpp:862
+msgid "Distribute tops equidistantly"
+msgstr "Rozkłada górne krawędzie obiektów w równych odstępach"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:499
-msgid "Zoom when window is resized"
-msgstr "Zmieniaj powiększenie przy zmianie rozmiaru okna"
+#: ../src/ui/dialog/align-and-distribute.cpp:865
+msgid "Distribute centers equidistantly vertically"
+msgstr "Rozkłada środki obiektów w równych odstępach w pionie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:500
-msgid "Show close button on dialogs"
-msgstr "Wyświetlaj przycisk zamykania w okienkach zadań"
+#: ../src/ui/dialog/align-and-distribute.cpp:868
+msgid "Distribute bottoms equidistantly"
+msgstr "Rozkłada dolne krawędzie obiektów w równych odstępach"
 
-#. consider moving this to an UI tab:
-#: ../src/ui/dialog/inkscape-preferences.cpp:502
-#: ../src/ui/dialog/inkscape-preferences.cpp:968
-msgid "Normal"
-msgstr "Normalne"
+#: ../src/ui/dialog/align-and-distribute.cpp:873
+msgid "Distribute baseline anchors of texts horizontally"
+msgstr "Rozkłada kotwice tekstów w równych odstępach w poziomie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:503
-msgid "Aggressive"
-msgstr "Agresywne"
+#: ../src/ui/dialog/align-and-distribute.cpp:876
+msgid "Distribute baseline anchors of texts vertically"
+msgstr "Rozkłada kotwice tekstów w równych odstępach w pionie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:505
-msgid "Saving window geometry (size and position):"
-msgstr "Zapisuj położenie i wielkość okien:"
+#: ../src/ui/dialog/align-and-distribute.cpp:881
+msgid "Randomize centers in both dimensions"
+msgstr "Rozkłada losowo środki obiektów w obu kierunkach"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:507
-msgid "Let the window manager determine placement of all windows"
-msgstr "Menedżer okien będzie określał położenie wszystkich okien"
+#: ../src/ui/dialog/align-and-distribute.cpp:884
+msgid "Unclump objects: try to equalize edge-to-edge distances"
+msgstr "Rozkłada obiekty próbując wyrównać odległości pomiędzy krawędziami"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:509
-msgid ""
-"Remember and use the last window's geometry (saves geometry to user "
-"preferences)"
-msgstr ""
-"Ostatnia wielkość i położenie okna zostanie zapamiętane (zapisane w "
-"preferencjach użytkownika) i stosowane w przyszłości"
+#: ../src/ui/dialog/align-and-distribute.cpp:889
+msgid "Move objects as little as possible so that their bounding boxes do not overlap"
+msgstr "Przesuwa obiekty tylko o tyle, aby ich obramowania nie nakładały się"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:511
-msgid ""
-"Save and restore window geometry for each document (saves geometry in the "
-"document)"
-msgstr ""
-"Wielkość i położenie okna każdego dokumentu zostanie zapamiętane (zapisane w "
-"dokumencie) i odtwarzane razem z nim"
+#: ../src/ui/dialog/align-and-distribute.cpp:893
+#: ../src/widgets/toolbox.cpp:6543
+msgid "Nicely arrange selected connector network"
+msgstr "Rozłóż równomiernie zaznaczone łączniki"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:513
-msgid "Dialog behavior (requires restart):"
-msgstr "Rozmieszczenie okienek zadań (zmiana wymaga ponownego uruchomienia):"
+#: ../src/ui/dialog/align-and-distribute.cpp:898
+msgid "Align selected nodes horizontally"
+msgstr "Ustawia zaznaczone węzły w linii poziomej"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:520
-msgid "Dialogs on top:"
-msgstr "Wyświetlanie okienek zadań"
+#: ../src/ui/dialog/align-and-distribute.cpp:901
+msgid "Align selected nodes vertically"
+msgstr "Ustawia zaznaczone węzły w linii pionowej"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:523
-msgid "Dialogs are treated as regular windows"
-msgstr "Okienka zadań wyświetlane jak zwykłe okna"
+#: ../src/ui/dialog/align-and-distribute.cpp:904
+msgid "Distribute selected nodes horizontally"
+msgstr "Wyrównuje odstępy w poziomie pomiędzy zaznaczonymi węzłami"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:525
-msgid "Dialogs stay on top of document windows"
-msgstr "Okienka zadań na wierzchu"
+#: ../src/ui/dialog/align-and-distribute.cpp:907
+msgid "Distribute selected nodes vertically"
+msgstr "Wyrównuje odstępy w pionie pomiędzy zaznaczonymi węzłami"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:527
-msgid "Same as Normal but may work better with some window managers"
-msgstr ""
-"Tak samo jak normalnie, ale może działać lepiej z niektórymi menedżerami "
-"okien"
+#. Rest of the widgetry
+#: ../src/ui/dialog/align-and-distribute.cpp:912
+msgid "Last selected"
+msgstr "Ostatni zaznaczony"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:530
-msgid "Miscellaneous:"
-msgstr "Różne"
+#: ../src/ui/dialog/align-and-distribute.cpp:913
+msgid "First selected"
+msgstr "Pierwszy zaznaczony"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:533
-msgid "Whether dialog windows are to be hidden in the window manager taskbar"
-msgstr ""
-"Wyłącza wyświetlanie przycisków okien dialogowych na pasku zadań menadżera "
-"okien"
+#: ../src/ui/dialog/align-and-distribute.cpp:914
+msgid "Biggest item"
+msgstr "Największy element"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:536
-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 ""
-"Zaznaczenie tej opcji spowoduje, że wraz ze zmianą rozmiarów okna dokumentu "
-"nastąpi zmiana powiększenia z zachowaniem widocznego obszaru. Jest to "
-"zachowanie domyślne, które może być zmienione w każdym oknie przyciskiem "
-"znajdującym się nad prawym paskiem przewijania."
+#: ../src/ui/dialog/align-and-distribute.cpp:915
+msgid "Smallest item"
+msgstr "Najmniejszy element"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:538
-msgid "Whether dialog windows have a close button (requires restart)"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje wyświetlanie przycisku \"Zamknij\" w "
-"okienkach zadań (wymaga ponownego uruchomienia)"
+#: ../src/ui/dialog/align-and-distribute.cpp:917
+#: ../src/widgets/desktop-widget.cpp:1576
+msgid "Drawing"
+msgstr "Rysunek"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:539
-msgid "Windows"
-msgstr "Okna"
+#: ../src/ui/dialog/document-metadata.cpp:79
+msgid "Metadata"
+msgstr "Metadane"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:544
-msgid "Move in parallel"
-msgstr "Przemieszczają się równolegle"
+#: ../src/ui/dialog/document-metadata.cpp:80
+msgid "License"
+msgstr "Licencja"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:546
-msgid "Stay unmoved"
-msgstr "Pozostają nieprzemieszczone"
+#: ../src/ui/dialog/document-metadata.cpp:160
+msgid "<b>Dublin Core Entities</b>"
+msgstr "<b>Jednostki Dublin Core</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:548
-msgid "Move according to transform"
-msgstr "Przemieszczają się zgodnie z przypisanym przekształceniem"
+#: ../src/ui/dialog/document-metadata.cpp:182
+msgid "<b>License</b>"
+msgstr "<b>Licencja</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:550
-msgid "Are unlinked"
-msgstr "Zostaną odłączone"
+#: ../src/ui/dialog/document-properties.cpp:88
+msgid "If set, rectangular page border is shown"
+msgstr "Będzie wyświetlany kontur strony"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:552
-msgid "Are deleted"
-msgstr "Zostaną usunięte"
+#. ---------------------------------------------------------------
+#: ../src/ui/dialog/document-properties.cpp:88
+msgid "Show page _border"
+msgstr "Wyświetlaj _kontur strony"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:555
-msgid "When the original moves, its clones and linked offsets:"
-msgstr "Podczas przemieszczania oryginału jego klony i połączone odsunięcia:"
+#: ../src/ui/dialog/document-properties.cpp:89
+msgid "Border on _top of drawing"
+msgstr "Kontur _widoczny przez rysunek"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:557
-msgid "Clones are translated by the same vector as their original."
-msgstr "Klony są przemieszczane o ten sam wektor co oryginał"
+#: ../src/ui/dialog/document-properties.cpp:89
+msgid "If set, border is always on top of the drawing"
+msgstr "Będzie widoczny kontur strony poprzez elementy rysunku"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:559
-msgid "Clones preserve their positions when their original is moved."
-msgstr ""
-"Klony zachowują swoją pozycję podczas, gdy oryginał zostaje przesunięty"
+#: ../src/ui/dialog/document-properties.cpp:90
+msgid "If set, page border shows a shadow on its right and lower side"
+msgstr "Będzie wyświetlany cień po prawej stronie i na dole konturu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:561
-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 ""
-"Każda ze sklonowanych kopii zostaje przemieszczona zgodnie z wartością "
-"przypisanego do niej przekształcenia. Na przykład obrócony klon przesuwa się "
-"w innym kierunku niż oryginał."
+#: ../src/ui/dialog/document-properties.cpp:90
+msgid "_Show border shadow"
+msgstr "Wyświetlaj _cień strony"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:562
-msgid "When the original is deleted, its clones:"
-msgstr "Podczas usuwania oryginału jego klony:"
+#: ../src/ui/dialog/document-properties.cpp:91
+msgid "Back_ground:"
+msgstr "_Tło:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:564
-msgid "Orphaned clones are converted to regular objects."
-msgstr "Osierocone klony zostaną zamienione na zwykłe obiekty"
+#: ../src/ui/dialog/document-properties.cpp:91
+msgid "Background color"
+msgstr "Kolor tła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:566
-msgid "Orphaned clones are deleted along with their original."
-msgstr "Osierocone obiekty zostaną usunięte razem z oryginałem"
+#: ../src/ui/dialog/document-properties.cpp:91
+msgid "Color and transparency of the page background (also used for bitmap export)"
+msgstr "Kolor i przezroczystość tła strony (używane również przy eksporcie do bitmapy)"
 
-#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page
-#: ../src/ui/dialog/inkscape-preferences.cpp:569
-msgid "Clones"
-msgstr "Klony"
+#: ../src/ui/dialog/document-properties.cpp:92
+msgid "Border _color:"
+msgstr "Kolor konturu:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:574
-msgid "When applying, use the topmost selected object as clippath/mask"
-msgstr ""
-"Używaj ostatnio zaznaczonego obiektu jako ścieżki przycinania/maskowania"
+#: ../src/ui/dialog/document-properties.cpp:92
+msgid "Color of the page border"
+msgstr "Kolor konturu strony"
+
+#: ../src/ui/dialog/document-properties.cpp:92
+msgid "Page border color"
+msgstr "Kolor konturu strony"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:576
-msgid ""
-"Uncheck this to use the bottom selected object as the clipping path or mask"
-msgstr ""
-"Aby używać obiektu zaznaczonego pod spodem jako ścieżki przycinania lub "
-"maskowania należy tę opcję odznaczyć"
+#: ../src/ui/dialog/document-properties.cpp:93
+msgid "Default _units:"
+msgstr "Domyślne _jednostki:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:577
-msgid "Remove clippath/mask object after applying"
-msgstr "Usuwaj ścieżkę przycinania lub maskowania po wykonaniu operacji"
+#. ---------------------------------------------------------------
+#. General snap options
+#: ../src/ui/dialog/document-properties.cpp:97
+msgid "Show _guides"
+msgstr "_Wyświetlaj prowadnice"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:579
-msgid ""
-"After applying, remove the object used as the clipping path or mask from the "
-"drawing"
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, o wykonaniu operacji, użyty jako ścieżka "
-"przycinania lub maskowania obiekt zostanie usunięty z rysunku"
+#: ../src/ui/dialog/document-properties.cpp:97
+msgid "Show or hide guides"
+msgstr "Będą wyświetlane prowadnice"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:580
-msgid "Clippaths and masks"
-msgstr "Ścieżki przycinania i maski"
+#: ../src/ui/dialog/document-properties.cpp:98
+msgid "While dragging a guide, snap to object nodes or bounding box corners ('Snap to nodes' or 'snap to bounding box corners' must be enabled in the 'Snap' tab; only a small part of the guide near the cursor will snap)"
+msgstr "Podczas przeciągania prowadnicy będzie następowało przyciąganie do węzłów obiektu lub narożników obramowania. Na karcie \"Przyciąganie\" musi być włączona opcja \"Przyciągaj do węzłów\" lub \"Przyciągaj do narożników obramowania\". Będzie przyciągana tylko niewielka część prowadnicy znajdująca się blisko kursora."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:585
-#: ../src/widgets/select-toolbar.cpp:524
-msgid "Scale stroke width"
-msgstr "Skaluj szerokość konturu"
+#: ../src/ui/dialog/document-properties.cpp:98
+msgid "_Snap guides while dragging"
+msgstr "_Przyciągaj prowadnice podczas przeciągania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:586
-msgid "Scale rounded corners in rectangles"
-msgstr "Skaluj zaokrąglenia narożników prostokątów"
+#: ../src/ui/dialog/document-properties.cpp:100
+msgid "Color of guidelines"
+msgstr "Kolor prowadnic"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:587
-msgid "Transform gradients"
-msgstr "Przekształcaj gradienty"
+#: ../src/ui/dialog/document-properties.cpp:100
+msgid "Guide co_lor:"
+msgstr "Kolor p_rowadnicy:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:588
-msgid "Transform patterns"
-msgstr "Przekształcaj desenie"
+#: ../src/ui/dialog/document-properties.cpp:100
+msgid "Guideline color"
+msgstr "Kolor prowadnic"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:589
-msgid "Optimized"
-msgstr "Zoptymalizowany"
+#: ../src/ui/dialog/document-properties.cpp:101
+msgid "Color of a guideline when it is under mouse"
+msgstr "Kolor prowadnicy po umieszczeniu na niej wskaźnika myszy"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:590
-msgid "Preserved"
-msgstr "Zawsze zapisywane"
+#: ../src/ui/dialog/document-properties.cpp:101
+msgid "Highlighted guideline color"
+msgstr "Kolor podświetlenia prowadnic"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:593
-#: ../src/widgets/select-toolbar.cpp:525
-msgid "When scaling objects, scale the stroke width by the same proportion"
-msgstr ""
-"Włącz tę opcję, aby podczas skalowania obiektów szerokość konturu zmieniała "
-"się proporcjonalnie"
+#: ../src/ui/dialog/document-properties.cpp:101
+msgid "_Highlight color:"
+msgstr "Kolor po_dświetlenia:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:595
-#: ../src/widgets/select-toolbar.cpp:536
-msgid "When scaling rectangles, scale the radii of rounded corners"
-msgstr ""
-"Włącz tę opcję, aby podczas skalowania prostokątów był skalowany również "
-"promień zaokrąglenia ich narożników"
+#: ../src/ui/dialog/document-properties.cpp:103
+#: ../src/verbs.cpp:2583
+msgid "Toggle snapping on or off"
+msgstr "Włącza/wyłącza przyciąganie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:597
-#: ../src/widgets/select-toolbar.cpp:547
-msgid "Move gradients (in fill or stroke) along with the objects"
-msgstr ""
-"Włącz tę opcję, aby przekształcanie gradientu (w wypełnieniu lub konturze) "
-"następowało wraz z przekształcaniem obiektów"
+#. ---------------------------------------------------------------
+#: ../src/ui/dialog/document-properties.cpp:103
+msgid "_Enable snapping"
+msgstr "Włącz _przyciąganie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:599
-#: ../src/widgets/select-toolbar.cpp:558
-msgid "Move patterns (in fill or stroke) along with the objects"
+#: ../src/ui/dialog/document-properties.cpp:104
+msgid "After snapping, a symbol is drawn at the point that has snapped"
 msgstr ""
-"Włącz tę opcję, aby przekształcanie deseni (w wypełnieniu i konturze) "
-"następowało wraz z przekształcaniem obiektów"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:600
-msgid "Store transformation:"
-msgstr "Sposób zapisu przekształcenia:"
+#: ../src/ui/dialog/document-properties.cpp:104
+msgid "_Enable snap indicator"
+msgstr "Włącz wskaźnik _przyciągania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:602
-msgid ""
-"If possible, apply transformation to objects without adding a transform= "
-"attribute"
-msgstr ""
-"Gdy tylko możliwe, wykonuje przekształcenie na obiektach bez dodawania "
-"atrybutu transform="
+#: ../src/ui/dialog/document-properties.cpp:105
+msgid "Only available in the selector tool: snap bounding box corners to guides, to grids, and to other bounding boxes (but not to nodes or paths)"
+msgstr "Przyciąga narożniki obramowania obiektu do prowadnic, siatek i innych ramek obiektu, ale nie do węzłów lub ścieżek. Dostępne tylko w narzędziu \"Wskaźnik\"."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:604
-msgid "Always store transformation as a transform= attribute on objects"
-msgstr "Zapisuje zawsze przekształcenie na obiektach jako atrybut transform="
+#: ../src/ui/dialog/document-properties.cpp:105
+msgid "_Bounding box corners"
+msgstr "_Narożniki obramowania obiektu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:606
-msgid "Transforms"
-msgstr "Przekształcenia"
+#: ../src/ui/dialog/document-properties.cpp:107
+msgid "Snap nodes (e.g. path nodes, special points in shapes, gradient handles, text base points, transformation origins, etc.) to guides, to grids, to paths and to other nodes"
+msgstr "Przyciąga węzły (np. węzły ścieżki, specjalne punkty w kształtach, uchwyty gradientu, punkty bazowe tekstu itp.) do linii siatki, prowadnic, ścieżek i innych węzłów"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:611
-msgid "Best quality (slowest)"
-msgstr "Najlepsza (najwolniej)"
+#: ../src/ui/dialog/document-properties.cpp:107
+msgid "_Nodes"
+msgstr "_Węzły"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:613
-msgid "Better quality (slower)"
-msgstr "Dobra (wolno)"
+#: ../src/ui/dialog/document-properties.cpp:110
+msgid "Snap nodes to object paths"
+msgstr "Przyciąga węzły do ścieżek obiektów"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:615
-msgid "Average quality"
-msgstr "Średnia"
+#. Options for snapping to objects
+#: ../src/ui/dialog/document-properties.cpp:110
+msgid "Snap to path_s"
+msgstr "Przyciągaj do ści_eżek"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:617
-msgid "Lower quality (faster)"
-msgstr "Niższa (szybciej)"
+#: ../src/ui/dialog/document-properties.cpp:111
+msgid "Snap nodes and guides to object nodes"
+msgstr "Przyciąga węzły i prowadnice do węzłów obiektu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:619
-msgid "Lowest quality (fastest)"
-msgstr "Najniższa (najszybciej)"
+#: ../src/ui/dialog/document-properties.cpp:111
+msgid "Snap to n_odes"
+msgstr "Przyciągaj do wę_złów"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:622
-msgid "Gaussian blur quality for display:"
-msgstr "Jakość rozmycia gaussowskiego:"
+#: ../src/ui/dialog/document-properties.cpp:112
+msgid "Snap bounding box corners and guides to bounding box edges"
+msgstr "Przyciąga narożniki obramowania obiektu i prowadnic do krawędzi obramowania obiektu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:624
-msgid ""
-"Best quality, but display may be very slow at high zooms (bitmap export "
-"always uses best quality)"
-msgstr ""
-"Najlepsza jakość, ale wyświetlanie może być bardzo wolne przy dużych "
-"powiększeniach (eksport bitmap używa zawsze najlepszej jakości)"
+#: ../src/ui/dialog/document-properties.cpp:112
+msgid "Snap to bounding bo_x edges"
+msgstr "Przyciągaj do _krawędzi obramowania obiektu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:626
-msgid "Better quality, but slower display"
-msgstr "Dobra jakość, ale wolniejsze wyświetlanie"
+#: ../src/ui/dialog/document-properties.cpp:113
+msgid "Snap bounding box corners to other bounding box corners"
+msgstr "Przyciąga narożniki obramowania obiektu do innych narożników obramowania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:628
-msgid "Average quality, acceptable display speed"
-msgstr "Średnia jakość - akceptowalna szybkość wyświetlania"
+#: ../src/ui/dialog/document-properties.cpp:113
+msgid "Snap to bounding box co_rners"
+msgstr "Przyciągaj do narożników obra_mowania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:630
-msgid "Lower quality (some artifacts), but display is faster"
-msgstr "Niska jakość - niewielkie błędy w obrazie, ale szybsze wyświetlanie"
+#: ../src/ui/dialog/document-properties.cpp:114
+msgid "Snap bounding box corners and nodes to the page border"
+msgstr "Przyciąga narożniki obramowania obiektu i węzłów do krawędzi obramowania strony"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:632
-msgid "Lowest quality (considerable artifacts), but display is fastest"
-msgstr "Najniższa jakość - spore błędy w obrazie, ale najszybsze wyświetlanie"
+#: ../src/ui/dialog/document-properties.cpp:114
+msgid "Snap to page border"
+msgstr "Przyciągaj do obramowania strony"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:634
-msgid "Show filter primitives infobox"
-msgstr "Wyświetlaj panel informacyjny efektów specjalnych"
+#: ../src/ui/dialog/document-properties.cpp:117
+msgid "Consider the rotation center of an object when snapping"
+msgstr "Uwzględnia środek obrotu obiektu podczas przyciągania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:636
-msgid ""
-"Show icons and descriptions for the filter primitives available at the "
-"filter effects dialog."
-msgstr ""
-"W panelu efektów specjalnych wyświetlaj ikony i opisy dostępnych efektów"
+#. ---------------------------------------------------------------
+#. Applies to both nodes and guides, but not to bboxes, that's why its located here
+#: ../src/ui/dialog/document-properties.cpp:117
+msgid "Rotation _center"
+msgstr "Środek o_brotu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:638
-msgid "Filters"
-msgstr "Filtry"
+#: ../src/ui/dialog/document-properties.cpp:118
+msgid "Snap to grid-guide intersections"
+msgstr "Przyciąganie do punktów przecięcia siatki i prowadnic"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:644
-msgid "Select in all layers"
-msgstr "Zaznaczaj na wszystkich warstwach"
+#: ../src/ui/dialog/document-properties.cpp:118
+msgid "_Grid with guides"
+msgstr "_Siatka z prowadnicami"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:645
-msgid "Select only within current layer"
-msgstr "Zaznaczaj jedynie w obrębie aktywnej warstwy"
+#: ../src/ui/dialog/document-properties.cpp:119
+msgid "Snap to intersections of paths ('snap to paths' must be enabled, see the previous tab)"
+msgstr "Przyciąganie do przecięcia ścieżek. Na poprzedniej karcie musi być zaznaczona opcja \"Przyciągaj do ścieżek\"."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:646
-msgid "Select in current layer and sublayers"
-msgstr "Zaznaczaj na aktywnej i na podrzędnych warstwach "
+#: ../src/ui/dialog/document-properties.cpp:119
+msgid "_Paths"
+msgstr "Ś_cieżki"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:647
-msgid "Ignore hidden objects and layers"
-msgstr "Pomijaj ukryte obiekty i warstwy"
+#: ../src/ui/dialog/document-properties.cpp:124
+msgid "Create new grid."
+msgstr "Utwórz nową siatkę"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:648
-msgid "Ignore locked objects and layers"
-msgstr "Pomijaj zablokowane obiekty i warstwy"
+#. TRANSLATORS: In Grid|_New translate only the word _New. It ref to grid
+#: ../src/ui/dialog/document-properties.cpp:124
+msgid "Grid|_New"
+msgstr "_Nowa"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:649
-msgid "Deselect upon layer change"
-msgstr "Usuwaj zaznaczenie obiektów przy zmianie warstwy"
+#: ../src/ui/dialog/document-properties.cpp:125
+msgid "Remove selected grid."
+msgstr "Usuń zaznaczoną siatkę"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:651
-msgid "Ctrl+A, Tab, Shift+Tab:"
-msgstr "Działanie skrótów [Ctrl + A]  [Tab]  [Shift + Tab]:"
+#: ../src/ui/dialog/document-properties.cpp:125
+msgid "_Remove"
+msgstr "_Usuń"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:653
-msgid "Make keyboard selection commands work on objects in all layers"
-msgstr ""
-"Wybranie tej opcji spowoduje zaznaczanie za pomocą skrótów klawiaturowych "
-"obiektów na wszystkich warstwach"
+#: ../src/ui/dialog/document-properties.cpp:135
+msgid "Guides"
+msgstr "Prowadnice"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:655
-msgid "Make keyboard selection commands work on objects in current layer only"
-msgstr ""
-"Wybranie tej opcji spowoduje zaznaczanie za pomocą skrótów klawiaturowych "
-"tylko obiektów na aktywnej warstwie"
+#: ../src/ui/dialog/document-properties.cpp:136
+#: ../src/ui/dialog/inkscape-preferences.cpp:934
+msgid "Grids"
+msgstr "Siatki"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:657
-msgid ""
-"Make keyboard selection commands work on objects in current layer and all "
-"its sublayers"
-msgstr ""
-"Wybranie tej opcji spowoduje zaznaczanie za pomocą skrótów klawiaturowych "
-"obiektów na aktywnej warstwie i wszystkich jej podrzędnych warstwach"
+#: ../src/ui/dialog/document-properties.cpp:137
+#: ../src/verbs.cpp:2583
+msgid "Snap"
+msgstr "Przyciąganie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:659
-msgid ""
-"Uncheck this to be able to select objects that are hidden (either by "
-"themselves or by being in a hidden layer)"
-msgstr ""
-"Jeśli ta opcja zostanie wyłączona będzie można zaznaczać ukryte obiekty, "
-"zarówno te ustawione jako ukryte, jak i znajdujące się w ukrytej grupie lub "
-"warstwie"
+#: ../src/ui/dialog/document-properties.cpp:138
+msgid "Snap points"
+msgstr "Punkty przyciągania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:661
-msgid ""
-"Uncheck this to be able to select objects that are locked (either by "
-"themselves or by being in a locked layer)"
-msgstr ""
-"Jeśli ta opcja zostanie wyłączona będzie można zaznaczać zablokowane "
-"obiekty, zarówno te ustawione jako zablokowane, jak i znajdujące się w "
-"zablokowanej grupie lub warstwie"
+#: ../src/ui/dialog/document-properties.cpp:233
+msgid "<b>General</b>"
+msgstr "<b>Ogólne</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:664
-msgid ""
-"Uncheck this to be able to keep the current objects selected when the "
-"current layer changes"
-msgstr ""
-"Jeśli ta opcja zostanie wyłączona będzie można zachować aktualnie zaznaczone "
-"obiekty przy zmianie aktywnej warstwy"
+#: ../src/ui/dialog/document-properties.cpp:235
+msgid "<b>Border</b>"
+msgstr "<b>Kontur</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:666
-msgid "Selecting"
-msgstr "Zaznaczanie"
+#: ../src/ui/dialog/document-properties.cpp:237
+msgid "<b>Format</b>"
+msgstr "<b>Format strony</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:673
-msgid "Default export resolution:"
-msgstr "Domyślna rozdzielczość eksportu:"
+#: ../src/ui/dialog/document-properties.cpp:265
+msgid "<b>Guides</b>"
+msgstr "<b>Prowadnice</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:674
-msgid "Default bitmap resolution (in dots per inch) in the Export dialog"
-msgstr ""
-"Domyślna rozdzielczość bitmapy (w dpi) wyświetlana w oknie dialogowym "
-"eksportu"
+#: ../src/ui/dialog/document-properties.cpp:284
+#: ../src/ui/dialog/document-properties.cpp:290
+#: ../src/ui/dialog/document-properties.cpp:296
+msgid "Always snap"
+msgstr "Zawsze przyciągaj"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:676
-msgid "Open Clip Art Library Server Name:"
-msgstr "Nazwa serwera klipartów:"
+#: ../src/ui/dialog/document-properties.cpp:284
+msgid "Snap _distance"
+msgstr "Odległość p_rzyciągania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:677
-msgid ""
-"The server name of the Open Clip Art Library webdav server. It's used by the "
-"Import and Export to OCAL function."
-msgstr ""
-"Nazwa serwera Open Clip Art Library. Jest ona używana przez funkcję importu "
-"i eksportu na serwer Open Clip Art Library. "
+#: ../src/ui/dialog/document-properties.cpp:284
+msgid "Snap only when _closer than:"
+msgstr "Przyciągaj tylko z _odległości mniejszej niż:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:679
-msgid "Open Clip Art Library Username:"
-msgstr "Nazwa użytkownika:"
+#: ../src/ui/dialog/document-properties.cpp:285
+msgid "Always snap to objects, regardless of their distance"
+msgstr "Zawsze przyciągaj do obiektów, bez względu na ich odległość"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:680
-msgid "The username used to log into Open Clip Art Library."
-msgstr "Nazwa użytkownika używana do logowania do Open Clip Art Library"
+#: ../src/ui/dialog/document-properties.cpp:285
+msgid "Snapping distance, in screen pixels, for snapping to objects"
+msgstr "Odległość przyciągania (w pikselach) z jakiej obiekty będą przyciągane"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:682
-msgid "Open Clip Art Library Password:"
-msgstr "Hasło:"
+#: ../src/ui/dialog/document-properties.cpp:286
+msgid "If set, objects only snap to another object when it's within the range specified below"
+msgstr "Obiekty będą przyciągane do innego obiektu tylko jeśli ten obiekt znajduje się w zasięgu określonym poniżej"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:683
-msgid "The password used to log into Open Clip Art Library."
-msgstr "Hasło używane do logowania do Open Clip Art Library"
+#. Options for snapping to grids
+#: ../src/ui/dialog/document-properties.cpp:290
+msgid "Snap d_istance"
+msgstr "Odległość przy_ciągania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:685
-msgid "Import/Export"
-msgstr "Import/Eksport"
+#: ../src/ui/dialog/document-properties.cpp:290
+msgid "Snap only when c_loser than:"
+msgstr "Przyciągaj tylko z o_dległości mniejszej niż:"
 
-#. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm
-#: ../src/ui/dialog/inkscape-preferences.cpp:731
-msgid "Perceptual"
-msgstr "Percepcyjny"
+#: ../src/ui/dialog/document-properties.cpp:291
+msgid "Always snap to grids, regardless of the distance"
+msgstr "Zawsze przyciągaj do siatek, bez względu na odległość"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:731
-msgid "Relative Colorimetric"
-msgstr "Kolorymetryczny względny"
+#: ../src/ui/dialog/document-properties.cpp:291
+msgid "Snapping distance, in screen pixels, for snapping to grid"
+msgstr "Odległość przyciągania, w pikselach, z jakiej obiekty będą przyciągane do siatki"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:731
-msgid "Absolute Colorimetric"
-msgstr "Kolorymetryczny bezwzględny"
+#: ../src/ui/dialog/document-properties.cpp:292
+msgid "If set, objects only snap to a grid line when it's within the range specified below"
+msgstr "Obiekty będą przyciągane do siatki tylko, gdy znajdują się w określonym poniżej zasięgu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:735
-msgid "(Note: Color management has been disabled in this build)"
-msgstr "(Uwaga: W tej wersji programu zarządzanie kolorem zostało wyłączone)"
+#. Options for snapping to guides
+#: ../src/ui/dialog/document-properties.cpp:296
+msgid "Snap dist_ance"
+msgstr "Odległość _przyciągania"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:739
-msgid "Display adjustment"
-msgstr "Dostrajanie monitora"
+#: ../src/ui/dialog/document-properties.cpp:296
+msgid "Snap only when close_r than:"
+msgstr "Przyciągaj tylko z odle_głości mniejszej niż:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:741
-msgid "Display profile:"
-msgstr "Profil monitora:"
+#: ../src/ui/dialog/document-properties.cpp:297
+msgid "Always snap to guides, regardless of the distance"
+msgstr "Zawsze przyciągaj do prowadnic, bez względu na odległość"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:742
-msgid "The ICC profile to use to calibrate display output."
-msgstr "Profil ICC używany do kalibracji monitora"
+#: ../src/ui/dialog/document-properties.cpp:297
+msgid "Snapping distance, in screen pixels, for snapping to guides"
+msgstr "Odległość przyciągania, w pikselach, z jakiej obiekty będą przyciągane do prowadnic"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:744
-msgid "Retrieve profile from display"
-msgstr "Pobierz profil z monitora"
+#: ../src/ui/dialog/document-properties.cpp:298
+msgid "If set, objects only snap to a guide when it's within the range specified below"
+msgstr "Obiekty będą przyciągane do prowadnicy tylko, gdy znajdują się w określonym poniżej zasięgu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:747
-msgid "Retrieve profiles from those attached to displays via XICC."
-msgstr "Pobierz poprzez XICC istniejące profile monitora"
+#: ../src/ui/dialog/document-properties.cpp:321
+msgid "<b>Snapping</b>"
+msgstr "<b>Przyciąganie</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:749
-msgid "Retrieve profiles from those attached to displays."
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona będą pobierane istniejące profile monitora"
+#: ../src/ui/dialog/document-properties.cpp:323
+msgid "<b>What snaps</b>"
+msgstr "<b>Elementy przyciągane</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:754
-msgid "Display rendering intent:"
-msgstr "Sposób renderowania monitora:"
+#: ../src/ui/dialog/document-properties.cpp:325
+msgid "<b>Snap to objects</b>"
+msgstr "<b>Przyciąganie do obiektów</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:755
-#: ../src/ui/dialog/inkscape-preferences.cpp:778
-msgid "The rendering intent to use to calibrate display output."
-msgstr "Sposób renderowania używany do kalibracji wyjścia monitora"
+#: ../src/ui/dialog/document-properties.cpp:327
+msgid "<b>Snap to grids</b>"
+msgstr "<b>Przyciąganie do siatek</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:757
-msgid "Proofing"
-msgstr "Sprawdzanie"
+#: ../src/ui/dialog/document-properties.cpp:329
+msgid "<b>Snap to guides</b>"
+msgstr "<b>Przyciąganie do prowadnic</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:759
-msgid "Simulate output on screen"
-msgstr "Symuluj wyjście na ekranie"
+#: ../src/ui/dialog/document-properties.cpp:367
+msgid "<b>Snapping to intersections of</b>"
+msgstr "<b>Przyciąganie do skrzyżowania siatki z prowadnicą</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:761
-msgid "Simulates output of target device."
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona wyjście urządzenia docelowego będzie "
-"symulowane na ekranie"
+#: ../src/ui/dialog/document-properties.cpp:369
+msgid "<b>Special points to consider</b>"
+msgstr "<b>Punkty specjalne do uwzględnienia</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:763
-msgid "Mark out of gamut colors"
-msgstr "Oznacz kolory będące poza gamą kolorów"
+#: ../src/ui/dialog/document-properties.cpp:439
+msgid "<b>Creation</b>"
+msgstr "<b>Tworzenie</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:765
-msgid "Highlights colors that are out of gamut for the target device."
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona będą podświetlane kolory znajdujące się "
-"poza gamą kolorów urządzenia docelowego"
+#: ../src/ui/dialog/document-properties.cpp:440
+msgid "<b>Defined grids</b>"
+msgstr "<b>Zdefiniowane siatki</b>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:770
-msgid "Out of gamut warning color:"
-msgstr "Kolor ostrzeżeń:"
+#: ../src/ui/dialog/document-properties.cpp:656
+msgid "Remove grid"
+msgstr "Usuń siatkę"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:771
-msgid "Selects the color used for out of gamut warning."
-msgstr ""
-"Określ kolor używany do ostrzeżeń o kolorach znajdujących się poza gamą "
-"kolorów"
+#: ../src/ui/dialog/extension-editor.cpp:80
+msgid "Information"
+msgstr "Informacje"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:773
-msgid "Device profile:"
-msgstr "Profil urządzenia:"
+#: ../src/ui/dialog/extension-editor.cpp:82
+msgid "Parameters"
+msgstr "Parametry"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:774
-msgid "The ICC profile to use to simulate device output."
-msgstr "Profil ICC używany do symulacji urządzenia wyjściowego"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:382
+msgid "No preview"
+msgstr "Brak podglądu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:777
-msgid "Device rendering intent:"
-msgstr "Sposób renderowania:"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:488
+msgid "too large for preview"
+msgstr "Za duży, aby otworzyć podgląd"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:780
-msgid "Black point compensation"
-msgstr "Kompensuj punktu czerni"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:577
+msgid "Enable preview"
+msgstr "Włącz podgląd"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:782
-msgid "Enables black point compensation."
-msgstr "Zaznaczenie tej opcji spowoduje włączenie kompensacji punktu czerni"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:711
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:712
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:199
+msgid "All Inkscape Files"
+msgstr "Wszystkie pliki Inkscape'a"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:784
-msgid "Preserve black"
-msgstr "Zachowaj kanał K"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:716
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:717
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:198
+msgid "All Files"
+msgstr "Wszystkie pliki"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:789
-msgid "(LittleCMS 1.15 or later required)"
-msgstr "(Jest wymagany program LittleCMS 1.15 lub nowszy)"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:722
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:723
+msgid "All Images"
+msgstr "Wszystkie obrazki"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:791
-msgid "Preserve K channel in CMYK -> CMYK transforms"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje zachowywanie kanału K (czarnego) podczas "
-"transformacji CMYK -> CMYK"
+#. ###### Add the file types menu
+#. createFilterMenu();
+#. ###### Do we want the .xxx extension automatically added?
+#. ###### File options
+#. ###### Do we want the .xxx extension automatically added?
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:890
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1432
+msgid "Append filename extension automatically"
+msgstr "Dodaj automatycznie rozszerzenie nazwy pliku"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:804
-msgid "<none>"
-msgstr "<brak>"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1045
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1297
+msgid "Guess from extension"
+msgstr "Wszystkie pliki (*.*)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:850
-msgid "Color management"
-msgstr "Zarządzanie kolorem"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1318
+msgid "Left edge of source"
+msgstr "Lewa krawędź źródła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:855
-msgid "Major grid line emphasizing"
-msgstr "Wyróżniane głównej linii siatki"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1319
+msgid "Top edge of source"
+msgstr "Górna krawędź źródła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:857
-msgid "Don't emphasize gridlines when zoomed out"
-msgstr "Nie uwydatniaj siatki podczas pomniejszania"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1320
+msgid "Right edge of source"
+msgstr "Prawa krawędź źródła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:858
-msgid ""
-"If set and zoomed out, the gridlines will be shown in normal color instead "
-"of major grid line color."
-msgstr ""
-"Jeśli opcja ta zostanie zaznaczona, podczas pomniejszania linie siatki będą "
-"wyświetlane w normalnym kolorze zamiast w kolorze linii głównej siatki"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1321
+msgid "Bottom edge of source"
+msgstr "Dolna krawędź źródła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:860
-msgid "Default grid settings"
-msgstr "Domyślne ustawienia siatki"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1322
+msgid "Source width"
+msgstr "Szerokość źródła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:866
-#: ../src/ui/dialog/inkscape-preferences.cpp:887
-msgid "Grid units"
-msgstr "Jednostki siatki"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1323
+msgid "Source height"
+msgstr "Wysokość źródła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:869
-#: ../src/ui/dialog/inkscape-preferences.cpp:890
-msgid "Origin X"
-msgstr "Punkt początkowy X:"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1324
+msgid "Destination width"
+msgstr "Szerokość miejsca docelowego"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:870
-#: ../src/ui/dialog/inkscape-preferences.cpp:891
-msgid "Origin Y"
-msgstr "Punkt początkowy Y:"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1325
+msgid "Destination height"
+msgstr "Wysokość miejsca docelowego"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:873
-msgid "Spacing X"
-msgstr "Odstępy X:"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1326
+msgid "Resolution (dots per inch)"
+msgstr "Rozdzielczość (w dpi)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:874
-#: ../src/ui/dialog/inkscape-preferences.cpp:893
-msgid "Spacing Y"
-msgstr "Odstępy Y:"
+#. #########################################
+#. ## EXTRA WIDGET -- SOURCE SIDE
+#. #########################################
+#. ##### Export options buttons/spinners, etc
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1363
+msgid "Document"
+msgstr "Dokument"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:877
-#: ../src/ui/dialog/inkscape-preferences.cpp:899
-msgid "Selects the color used for normal grid lines."
-msgstr "Kolor normalnych linii siatki"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1415
+msgid "Cairo"
+msgstr "Cairo"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:879
-#: ../src/ui/dialog/inkscape-preferences.cpp:901
-msgid "Selects the color used for major (highlighted) grid lines."
-msgstr "Kolor głównych (podświetlonych) linii siatki"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1418
+msgid "Antialias"
+msgstr "Wygładzanie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:881
-#: ../src/ui/dialog/inkscape-preferences.cpp:903
-msgid "Major grid line every"
-msgstr "Rozstaw linii głównych siatki"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1421
+msgid "Background"
+msgstr "Tło"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:882
-msgid "Show dots instead of lines"
-msgstr "Wyświetlaj kropki zamiast linii"
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1444
+msgid "Destination"
+msgstr "Miejsce docelowe"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:896
-msgid "Angle X"
-msgstr "Kąt X"
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:200
+msgid "All Image Files"
+msgstr "Wszystkie obrazki"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:897
-msgid "Angle Z"
-msgstr "Kąt Z:"
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:432
+msgid "Show Preview"
+msgstr "Podgląd"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:910
-#, fuzzy
-msgid "Use named colors"
-msgstr "Ustaw pobrany kolor"
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:568
+msgid "No file selected"
+msgstr "Nie wybrano pliku"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:911
-msgid "If set, write the CSS name of the color instead of it's numeric value."
-msgstr ""
+#: ../src/ui/dialog/fill-and-stroke.cpp:53
+msgid "Fill"
+msgstr "Wypełnienie"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:913
-msgid "XML looks"
-msgstr ""
+#: ../src/ui/dialog/fill-and-stroke.cpp:54
+msgid "Stroke _paint"
+msgstr "_Kontur"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:915
-#, fuzzy
-msgid "Inline attributes"
-msgstr "Określ atrybut"
+#: ../src/ui/dialog/fill-and-stroke.cpp:55
+msgid "Stroke st_yle"
+msgstr "_Styl konturu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:916
-#, fuzzy
-msgid "Inline the XML attributes"
-msgstr "Usuń atrybut"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:506
+msgid "This matrix determines a linear transform on colour space. Each line affects one of the color components. Each column determines how much of each color component from the input is passed to the output. The last column does not depend on input colors, so can be used to adjust a constant component value."
+msgstr "Ta macierz określa liniową transformację przestrzeni koloru. Każdy wiersz wpływa na jedną składową koloru. Każda kolumna określa jaka część koloru wejściowego jest używana na wyjściu. Ostatnia kolumna nie jest zależna od koloru wejściowego, może być więc użyta do ustawienia dodatkowej stałej wartości składowej."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:919
-#, fuzzy
-msgid "Indent spaces"
-msgstr "Utwórz wcięcie"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:616
+msgid "Image File"
+msgstr "Plik obrazka"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:919
-#, fuzzy
-msgid "The number of spaces to use for indentation."
-msgstr "Liczba ścieżek jaka zostanie wygenerowana"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:619
+msgid "Selected SVG Element"
+msgstr "Zaznaczony element SVG"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:921
-#, fuzzy
-msgid "Path string"
-msgstr "  ciąg znaków: "
+#. TODO: any image, not justy svg
+#: ../src/ui/dialog/filter-effects-dialog.cpp:689
+msgid "Select an image to be used as feImage input"
+msgstr "Zaznacz obrazek, który będzie użyty jako źródło filtru \"feImage\""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:923
-#, fuzzy
-msgid "Allow relative coordinates"
-msgstr "Użyj współrzędne biegunowe"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:781
+msgid "This SVG filter effect does not require any parameters."
+msgstr "Ten efekt filtru SVG nie wymaga żadnych parametrów"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:924
-msgid "If set, relative coordinates may be used in path data"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:787
+msgid "This SVG filter effect is not yet implemented in Inkscape."
+msgstr "Ten efekt filtru SVG nie został jeszcze zaimplementowany w Inkscape."
 
-#. seems this is never used in Inkscape code
-#. _svgoutput_allowshorthands.init( _("Allow shorthands"), "options.svgoutput", "allowshorthands", true);
-#. _page_svgoutput.add_line( false, "", _svgoutput_allowshorthands, "", _(""), false);
-#.
-#: ../src/ui/dialog/inkscape-preferences.cpp:931
-msgid "Force repeat commands"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:978
+msgid "Light Source:"
+msgstr "Źródło światła:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:932
-msgid ""
-"If set, force repeating of the same command (i.e. output 'L 1,2 L 3,4' "
-"instead of 'L 1,2 3,4')."
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:995
+msgid "Direction angle for the light source on the XY plane, in degrees"
+msgstr "Kierunek kąta źródła światła na płaszczyźnie XY (w stopniach)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:934
-msgid "Numeric data"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:996
+msgid "Direction angle for the light source on the YZ plane, in degrees"
+msgstr "Kierunek kąta źródła światła na płaszczyźnie YZ (w stopniach)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:937
-#, fuzzy
-msgid "Numeric precision"
-msgstr "Precyzja"
+#. default x:
+#. default y:
+#. default z:
+#: ../src/ui/dialog/filter-effects-dialog.cpp:999
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1002
+msgid "Location"
+msgstr "Lokalizacja"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:937
-msgid "The number of digits to use behind the comma."
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:999
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1002
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1005
+msgid "X coordinate"
+msgstr "Współrzędna X"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:940
-#, fuzzy
-msgid "Minimum exponent"
-msgstr "Rozmiar minimalny"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:999
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1002
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1005
+msgid "Y coordinate"
+msgstr "Współrzędna Y"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:940
-msgid ""
-"The minimum size of a number (10 to the power of this exponent), smaller "
-"numbers will be written as zero."
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:999
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1002
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1005
+msgid "Z coordinate"
+msgstr "Współrzędna Z"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:947
-msgid "Add label comments to printing output"
-msgstr "Dodawaj etykiety komentarzy do pliku wyjściowego"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1005
+msgid "Points At"
+msgstr "Punkty"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:949
-msgid ""
-"When on, a comment will be added to the raw print output, marking the "
-"rendered output for an object with its label"
-msgstr ""
-"Włączenie tej opcji powoduje wstawienie do pliku wyjściowego RAW komentarzy "
-"opisujących każdy obiekt jego etykietą"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1006
+msgid "Exponent value controlling the focus for the light source"
+msgstr "Wykładnik kontrolujący skupienie źródła światła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:951
-msgid "Prevent sharing of gradient definitions"
-msgstr "Zapobiegaj współdzieleniu definicji gradientu"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1006
+msgid "Specular Exponent"
+msgstr "Wykładnik odbicia lustrzanego"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:953
-msgid ""
-"When on, shared gradient definitions are automatically forked on change; "
-"uncheck to allow sharing of gradient definitions so that editing one object "
-"may affect other objects using the same gradient"
-msgstr ""
-"Jeśli opcja ta zostanie włączona, współdzielone definicje gradientu będą "
-"automatycznie zabezpieczone przed zmianą. Jeśli opcja zostanie wyłączona, "
-"dozwolone będzie współdzielenie definicji gradientu, zatem edytowanie "
-"jednego obiektu będzie miało wpływ na inne obiekty używające tego samego "
-"gradientu."
+#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option.
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1008
+msgid "Cone Angle"
+msgstr "Kąt stożka"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:955
-msgid "Simplification threshold:"
-msgstr "Próg czułości uproszczenia:"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1008
+msgid "This is the angle between the spot light axis (i.e. the axis between the light source and the point to which it is pointing at) and the spot light cone. No light is projected outside this cone."
+msgstr "Jest to kąt pomiędzy osią punktu światła (np. oś pomiędzy źródłem światła i punktem, do którego on jest skierowany), a punktem światła stożka. Na zewnątrz tego stożka nie ma projekcji światła."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:956
-msgid ""
-"How strong is the 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 ""
-"Domyślna wartość (siła upraszczania) używana przez polecenie \"Uprość\". "
-"Wywołanie tego polecenia kilkakrotnie w krótkich odstępach czasu powoduje "
-"nasilenie jego działania. Ponowne wykonanie po krótkiej przerwie przywraca "
-"wartość domyślną."
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1069
+msgid "New light source"
+msgstr "Nowe źródło światła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:958
-msgid "2x2"
-msgstr "2x2"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1110
+msgid "_Duplicate"
+msgstr "_Powiel"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:958
-msgid "4x4"
-msgstr "4x4"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1136
+msgid "_Filter"
+msgstr "_Filtr"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:958
-msgid "8x8"
-msgstr "8x8"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1150
+msgid "R_ename"
+msgstr "Z_mień nazwę"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:958
-msgid "16x16"
-msgstr "16x16"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1244
+msgid "Rename filter"
+msgstr "Zmień nazwę filtru"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:962
-msgid "Oversample bitmaps:"
-msgstr "Nadpróbkowanie bitmap:"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1280
+msgid "Apply filter"
+msgstr "Zastosuj filtr"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:972
-msgid "Commands bar icon size"
-msgstr "Wyświetlaj małe ikony w przyborniku"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1356
+msgid "Add filter"
+msgstr "Dodaj filtr"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:973
-msgid "Set the size for the commands toolbar to use (requires restart)"
-msgstr ""
-"Określ wielkość ikon w przyborniku (wymaga ponownego uruchomienia aplikacji)"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1382
+msgid "Duplicate filter"
+msgstr "Powiel filtr"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:976
-msgid "Tool controls bar icon size"
-msgstr "Wyświetlaj małe ikony na pasku narzędzi sterujących"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1449
+msgid "_Effect"
+msgstr "_Efekt"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:977
-msgid "Set the size for the secondary toolbar to use (requires restart)"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje wyświetlanie małych ikon na pasku narzędzi "
-"sterujących (wymaga ponownego uruchomienia aplikacji)"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1457
+msgid "Connections"
+msgstr "Połączenia"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:980
-msgid "Main toolbar icon size"
-msgstr "Wyświetlaj małe ikony na głównym pasku narzędzi"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1573
+msgid "Remove filter primitive"
+msgstr "Usuń efekt specjalny"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:981
-msgid "Set the size for the main tools to use (requires restart)"
-msgstr ""
-"Zaznaczenie tej opcji spowoduje wyświetlanie małych ikon na głównym pasku "
-"narzędzi (wymaga ponownego uruchomienia aplikacji)"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1945
+msgid "Remove merge node"
+msgstr "Usuń połączenie węzła"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:984
-msgid "Maximum number of recent documents:"
-msgstr "Maksymalna liczba dokumentów:"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2061
+msgid "Reorder filter primitive"
+msgstr "Zmień ustawienia efektu specjalnego"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:985
-msgid "The maximum length of the Open Recent list in the File menu"
-msgstr ""
-"Maksymalna ilość dokumentów przechowywanych na liście ostatnio otwieranych "
-"dokumentów w menu \"Plik\""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2095
+msgid "Add Effect:"
+msgstr "Dodaj efekt:"
 
-#. Autosave options
-#: ../src/ui/dialog/inkscape-preferences.cpp:990
-#, fuzzy
-msgid "Enable auto-save of document"
-msgstr "Wektoryzacja: Brak aktywnego dokumentu"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2096
+msgid "No effect selected"
+msgstr "Nie wybrano efektu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:991
-msgid ""
-"Automatically saves the current document to disk at a given interval, thus "
-"minimizing loss at a crash"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2097
+msgid "No filter selected"
+msgstr "Nie wybrano filtru"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:993
-msgid "Interval (in minutes):"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2135
+msgid "Effect parameters"
+msgstr "Parametry efektu"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:993
-msgid ""
-"Sets the interval (in minutes) at which a workspace will be automatically "
-"saved to disk"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2136
+msgid "Filter General Settings"
+msgstr "Ustawienia filtrów"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:995
-#, fuzzy
-msgid "Path:"
-msgstr "Ścieżka"
+#. default x:
+#. default y:
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2192
+msgid "Coordinates"
+msgstr "Współrzędne"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:995
-msgid "Sets the directory where autosaves will be written"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2192
+msgid "X coordinate of the left corners of filter effects region"
+msgstr "Współrzędna X lewych narożników obszaru efektów filtra"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:997
-#, fuzzy
-msgid "Maximum number of autosaves"
-msgstr "Maksymalna liczba dokumentów:"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2192
+msgid "Y coordinate of the upper corners of filter effects region"
+msgstr "Współrzędna Y lewych narożników obszaru efektów filtra"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:997
-msgid ""
-"Allows for limiting the space used by autosaves, by setting a maximum number "
-"of allowed files"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2193
+msgid "Height of filter effects region"
+msgstr "Wysokość obszaru efektów filtra"
 
-#. When changing the interval or enabling/disabling the autosave function,
-#. * update our running configuration
-#. *
-#. * FIXME!
-#. * the inkscape_autosave_init should be called AFTER the values have been changed
-#. * (which cannot be guaranteed from here)
-#. *
-#. * For now, autosave-settings will not change until restart
-#.
-#.
-#. _misc_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE );
-#. _misc_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE );
-#.
-#. -----------
-#: ../src/ui/dialog/inkscape-preferences.cpp:1015
-msgid "Automatically reload bitmaps"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2193
+msgid "Width of filter effects region"
+msgstr "Szerokość obszaru efektów filtra"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1017
-msgid "Enbles automatic reload of linked images when changed on disk."
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2199
+msgid "Indicates the type of matrix operation. The keyword 'matrix' indicates that a full 5x4 matrix of values will be provided. The other keywords represent convenience shortcuts to allow commonly used color operations to be performed without specifying a complete matrix."
+msgstr "Wskazuje na operację typu \"macierz\". Słowo kluczowe \"macierz\" wskazuje, że zostaną przeprowadzone wszystkie wartości macierzy 5x4. Inne słowa kluczowe reprezentują wygodne w użyciu skróty do przeprowadzenia operacji na kolorach bez specyfikowania całej macierzy."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1030
-#, fuzzy
-msgid "Bitmap editor:"
-msgstr "Opcje bitmapy"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2200
+msgid "Value(s)"
+msgstr "Wartość(i)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1036
-msgid "Misc"
-msgstr "Różne"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2214
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2255
+msgid "Operator"
+msgstr "Operator"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:74
-msgid "Apply new effect"
-msgstr "Zastosuj nowy efekt"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2215
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2216
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2217
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2218
+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 "Jeśli została wybrana operacja arytmetyczna, każdy wynikowy piksel będzie przeliczany za pomocą formuły k1*i1*i2 + k2*i1 + k3*i2 + k4, gdzie 1 i 2 są odpowiednio wartościami pierwszego i drugiego piksela.    "
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:75
-msgid "Current effect"
-msgstr "Aktualny efekt"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2215
+msgid "K1"
+msgstr "K1"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:76
-#, fuzzy
-msgid "Effect list"
-msgstr "E_fekty"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2216
+msgid "K2"
+msgstr "K2"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:239
-msgid "Unknown effect is applied"
-msgstr "Został zastosowany nieznany efekt"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2217
+msgid "K3"
+msgstr "K3"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:242
-msgid "No effect applied"
-msgstr "Nie zastosowano żadnego efektu"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2218
+msgid "K4"
+msgstr "K4"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:248
-#, fuzzy
-msgid "Item is not a path or shape"
-msgstr "Element nie jest zmieniony przez ścieżkę"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2221
+msgid "height of the convolve matrix"
+msgstr "wysokość macierzy skręcania"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:252
-msgid "Only one item can be selected"
-msgstr "Tylko jeden element może być zaznaczony"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2221
+msgid "width of the convolve matrix"
+msgstr "szerokość macierzy skręcania"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:256
-msgid "Empty selection"
-msgstr "Puste zaznaczenie"
+#. default x:
+#. default y:
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2222
+msgid "Target"
+msgstr "Cel"
+
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2222
+msgid "X coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point."
+msgstr "Współrzędna X punktu docelowego w macierzy skręcania. Skręcenie jest stosowane do pikseli wokół tego punktu."
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:349
-msgid "Remove path effect"
-msgstr "Usuń efekt ścieżki"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2222
+msgid "Y coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point."
+msgstr "Współrzędna Y punktu docelowego w macierzy skręcania. Skręcenie jest stosowane do pikseli wokół tego punktu."
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:366
-#, fuzzy
-msgid "Move path effect up"
-msgstr "Usuń efekt ścieżki"
+#. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix)
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2224
+msgid "Kernel"
+msgstr "Jądro"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:384
-#, fuzzy
-msgid "Move path effect down"
-msgstr "Usuń efekt ścieżki"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2224
+msgid "This matrix describes the convolve operation that is applied to the input image in order to calculate the pixel colors at the output. Different arrangements of values in this matrix result in various possible visual effects. An identity matrix would lead to a motion blur effect (parallel to the matrix diagonal) while a matrix filled with a constant non-zero value would lead to a common blur effect."
+msgstr "Ta macierz opisuje operację skręcania stosowaną na obrazku wyjściowym, aby obliczyć piksele kolorów w obrazku wynikowym. Różne wartości w tej macierzy dają różne efekty wizualne. Na przykład macierz jednostkowa da efekt ruchomego rozmycia (równolegle do przekątnej macierzy) natomiast macierz wypełniona stałą, nie zerową wartością, da efekt zwykłego rozmycia."
 
-#: ../src/ui/dialog/memory.cpp:94
-msgid "Heap"
-msgstr "Stos"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2227
+msgid "After applying the kernelMatrix to the input image to yield a number, that number is divided by divisor to yield the final destination color value. A divisor that is the sum of all the matrix values tends to have an evening effect on the overall color intensity of the result."
+msgstr "Numer uzyskany przez zastosowanie jądra macierzy do obrazu wejściowego jest dzielony przez dzielnik w celu uzyskania ostatecznej wartości koloru docelowego. Dzielnik, który jest sumą wszystkich wartości w macierzy, powoduje zwykle wyrównanie intensywności kolorów obrazu wynikowego."
 
-#: ../src/ui/dialog/memory.cpp:95
-msgid "In Use"
-msgstr "Używana"
+#. TODO: svg spec: The default value is the sum of all values in kernelMatrix, with the exception that if the sum is zero, then the divisor is set to 1.
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2227
+msgid "Divisor"
+msgstr "Dzielnik"
 
-#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused.
-#. More typical usage is to call this memory "free" rather than "slack".
-#: ../src/ui/dialog/memory.cpp:98
-msgid "Slack"
-msgstr "Wolna"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2228
+msgid "Bias"
+msgstr "Odchylenie"
 
-#: ../src/ui/dialog/memory.cpp:99
-msgid "Total"
-msgstr "Całkowita"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2228
+msgid "This value is added to each component. This is useful to define a constant value as the zero response of the filter."
+msgstr "Ta wartość jest dodawana do każdego komponentu. Jest to przydatne dla zdefiniowania stałej wartości, która będzie zerową odpowiedzią filtru."
 
-#: ../src/ui/dialog/memory.cpp:139 ../src/ui/dialog/memory.cpp:145
-#: ../src/ui/dialog/memory.cpp:152 ../src/ui/dialog/memory.cpp:184
-msgid "Unknown"
-msgstr "Nieznane"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2229
+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 "Określa jak rozciągać obrazek początkowy z wartościami koloru, aby mogły być zastosowane operacje macierzowe, gdy jądro filtru jest usytuowane na lub blisko krawędzi tego obrazka."
 
-#: ../src/ui/dialog/memory.cpp:165
-msgid "Combined"
-msgstr "Połączone"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2229
+msgid "Edge Mode"
+msgstr "Tryb krawędzi"
 
-#: ../src/ui/dialog/memory.cpp:207
-msgid "Recalculate"
-msgstr "Przelicz ponownie"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2230
+msgid "If set, the alpha channel won't be altered by this filter primitive."
+msgstr "Jeśli opcja ta jest zaznaczona, kanał alfa nie będzie zmieniany przez ten efekt specjalny."
 
-#: ../src/ui/dialog/messages.cpp:75
-msgid "Ready."
-msgstr "Gotowe"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2230
+msgid "Preserve Alpha"
+msgstr "Zachowaj krycie"
 
-#: ../src/ui/dialog/messages.cpp:76
-msgid ""
-"Enable log display by setting dialogs.debug 'redirect' attribute to 1 in "
-"preferences.xml"
-msgstr ""
-"Włącz wyświetlanie dziennika ustawiając w pliku preferences.xml dla dialogs."
-"debug atrybut \"redirect\" na 1"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2233
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2266
+msgid "Defines the color of the light source"
+msgstr "Definiuje kolor źródła światła"
 
-#: ../src/ui/dialog/ocaldialogs.cpp:77
-msgid "File"
-msgstr "Plik"
+#. default: white
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2233
+msgid "Diffuse Color"
+msgstr "Kolor rozpraszania"
 
-#: ../src/ui/dialog/ocaldialogs.cpp:175
-msgid "Username:"
-msgstr "Nazwa użytkownika:"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2234
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2267
+msgid "Surface Scale"
+msgstr "Skaluj powierzchnię"
 
-#: ../src/ui/dialog/ocaldialogs.cpp:176
-msgid "Password:"
-msgstr "Hasło:"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2234
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2267
+msgid "This value amplifies the heights of the bump map defined by the input alpha channel"
+msgstr "Ta wartość wzmacnia wysokości mapowania wypukłości zdefiniowane przez początkowe wartości kanału alfa"
 
-#: ../src/ui/dialog/ocaldialogs.cpp:402
-msgid "Error while reading the Open Clip Art RSS feed"
-msgstr "Wystąpił błąd podczas czytania kanału RSS Open Clip Art"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2235
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2268
+msgid "Constant"
+msgstr "Stała"
 
-#: ../src/ui/dialog/ocaldialogs.cpp:440
-msgid ""
-"Failed to receive the Open Clip Art Library RSS feed. Verify if the server "
-"name is correct in Configuration->Import/Export (e.g.: openclipart.org)"
-msgstr ""
-"Nie udało się odebrać kanału RSS Open Clip Art Library. Proszę sprawdzić w "
-"ustawieniach nazwę serwera (np: openclipart.org.)"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2235
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2268
+msgid "This constant affects the Phong lighting model."
+msgstr "Ta stała oddziałuje na model oświetlenia Phonga."
 
-#: ../src/ui/dialog/ocaldialogs.cpp:454
-msgid "Server supplied malformed Clip Art feed"
-msgstr "Serwer dostarczył zniekształcony kanał Clip Art"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2236
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2270
+msgid "Kernel Unit Length"
+msgstr "Długość jednostki jądra"
 
-#: ../src/ui/dialog/ocaldialogs.cpp:545
-msgid "Search for:"
-msgstr "Szukaj:"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2240
+msgid "This defines the intensity of the displacement effect."
+msgstr "Definjuje intensywność efektu przesunięcia"
 
-#: ../src/ui/dialog/ocaldialogs.cpp:546
-msgid "No files matched your search"
-msgstr "Nie ma plików spełniających kryteria szukania"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2241
+msgid "Color component that controls the displacement in the X direction"
+msgstr "Składnik koloru kontrolujący przemieszczanie w kierunku X"
 
-#: ../src/ui/dialog/ocaldialogs.cpp:557
-msgid "Search"
-msgstr "Szukaj"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2241
+msgid "X displacement"
+msgstr "Przemieszczanie w kierunku X"
 
-#: ../src/ui/dialog/ocaldialogs.cpp:574
-msgid "Files found"
-msgstr "Znaleziono pliki"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2242
+msgid "Color component that controls the displacement in the Y direction"
+msgstr "Składnik koloru kontrolujący przemieszczanie w kierunku Y"
 
-#: ../src/ui/dialog/print.cpp:138
-msgid "Could not open temporary PNG for bitmap printing"
-msgstr "Nie można otworzyć do wydruku tymczasowego pliku PNG"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2242
+msgid "Y displacement"
+msgstr "Przemieszczanie w kierunku Y"
 
-#: ../src/ui/dialog/print.cpp:173
-msgid "Could not set up Document"
-msgstr "Nie można określić dokumentu"
+#. default: black
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2245
+msgid "Flood Color"
+msgstr "Kolor wypełnienia"
 
-#: ../src/ui/dialog/print.cpp:177
-msgid "Failed to set CairoRenderContext"
-msgstr "Nie udało się ustawić CairoRenderContext"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2245
+msgid "The whole filter region will be filled with this color."
+msgstr "Cały filtrowany obszar zostanie wypełniony tym kolorem."
 
-#. set up dialog title, based on document name
-#: ../src/ui/dialog/print.cpp:217
-msgid "SVG Document"
-msgstr "Dokument SVG"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2249
+msgid "Standard Deviation"
+msgstr "Odchylenie standardowe"
 
-#: ../src/ui/dialog/print.cpp:218
-msgid "Print"
-msgstr "Drukuj"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2249
+msgid "The standard deviation for the blur operation."
+msgstr "Standardowe odchylenie operacji rozmycia."
 
-#. build custom preferences tab
-#: ../src/ui/dialog/print.cpp:245
-msgid "Rendering"
-msgstr "Renderowanie"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2255
+msgid ""
+"Erode: performs \"thinning\" of input image.\n"
+"Dilate: performs \"fattenning\" of input image."
+msgstr ""
+"Erozja: wykonuje \"pocienienie\" obrazka.\n"
+"Dylatacja: wykonuje \"pogrubienie\" obrazka."
 
-#: ../src/ui/dialog/scriptdialog.cpp:211
-msgid "_Execute Javascript"
-msgstr "Wykonaj skrypt _Javascript"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2259
+msgid "Source of Image"
+msgstr "Źródło obrazka"
 
-#: ../src/ui/dialog/scriptdialog.cpp:213
-msgid "_Execute Python"
-msgstr "Wykonaj skrypt _Python"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2262
+msgid "Delta X"
+msgstr "Delta X"
 
-#: ../src/ui/dialog/scriptdialog.cpp:215
-msgid "_Execute Ruby"
-msgstr "Wykonaj skrypt _Ruby"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2262
+msgid "This is how far the input image gets shifted to the right"
+msgstr "Jak daleko obrazek wejściowy zostaje odsunięty w prawo"
 
-#: ../src/ui/dialog/scriptdialog.cpp:224
-msgid "Script"
-msgstr "Skrypt"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2263
+msgid "Delta Y"
+msgstr "Delta Y"
 
-#: ../src/ui/dialog/scriptdialog.cpp:234
-msgid "Output"
-msgstr "Wyjście"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2263
+msgid "This is how far the input image gets shifted downwards"
+msgstr "Jak daleko obrazek wejściowy zostaje odsunięty w dół"
 
-#: ../src/ui/dialog/scriptdialog.cpp:244
-msgid "Errors"
-msgstr "Błędy"
+#. default: white
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2266
+msgid "Specular Color"
+msgstr "Kolor odbicia lustrzanego"
 
-#. Dialog organization
-#: ../src/ui/dialog/session-player.cpp:73
-msgid "Session file"
-msgstr "Plik sesji"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2269
+msgid "Exponent for specular term, larger is more \"shiny\"."
+msgstr "Wykładnik odblasków. Większa wartość - bardziej błyszczący odblask."
 
-#: ../src/ui/dialog/session-player.cpp:74
-msgid "Playback controls"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2278
+msgid "Indicates whether the filter primitive should perform a noise or turbulence function."
+msgstr "Wskazuje, czy efekt specjalny powinien wykonać funkcję szumu lub zawirowania."
 
-#: ../src/ui/dialog/session-player.cpp:75
-#, fuzzy
-msgid "Message information"
-msgstr "Informacja o użyciu pamięci"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2279
+msgid "Base Frequency"
+msgstr "Częstotliwość bazowa"
 
-#. Active session file display
-#. fixme: Does this mean the active file for the session, or the file for the active session?
-#. Please indicate which with a TRANSLATORS comment.
-#: ../src/ui/dialog/session-player.cpp:85
-msgid "Active session file:"
-msgstr "Aktywny plik sesji:"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2280
+msgid "Octaves"
+msgstr "Oktawy"
 
-#: ../src/ui/dialog/session-player.cpp:86
-msgid "Delay (milliseconds):"
-msgstr "Opóźnienie (ms):"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2281
+msgid "Seed"
+msgstr "Ziarno"
 
-#. Unload/load buttons
-#: ../src/ui/dialog/session-player.cpp:94
-msgid "Close file"
-msgstr "Zamknij plik"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2281
+msgid "The starting number for the pseudo random number generator."
+msgstr "Początkowa liczba dla pseudo losowego generatora liczb."
 
-#: ../src/ui/dialog/session-player.cpp:95
-msgid "Open new file"
-msgstr "Otwórz nowy plik"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2293
+msgid "Add filter primitive"
+msgstr "Dodaj efekt specjalny"
 
-#: ../src/ui/dialog/session-player.cpp:96
-msgid "Set delay"
-msgstr "Ustaw opóźnienie"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2310
+msgid "The <b>feBlend</b> filter primitive provides 4 image blending modes: screen, multiply, darken and lighten."
+msgstr "Efekt specjalny <b>feBlend</b> dostarcza 4 tryby mieszania obrazków - zwielokrotnianie, przesiewanie, rozjaśnianie i przyciemnianie"
 
-#: ../src/ui/dialog/session-player.cpp:138
-msgid "Rewind"
-msgstr "Powrót"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2314
+msgid "The <b>feColorMatrix</b> filter primitive applies a matrix transformation to colour of each rendered pixel. This allows for effects like turning object to grayscale, modifying colour saturation and changing colour hue."
+msgstr "Efekt specjalny <b>feColorMatrix</b> stosuje przetworzenie macierzy do koloru każdego renderowanego piksela. Pozwala to efektom na włączenie dla obiektu skali szarości, modyfikowanie nasycenia i barwy koloru."
 
-#: ../src/ui/dialog/session-player.cpp:139
-msgid "Go back one change"
-msgstr "Powraca o jedną zmianę"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2318
+msgid "The <b>feComponentTransfer</b> filter primitive manipulates the input's color components (red, green, blue, and alpha) according to particular transfer functions, allowing operations like brightness and contrast adjustment, color balance, and thresholding."
+msgstr "Efekt specjalny <b>feComponentTransfer</b> operuje źródłowymi komponentami koloru (czerwony, zielony, niebieski i krycie) odpowiednio do określonych funkcji transferu pozwalając na takie operacje jak ustawianie jasności i kontrastu, balansu kolorów i wartości progowych"
 
-#: ../src/ui/dialog/session-player.cpp:140
-msgid "Pause"
-msgstr "Pauza"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2322
+msgid "The <b>feComposite</b> filter primitive composites two images using one of the Porter-Duff blending modes or the aritmetic mode described in SVG standard. Porter-Duff blending modes are essentially logical operations between the corresponding pixel values of the images."
+msgstr "Efekt specjalny <b>feComposite</b> łączy dwa obrazki używając jednego z trybów mieszania Portera-Duffa (przezroczystości) lub arytmetycznego trybu opisanego w standardzie SVG. Tryby mieszania Portera-Duffa są zasadniczo operacjami logicznymi pomiędzy odpowiednimi pikselami obrazków."
 
-#: ../src/ui/dialog/session-player.cpp:141
-msgid "Go forward one change"
-msgstr "Przechodzi do przodu o jedną zmianę"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2326
+msgid "The <b>feConvolveMatrix</b> lets you specify a Convolution to be applied on the image. Common effects created using convolution matrices are blur, sharpening, embossing and edge detection. Note that while gaussian blur can be created using this filter primitive, the special gaussian blur primitive is faster and resolution-independent."
+msgstr "<b>feConvolveMatrix</b> pozwala określić skręcenie stosowane do obrazka. Wspólnymi efektami utworzonymi przy użyciu macierzy skręcenia są: rozmycie, wyostrzenie, płaskorzeźba i ujawnianie krawędzi. Przy pomocy tego filtru może być utworzone rozmycie gaussowskie, ale dedykowany filtr rozmycia gausowskiego jest szybszy i niezależny od rozdzielczości.  "
 
-#: ../src/ui/dialog/session-player.cpp:142
-msgid "Play"
-msgstr ""
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2330
+msgid "The <b>feDiffuseLighting</b> and feSpecularLighting filter primitives create \"embossed\" shadings.  The input's alpha channel is used to provide depth information: higher opacity areas are raised toward the viewer and lower opacity areas recede away from the viewer."
+msgstr "Efekty specjalne <b>feDiffuseLighting</b> i feSpecularLighting tworzą płaskorzeźbę. Kanał przezroczystości jest używany do osiągnięcia głębi. Większa przezroczystość jest ustawiana bliżej oglądającego, mniejsza dalej."
 
-#: ../src/ui/dialog/session-player.cpp:177
-msgid "Open session file"
-msgstr "Otwórz plik sesji"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2334
+msgid "The <b>feDisplacementMap</b> filter primitive displaces the pixels in the first input using the second input as a displacement map, that shows from how far the pixel should come from. Classical examples are whirl and pinch effects."
+msgstr "Efekt specjalny <b>feDisplacementMap</b> wypiera piksele w pierwszym źródle używając drugiego źródła jako mapy wypierania, która pokazuje skąd piksel powinien być pobrany. Klasycznym przykładem takiego działania są efekty wiru i ściśnięcia."
 
-#. #### begin left panel
-#. ### begin notebook
-#. ## begin mode page
-#. # begin single scan
-#. brightness
-#: ../src/ui/dialog/tracedialog.cpp:396
-msgid "Brightness cutoff"
-msgstr "Rozdzielanie jasności"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2338
+msgid "The <b>feFlood</b> 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 "Efekt specjalny <b>feFlood</b> wypełnia obszar zadanym kolorem i kryciem. Jest on zazwyczaj używany w początkowej fazie tworzenia grafiki i stanowi podstawę dla innych filtrów stosowanych do wprowadzania koloru do grafiki."
 
-#: ../src/ui/dialog/tracedialog.cpp:400
-msgid "Trace by a given brightness level"
-msgstr "Wektoryzacja w oparciu o jasność"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2342
+msgid "The <b>feGaussianBlur</b> filter primitive uniformly blurs its input.  It is commonly used together with feOffset to create a drop shadow effect."
+msgstr "Efekt specjalny <b>feGaussianBlur</b> wykonuje jednolite rozmycie. Jest on często używany z filtrem <b>feOffset</b> do tworzenia efektu cienia."
 
-#: ../src/ui/dialog/tracedialog.cpp:408
-msgid "Brightness cutoff for black/white"
-msgstr "Próg rozdzielenia czarny/biały"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2346
+msgid "The <b>feImage</b> filter primitive fills the region with an external image or another part of the document."
+msgstr "Efekt specjalny <b>feImage</b> wypełnia obszar roboczy lub inną część dokumentu zewnętrznym obrazkiem."
 
-#: ../src/ui/dialog/tracedialog.cpp:415
-msgid "Single scan: creates a path"
-msgstr "Jeden przebieg: tworzy jedną ścieżkę"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2350
+msgid "The <b>feMerge</b> filter primitive composites several temporary images inside the filter primitive to a single image. It uses normal alpha compositing for this. This is equivalent to using several feBlend primitives in 'normal' mode or several feComposite primitives in 'over' mode."
+msgstr "Efekt specjalny <b>feMerge</b> zbiera wewnątrz filtru kilka tymczasowych obrazków do użycia w obrazku końcowym. W tym celu używa on normalnej kompozycji przezroczystości. Można go używać zamiast wielokrotnego użycia filtru <b>feBlend</b> w trybie \"normal\" lub zamiast wielokrotnego użycia filtru <b>feComposite</b> w trybie \"over\"."
 
-#. canny edge detection
-#. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method
-#: ../src/ui/dialog/tracedialog.cpp:420
-msgid "Edge detection"
-msgstr "Wykrywanie krawędzi"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2354
+msgid "The <b>feMorphology</b> filter primitive provides erode and dilate effects. For single-colour objects erode makes the object thinner and dilate makes it thicker."
+msgstr "Efekt specjalny <b>feMorphology</b> dostarcza efekty erozji i pęcznienia. W obiektach jednokolorowych erozja pocienia obiekt, a pęcznienie pogrubia."
+
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2358
+msgid "The <b>feOffset</b> 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 "Efekt specjalny <b>feOffset</b> przesuwa obrazek o zdefiniowaną przez użytkownika wielkość. Na przykład jest bardzo pomocny przy dodawaniu cieni, gdy cień jest niewiele odsunięty od obiektu."
 
-#: ../src/ui/dialog/tracedialog.cpp:424
-msgid "Trace with optimal edge detection by J. Canny's algorithm"
-msgstr ""
-"Wektoryzacja z wykorzystaniem optymalnego wykrywania krawędzi metodą J."
-"Canny'ego"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2362
+msgid "The feDiffuseLighting and <b>feSpecularLighting</b> filter primitives create \"embossed\" shadings.  The input's alpha channel is used to provide depth information: higher opacity areas are raised toward the viewer and lower opacity areas recede away from the viewer."
+msgstr "Efekty specjalne feDiffuseLighting i <b>feSpecularLighting</b> tworzą płaskorzeźbę. Kanał przezroczystości jest używany do osiągnięcia głębi. Większa przezroczystość jest ustawiana bliżej oglądającego, mniejsza dalej."
 
-#: ../src/ui/dialog/tracedialog.cpp:441
-msgid "Brightness cutoff for adjacent pixels (determines edge thickness)"
-msgstr ""
-"Odcięcie jasności dla sąsiednich pikseli (decyduje o szerokości krawędzi)"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2366
+msgid "The <b>feTile</b> filter primitive tiles a region with its input graphic"
+msgstr "Efekt specjalny <b>feTile</b> tworzy kafelkowy region ze wstawioną grafiką"
 
-#. quantization
-#. TRANSLATORS: Color Quantization: the process of reducing the number
-#. of colors in an image by selecting an optimized set of representative
-#. colors and then re-applying this reduced set to the original image.
-#: ../src/ui/dialog/tracedialog.cpp:453
-msgid "Color quantization"
-msgstr "Redukcja kolorów"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2370
+msgid "The <b>feTurbulence</b> 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 "Efekt specjalny <b>feTurbulence</b> renderuje szum Perlina. Ten rodzaj szumu jest użyteczny do symulacji różnych zjawisk natury jak chmury, ogień, dym oraz do generowania skomplikowanych tekstur takich jak marmur, czy granit."
 
-#: ../src/ui/dialog/tracedialog.cpp:457
-msgid "Trace along the boundaries of reduced colors"
-msgstr "Śledzenie wzdłuż obszarów granicznych redukowanych kolorów"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2388
+msgid "Duplicate filter primitive"
+msgstr "Powiel efekt specjalny"
 
-#: ../src/ui/dialog/tracedialog.cpp:465
-msgid "The number of reduced colors"
-msgstr "Liczba zredukowanych kolorów"
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2441
+msgid "Set filter primitive attribute"
+msgstr "Określ atrybut efektu specjalnego"
 
-#: ../src/ui/dialog/tracedialog.cpp:467
-msgid "Colors:"
-msgstr "Kolory:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:155
+msgid "Mouse"
+msgstr "Mysz"
 
-#. swap black and white
-#: ../src/ui/dialog/tracedialog.cpp:473
-msgid "Invert image"
-msgstr "Odwróć obrazek"
+#: ../src/ui/dialog/inkscape-preferences.cpp:157
+msgid "Grab sensitivity:"
+msgstr "Czułość chwytania:"
 
-#: ../src/ui/dialog/tracedialog.cpp:478
-msgid "Invert black and white regions"
-msgstr "Zamienia białe i czarne obszary"
+#: ../src/ui/dialog/inkscape-preferences.cpp:157
+#: ../src/ui/dialog/inkscape-preferences.cpp:160
+#: ../src/ui/dialog/inkscape-preferences.cpp:176
+#: ../src/ui/dialog/inkscape-preferences.cpp:180
+#: ../src/ui/dialog/inkscape-preferences.cpp:190
+msgid "pixels"
+msgstr "px"
 
-#. # end single scan
-#. # begin multiple scan
-#: ../src/ui/dialog/tracedialog.cpp:487
-msgid "Brightness steps"
-msgstr "Stopnie jasności"
+#: ../src/ui/dialog/inkscape-preferences.cpp:158
+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 "Odległość kursora myszy od obiektu przy jakiej staje się możliwe oddziaływanie nim na obiekt (w pikselach ekranu)"
 
-#: ../src/ui/dialog/tracedialog.cpp:491
-msgid "Trace the given number of brightness levels"
-msgstr "Śledzenie określonej ilości stopni jasności"
+#: ../src/ui/dialog/inkscape-preferences.cpp:160
+msgid "Click/drag threshold:"
+msgstr "Próg kliknięcia/przeciągania:"
 
-#: ../src/ui/dialog/tracedialog.cpp:498
-msgid "Scans:"
-msgstr "Liczba przebiegów:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:161
+msgid "Maximum mouse drag (in screen pixels) which is considered a click, not a drag"
+msgstr "Największa wartość przesunięcia myszy, po naciśnięciu przycisku, traktowana jeszcze jako kliknięcie, a nie przeciąganie (w pikselach ekranu)"
 
-#: ../src/ui/dialog/tracedialog.cpp:501
-msgid "The desired number of scans"
-msgstr "Żądana liczba przebiegów skanowania"
+#: ../src/ui/dialog/inkscape-preferences.cpp:163
+msgid "Use pressure-sensitive tablet (requires restart)"
+msgstr "Używaj tabletu (wymaga ponownego uruchomienia)"
 
-#: ../src/ui/dialog/tracedialog.cpp:505
-msgid "Colors"
-msgstr "Kolory"
+#: ../src/ui/dialog/inkscape-preferences.cpp:165
+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 "Po zaznaczeniu tej opcji i ponownym uruchomieniu programu można używać tabletu lub innego, opartego na technice rozróżniania czułości nacisku urządzenia. Opcję tę należy wyłączyć tylko, gdy występują problemy z używaniem tabletu. Po wyłączeniu tej opcji, tablet można nadal używać jako mysz."
 
-#: ../src/ui/dialog/tracedialog.cpp:509
-msgid "Trace the given number of reduced colors"
-msgstr "Śledzenie określonej ilości zredukowanych kolorów"
+#: ../src/ui/dialog/inkscape-preferences.cpp:167
+msgid "Switch tool based on tablet device (requires restart)"
+msgstr "Zmieniaj narzędzia tabletu (wymaga ponownego uruchomienia):"
 
-#: ../src/ui/dialog/tracedialog.cpp:513
-msgid "Grays"
-msgstr "Odcienie szarości"
+#: ../src/ui/dialog/inkscape-preferences.cpp:169
+msgid "Change tool as different devices are used on the tablet (pen, eraser, mouse)"
+msgstr "Zmienia różne narzędzia używane na tablecie (pióro, gumka, mysz)"
 
-#: ../src/ui/dialog/tracedialog.cpp:517
-msgid "Same as Colors, but the result is converted to grayscale"
-msgstr "Jak dla funkcji \"Kolory\", ale z końcową konwersją do skali szarości"
+#: ../src/ui/dialog/inkscape-preferences.cpp:174
+msgid "Scrolling"
+msgstr "Przewijanie"
 
-#. TRANSLATORS: "Smooth" is a verb here
-#: ../src/ui/dialog/tracedialog.cpp:522
-msgid "Smooth"
-msgstr "Rozmycie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:176
+msgid "Mouse wheel scrolls by:"
+msgstr "Skok kółka myszy przewija ekran o:"
 
-#: ../src/ui/dialog/tracedialog.cpp:526
-msgid "Apply Gaussian blur to the bitmap before tracing"
-msgstr "Przed wektoryzacją wykonuje na bitmapie rozmycie Gaussa"
+#: ../src/ui/dialog/inkscape-preferences.cpp:177
+msgid "One mouse wheel notch scrolls by this distance in screen pixels (horizontally with Shift)"
+msgstr "Jeden skok kółka myszy przewija ekran o określoną tutaj liczbę pikseli. Przewijanie w poziomie jest realizowane z wciśniętym klawiszem [Shift]."
 
-#. TRANSLATORS: "Stack" is a verb here
-#: ../src/ui/dialog/tracedialog.cpp:529
-msgid "Stack scans"
-msgstr "Tworzenie stosu przebiegów"
+#: ../src/ui/dialog/inkscape-preferences.cpp:178
+msgid "Ctrl+arrows"
+msgstr "[ Ctrl + strzałki ]"
 
-#: ../src/ui/dialog/tracedialog.cpp:532
-msgid ""
-"Stack scans on top of one another (no gaps) instead of tiling (usually with "
-"gaps)"
-msgstr ""
-"Nakładanie na siebie obszarów (brak prześwitów) zamiast złożenia wzdłuż "
-"krawędzi (zwykle widoczne są prześwity)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:180
+msgid "Scroll by:"
+msgstr "Przewijaj o:"
 
-#: ../src/ui/dialog/tracedialog.cpp:535
-msgid "Remove background"
-msgstr "Usuń tło"
+#: ../src/ui/dialog/inkscape-preferences.cpp:181
+msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)"
+msgstr "Naciśnięcie klawiszy [ Ctrl + strzałka ] przewija obszar roboczy o określoną tutaj odległość (w pikselach ekranowych)"
 
-#: ../src/ui/dialog/tracedialog.cpp:540
-msgid "Remove bottom (background) layer when done"
-msgstr "Po zakończeniu usuwa dolną (tło) warstwę"
+#: ../src/ui/dialog/inkscape-preferences.cpp:183
+msgid "Acceleration:"
+msgstr "Przyspieszenie:"
 
-#: ../src/ui/dialog/tracedialog.cpp:544
-msgid "Multiple scans: creates a group of paths"
-msgstr "Wiele przebiegów - tworzy grupę ścieżek"
+#: ../src/ui/dialog/inkscape-preferences.cpp:184
+msgid "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no acceleration)"
+msgstr "Naciśnięcie i przytrzymanie klawiszy [ Ctrl + strzałka ] powoduje stopniowe przyspieszenie przewijania (0 - brak przyspieszania)"
 
-#. ## begin option page
-#. # potrace parameters
-#: ../src/ui/dialog/tracedialog.cpp:559
-msgid "Suppress speckles"
-msgstr "Tuszuj plamki"
+#: ../src/ui/dialog/inkscape-preferences.cpp:185
+msgid "Autoscrolling"
+msgstr "Przewijanie automatyczne"
 
-#: ../src/ui/dialog/tracedialog.cpp:561
-msgid "Ignore small spots (speckles) in the bitmap"
-msgstr "Pomija małe plamki (cętki) w bitmapie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:187
+msgid "Speed:"
+msgstr "Prędkość:"
 
-#: ../src/ui/dialog/tracedialog.cpp:569
-msgid "Speckles of up to this many pixels will be suppressed"
-msgstr "Plamki powyżej określonej tutaj ilości pikseli będą tuszowane"
+#: ../src/ui/dialog/inkscape-preferences.cpp:188
+msgid "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn autoscroll off)"
+msgstr "Szybkość automatycznego przewijania, gdy obiekt zostaje przeciągnięty poza obrzeże obszaru roboczego (0 – przewijanie wyłączone)"
 
-#: ../src/ui/dialog/tracedialog.cpp:571
-msgid "Size:"
-msgstr "Rozmiar"
+#: ../src/ui/dialog/inkscape-preferences.cpp:190
+#: ../src/ui/dialog/tracedialog.cpp:410
+#: ../src/ui/dialog/tracedialog.cpp:443
+#: ../src/ui/dialog/tracedialog.cpp:586
+#: ../src/widgets/toolbox.cpp:6697
+msgid "Threshold:"
+msgstr "Próg:"
 
-#: ../src/ui/dialog/tracedialog.cpp:574
-msgid "Smooth corners"
-msgstr "Wygładź narożniki"
+#: ../src/ui/dialog/inkscape-preferences.cpp:191
+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 "Odległość (w pikselach ekranu) od obrzeża obszaru roboczego, przy której uruchamiane jest automatyczne przewijanie. Wartość dodatnia oznacza położenie poza obszarem roboczym, ujemna wewnątrz."
 
-#: ../src/ui/dialog/tracedialog.cpp:576
-msgid "Smooth out sharp corners of the trace"
-msgstr "Wygładza ostre krawędzie ścieżki wektorowej"
+#: ../src/ui/dialog/inkscape-preferences.cpp:192
+msgid "Left mouse button pans when Space is pressed"
+msgstr "Przesuwaj obszar roboczy za pomocą klawisza spacji i lewego przycisku myszy"
 
-#: ../src/ui/dialog/tracedialog.cpp:585
-msgid "Increase this to smooth corners more"
-msgstr "Zwiększ wartość, aby bardziej wygładzić narożniki"
+#: ../src/ui/dialog/inkscape-preferences.cpp:194
+msgid "When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator). When off, Space temporarily switches to Selector tool (default)."
+msgstr "Po naciśnięciu i przytrzymaniu klawsza spacji będzie można za pomocą lewego przycisku myszy wykonać przesuwanie obszaru roboczego (tak jak w programie Adobe Illustrator). Jeśli opcja nie zostanie zaznaczona klawisz spacji będzie przełączał tymczasowo do \"Wskaźnika\" (zachowanie domyślne)."
 
-#: ../src/ui/dialog/tracedialog.cpp:589
-msgid "Optimize paths"
-msgstr "Optymalizuj ścieżki"
+#: ../src/ui/dialog/inkscape-preferences.cpp:195
+msgid "Mouse wheel zooms by default"
+msgstr "Przybliżaj obszar roboczy za pomocą kółka myszy"
 
-#: ../src/ui/dialog/tracedialog.cpp:592
-msgid "Try to optimize paths by joining adjacent Bezier curve segments"
-msgstr ""
-"Nastąpi próba optymalizacji ścieżek poprzez łączenie przylegających do "
-"siebie segmentów krzywej Beziera"
+#: ../src/ui/dialog/inkscape-preferences.cpp:197
+msgid "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when off, it zooms with Ctrl and scrolls without Ctrl."
+msgstr "Kółko myszy będzie przybliżać/oddalać obszar roboczy, ze wciśniętym klawiszem [Ctrl] będzie przewijać obszar roboczy w pionie, a z klawiszem [Shift] w poziomie. Gdy opcja nie zostanie uaktywniona, kółko będzie przewijać obszar roboczy w pionie, a ze wciśniętym klawiszem [Ctrl] - przybliżać."
 
-#: ../src/ui/dialog/tracedialog.cpp:600
-msgid ""
-"Increase this to reduce the number of nodes in the trace by more aggressive "
-"optimization"
-msgstr ""
-"Zwiększ wartość, aby poprzez intensywniejszą optymalizację, w tworzonej "
-"krzywej wektorowej zredukować liczbę węzłów"
+#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here
+#: ../src/ui/dialog/inkscape-preferences.cpp:206
+msgid "Arrow keys move by:"
+msgstr "Przesunięcie realizowane przez klawisze strzałek:"
 
-#. ## end option page
-#: ../src/ui/dialog/tracedialog.cpp:607 ../src/ui/dialog/tracedialog.cpp:613
-msgid "Options"
-msgstr "Opcje"
+#: ../src/ui/dialog/inkscape-preferences.cpp:207
+msgid "Pressing an arrow key moves selected object(s) or node(s) by this distance (in px units)"
+msgstr "Naciśnięcie klawisza strzałki przesuwa zaznaczone obiekty lub węzeły o określoną tutaj wartość (w px)"
 
-#. ### credits
-#: ../src/ui/dialog/tracedialog.cpp:621
-msgid "Thanks to Peter Selinger, http://potrace.sourceforge.net"
-msgstr "Podziękowania dla Petera Selingera, http://potrace.sourceforge.net"
+#. defaultscale is limited to 1000 in select-context.cpp: use the same limit here
+#: ../src/ui/dialog/inkscape-preferences.cpp:210
+msgid "> and < scale by:"
+msgstr "Zmiana rozmiaru realizowana przez klawisze [ > ] i [ < ]:"
 
-#: ../src/ui/dialog/tracedialog.cpp:623
-msgid "Credits"
-msgstr "Podziękowania"
+#: ../src/ui/dialog/inkscape-preferences.cpp:211
+msgid "Pressing > or < scales selection up or down by this increment (in px units)"
+msgstr "Naciśnięcie klawisza [ > ] lub [ < ] odpowiednio, powiększa lub zmniejsza rozmiar zaznaczenia o określoną tutaj wartość (w px)"
 
-#. #### begin right panel
-#. ## SIOX
-#: ../src/ui/dialog/tracedialog.cpp:637
-msgid "SIOX foreground selection"
-msgstr "SIOX - wybór obszaru pierwszego planu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:213
+msgid "Inset/Outset by:"
+msgstr "Przesunięcie do wewnątrz/na zewnątrz o:"
 
-#: ../src/ui/dialog/tracedialog.cpp:640
-msgid "Cover the area you want to select as the foreground"
-msgstr "Oznacza obszar jaki chcesz wybrać jako pierwszy plan"
+#: ../src/ui/dialog/inkscape-preferences.cpp:214
+msgid "Inset and Outset commands displace the path by this distance (in px units)"
+msgstr "Polecenia \"Przesunięcie do wewnątrz/na zewnątrz\" przesuwają ścieżkę o określoną tutaj wartość (w px)"
 
-#. ## preview
-#: ../src/ui/dialog/tracedialog.cpp:645
-msgid "Update"
-msgstr "Aktualizuj"
+#: ../src/ui/dialog/inkscape-preferences.cpp:215
+msgid "Compass-like display of angles"
+msgstr "Wyświetlaj wartości kątów jak na kompasie"
 
-#: ../src/ui/dialog/tracedialog.cpp:651
-msgid ""
-"Preview the intermediate bitmap with the current settings, without actual "
-"tracing"
-msgstr "Podgląd bitmapy z aktualnymi ustawieniami, bez wektoryzacji"
+#: ../src/ui/dialog/inkscape-preferences.cpp:217
+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 "Opcja aktywna - kąty będą mierzone w zakresie 0-360° rosnąco w kierunku zgodnym z ruchem wskazówek zegara rozpoczynając od kierunku północnego. Opcja nieaktywna - kąty będą mierzone w zakresie -180°-180° rosnąco w kierunku przeciwnym do ruchu wskazówek zegara rozpoczynając od kierunku wschodniego."
 
-#: ../src/ui/dialog/tracedialog.cpp:655
-msgid "Preview"
-msgstr "Podgląd"
+#: ../src/ui/dialog/inkscape-preferences.cpp:223
+msgid "Rotation snaps every:"
+msgstr "Zatrzymuj obrót co:"
 
-#: ../src/ui/dialog/tracedialog.cpp:672
-msgid "Abort a trace in progress"
-msgstr "Przerwij wektoryzację"
+#: ../src/ui/dialog/inkscape-preferences.cpp:223
+msgid "degrees"
+msgstr "stopni"
 
-#: ../src/ui/dialog/tracedialog.cpp:676
-msgid "Execute the trace"
-msgstr "Wykonaj wektoryzację"
+#: ../src/ui/dialog/inkscape-preferences.cpp:224
+msgid "Rotating with Ctrl pressed snaps every that much degrees; also, pressing [ or ] rotates by this amount"
+msgstr "Wykonując obracanie z wciśniętym klawiszem [Ctrl], obrót będzie następował o podaną tutaj wartość kąta; także naciśnięcie lub obrót o tę wartość"
 
-#: ../src/ui/dialog/transformation.cpp:83
-#: ../src/ui/dialog/transformation.cpp:93
-msgid "_Horizontal"
-msgstr "_Poziome"
+#: ../src/ui/dialog/inkscape-preferences.cpp:226
+msgid "Zoom in/out by:"
+msgstr "Powiększaj/pomniejszaj o:"
 
-#: ../src/ui/dialog/transformation.cpp:83
-msgid "Horizontal displacement (relative) or position (absolute)"
-msgstr "Przesunięcie poziome (względne) lub pozycja (bezwzględna)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:227
+msgid "Zoom tool click, +/- keys, and middle click zoom in and out by this multiplier"
+msgstr "Narzędzia zmiany wielkości - klawisze [ +/- ] oraz środkowy przycisk myszy wykonują powiększenie/pomniejszenie widoku o ten mnożnik"
 
-#: ../src/ui/dialog/transformation.cpp:85
-#: ../src/ui/dialog/transformation.cpp:95
-msgid "_Vertical"
-msgstr "Pi_onowe"
+#: ../src/ui/dialog/inkscape-preferences.cpp:233
+msgid "Show selection cue"
+msgstr "Wyróżniaj zaznaczenie"
 
-#: ../src/ui/dialog/transformation.cpp:85
-msgid "Vertical displacement (relative) or position (absolute)"
-msgstr "Przesunięcie pionowe (względne) lub pozycja (bezwzględna)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:234
+msgid "Whether selected objects display a selection cue (the same as in selector)"
+msgstr "Wyświetlanie wyróżnienia zaznaczonych obiektów"
 
-#: ../src/ui/dialog/transformation.cpp:87
-msgid "_Width"
-msgstr "_Szerokość"
+#: ../src/ui/dialog/inkscape-preferences.cpp:240
+msgid "Enable gradient editing"
+msgstr "Edytuj gradient na obiekcie"
 
-#: ../src/ui/dialog/transformation.cpp:87
-msgid "Horizontal size (absolute or percentage of current)"
-msgstr "Poziomy przyrost rozmiaru (bezwzględny lub procentowy aktualnego)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:241
+msgid "Whether selected objects display gradient editing controls"
+msgstr "Wyświetlanie punktów kontrolnych edycji gradientu na zaznaczonych obiektach"
 
-#: ../src/ui/dialog/transformation.cpp:89
-msgid "_Height"
-msgstr "_Wysokość"
+#: ../src/ui/dialog/inkscape-preferences.cpp:246
+msgid "Conversion to guides uses edges instead of bounding box"
+msgstr "Podczas konwersji na prowadnice używaj krawędzi zamiast obramowania obiektu"
 
-#: ../src/ui/dialog/transformation.cpp:89
-msgid "Vertical size (absolute or percentage of current)"
-msgstr "Pionowy przyrost rozmiaru (bezwzględny lub procentowy aktualnego)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:247
+msgid "Converting an object to guides places these along the object's true edges (imitating the object's shape), not along the bounding box."
+msgstr "Podczas konwersji obiektu na prowadnice, prowadnice będą umieszczane wzdłuż rzeczywistych krawędzi (imitacja kształtu obiektu), a nie wzdłuż obramowania"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:254
+msgid "Ctrl+click dot size:"
+msgstr "[Ctrl + kliknięcie] - wielkość kropki:"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:254
+msgid "times current stroke width"
+msgstr "krotność aktualnej szerokości konturu"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:255
+msgid "Size of dots created with Ctrl+click (relative to current stroke width)"
+msgstr "Wielkość kropek utworzonych przy użyciu [Ctrl + kliknięcie] - relatywnie do aktualnej szerokości konturu"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:270
+msgid "<b>No objects selected</b> to take the style from."
+msgstr "<b>Nie wybrano obiektów</b> do pobrania stylu"
 
-#: ../src/ui/dialog/transformation.cpp:91
-msgid "A_ngle"
-msgstr "_Kąt"
+#: ../src/ui/dialog/inkscape-preferences.cpp:279
+msgid "<b>More than one object selected.</b>  Cannot take style from multiple objects."
+msgstr "<b>Wybrano więcej niż jeden obiekt.</b> Nie można pobrać stylu z wielu obiektów"
 
-#: ../src/ui/dialog/transformation.cpp:91
-msgid "Rotation angle (positive = counterclockwise)"
-msgstr "Kąt obrotu (dodatni = przeciwnie do ruchu wskazówek zegara)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:314
+msgid "Create new objects with:"
+msgstr "Twórz nowe obiekty z zastosowaniem stylu:"
 
-#: ../src/ui/dialog/transformation.cpp:93
-msgid ""
-"Horizontal skew angle (positive = counterclockwise), or absolute "
-"displacement, or percentage displacement"
-msgstr ""
-"Poziomy kąt pochylenia (dodatni = przeciwnie do ruchu wskazówek zegara), lub "
-"bezwzględne przesunięcie, lub przesunięcie procentowe"
+#: ../src/ui/dialog/inkscape-preferences.cpp:316
+msgid "Last used style"
+msgstr "Ostatnio użyty styl"
 
-#: ../src/ui/dialog/transformation.cpp:95
-msgid ""
-"Vertical skew angle (positive = counterclockwise), or absolute displacement, "
-"or percentage displacement"
-msgstr ""
-"Pionowy kąt pochylenia (dodatni = przeciwnie do ruchu wskazówek zegara), lub "
-"bezwzględne przesunięcie, lub przesunięcie procentowe"
+#: ../src/ui/dialog/inkscape-preferences.cpp:318
+msgid "Apply the style you last set on an object"
+msgstr "Zostanie zastosowany ostatnio użyty styl dla tego typu obiektu"
 
-#: ../src/ui/dialog/transformation.cpp:98
-msgid "Transformation matrix element A"
-msgstr "Element A macierzy przekształcenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:323
+msgid "This tool's own style:"
+msgstr "Określony tutaj styl:"
 
-#: ../src/ui/dialog/transformation.cpp:99
-msgid "Transformation matrix element B"
-msgstr "Element B macierzy przekształcenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:327
+msgid "Each tool may store its own style to apply to the newly created objects. Use the button below to set it."
+msgstr "Każde narzędzie może zachowywać własny styl dla nowo tworzonych obiektów. Przycisk poniżej pozwala ustawić własny styl narzędzia."
 
-#: ../src/ui/dialog/transformation.cpp:100
-msgid "Transformation matrix element C"
-msgstr "Element C macierzy przekształcenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:332
+msgid "Take from selection"
+msgstr "Pobierz z zaznaczenia"
 
-#: ../src/ui/dialog/transformation.cpp:101
-msgid "Transformation matrix element D"
-msgstr "Element D macierzy przekształcenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:336
+msgid "This tool's style of new objects"
+msgstr "Styl tego narzędzia dla nowych obiektów"
 
-#: ../src/ui/dialog/transformation.cpp:102
-msgid "Transformation matrix element E"
-msgstr "Element E macierzy przekształcenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:344
+msgid "Remember the style of the (first) selected object as this tool's style"
+msgstr "Zapamiętuje styl pierwszego zaznaczonego obiektu jako domyślny styl dla tego narzędzia"
 
-#: ../src/ui/dialog/transformation.cpp:103
-msgid "Transformation matrix element F"
-msgstr "Element F macierzy przekształcenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:349
+msgid "Tools"
+msgstr "Narzędzia"
 
-#: ../src/ui/dialog/transformation.cpp:105
-msgid "Rela_tive move"
-msgstr "Przesunięcie względne"
+#: ../src/ui/dialog/inkscape-preferences.cpp:352
+msgid "Bounding box to use:"
+msgstr "Stosuj poniższy typ obramowania obiektu:"
 
-#: ../src/ui/dialog/transformation.cpp:105
-msgid ""
-"Add the specified relative displacement to the current position; otherwise, "
-"edit the current absolute position directly"
-msgstr ""
-"Dodaj wybraną wartość przesunięcia względnego do aktualnej pozycji lub "
-"bezpośrednio edytuj bezwzględną pozycję"
+#: ../src/ui/dialog/inkscape-preferences.cpp:353
+msgid "Visual bounding box"
+msgstr "Wizualne obramowanie obiektu"
 
-#: ../src/ui/dialog/transformation.cpp:106
-msgid "Scale proportionally"
-msgstr "Skaluj proporcjonalne"
+#: ../src/ui/dialog/inkscape-preferences.cpp:355
+msgid "This bounding box includes stroke width, markers, filter margins, etc."
+msgstr "Ten typ obramowania obiektu zawiera szerokość konturu, znaczniki, filtr marginesów itd."
 
-#: ../src/ui/dialog/transformation.cpp:106
-msgid "Preserve the width/height ratio of the scaled objects"
-msgstr ""
-"Zachowuje proporcje pomiędzy szerokością i wysokością dla skalowanych "
-"obiektów"
+#: ../src/ui/dialog/inkscape-preferences.cpp:356
+msgid "Geometric bounding box"
+msgstr "Geometryczne obramowanie obiektu"
 
-#: ../src/ui/dialog/transformation.cpp:107
-msgid "Apply to each _object separately"
-msgstr "Zastosuj osobno dla każdego obiektu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:358
+msgid "This bounding box includes only the bare path"
+msgstr "Ten typ obramowania obiektu zawiera tylko gołą ścieżkę"
 
-#: ../src/ui/dialog/transformation.cpp:107
-msgid ""
-"Apply the scale/rotate/skew to each selected object separately; otherwise, "
-"transform the selection as a whole"
-msgstr ""
-"Wykonuje skalowanie/obrot/pochylenie osobno dla każdego z zaznaczonych "
-"obiektów, w przeciwnym razie zaznaczenie jest przekształcane jako całość"
+#: ../src/ui/dialog/inkscape-preferences.cpp:360
+msgid "Conversion to guides:"
+msgstr "Konwersja na prowadnice"
 
-#: ../src/ui/dialog/transformation.cpp:108
-msgid "Edit c_urrent matrix"
-msgstr "Edycja macierzy istniejącego przekształcenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:361
+msgid "Keep objects after conversion to guides"
+msgstr "Zachowaj obiekty po konwersji na prowadnice"
 
-#: ../src/ui/dialog/transformation.cpp:108
-msgid ""
-"Edit the current transform= matrix; otherwise, post-multiply transform= by "
-"this matrix"
-msgstr ""
-"Jeśli opcja jest zaznaczona, edytowana jest macierz całego istniejącego "
-"przekształcenia obiektu, w przeciwnym razie istniejące przekształcenie "
-"zostanie pomnożone przez nową macierz"
+#: ../src/ui/dialog/inkscape-preferences.cpp:363
+msgid "When converting an object to guides, don't delete the object after the conversion."
+msgstr "Po zakończeniu konwersji obiektu na prowadnice obiekt nie będzie usuwany"
 
-#: ../src/ui/dialog/transformation.cpp:118
-msgid "_Move"
-msgstr "_Przesuń"
+#: ../src/ui/dialog/inkscape-preferences.cpp:364
+msgid "Treat groups as a single object"
+msgstr "Traktuj grupy jak pojedynczy obiekt"
 
-#: ../src/ui/dialog/transformation.cpp:121
-msgid "_Scale"
-msgstr "_Skaluj"
+#: ../src/ui/dialog/inkscape-preferences.cpp:366
+msgid "Treat groups as a single object during conversion to guides rather than converting each child separately."
+msgstr "Podczas konwersji na prowadnice cała grupa będzie przekształcana jak pojedynczy obiekt, zamiast przekształcania każdego elementu grupy osobno."
 
-#: ../src/ui/dialog/transformation.cpp:124
-msgid "_Rotate"
-msgstr "_Obróć"
+#: ../src/ui/dialog/inkscape-preferences.cpp:368
+msgid "Width is in absolute units"
+msgstr "Szerokość w jednostkach bezwzględnych"
 
-#: ../src/ui/dialog/transformation.cpp:127
-msgid "Ske_w"
-msgstr "Po_chyl"
+#: ../src/ui/dialog/inkscape-preferences.cpp:369
+msgid "Select new path"
+msgstr "Zaznaczaj nową ścieżkę"
 
-#: ../src/ui/dialog/transformation.cpp:130
-msgid "Matri_x"
-msgstr "_Macierz"
+#: ../src/ui/dialog/inkscape-preferences.cpp:370
+msgid "Don't attach connectors to text objects"
+msgstr "Nie prowadź łączników do obiektów tekstowych"
 
-#: ../src/ui/dialog/transformation.cpp:153
-msgid "Reset the values on the current tab to defaults"
-msgstr "Zresetuj wartości w aktywnej karcie do wartości domyślnych"
+#. Selector
+#: ../src/ui/dialog/inkscape-preferences.cpp:373
+msgid "Selector"
+msgstr "Wskaźnik"
 
-#: ../src/ui/dialog/transformation.cpp:160
-msgid "Apply transformation to selection"
-msgstr "Zastosuj przekształcenie do zaznaczenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:376
+msgid "When transforming, show:"
+msgstr "Podczas przekształcania wyświetlaj:"
 
-#: ../src/ui/dialog/transformation.cpp:842
-msgid "Edit transformation matrix"
-msgstr "Edytuj macierz przekształcenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:377
+msgid "Objects"
+msgstr "Obiekty"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:44
-msgid "_Use SSL"
-msgstr "_Użyj SSL"
+#: ../src/ui/dialog/inkscape-preferences.cpp:379
+msgid "Show the actual objects when moving or transforming"
+msgstr "Wyświetla obiekty podczas ich przemieszczania lub przekształcania"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:44
-msgid "_Register"
-msgstr "_Rejestruj"
+#: ../src/ui/dialog/inkscape-preferences.cpp:380
+msgid "Box outline"
+msgstr "Tylko obramowanie obiektów"
 
-#. Construct dialog interface
-#: ../src/ui/dialog/whiteboard-connect.cpp:75
-msgid "_Server:"
-msgstr "_Serwer:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:382
+msgid "Show only a box outline of the objects when moving or transforming"
+msgstr "Podczas przemieszczania lub przekształcania obiektów wyświetla tylko ich obramowanie"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:76
-msgid "_Username:"
-msgstr "Nazwa _użytkownika:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:383
+msgid "Per-object selection cue:"
+msgstr "Wyróżniaj obiekty wewnątrz zaznaczenia:"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:77
-msgid "_Password:"
-msgstr "_Hasło:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:386
+msgid "No per-object selection indication"
+msgstr "Obiekty wewnątrz zaznaczenia nie będą wyróżniane"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:78
-msgid "P_ort:"
-msgstr "P_ort:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:387
+msgid "Mark"
+msgstr "Uchwyt"
 
-#. Buttons
-#: ../src/ui/dialog/whiteboard-connect.cpp:113
-msgid "Connect"
-msgstr "Połącz"
+#: ../src/ui/dialog/inkscape-preferences.cpp:389
+msgid "Each selected object has a diamond mark in the top left corner"
+msgstr "W lewym górnym rogu każdego zaznaczonego obiektu będzie wyświetlany uchwyt w kształcie rombu"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:144
-msgid "Establishing connection to Jabber server <b>%1</b>"
-msgstr "Ustanawianie połączenia z serwerem Jabbera <b>%1</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:390
+msgid "Box"
+msgstr "Obramowanie"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:171
-#: ../src/ui/dialog/whiteboard-connect.cpp:216
-#: ../src/ui/dialog/whiteboard-connect.cpp:254
-msgid "Failed to establish connection to Jabber server <b>%1</b>"
-msgstr "Nie udało się ustanowić połączenia z serwerem Jabbera <b>%1</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:392
+msgid "Each selected object displays its bounding box"
+msgstr "Każdy z zaznaczonych obiektów będzie otoczony obramowaniem"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:209
-msgid "Establishing connection to Jabber server <b>%1</b> as user <b>%2</b>"
-msgstr "Ustanowiono połączenie z serwerem Jabbera <b>%1</b> jako <b>%2</b>"
+#. Node
+#: ../src/ui/dialog/inkscape-preferences.cpp:395
+msgid "Node"
+msgstr "Edycja węzłów"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:221
-msgid "Authentication failed on Jabber server <b>%1</b> as <b>%2</b>"
-msgstr ""
-"Autoryzacja na serwerze Jabbera <b>%1</b> jako <b>%2</b> się nie powiodła"
+#: ../src/ui/dialog/inkscape-preferences.cpp:398
+msgid "Path outline:"
+msgstr "Ścieżka konturu:"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:226
-#: ../src/ui/dialog/whiteboard-connect.cpp:264
-msgid "SSL initialization failed when connecting to Jabber server <b>%1</b>"
-msgstr ""
-"Nie udało się zainicjować obsługi SSL w trakcie połączenia z serwerem "
-"Jabbera <b>%1</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:399
+#: ../src/ui/dialog/inkscape-preferences.cpp:400
+msgid "Path outline color"
+msgstr "Kolor ścieżki konturu"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:232
-#: ../src/ui/dialog/whiteboard-connect.cpp:270
-msgid "Connected to Jabber server <b>%1</b> as <b>%2</b>"
-msgstr "Połączono z serwerem Jabbera <b>%1</b> jako <b>%2</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:400
+msgid "Selects the color used for showing the path outline."
+msgstr "Wybierz kolor w jakim będzie wyświetlana ścieżka konturui"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:259
-msgid "Registration failed on Jabber server <b>%1</b> as <b>%2</b>"
-msgstr ""
-"Nie udało się zarejestrować na serwerze Jabbera <b>%1</b> jako <b>%2</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:401
+msgid "Path outline flash on mouse-over"
+msgstr "Migocz konturem ścieżki"
 
-#. Construct labels
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:75
-msgid "Chatroom _name:"
-msgstr "_Nazwa pokoju rozmów:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:402
+msgid "When hovering over a path, briefly flash its outline."
+msgstr "Kontur ścieżki po umieszczeniu nad ścieżką wskażnika myszy będzie migotał"
 
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:76
-msgid "Chatroom _server:"
-msgstr "_Serwer pokoju rozmów:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:404
+msgid "Flash time"
+msgstr "Czas wyświetlania konturu"
 
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:77
-msgid "Chatroom _password:"
-msgstr "_Hasło pokoju rozmów:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:404
+msgid "Specifies how long the path outline will be visible after a mouse-over (in milliseconds). Specify 0 to have the outline shown until mouse leaves the path."
+msgstr "Określa, jak długo obramowanie ścieżki będzie widoczne po umieszczeniu nad nim wskaźnika myszy (w ms). Aby obramowanie ścieżki było wyświetlane do momentu przesunięcia wskaźnika myszy poza obramowanie, należy wstawić wartość 0."
 
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:78
-#, fuzzy
-msgid "Chatroom _handle:"
-msgstr "_Nazwa pokoju rozmów"
+#. Tweak
+#: ../src/ui/dialog/inkscape-preferences.cpp:407
+#: ../src/verbs.cpp:2500
+msgid "Tweak"
+msgstr "Udoskonalanie"
 
-#. Button setup and callback registration
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:102
-msgid "Connect to chatroom"
-msgstr "Połącz z pokojem rozmów"
+#: ../src/ui/dialog/inkscape-preferences.cpp:408
+#, fuzzy
+msgid "Paint objects with:"
+msgstr "Twórz nowe obiekty z zastosowaniem stylu:"
 
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:137
-msgid "Synchronizing with chatroom <b>%1@%2</b> using the handle <b>%3</b>"
-msgstr ""
-"Synchronizowanie z pokojem rozmów <b>%1@%2</b> używając nazwy <b>%3</b>"
+#. Shapes
+#: ../src/ui/dialog/inkscape-preferences.cpp:418
+msgid "Shapes"
+msgstr "Kształty"
 
-#. Construct dialog interface
-#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:76
-msgid "_User's Jabber ID:"
-msgstr "ID Jabbera _użytkownika"
+#. Pencil
+#: ../src/ui/dialog/inkscape-preferences.cpp:446
+#: ../src/verbs.cpp:2512
+msgid "Pencil"
+msgstr "Ołówek"
 
-#. Buttons
-#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:80
-msgid "_Invite user"
-msgstr "_Zaproś"
+#. Pen
+#: ../src/ui/dialog/inkscape-preferences.cpp:452
+#: ../src/verbs.cpp:2514
+msgid "Pen"
+msgstr "Pióro"
 
-#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:81
-msgid "_Cancel"
-msgstr "_Anuluj"
+#. Calligraphy
+#: ../src/ui/dialog/inkscape-preferences.cpp:458
+#: ../src/verbs.cpp:2516
+msgid "Calligraphy"
+msgstr "Kaligrafia"
 
-#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:92
-msgid "Buddy List"
-msgstr "Lista znajomych"
+#: ../src/ui/dialog/inkscape-preferences.cpp:462
+msgid "If on, pen width is in absolute units (px) independent of zoom; otherwise pen width depends on zoom so that it looks the same at any zoom"
+msgstr "Szerokość linii pióra - niezależnie od powiększenia - będzie wyrażona w jednostkach absolutnych (px). Jeśli jest nieaktywna - szerokość będzie zależała od powiększenia i będzie wyglądała tak samo w każdym powiększeniu."
 
-#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:181
-msgid "Sending whiteboard invitation to <b>%1</b>"
-msgstr "Wysyłanie zaproszenia do <b>%1</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:464
+msgid "If on, each newly created object will be selected (deselecting previous selection)"
+msgstr "Każdy utworzony obiekt będzie zaznaczony; poprzednie zaznaczenie zostanie odznaczone"
 
-#. FIXME: strings are replaced by placeholders, NOT to be translated until the code is enabled
-#. See http://sourceforge.net/mailarchive/message.php?msg_id=11746016 for details
-#. File menu
-#. Edit menu
-#. View menu
-#. Layer menu
-#. Object menu
-#. Path menu
-#. add(Gtk::StockItem(CLEANUP, _("PLACEHOLDER, do not translate"))); (using Gtk::Stock::CLEAR)
-#. Text menu
-#. About menu
-#. Tools toolbox
-#. Select Tool controls
-#. Node Tool controls
-#. Calligraphy Tool controls
-#. Session playback controls
-#: ../src/ui/stock-items.cpp:31 ../src/ui/stock-items.cpp:32
-#: ../src/ui/stock-items.cpp:33 ../src/ui/stock-items.cpp:34
-#: ../src/ui/stock-items.cpp:35 ../src/ui/stock-items.cpp:36
-#: ../src/ui/stock-items.cpp:37 ../src/ui/stock-items.cpp:38
-#: ../src/ui/stock-items.cpp:39 ../src/ui/stock-items.cpp:40
-#: ../src/ui/stock-items.cpp:41 ../src/ui/stock-items.cpp:42
-#: ../src/ui/stock-items.cpp:45 ../src/ui/stock-items.cpp:46
-#: ../src/ui/stock-items.cpp:47 ../src/ui/stock-items.cpp:48
-#: ../src/ui/stock-items.cpp:49 ../src/ui/stock-items.cpp:50
-#: ../src/ui/stock-items.cpp:51 ../src/ui/stock-items.cpp:52
-#: ../src/ui/stock-items.cpp:53 ../src/ui/stock-items.cpp:54
-#: ../src/ui/stock-items.cpp:55 ../src/ui/stock-items.cpp:56
-#: ../src/ui/stock-items.cpp:57 ../src/ui/stock-items.cpp:58
-#: ../src/ui/stock-items.cpp:61 ../src/ui/stock-items.cpp:62
-#: ../src/ui/stock-items.cpp:63 ../src/ui/stock-items.cpp:64
-#: ../src/ui/stock-items.cpp:65 ../src/ui/stock-items.cpp:66
-#: ../src/ui/stock-items.cpp:67 ../src/ui/stock-items.cpp:68
-#: ../src/ui/stock-items.cpp:69 ../src/ui/stock-items.cpp:70
-#: ../src/ui/stock-items.cpp:71 ../src/ui/stock-items.cpp:72
-#: ../src/ui/stock-items.cpp:73 ../src/ui/stock-items.cpp:74
-#: ../src/ui/stock-items.cpp:75 ../src/ui/stock-items.cpp:76
-#: ../src/ui/stock-items.cpp:77 ../src/ui/stock-items.cpp:78
-#: ../src/ui/stock-items.cpp:79 ../src/ui/stock-items.cpp:80
-#: ../src/ui/stock-items.cpp:81 ../src/ui/stock-items.cpp:82
-#: ../src/ui/stock-items.cpp:83 ../src/ui/stock-items.cpp:84
-#: ../src/ui/stock-items.cpp:85 ../src/ui/stock-items.cpp:86
-#: ../src/ui/stock-items.cpp:87 ../src/ui/stock-items.cpp:88
-#: ../src/ui/stock-items.cpp:91 ../src/ui/stock-items.cpp:92
-#: ../src/ui/stock-items.cpp:93 ../src/ui/stock-items.cpp:94
-#: ../src/ui/stock-items.cpp:95 ../src/ui/stock-items.cpp:96
-#: ../src/ui/stock-items.cpp:97 ../src/ui/stock-items.cpp:98
-#: ../src/ui/stock-items.cpp:99 ../src/ui/stock-items.cpp:100
-#: ../src/ui/stock-items.cpp:101 ../src/ui/stock-items.cpp:102
-#: ../src/ui/stock-items.cpp:103 ../src/ui/stock-items.cpp:104
-#: ../src/ui/stock-items.cpp:107 ../src/ui/stock-items.cpp:108
-#: ../src/ui/stock-items.cpp:109 ../src/ui/stock-items.cpp:110
-#: ../src/ui/stock-items.cpp:111 ../src/ui/stock-items.cpp:112
-#: ../src/ui/stock-items.cpp:113 ../src/ui/stock-items.cpp:114
-#: ../src/ui/stock-items.cpp:115 ../src/ui/stock-items.cpp:116
-#: ../src/ui/stock-items.cpp:117 ../src/ui/stock-items.cpp:118
-#: ../src/ui/stock-items.cpp:119 ../src/ui/stock-items.cpp:120
-#: ../src/ui/stock-items.cpp:121 ../src/ui/stock-items.cpp:122
-#: ../src/ui/stock-items.cpp:123 ../src/ui/stock-items.cpp:124
-#: ../src/ui/stock-items.cpp:125 ../src/ui/stock-items.cpp:126
-#: ../src/ui/stock-items.cpp:129 ../src/ui/stock-items.cpp:130
-#: ../src/ui/stock-items.cpp:131 ../src/ui/stock-items.cpp:132
-#: ../src/ui/stock-items.cpp:133 ../src/ui/stock-items.cpp:134
-#: ../src/ui/stock-items.cpp:135 ../src/ui/stock-items.cpp:136
-#: ../src/ui/stock-items.cpp:137 ../src/ui/stock-items.cpp:138
-#: ../src/ui/stock-items.cpp:139 ../src/ui/stock-items.cpp:140
-#: ../src/ui/stock-items.cpp:141 ../src/ui/stock-items.cpp:142
-#: ../src/ui/stock-items.cpp:143 ../src/ui/stock-items.cpp:144
-#: ../src/ui/stock-items.cpp:145 ../src/ui/stock-items.cpp:149
-#: ../src/ui/stock-items.cpp:150 ../src/ui/stock-items.cpp:151
-#: ../src/ui/stock-items.cpp:152 ../src/ui/stock-items.cpp:155
-#: ../src/ui/stock-items.cpp:156 ../src/ui/stock-items.cpp:157
-#: ../src/ui/stock-items.cpp:160 ../src/ui/stock-items.cpp:161
-#: ../src/ui/stock-items.cpp:162 ../src/ui/stock-items.cpp:163
-#: ../src/ui/stock-items.cpp:164 ../src/ui/stock-items.cpp:165
-#: ../src/ui/stock-items.cpp:166 ../src/ui/stock-items.cpp:167
-#: ../src/ui/stock-items.cpp:168 ../src/ui/stock-items.cpp:169
-#: ../src/ui/stock-items.cpp:170 ../src/ui/stock-items.cpp:171
-#: ../src/ui/stock-items.cpp:174 ../src/ui/stock-items.cpp:175
-#: ../src/ui/stock-items.cpp:176 ../src/ui/stock-items.cpp:177
-#: ../src/ui/stock-items.cpp:180 ../src/ui/stock-items.cpp:181
-#: ../src/ui/stock-items.cpp:182 ../src/ui/stock-items.cpp:183
-#: ../src/ui/stock-items.cpp:184 ../src/ui/stock-items.cpp:185
-#: ../src/ui/stock-items.cpp:186 ../src/ui/stock-items.cpp:187
-#: ../src/ui/stock-items.cpp:188 ../src/ui/stock-items.cpp:189
-#: ../src/ui/stock-items.cpp:190 ../src/ui/stock-items.cpp:193
-#: ../src/ui/stock-items.cpp:194 ../src/ui/stock-items.cpp:197
-#: ../src/ui/stock-items.cpp:198 ../src/ui/stock-items.cpp:199
-#: ../src/ui/stock-items.cpp:200 ../src/ui/stock-items.cpp:201
-#: ../src/ui/view/edit-widget.cpp:343 ../src/ui/view/edit-widget.cpp:348
-#: ../src/ui/view/edit-widget.cpp:356 ../src/ui/view/edit-widget.cpp:361
-#: ../src/ui/view/edit-widget.cpp:366 ../src/ui/view/edit-widget.cpp:371
-#: ../src/ui/view/edit-widget.cpp:376 ../src/ui/view/edit-widget.cpp:381
-#: ../src/ui/view/edit-widget.cpp:394 ../src/ui/view/edit-widget.cpp:399
-#: ../src/ui/view/edit-widget.cpp:413 ../src/ui/view/edit-widget.cpp:417
-#: ../src/ui/view/edit-widget.cpp:421 ../src/ui/view/edit-widget.cpp:425
-#: ../src/ui/view/edit-widget.cpp:429 ../src/ui/view/edit-widget.cpp:433
-#: ../src/ui/view/edit-widget.cpp:447 ../src/ui/view/edit-widget.cpp:451
-#: ../src/ui/view/edit-widget.cpp:455 ../src/ui/view/edit-widget.cpp:486
-#: ../src/ui/view/edit-widget.cpp:495 ../src/ui/view/edit-widget.cpp:499
-#: ../src/ui/view/edit-widget.cpp:503 ../src/ui/view/edit-widget.cpp:507
-#: ../src/ui/view/edit-widget.cpp:511 ../src/ui/view/edit-widget.cpp:515
-#: ../src/ui/view/edit-widget.cpp:519 ../src/ui/view/edit-widget.cpp:523
-#: ../src/ui/view/edit-widget.cpp:527 ../src/ui/view/edit-widget.cpp:531
-#: ../src/ui/view/edit-widget.cpp:535 ../src/ui/view/edit-widget.cpp:632
-#: ../src/ui/view/edit-widget.cpp:644 ../src/ui/view/edit-widget.cpp:648
-#: ../src/ui/view/edit-widget.cpp:652 ../src/ui/view/edit-widget.cpp:656
-#: ../src/ui/view/edit-widget.cpp:660 ../src/ui/view/edit-widget.cpp:664
-#: ../src/ui/view/edit-widget.cpp:668 ../src/ui/view/edit-widget.cpp:672
-#: ../src/ui/view/edit-widget.cpp:676 ../src/ui/view/edit-widget.cpp:680
-#: ../src/ui/view/edit-widget.cpp:684 ../src/ui/view/edit-widget.cpp:688
-#: ../src/ui/view/edit-widget.cpp:692 ../src/ui/view/edit-widget.cpp:696
-#: ../src/ui/view/edit-widget.cpp:700 ../src/ui/view/edit-widget.cpp:704
-#: ../src/ui/view/edit-widget.cpp:709 ../src/ui/view/edit-widget.cpp:715
-#: ../src/ui/view/edit-widget.cpp:719 ../src/ui/view/edit-widget.cpp:769
-#: ../src/ui/view/edit-widget.cpp:774 ../src/ui/view/edit-widget.cpp:810
-#: ../src/ui/view/edit-widget.cpp:815 ../src/ui/view/edit-widget.cpp:820
-#: ../src/ui/view/edit-widget.cpp:824 ../src/ui/view/edit-widget.cpp:828
-#: ../src/ui/view/edit-widget.cpp:832 ../src/ui/view/edit-widget.cpp:836
-#: ../src/ui/view/edit-widget.cpp:840 ../src/ui/view/edit-widget.cpp:844
-#: ../src/ui/view/edit-widget.cpp:848 ../src/ui/view/edit-widget.cpp:852
-#: ../src/ui/view/edit-widget.cpp:856 ../src/ui/view/edit-widget.cpp:861
-#: ../src/ui/view/edit-widget.cpp:865 ../src/ui/view/edit-widget.cpp:869
-#: ../src/ui/view/edit-widget.cpp:873 ../src/ui/view/edit-widget.cpp:878
-#: ../src/ui/view/edit-widget.cpp:882 ../src/ui/view/edit-widget.cpp:886
-#: ../src/ui/view/edit-widget.cpp:890 ../src/ui/view/edit-widget.cpp:894
-#: ../src/ui/view/edit-widget.cpp:898 ../src/ui/view/edit-widget.cpp:902
-#: ../src/ui/view/edit-widget.cpp:906 ../src/ui/view/edit-widget.cpp:910
-#: ../src/ui/view/edit-widget.cpp:914 ../src/ui/view/edit-widget.cpp:918
-#: ../src/ui/view/edit-widget.cpp:1003
-msgid "PLACEHOLDER, do not translate"
-msgstr "-"
+#. Paint Bucket
+#: ../src/ui/dialog/inkscape-preferences.cpp:466
+#: ../src/verbs.cpp:2528
+msgid "Paint Bucket"
+msgstr "Wypełnianie"
 
-#: ../src/ui/view/edit-widget.cpp:1062 ../src/widgets/desktop-widget.cpp:381
-msgid "Zoom drawing if window size changes"
-msgstr "Dopasowuje rozmiar całego rysunku do okna"
+#. Eraser
+#: ../src/ui/dialog/inkscape-preferences.cpp:471
+#: ../src/verbs.cpp:2532
+msgid "Eraser"
+msgstr "Gumka"
 
-#: ../src/ui/view/edit-widget.cpp:1083 ../src/widgets/desktop-widget.cpp:510
-msgid "Cursor coordinates"
-msgstr "Współrzędne kursora"
+#. LPETool
+#: ../src/ui/dialog/inkscape-preferences.cpp:475
+#: ../src/verbs.cpp:2534
+msgid "LPE Tool"
+msgstr "Narzędzie LPE"
 
-#. display the initial welcome message in the statusbar
-#: ../src/ui/view/edit-widget.cpp:1100 ../src/widgets/desktop-widget.cpp:558
-msgid ""
-"<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; "
-"use selector (arrow) to move or transform them."
-msgstr ""
-"<b>Witaj w programie Inkscape!</b> Wybierz z przybornika narzędzie do "
-"rysowania lub użyj wskaźnika (strzałki), aby przesuwać lub przekształcać "
-"obiekty."
+#. Gradient
+#: ../src/ui/dialog/inkscape-preferences.cpp:485
+#: ../src/verbs.cpp:2520
+msgid "Gradient"
+msgstr "Gradient"
 
-#: ../src/ui/view/edit-widget.cpp:1211 ../src/widgets/desktop-widget.cpp:844
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Save changes to document \"%s\" before "
-"closing?</span>\n"
-"\n"
-"If you close without saving, your changes will be discarded."
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Czy przed zamknięciem programu zapisać "
-"zmiany w dokumencie \"%s\"?</span>\n"
-"\n"
-"Zamknięcie bez zapisywania spowoduje utratę wprowadzonych zmian."
+#. Connector
+#: ../src/ui/dialog/inkscape-preferences.cpp:489
+#: ../src/verbs.cpp:2526
+msgid "Connector"
+msgstr "Łącznik"
 
-#: ../src/ui/view/edit-widget.cpp:1222 ../src/ui/view/edit-widget.cpp:1269
-#: ../src/widgets/desktop-widget.cpp:851 ../src/widgets/desktop-widget.cpp:907
-msgid "Close _without saving"
-msgstr "_Zamknij"
+#: ../src/ui/dialog/inkscape-preferences.cpp:492
+msgid "If on, connector attachment points will not be shown for text objects"
+msgstr "Punkty zaczepienia łączników nie będą wyświetlane dla obiektów tekstowych"
 
-#: ../src/ui/view/edit-widget.cpp:1257 ../src/widgets/desktop-widget.cpp:899
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a "
-"format (%s) that may cause data loss!</span>\n"
-"\n"
-"Do you want to save this file as an Inkscape SVG?"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Plik \"%s\" został zapisany w formacie "
-"(%s), który może spowodować utratę danych!</span>\n"
-"\n"
-"Czy chcesz zapisać ten plik w formacie SVG Inkscape'a?"
+#. Dropper
+#: ../src/ui/dialog/inkscape-preferences.cpp:494
+#: ../src/verbs.cpp:2524
+msgid "Dropper"
+msgstr "Próbnik koloru"
 
-#: ../src/ui/view/edit-widget.cpp:1272 ../src/widgets/desktop-widget.cpp:910
-msgid "_Save as SVG"
-msgstr "Zapisz jako S_VG"
+#: ../src/ui/dialog/inkscape-preferences.cpp:501
+msgid "Save and restore window geometry for each document"
+msgstr "Zapisuj i odtwarzaj ustawienia okna dla każdego dokumentu"
 
-#: ../src/ui/widget/filter-effect-chooser.cpp:25
-msgid "_Blend mode:"
-msgstr "Tryb _przenikania:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:502
+msgid "Remember and use last window's geometry"
+msgstr "Zapamiętaj i stosuj ostatnie ustawienia okna"
 
-#: ../src/ui/widget/filter-effect-chooser.cpp:26
-msgid "B_lur:"
-msgstr "_Rozmycie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:503
+msgid "Don't save window geometry"
+msgstr "Nie zapisuj ustawień okna"
 
-#: ../src/ui/widget/licensor.cpp:35
-msgid "Proprietary"
-msgstr "Własność autora"
+#: ../src/ui/dialog/inkscape-preferences.cpp:505
+#: ../src/ui/dialog/inkscape-preferences.cpp:525
+msgid "Dockable"
+msgstr "Zadokowane"
 
-#: ../src/ui/widget/licensor.cpp:38
-msgid "Other"
-msgstr "Inne"
+#: ../src/ui/dialog/inkscape-preferences.cpp:508
+msgid "Dialogs are hidden in taskbar"
+msgstr "Ukrywaj okienka zadań na pasku zadań"
 
-#: ../src/ui/widget/object-composite-settings.cpp:51
-#: ../src/ui/widget/selected-style.cpp:1031
-#: ../src/ui/widget/selected-style.cpp:1032
-msgid "Opacity, %"
-msgstr "Krycie, %"
+#: ../src/ui/dialog/inkscape-preferences.cpp:509
+msgid "Zoom when window is resized"
+msgstr "Zmieniaj pprzybliżenie przy zmianie rozmiaru okna"
 
-#: ../src/ui/widget/object-composite-settings.cpp:152
-msgid "Change blur"
-msgstr "Zmień rozmycie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:510
+msgid "Show close button on dialogs"
+msgstr "Wyświetlaj przycisk zamykania w okienkach zadań"
 
-#: ../src/ui/widget/object-composite-settings.cpp:192
-#: ../src/ui/widget/selected-style.cpp:855
-#: ../src/ui/widget/selected-style.cpp:1149
-msgid "Change opacity"
-msgstr "Zmień krycie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:512
+#: ../src/ui/dialog/inkscape-preferences.cpp:971
+msgid "Normal"
+msgstr "Normalne"
 
-#: ../src/ui/widget/page-sizer.cpp:190
-msgid "U_nits:"
-msgstr "_Jednostki:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:513
+msgid "Aggressive"
+msgstr "Agresywne"
 
-#: ../src/ui/widget/page-sizer.cpp:191
-msgid "Width of paper"
-msgstr "Szerokość papieru"
+#: ../src/ui/dialog/inkscape-preferences.cpp:515
+msgid "Saving window geometry (size and position):"
+msgstr "Zapisuj położenie i wielkość okien:"
 
-#: ../src/ui/widget/page-sizer.cpp:192
-msgid "_Height:"
-msgstr "_Wysokość:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:517
+msgid "Let the window manager determine placement of all windows"
+msgstr "Menedżer okien będzie określał położenie wszystkich okien"
 
-#: ../src/ui/widget/page-sizer.cpp:192
-msgid "Height of paper"
-msgstr "Wysokość papieru"
+#: ../src/ui/dialog/inkscape-preferences.cpp:519
+msgid "Remember and use the last window's geometry (saves geometry to user preferences)"
+msgstr "Ostatnia wielkość i położenie okna zostanie zapamiętane (zapisane w preferencjach użytkownika) i stosowane w przyszłości"
 
-#: ../src/ui/widget/page-sizer.cpp:236
-msgid "P_age size:"
-msgstr "_Rozmiar:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:521
+msgid "Save and restore window geometry for each document (saves geometry in the document)"
+msgstr "Wielkość i położenie okna każdego dokumentu zostanie zapamiętane (zapisane w dokumencie) i odtwarzane razem z nim"
 
-#: ../src/ui/widget/page-sizer.cpp:244
-msgid "Page orientation:"
-msgstr "Orientacja:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:523
+msgid "Dialog behavior (requires restart):"
+msgstr "Rozmieszczenie okienek zadań (zmiana wymaga ponownego uruchomienia):"
 
-#: ../src/ui/widget/page-sizer.cpp:247
-msgid "_Landscape"
-msgstr "P_ozioma"
+#: ../src/ui/dialog/inkscape-preferences.cpp:530
+msgid "Dialogs on top:"
+msgstr "Wyświetlanie okienek zadań"
 
-#: ../src/ui/widget/page-sizer.cpp:252
-msgid "_Portrait"
-msgstr "_Pionowa"
+#: ../src/ui/dialog/inkscape-preferences.cpp:533
+msgid "Dialogs are treated as regular windows"
+msgstr "Okienka zadań wyświetlane jak zwykłe okna"
 
-#. ## Set up custom size frame
-#: ../src/ui/widget/page-sizer.cpp:259
-msgid "Custom size"
-msgstr "Rozmiar niestandardowy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:535
+msgid "Dialogs stay on top of document windows"
+msgstr "Okienka zadań na wierzchu"
 
-#: ../src/ui/widget/page-sizer.cpp:272
-msgid "_Fit page to selection"
-msgstr "_Dopasuj do ramki zaznaczenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:537
+msgid "Same as Normal but may work better with some window managers"
+msgstr "Tak samo jak normalnie, ale może działać lepiej z niektórymi menedżerami okien"
 
-#: ../src/ui/widget/page-sizer.cpp:273
-msgid ""
-"Resize the page to fit the current selection, or the entire drawing if there "
-"is no selection"
+#: ../src/ui/dialog/inkscape-preferences.cpp:541
+msgid "Dialog Transparency:"
 msgstr ""
-"Zmienia rozmiar strony tak, aby dopasować do aktualnego zaznaczenia lub "
-"jeśli nie ma zaznaczenia, zmieścić cały rysunek"
 
-#: ../src/ui/widget/page-sizer.cpp:331
-msgid "Set page size"
-msgstr "Określ rozmiar strony"
+#: ../src/ui/dialog/inkscape-preferences.cpp:543
+#, fuzzy
+msgid "Opacity when focused:"
+msgstr "Kanał krycia"
 
-#: ../src/ui/widget/panel.cpp:121
-msgid "List"
-msgstr "Lista"
+#: ../src/ui/dialog/inkscape-preferences.cpp:545
+#, fuzzy
+msgid "Opacity when unfocused:"
+msgstr "Kanał krycia"
 
-#: ../src/ui/widget/panel.cpp:144
-msgid "swatches|Size"
-msgstr "Wysokość elementów palety"
+#: ../src/ui/dialog/inkscape-preferences.cpp:547
+msgid "Time of opacity change animation:"
+msgstr ""
 
-#: ../src/ui/widget/panel.cpp:148
-msgid "tiny"
-msgstr "bardzo niskie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:550
+msgid "Miscellaneous:"
+msgstr "Różne"
 
-#: ../src/ui/widget/panel.cpp:149
-msgid "small"
-msgstr "niskie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:553
+msgid "Whether dialog windows are to be hidden in the window manager taskbar"
+msgstr "Wyłącza wyświetlanie przycisków okien dialogowych na pasku zadań menadżera okien"
 
-#. TRANSLATORS: Translate only the word "medium". Indicates size of colour swatches
-#: ../src/ui/widget/panel.cpp:151
-msgid "swatchesHeight|medium"
-msgstr "średnie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:556
+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 "Wraz ze zmianą rozmiarów okna dokumentu nastąpi zmiana pprzybliżenia z zachowaniem widocznego obszaru. Jest to zachowanie domyślne, które może być zmienione w każdym oknie przyciskiem znajdującym się nad prawym paskiem przewijania."
 
-#: ../src/ui/widget/panel.cpp:152
-msgid "large"
-msgstr "wysokie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:558
+msgid "Whether dialog windows have a close button (requires restart)"
+msgstr "Wyświetlanie przycisku \"Zamknij\" w okienkach zadań (wymaga ponownego uruchomienia)"
 
-#: ../src/ui/widget/panel.cpp:153
-msgid "huge"
-msgstr "bardzo wysokie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:559
+msgid "Windows"
+msgstr "Okna"
 
-#: ../src/ui/widget/panel.cpp:175
-msgid "swatches|Width"
-msgstr "Szerokość elementów palety"
+#: ../src/ui/dialog/inkscape-preferences.cpp:564
+msgid "Move in parallel"
+msgstr "Przemieszczają się równolegle"
 
-#: ../src/ui/widget/panel.cpp:179
-msgid "narrower"
-msgstr "bardzo wąskie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:566
+msgid "Stay unmoved"
+msgstr "Pozostają nieprzemieszczone"
 
-#: ../src/ui/widget/panel.cpp:180
-msgid "narrow"
-msgstr "wąskie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:568
+msgid "Move according to transform"
+msgstr "Przemieszczają się zgodnie z przypisanym przekształceniem"
 
-#. TRANSLATORS: Translate only the word "medium". Indicates width of colour swatches
-#: ../src/ui/widget/panel.cpp:182
-msgid "swatchesWidth|medium"
-msgstr "średnie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:570
+msgid "Are unlinked"
+msgstr "Zostaną odłączone"
 
-#: ../src/ui/widget/panel.cpp:183
-msgid "wide"
-msgstr "szerokie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:572
+msgid "Are deleted"
+msgstr "Zostaną usunięte"
 
-#: ../src/ui/widget/panel.cpp:184
-msgid "wider"
-msgstr "bardzo szerokie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:575
+msgid "When the original moves, its clones and linked offsets:"
+msgstr "Podczas przemieszczania oryginału jego klony i połączone odsunięcia:"
 
-#. TRANSLATORS: Translate only the word "Wrap". Indicates how colour swatches are displayed
-#: ../src/ui/widget/panel.cpp:215
-msgid "swatches|Wrap"
-msgstr "Zawijaj"
+#: ../src/ui/dialog/inkscape-preferences.cpp:577
+msgid "Clones are translated by the same vector as their original."
+msgstr "Klony są przemieszczane o ten sam wektor co oryginał"
 
-#: ../src/ui/widget/preferences-widget.cpp:278
-msgid "Reset"
-msgstr "Resetuj"
+#: ../src/ui/dialog/inkscape-preferences.cpp:579
+msgid "Clones preserve their positions when their original is moved."
+msgstr "Klony zachowują swoją pozycję podczas, gdy oryginał zostaje przesunięty"
 
-#: ../src/ui/widget/random.cpp:123
-msgid ""
-"Reseed the random number generator; this creates a different sequence of "
-"random numbers."
-msgstr ""
-"Wygeneruj ponownie liczby losowe; operacja ta tworzy różne sekwencje liczb "
-"losowych"
+#: ../src/ui/dialog/inkscape-preferences.cpp:581
+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 "Każda ze sklonowanych kopii zostaje przemieszczona zgodnie z wartością przypisanego do niej przekształcenia. Na przykład obrócony klon przesuwa się w innym kierunku niż oryginał."
 
-#: ../src/ui/widget/rendering-options.cpp:39
-msgid "Backend"
-msgstr "Format wyjściowy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:582
+msgid "When the original is deleted, its clones:"
+msgstr "Podczas usuwania oryginału jego klony:"
 
-#: ../src/ui/widget/rendering-options.cpp:40
-msgid "Vector"
-msgstr "Wektorowy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:584
+msgid "Orphaned clones are converted to regular objects."
+msgstr "Osierocone klony zostaną zamienione na zwykłe obiekty"
 
-#: ../src/ui/widget/rendering-options.cpp:41
-msgid "Bitmap"
-msgstr "Bitmapowy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:586
+msgid "Orphaned clones are deleted along with their original."
+msgstr "Osierocone obiekty zostaną usunięte razem z oryginałem"
 
-#: ../src/ui/widget/rendering-options.cpp:42
-msgid "Bitmap options"
-msgstr "Opcje bitmapy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:588
+msgid "When duplicating original+clones:"
+msgstr "Podczas powielania oryginału i klonu:"
 
-#: ../src/ui/widget/rendering-options.cpp:44
-msgid "Preferred resolution of rendering, in dots per inch."
-msgstr "Preferowana rozdzielczość renderowania (w dpi)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:590
+msgid "Relink duplicated clones"
+msgstr "Skojarz powielone klony"
 
-#: ../src/ui/widget/rendering-options.cpp:52
-msgid ""
-"Render using Cairo vector operations.  The resulting image is usually "
-"smaller in file size and can be arbitrarily scaled, but some filter effects "
-"will not be correctly rendered."
-msgstr ""
-"Renderuj stosując wektorowe operacje Cairo. Plik wynikowy jest zwykle "
-"mniejszy i można skalować zapisany w nim rysunek, ale niektóre efekty "
-"filtrów nie będą prawidłowo przetworzone."
+#: ../src/ui/dialog/inkscape-preferences.cpp:592
+msgid "When duplicating a selection containing both a clone and its original (possibly in groups), relink the duplicated clone to the duplicated original instead of the old original"
+msgstr "Podczas powielania zaznaczenia zawierającego oryginał i klon (taka sytacja może zdarzyć się w grupach) kojarzy powielony klon z powielonym oryginałem zamiast z pierwszym oryginałem"
 
-#: ../src/ui/widget/rendering-options.cpp:57
-msgid ""
-"Render everything as bitmap.  The resulting image is usually larger in file "
-"size and cannot be arbitrarily scaled without quality loss, but all objects "
-"will be rendered exactly as displayed."
-msgstr ""
-"Renderuj wszystko jako bitmapę. Plik wynikowy jest zwykle większy i nie "
-"można  skalować zapisanego w nim rysunku bez utraty jakości, ale wszystkie "
-"obiekty zostaną zobrazowane dokładnie tak jak są wyświetlane na ekranie."
+#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page
+#: ../src/ui/dialog/inkscape-preferences.cpp:595
+msgid "Clones"
+msgstr "Klony"
 
-#: ../src/ui/widget/selected-style.cpp:106
-#: ../src/ui/widget/style-swatch.cpp:110
-msgid "Fill:"
-msgstr "Wypełnienie:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:600
+msgid "When applying, use the topmost selected object as clippath/mask"
+msgstr "Używaj ostatnio zaznaczonego obiektu jako ścieżki przycinania/maskowania"
 
-#: ../src/ui/widget/selected-style.cpp:107
-#: ../src/ui/widget/style-swatch.cpp:111
-msgid "Stroke:"
-msgstr "Kontur:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:602
+msgid "Uncheck this to use the bottom selected object as the clipping path or mask"
+msgstr "Aby używać obiektu zaznaczonego pod spodem jako ścieżki przycinania lub maskowania należy tę opcję odznaczyć"
 
-#: ../src/ui/widget/selected-style.cpp:108
-msgid "O:"
-msgstr "N:"
+#: ../src/ui/dialog/inkscape-preferences.cpp:603
+msgid "Remove clippath/mask object after applying"
+msgstr "Usuwaj ścieżkę przycinania lub maskowania po wykonaniu operacji"
 
-#: ../src/ui/widget/selected-style.cpp:150
-msgid "N/A"
-msgstr "N/D"
+#: ../src/ui/dialog/inkscape-preferences.cpp:605
+msgid "After applying, remove the object used as the clipping path or mask from the drawing"
+msgstr "Po wykonaniu operacji, użyty jako ścieżka przycinania lub maskowania obiekt zostanie usunięty z rysunku"
 
-#: ../src/ui/widget/selected-style.cpp:153
-#: ../src/ui/widget/selected-style.cpp:1024
-#: ../src/ui/widget/selected-style.cpp:1025
-msgid "Nothing selected"
-msgstr "Nie zaznaczono żadnego obiektu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:606
+msgid "Clippaths and masks"
+msgstr "Ścieżki przycinania i maski"
 
-#: ../src/ui/widget/selected-style.cpp:155
-#: ../src/ui/widget/style-swatch.cpp:328
-msgid "<i>None</i>"
-msgstr "<i>Brak</i>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:611
+#: ../src/widgets/select-toolbar.cpp:531
+msgid "Scale stroke width"
+msgstr "Skaluj szerokość konturu"
 
-#: ../src/ui/widget/selected-style.cpp:158
-#: ../src/ui/widget/style-swatch.cpp:330
-msgid "No fill"
-msgstr "Brak wypełnienia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:612
+msgid "Scale rounded corners in rectangles"
+msgstr "Skaluj zaokrąglenia narożników prostokątów"
 
-#: ../src/ui/widget/selected-style.cpp:158
-#: ../src/ui/widget/style-swatch.cpp:330
-msgid "No stroke"
-msgstr "Brak konturu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:613
+msgid "Transform gradients"
+msgstr "Przekształcaj gradienty"
 
-#: ../src/ui/widget/selected-style.cpp:160
-#: ../src/ui/widget/style-swatch.cpp:309 ../src/widgets/paint-selector.cpp:189
-msgid "Pattern"
-msgstr "Deseń"
+#: ../src/ui/dialog/inkscape-preferences.cpp:614
+msgid "Transform patterns"
+msgstr "Przekształcaj desenie"
 
-#: ../src/ui/widget/selected-style.cpp:163
-#: ../src/ui/widget/style-swatch.cpp:311 ../src/widgets/paint-selector.cpp:997
-msgid "Pattern fill"
-msgstr "Wypełnienie desenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:615
+msgid "Optimized"
+msgstr "Zoptymalizowany"
 
-#: ../src/ui/widget/selected-style.cpp:163
-#: ../src/ui/widget/style-swatch.cpp:311
-msgid "Pattern stroke"
-msgstr "Kontur desenia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:616
+msgid "Preserved"
+msgstr "Zawsze zapisywane"
 
-#: ../src/ui/widget/selected-style.cpp:165
-msgid "<b>L</b>"
-msgstr "<b>L</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:619
+#: ../src/widgets/select-toolbar.cpp:532
+msgid "When scaling objects, scale the stroke width by the same proportion"
+msgstr "Podczas skalowania obiektów szerokość konturu zmienia się proporcjonalnie"
 
-#: ../src/ui/widget/selected-style.cpp:168
-#: ../src/ui/widget/style-swatch.cpp:303
-msgid "Linear gradient fill"
-msgstr "Wypełnienie gradientem liniowym"
+#: ../src/ui/dialog/inkscape-preferences.cpp:621
+#: ../src/widgets/select-toolbar.cpp:543
+msgid "When scaling rectangles, scale the radii of rounded corners"
+msgstr "Podczas skalowania prostokątów następuje również skalowanie promienia zaokrąglenia narożników"
 
-#: ../src/ui/widget/selected-style.cpp:168
-#: ../src/ui/widget/style-swatch.cpp:303
-msgid "Linear gradient stroke"
-msgstr "Kontur z gradientem liniowym"
+#: ../src/ui/dialog/inkscape-preferences.cpp:623
+#: ../src/widgets/select-toolbar.cpp:554
+msgid "Move gradients (in fill or stroke) along with the objects"
+msgstr "Przekształcanie gradientu (w wypełnieniu lub konturze) następuje wraz z przekształcaniem obiektów"
 
-#: ../src/ui/widget/selected-style.cpp:175
-msgid "<b>R</b>"
-msgstr "<b>R</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:625
+#: ../src/widgets/select-toolbar.cpp:565
+msgid "Move patterns (in fill or stroke) along with the objects"
+msgstr "Przekształcanie deseni (w wypełnieniu i konturze) następuje wraz z przekształcaniem obiektów"
 
-#: ../src/ui/widget/selected-style.cpp:178
-#: ../src/ui/widget/style-swatch.cpp:307
-msgid "Radial gradient fill"
-msgstr "Wypełnienie gradientem radialnym"
+#: ../src/ui/dialog/inkscape-preferences.cpp:626
+msgid "Store transformation:"
+msgstr "Sposób zapisu przekształcenia:"
 
-#: ../src/ui/widget/selected-style.cpp:178
-#: ../src/ui/widget/style-swatch.cpp:307
-msgid "Radial gradient stroke"
-msgstr "Kontur z gradientem radialnym"
+#: ../src/ui/dialog/inkscape-preferences.cpp:628
+msgid "If possible, apply transformation to objects without adding a transform= attribute"
+msgstr "Gdy tylko możliwe, przekształcenie na obiektach jest wykonywane bez dodawania atrybutu transform="
 
-#: ../src/ui/widget/selected-style.cpp:185
-msgid "Different"
-msgstr "Różne"
+#: ../src/ui/dialog/inkscape-preferences.cpp:630
+msgid "Always store transformation as a transform= attribute on objects"
+msgstr "Zawsze zapisuje przekształcenie na obiektach jako atrybut transform="
 
-#: ../src/ui/widget/selected-style.cpp:188
-msgid "Different fills"
-msgstr "Różne wypełnienia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:632
+msgid "Transforms"
+msgstr "Przekształcenia"
 
-#: ../src/ui/widget/selected-style.cpp:188
-msgid "Different strokes"
-msgstr "Różne kontury"
+#: ../src/ui/dialog/inkscape-preferences.cpp:637
+msgid "Best quality (slowest)"
+msgstr "Najlepsza (najwolniej)"
 
-#: ../src/ui/widget/selected-style.cpp:190
-#: ../src/ui/widget/style-swatch.cpp:333
-msgid "<b>Unset</b>"
-msgstr "<b>Nie ustawiono</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:639
+msgid "Better quality (slower)"
+msgstr "Dobra (wolno)"
 
-#: ../src/ui/widget/selected-style.cpp:196
-msgid "Flat color fill"
-msgstr "Jednolity kolor wypełnienia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:641
+msgid "Average quality"
+msgstr "Średnia"
 
-#: ../src/ui/widget/selected-style.cpp:196
-msgid "Flat color stroke"
-msgstr "Jednolity kolor konturu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:643
+msgid "Lower quality (faster)"
+msgstr "Niższa (szybciej)"
 
-#. TRANSLATOR COMMENT: A means "Averaged"
-#: ../src/ui/widget/selected-style.cpp:199
-msgid "<b>a</b>"
-msgstr "<b>u</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:645
+msgid "Lowest quality (fastest)"
+msgstr "Najniższa (najszybciej)"
 
-#: ../src/ui/widget/selected-style.cpp:202
-msgid "Fill is averaged over selected objects"
-msgstr "Uśredniony styl wypełnienia z zaznaczonych obiektów"
+#: ../src/ui/dialog/inkscape-preferences.cpp:648
+msgid "Gaussian blur quality for display:"
+msgstr "Jakość rozmycia gaussowskiego:"
 
-#: ../src/ui/widget/selected-style.cpp:202
-msgid "Stroke is averaged over selected objects"
-msgstr "Uśredniony styl konturu z zaznaczonych obiektów"
+#: ../src/ui/dialog/inkscape-preferences.cpp:650
+msgid "Best quality, but display may be very slow at high zooms (bitmap export always uses best quality)"
+msgstr "Najlepsza jakość, ale wyświetlanie może być bardzo wolne przy dużych przybliżeniach (eksport bitmap używa zawsze najlepszej jakości)"
 
-#. TRANSLATOR COMMENT: M means "Multiple"
-#: ../src/ui/widget/selected-style.cpp:205
-msgid "<b>m</b>"
-msgstr "<b>w</b>"
+#: ../src/ui/dialog/inkscape-preferences.cpp:652
+msgid "Better quality, but slower display"
+msgstr "Dobra jakość, ale wolniejsze wyświetlanie"
 
-#: ../src/ui/widget/selected-style.cpp:208
-msgid "Multiple selected objects have the same fill"
-msgstr "Wszystkie zaznaczone obiekty mają ten sam styl wypełnienia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:654
+msgid "Average quality, acceptable display speed"
+msgstr "Średnia jakość - akceptowalna szybkość wyświetlania"
 
-#: ../src/ui/widget/selected-style.cpp:208
-msgid "Multiple selected objects have the same stroke"
-msgstr "Wszystkie zaznaczone obiekty mają ten sam styl konturu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:656
+msgid "Lower quality (some artifacts), but display is faster"
+msgstr "Niska jakość - niewielkie błędy w obrazku, ale szybsze wyświetlanie"
 
-#: ../src/ui/widget/selected-style.cpp:210
-msgid "Edit fill..."
-msgstr "Edytuj wypełnienie..."
+#: ../src/ui/dialog/inkscape-preferences.cpp:658
+msgid "Lowest quality (considerable artifacts), but display is fastest"
+msgstr "Najniższa jakość - spore błędy w obrazku, ale najszybsze wyświetlanie"
 
-#: ../src/ui/widget/selected-style.cpp:210
-msgid "Edit stroke..."
-msgstr "Edytuj kontur..."
+#: ../src/ui/dialog/inkscape-preferences.cpp:660
+msgid "Show filter primitives infobox"
+msgstr "Wyświetlaj panel informacyjny efektów specjalnych"
 
-#: ../src/ui/widget/selected-style.cpp:214
-msgid "Last set color"
-msgstr "Ostatnio ustawiony kolor"
+#: ../src/ui/dialog/inkscape-preferences.cpp:662
+msgid "Show icons and descriptions for the filter primitives available at the filter effects dialog."
+msgstr "W oknie dialogowym efektów specjalnych wyświetla panel informacyjny zawierający ikony i opisy dostępnych efektów"
 
-#: ../src/ui/widget/selected-style.cpp:218
-msgid "Last selected color"
-msgstr "Ostatnio zaznaczony kolor"
+#: ../src/ui/dialog/inkscape-preferences.cpp:664
+msgid "Filters"
+msgstr "Filtry"
 
-#: ../src/ui/widget/selected-style.cpp:222
-msgid "Invert"
-msgstr "Negatyw"
+#: ../src/ui/dialog/inkscape-preferences.cpp:670
+msgid "Select in all layers"
+msgstr "Zaznaczaj na wszystkich warstwach"
 
-#: ../src/ui/widget/selected-style.cpp:226
-msgid "White"
-msgstr "Biały"
+#: ../src/ui/dialog/inkscape-preferences.cpp:671
+msgid "Select only within current layer"
+msgstr "Zaznaczaj jedynie w obrębie aktywnej warstwy"
 
-#: ../src/ui/widget/selected-style.cpp:230
-#: ../src/widgets/sp-color-icc-selector.cpp:237
-#: ../src/widgets/sp-color-scales.cpp:461
-#: ../src/widgets/sp-color-scales.cpp:462
-msgid "Black"
-msgstr "Czarny"
+#: ../src/ui/dialog/inkscape-preferences.cpp:672
+msgid "Select in current layer and sublayers"
+msgstr "Zaznaczaj na aktywnej i na podrzędnych warstwach "
 
-#: ../src/ui/widget/selected-style.cpp:234
-msgid "Copy color"
-msgstr "Kopiuj kolor"
+#: ../src/ui/dialog/inkscape-preferences.cpp:673
+msgid "Ignore hidden objects and layers"
+msgstr "Pomijaj ukryte obiekty i warstwy"
 
-#: ../src/ui/widget/selected-style.cpp:238
-msgid "Paste color"
-msgstr "Wklej kolor"
+#: ../src/ui/dialog/inkscape-preferences.cpp:674
+msgid "Ignore locked objects and layers"
+msgstr "Pomijaj zablokowane obiekty i warstwy"
 
-#: ../src/ui/widget/selected-style.cpp:242
-#: ../src/ui/widget/selected-style.cpp:780
-msgid "Swap fill and stroke"
-msgstr "Zamień styl wypełnienia i konturu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:675
+msgid "Deselect upon layer change"
+msgstr "Usuwaj zaznaczenie obiektów przy zmianie warstwy"
 
-#: ../src/ui/widget/selected-style.cpp:246
-#: ../src/ui/widget/selected-style.cpp:522
-#: ../src/ui/widget/selected-style.cpp:531
-msgid "Make fill opaque"
-msgstr "Wyzeruj przezroczystość wypełnienia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:677
+msgid "Ctrl+A, Tab, Shift+Tab:"
+msgstr "Działanie skrótów [Ctrl + A]  [Tab]  [Shift + Tab]:"
 
-#: ../src/ui/widget/selected-style.cpp:246
-msgid "Make stroke opaque"
-msgstr "Wyzeruj przezroczystość konturu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:679
+msgid "Make keyboard selection commands work on objects in all layers"
+msgstr "Zaznacza obiekty na wszystkich warstwach"
 
-#: ../src/ui/widget/selected-style.cpp:308
-msgid "Remove"
-msgstr "Usuń"
+#: ../src/ui/dialog/inkscape-preferences.cpp:681
+msgid "Make keyboard selection commands work on objects in current layer only"
+msgstr "Zaznacza obiekty tylko na aktywnej warstwie"
 
-#: ../src/ui/widget/selected-style.cpp:543
-msgid "Apply last set color to fill"
-msgstr "Zastosuj dla wypełnienia ostatnio ustawiony kolor"
+#: ../src/ui/dialog/inkscape-preferences.cpp:683
+msgid "Make keyboard selection commands work on objects in current layer and all its sublayers"
+msgstr "Zaznacza obiekty na aktywnej warstwie i wszystkich jej podrzędnych warstwach"
 
-#: ../src/ui/widget/selected-style.cpp:555
-msgid "Apply last set color to stroke"
-msgstr "Zastosuj dla konturu ostatnio ustawiony kolor"
+#: ../src/ui/dialog/inkscape-preferences.cpp:685
+msgid "Uncheck this to be able to select objects that are hidden (either by themselves or by being in a hidden layer)"
+msgstr "Jeśli ta opcja będzie nieaktywna, będzie można zaznaczać ukryte obiekty, zarówno te ustawione jako ukryte, jak i znajdujące się w ukrytej grupie lub warstwie"
 
-#: ../src/ui/widget/selected-style.cpp:566
-msgid "Apply last selected color to fill"
-msgstr "Zastosuj dla wypełnienia ostatnio wybrany kolor"
+#: ../src/ui/dialog/inkscape-preferences.cpp:687
+msgid "Uncheck this to be able to select objects that are locked (either by themselves or by being in a locked layer)"
+msgstr "Jeśli ta opcja będzie nieaktywna, będzie można zaznaczać zablokowane obiekty, zarówno te ustawione jako zablokowane, jak i znajdujące się w zablokowanej grupie lub warstwie"
 
-#: ../src/ui/widget/selected-style.cpp:577
-msgid "Apply last selected color to stroke"
-msgstr "Zastosuj dla konturu ostatnio wybrany kolor"
+#: ../src/ui/dialog/inkscape-preferences.cpp:690
+msgid "Uncheck this to be able to keep the current objects selected when the current layer changes"
+msgstr "Jeśli ta opcja będzie nieaktywna, będzie można zachować aktualnie zaznaczone obiekty przy zmianie aktywnej warstwy"
 
-#: ../src/ui/widget/selected-style.cpp:597
-msgid "Invert fill"
-msgstr "Negatyw wypełnienia"
+#: ../src/ui/dialog/inkscape-preferences.cpp:692
+msgid "Selecting"
+msgstr "Zaznaczanie"
 
-#: ../src/ui/widget/selected-style.cpp:617
-msgid "Invert stroke"
-msgstr "Negatyw konturu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:699
+msgid "Default export resolution:"
+msgstr "Domyślna rozdzielczość eksportu:"
 
-#: ../src/ui/widget/selected-style.cpp:629
-msgid "White fill"
-msgstr "Białe wypełnienie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:700
+msgid "Default bitmap resolution (in dots per inch) in the Export dialog"
+msgstr "Domyślna rozdzielczość bitmapy (w dpi) wyświetlana w oknie dialogowym eksportu"
 
-#: ../src/ui/widget/selected-style.cpp:641
-msgid "White stroke"
-msgstr "Biały kontur"
+#: ../src/ui/dialog/inkscape-preferences.cpp:702
+msgid "Open Clip Art Library Server Name:"
+msgstr "Nazwa serwera klipartów:"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:703
+msgid "The server name of the Open Clip Art Library webdav server. It's used by the Import and Export to OCAL function."
+msgstr "Nazwa serwera Open Clip Art Library. Jest ona używana przez funkcję importu i eksportu na serwer Open Clip Art Library. "
 
-#: ../src/ui/widget/selected-style.cpp:653
-msgid "Black fill"
-msgstr "Czarne wypełnienie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:705
+msgid "Open Clip Art Library Username:"
+msgstr "Nazwa użytkownika:"
 
-#: ../src/ui/widget/selected-style.cpp:665
-msgid "Black stroke"
-msgstr "Czarny kontur"
+#: ../src/ui/dialog/inkscape-preferences.cpp:706
+msgid "The username used to log into Open Clip Art Library."
+msgstr "Nazwa użytkownika używana do logowania do Open Clip Art Library"
 
-#: ../src/ui/widget/selected-style.cpp:708
-msgid "Paste fill"
-msgstr "Wklej wypełnienie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:708
+msgid "Open Clip Art Library Password:"
+msgstr "Hasło:"
 
-#: ../src/ui/widget/selected-style.cpp:726
-msgid "Paste stroke"
-msgstr "Wklej kontur"
+#: ../src/ui/dialog/inkscape-preferences.cpp:709
+msgid "The password used to log into Open Clip Art Library."
+msgstr "Hasło używane do logowania do Open Clip Art Library"
 
-#: ../src/ui/widget/selected-style.cpp:890
-msgid "Change stroke width"
-msgstr "Skalowanie szerokości konturu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:711
+msgid "Import/Export"
+msgstr "Import/Eksport"
 
-#: ../src/ui/widget/selected-style.cpp:985
-msgid ", drag to adjust"
-msgstr ", wykonaj ciągnięcie, aby dostroić"
+#: ../src/ui/dialog/inkscape-preferences.cpp:761
+msgid "Absolute Colorimetric"
+msgstr "Kolorymetryczny bezwzględny"
 
-#: ../src/ui/widget/selected-style.cpp:1066
-#, c-format
-msgid "Stroke width: %.5g%s%s"
-msgstr "Szerokość konturu: %.5g%s%s"
+#. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm
+#: ../src/ui/dialog/inkscape-preferences.cpp:761
+msgid "Perceptual"
+msgstr "Percepcyjny"
 
-#: ../src/ui/widget/selected-style.cpp:1070
-msgid " (averaged)"
-msgstr " (uśredniona)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:761
+msgid "Relative Colorimetric"
+msgstr "Kolorymetryczny względny"
 
-#: ../src/ui/widget/selected-style.cpp:1098
-msgid "0 (transparent)"
-msgstr "0 (przezroczysty)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:765
+msgid "(Note: Color management has been disabled in this build)"
+msgstr "(Uwaga: W tej wersji programu zarządzanie kolorem zostało wyłączone)"
 
-#: ../src/ui/widget/selected-style.cpp:1122
-msgid "100% (opaque)"
-msgstr "100% (nieprzezroczysty)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:769
+msgid "Display adjustment"
+msgstr "Dostrajanie monitora"
 
-#: ../src/ui/widget/selected-style.cpp:1271
-msgid "Adjust saturation"
-msgstr "Dostosuj nasycenie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:771
+msgid "Display profile:"
+msgstr "Profil monitora:"
 
-#: ../src/ui/widget/selected-style.cpp:1273
-#, c-format
-msgid ""
-"Adjusting <b>saturation</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with "
-"<b>Ctrl</b> to adjust lightness, without modifiers to adjust hue"
-msgstr ""
-"Dostosowywanie <b>nasycenia</b>: było %.3g, jest <b>%.3g</b> (różnica %.3g); "
-"z <b>Ctrl</b> dostrajanie jasności, bez modyfikatorów dostrajanie barwy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:772
+msgid "The ICC profile to use to calibrate display output."
+msgstr "Profil ICC używany do kalibracji monitora"
 
-#: ../src/ui/widget/selected-style.cpp:1277
-msgid "Adjust lightness"
-msgstr "Dostosuj jasność"
+#: ../src/ui/dialog/inkscape-preferences.cpp:774
+msgid "Retrieve profile from display"
+msgstr "Pobierz profil z monitora"
 
-#: ../src/ui/widget/selected-style.cpp:1279
-#, c-format
-msgid ""
-"Adjusting <b>lightness</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with "
-"<b>Shift</b> to adjust saturation, without modifiers to adjust hue"
-msgstr ""
-"Dostosowywanie <b>jasności</b>: było %.3g, jest <b>%.3g</b> (różnica %.3g); "
-"z <b>Shift</b> dostrajanie nasycenia, bez modyfikatorów dostrajanie barwy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:777
+msgid "Retrieve profiles from those attached to displays via XICC."
+msgstr "Pobierz poprzez XICC istniejące profile monitora"
 
-#: ../src/ui/widget/selected-style.cpp:1283
-msgid "Adjust hue"
-msgstr "Dostosuj barwę"
+#: ../src/ui/dialog/inkscape-preferences.cpp:779
+msgid "Retrieve profiles from those attached to displays."
+msgstr "Będą pobierane istniejące profile monitora"
 
-#: ../src/ui/widget/selected-style.cpp:1285
-#, c-format
-msgid ""
-"Adjusting <b>hue</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</"
-"b> to adjust saturation, with <b>Ctrl</b> to adjust lightness"
-msgstr ""
-"Dostosowywanie <b>barwy</b>: było %.3g, jest <b>%.3g</b> (różnica %.3g); z "
-"<b>Shift</b> dostrajanie nasycenia, z <b>Ctrl</b> dostrajanie jasności"
+#: ../src/ui/dialog/inkscape-preferences.cpp:784
+msgid "Display rendering intent:"
+msgstr "Sposób renderowania monitora:"
 
-#: ../src/ui/widget/selected-style.cpp:1391
-#: ../src/ui/widget/selected-style.cpp:1405
-msgid "Adjust stroke width"
-msgstr "Ustaw szerokość konturu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:785
+#: ../src/ui/dialog/inkscape-preferences.cpp:808
+msgid "The rendering intent to use to calibrate display output."
+msgstr "Sposób renderowania używany do kalibracji wyjścia monitora"
 
-#: ../src/ui/widget/selected-style.cpp:1392
-#, c-format
-msgid "Adjusting <b>stroke width</b>: was %.3g, now <b>%.3g</b> (diff %.3g)"
-msgstr ""
+#: ../src/ui/dialog/inkscape-preferences.cpp:787
+msgid "Proofing"
+msgstr "Sprawdzanie"
 
-#. TRANSLATORS: Only translate the word "Link" - means to _link_ two sliders together
-#: ../src/ui/widget/spin-slider.cpp:118
-msgid "sliders|Link"
-msgstr "Odnośnik"
+#: ../src/ui/dialog/inkscape-preferences.cpp:789
+msgid "Simulate output on screen"
+msgstr "Symuluj wyjście na ekranie"
 
-#: ../src/ui/widget/style-swatch.cpp:301
-msgid "L Gradient"
-msgstr "Gradient L"
+#: ../src/ui/dialog/inkscape-preferences.cpp:791
+msgid "Simulates output of target device."
+msgstr "Wyjście urządzenia docelowego będzie symulowane na ekranie"
 
-#: ../src/ui/widget/style-swatch.cpp:305
-msgid "R Gradient"
-msgstr "Gradient R"
+#: ../src/ui/dialog/inkscape-preferences.cpp:793
+msgid "Mark out of gamut colors"
+msgstr "Oznacz kolory będące poza gamą kolorów"
 
-#: ../src/ui/widget/style-swatch.cpp:321
-#, c-format
-msgid "Fill: %06x/%.3g"
-msgstr "Wypełnienie: %06x/%.3g"
+#: ../src/ui/dialog/inkscape-preferences.cpp:795
+msgid "Highlights colors that are out of gamut for the target device."
+msgstr "Będą podświetlane kolory znajdujące się poza gamą kolorów urządzenia docelowego"
 
-#: ../src/ui/widget/style-swatch.cpp:323
-#, c-format
-msgid "Stroke: %06x/%.3g"
-msgstr "Kontur: %06x/%.3g"
+#: ../src/ui/dialog/inkscape-preferences.cpp:800
+msgid "Out of gamut warning color:"
+msgstr "Kolor ostrzeżeń:"
 
-#: ../src/ui/widget/style-swatch.cpp:355
-#, c-format
-msgid "Stroke width: %.5g%s"
-msgstr "Szerokość konturu: %.5g%s"
+#: ../src/ui/dialog/inkscape-preferences.cpp:801
+msgid "Selects the color used for out of gamut warning."
+msgstr "Określ kolor używany do ostrzeżeń o kolorach znajdujących się poza gamą kolorów"
 
-#: ../src/ui/widget/style-swatch.cpp:371
-#, c-format
-msgid "O:%.3g"
-msgstr "N:%.3g"
+#: ../src/ui/dialog/inkscape-preferences.cpp:803
+msgid "Device profile:"
+msgstr "Profil urządzenia:"
 
-#: ../src/ui/widget/style-swatch.cpp:373
-#, c-format
-msgid "O:.%d"
-msgstr "N:.%d"
+#: ../src/ui/dialog/inkscape-preferences.cpp:804
+msgid "The ICC profile to use to simulate device output."
+msgstr "Profil ICC używany do symulacji urządzenia wyjściowego"
 
-#: ../src/ui/widget/style-swatch.cpp:378
-#, c-format
-msgid "Opacity: %.3g"
-msgstr "Krycie: %.3g"
+#: ../src/ui/dialog/inkscape-preferences.cpp:807
+msgid "Device rendering intent:"
+msgstr "Sposób renderowania:"
 
-#: ../src/vanishing-point.cpp:124
-msgid "Split vanishing points"
-msgstr "Rozdziel punkty zbiegu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:810
+msgid "Black point compensation"
+msgstr "Kompensuj punktu czerni"
 
-#: ../src/vanishing-point.cpp:169
-msgid "Merge vanishing points"
-msgstr "Połącz punkty zbiegu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:812
+msgid "Enables black point compensation."
+msgstr "Aktywowanie kompensacji punktu czerni"
 
-#: ../src/vanishing-point.cpp:225
-msgid "3D box: Move vanishing point"
-msgstr "Obiekt 3D: Przesuń punkty zbiegu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:814
+msgid "Preserve black"
+msgstr "Zachowaj kanał K"
 
-#: ../src/vanishing-point.cpp:306
-#, c-format
-msgid "<b>Finite</b> vanishing point shared by <b>%d</b> box"
-msgid_plural ""
-"<b>Finite</b> vanishing point shared by <b>%d</b> boxes; drag with <b>Shift</"
-"b> to separate selected box(es)"
-msgstr[0] "<b>Skończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem "
-msgstr[1] ""
-"<b>Skończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem. Wykonaj "
-"ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
-msgstr[2] ""
-"<b>Skończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem. Wykonaj "
-"ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
+#: ../src/ui/dialog/inkscape-preferences.cpp:819
+msgid "(LittleCMS 1.15 or later required)"
+msgstr "(Jest wymagany program LittleCMS 1.15 lub nowszy)"
 
-#. 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:313
-#, c-format
-msgid "<b>Infinite</b> vanishing point shared by <b>%d</b> box"
-msgid_plural ""
-"<b>Infinite</b> vanishing point shared by <b>%d</b> boxes; drag with "
-"<b>Shift</b> to separate selected box(es)"
-msgstr[0] ""
-"<b>Nieskończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem "
-msgstr[1] ""
-"<b>Nieskończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem. Wykonaj "
-"ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
-msgstr[2] ""
-"<b>Nieskończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem. Wykonaj "
-"ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
+#: ../src/ui/dialog/inkscape-preferences.cpp:821
+msgid "Preserve K channel in CMYK -> CMYK transforms"
+msgstr "Zachowywanie kanału K (czarnego) podczas transformacji CMYK -> CMYK"
 
-#: ../src/vanishing-point.cpp:321
-#, c-format
-msgid ""
-"shared by <b>%d</b> box; drag with <b>Shift</b> to separate selected box(es)"
-msgid_plural ""
-"shared by <b>%d</b> boxes; drag with <b>Shift</b> to separate selected box"
-"(es)"
-msgstr[0] ""
-"współdzielony z <b>%d</b> obiektem. Wykonaj ciągnięcie z <b>Shift</b>, aby "
-"rozdzielić zaznaczone obiekty."
-msgstr[1] ""
-"współdzielony z <b>%d</b> obiektami. Wykonaj ciągnięcie z <b>Shift</b>, aby "
-"rozdzielić zaznaczone obiekty."
-msgstr[2] ""
-"współdzielony z <b>%d</b> obiektami. Wykonaj ciągnięcie z <b>Shift</b>, aby "
-"rozdzielić zaznaczone obiekty."
-
-#: ../src/verbs.cpp:1134
-msgid "Switch to next layer"
-msgstr "Przenieś do następnej warstwy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:834
+msgid "<none>"
+msgstr "<brak>"
 
-#: ../src/verbs.cpp:1135
-msgid "Switched to next layer."
-msgstr "Przeniesiono do następnej warstwy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:879
+msgid "Color management"
+msgstr "Zarządzanie kolorem"
 
-#: ../src/verbs.cpp:1137
-msgid "Cannot go past last layer."
-msgstr "Nie można przenieść poza ostatnią warstwę"
+#: ../src/ui/dialog/inkscape-preferences.cpp:884
+msgid "Major grid line emphasizing"
+msgstr "Wyróżniane głównej linii siatki"
 
-#: ../src/verbs.cpp:1146
-msgid "Switch to previous layer"
-msgstr "Przenieś do poprzedniej warstwy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:886
+msgid "Don't emphasize gridlines when zoomed out"
+msgstr "Nie uwydatniaj siatki podczas pomniejszania"
 
-#: ../src/verbs.cpp:1147
-msgid "Switched to previous layer."
-msgstr "Przeniesiono do poprzedniej warstwy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:887
+msgid "If set and zoomed out, the gridlines will be shown in normal color instead of major grid line color."
+msgstr "Podczas pomniejszania linie siatki będą wyświetlane w normalnym kolorze zamiast w kolorze linii głównej siatki"
 
-#: ../src/verbs.cpp:1149
-msgid "Cannot go before first layer."
-msgstr "Nie można przenieść przed pierwszą warstwę"
+#: ../src/ui/dialog/inkscape-preferences.cpp:889
+msgid "Default grid settings"
+msgstr "Domyślne ustawienia siatki"
 
-#: ../src/verbs.cpp:1166 ../src/verbs.cpp:1250
-msgid "No current layer."
-msgstr "Brak aktywnej warstwy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:895
+#: ../src/ui/dialog/inkscape-preferences.cpp:916
+msgid "Grid units:"
+msgstr "Jednostki siatki:"
 
-#: ../src/verbs.cpp:1195 ../src/verbs.cpp:1199
-#, c-format
-msgid "Raised layer <b>%s</b>."
-msgstr "Warstwa <b>%s</b> została przeniesiona wyżej"
+#: ../src/ui/dialog/inkscape-preferences.cpp:898
+#: ../src/ui/dialog/inkscape-preferences.cpp:919
+msgid "Origin X:"
+msgstr "Początek X:"
 
-#: ../src/verbs.cpp:1196
-msgid "Layer to top"
-msgstr "Przenieś warstwę na wierzch"
+#: ../src/ui/dialog/inkscape-preferences.cpp:899
+#: ../src/ui/dialog/inkscape-preferences.cpp:920
+msgid "Origin Y:"
+msgstr "Początek Y:"
 
-#: ../src/verbs.cpp:1200
-msgid "Raise layer"
-msgstr "Przesuń warstwę wyżej"
+#: ../src/ui/dialog/inkscape-preferences.cpp:902
+msgid "Spacing X:"
+msgstr "Odstępy X:"
 
-#: ../src/verbs.cpp:1203 ../src/verbs.cpp:1207
-#, c-format
-msgid "Lowered layer <b>%s</b>."
-msgstr "Warstwa <b>%s</b> przeniesiona niżej"
+#: ../src/ui/dialog/inkscape-preferences.cpp:903
+#: ../src/ui/dialog/inkscape-preferences.cpp:922
+msgid "Spacing Y:"
+msgstr "Odstępy Y:"
 
-#: ../src/verbs.cpp:1204
-msgid "Layer to bottom"
-msgstr "Przenieś warstwę na spód"
+#: ../src/ui/dialog/inkscape-preferences.cpp:905
+#: ../src/ui/dialog/inkscape-preferences.cpp:906
+#: ../src/ui/dialog/inkscape-preferences.cpp:927
+#: ../src/ui/dialog/inkscape-preferences.cpp:928
+msgid "Grid line color:"
+msgstr "Kolor linii siatki:"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:906
+#: ../src/ui/dialog/inkscape-preferences.cpp:928
+msgid "Color used for normal grid lines"
+msgstr "Kolor normalnych linii siatki"
 
-#: ../src/verbs.cpp:1208
-msgid "Lower layer"
-msgstr "Przesuń warstwę niżej"
+#: ../src/ui/dialog/inkscape-preferences.cpp:907
+#: ../src/ui/dialog/inkscape-preferences.cpp:908
+#: ../src/ui/dialog/inkscape-preferences.cpp:929
+#: ../src/ui/dialog/inkscape-preferences.cpp:930
+msgid "Major grid line color:"
+msgstr "Kolor linii głównych:"
 
-#: ../src/verbs.cpp:1217
-msgid "Cannot move layer any further."
-msgstr "Nie można przenieść warstwy dalej"
+#: ../src/ui/dialog/inkscape-preferences.cpp:908
+#: ../src/ui/dialog/inkscape-preferences.cpp:930
+msgid "Color used for major (highlighted) grid lines"
+msgstr "Kolor głównych (podświetlonych) linii siatki"
 
-#: ../src/verbs.cpp:1245
-msgid "Delete layer"
-msgstr "Usuń warstwę"
+#: ../src/ui/dialog/inkscape-preferences.cpp:910
+#: ../src/ui/dialog/inkscape-preferences.cpp:932
+msgid "Major grid line every:"
+msgstr "Rozstaw linii głównych:"
 
-#. TRANSLATORS: this means "The layer has been deleted."
-#: ../src/verbs.cpp:1248
-msgid "Deleted layer."
-msgstr "Warstwa została usunięta"
+#: ../src/ui/dialog/inkscape-preferences.cpp:911
+msgid "Show dots instead of lines"
+msgstr "Wyświetlaj kropki zamiast linii"
 
-#: ../src/verbs.cpp:1330
-msgid "Flip horizontally"
-msgstr "Odbij poziomo"
+#: ../src/ui/dialog/inkscape-preferences.cpp:912
+msgid "If set, display dots at gridpoints instead of gridlines"
+msgstr "Siatka będzie wyświetlana za pomocą kropek"
 
-#: ../src/verbs.cpp:1345
-msgid "Flip vertically"
-msgstr "Odbij pionowo"
+#: ../src/ui/dialog/inkscape-preferences.cpp:939
+msgid "Use named colors"
+msgstr "Używaj nazw kolorów"
 
-#. TRANSLATORS: If you have translated the tutorial-basic.svg file to your language,
-#. then translate this string as "tutorial-basic.LANG.svg" (where LANG is your language
-#. code); otherwise leave as "tutorial-basic.svg".
-#: ../src/verbs.cpp:1829
-msgid "tutorial-basic.svg"
-msgstr "tutorial-basic.svg"
+#: ../src/ui/dialog/inkscape-preferences.cpp:940
+msgid "If set, write the CSS name of the color when available (e.g. 'red' or 'magenta') instead of the numeric value"
+msgstr "Zamiast określeń numerycznych będą używane nazwy kolorów np. czerwony, żółty..."
 
-#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1833
-msgid "tutorial-shapes.svg"
-msgstr "tutorial-shapes.svg"
+#: ../src/ui/dialog/inkscape-preferences.cpp:942
+msgid "XML formatting"
+msgstr "Formatowanie XML"
 
-#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1837
-msgid "tutorial-advanced.svg"
-msgstr "tutorial-advanced.svg"
+#: ../src/ui/dialog/inkscape-preferences.cpp:944
+msgid "Inline attributes"
+msgstr "Atrybuty w tym samym wierszu"
 
-#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1841
-msgid "tutorial-tracing.svg"
-msgstr "tutorial-tracing.svg"
+#: ../src/ui/dialog/inkscape-preferences.cpp:945
+msgid "Put attributes on the same line as the element tag"
+msgstr "Wstawia atrybuty w tym samym wierszu co znacznik elementu"
 
-#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1845
-msgid "tutorial-calligraphy.svg"
-msgstr "tutorial-calligraphy.svg"
+#: ../src/ui/dialog/inkscape-preferences.cpp:948
+msgid "Indent, spaces:"
+msgstr "Wcięcie, spacje:"
 
-#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1849
-msgid "tutorial-elements.svg"
-msgstr "tutorial-elements.svg"
+#: ../src/ui/dialog/inkscape-preferences.cpp:948
+msgid "The number of spaces to use for indenting nested elements; set to 0 for no indentation"
+msgstr "Liczba spacji jaka zostanie użyta do wcięcia zagnieżdżonych elementów. Wartość zerowa - brak wcięcia."
 
-#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1853
-msgid "tutorial-tips.svg"
-msgstr "tutorial-tips.svg"
+#: ../src/ui/dialog/inkscape-preferences.cpp:950
+msgid "Path data"
+msgstr "Dane ścieżki"
 
-#: ../src/verbs.cpp:2129 ../src/verbs.cpp:2634
-msgid "Unlock all objects in the current layer"
-msgstr "Odblokowuje wszystkie obiekty na aktywnej warstwie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:952
+msgid "Allow relative coordinates"
+msgstr "Używaj współrzędne biegunowe"
 
-#: ../src/verbs.cpp:2133 ../src/verbs.cpp:2636
-msgid "Unlock all objects in all layers"
-msgstr "Odblokowuje wszystkie obiekty na wszystkich warstwach"
+#: ../src/ui/dialog/inkscape-preferences.cpp:953
+msgid "If set, relative coordinates may be used in path data"
+msgstr "Używanie współrzędnych biegunowych w danych ścieżki "
 
-#: ../src/verbs.cpp:2137 ../src/verbs.cpp:2638
-msgid "Unhide all objects in the current layer"
-msgstr "Wyświetla wszystkie obiekty na aktywnej warstwie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:955
+msgid "Force repeat commands"
+msgstr "Powtarzaj polecenia"
 
-#: ../src/verbs.cpp:2141 ../src/verbs.cpp:2640
-msgid "Unhide all objects in all layers"
-msgstr "Wyświetla wszystkie obiekty na wszystkich warstwach"
+#: ../src/ui/dialog/inkscape-preferences.cpp:956
+msgid "Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead of 'L 1,2 3,4')"
+msgstr "Wymusza powtarzanie poleceń ścieżkowych (np. L 1,2 L 3,4 zamiast L 1,2 3,4)"
 
-#: ../src/verbs.cpp:2156
-msgid "Does nothing"
-msgstr "Nic nie wykonuje"
+#: ../src/ui/dialog/inkscape-preferences.cpp:958
+msgid "Numbers"
+msgstr "Liczby"
 
-#: ../src/verbs.cpp:2159
-msgid "Create new document from the default template"
-msgstr "Utwórz nowy dokument na bazie domyślnego szablonu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:961
+msgid "How many digits to write after the decimal dot"
+msgstr "Określa ile będzie wyświetlanych cyfr dziesiętnych (po przecinku)"
 
-#: ../src/verbs.cpp:2161
-msgid "_Open..."
-msgstr "_Otwórz..."
+#: ../src/ui/dialog/inkscape-preferences.cpp:961
+msgid "Numeric precision:"
+msgstr "Precyzja"
 
-#: ../src/verbs.cpp:2162
-msgid "Open an existing document"
-msgstr "Otwórz istniejący dokument"
+#: ../src/ui/dialog/inkscape-preferences.cpp:964
+msgid "Minimum exponent:"
+msgstr "Minimalny wykładnik"
 
-#: ../src/verbs.cpp:2163
-msgid "Re_vert"
-msgstr "P_rzywróć"
+#: ../src/ui/dialog/inkscape-preferences.cpp:964
+msgid "The smallest number written to SVG is 10 to the power of this exponent; anything smaller is written as zero."
+msgstr "Najmniejsza wartość jaką może przybrać ten wykładnik, to 10. Wartości mniejsze, zostaną zapisane jako zero."
 
-#: ../src/verbs.cpp:2164
-msgid "Revert to the last saved version of document (changes will be lost)"
-msgstr "Przywraca ostatnio zapisaną wersję dokumentu (zmiany zostaną utracone)"
+#: ../src/ui/dialog/inkscape-preferences.cpp:966
+msgid "SVG output"
+msgstr "Zapis w formacie SVG"
 
-#: ../src/verbs.cpp:2165
-msgid "_Save"
-msgstr "_Zapisz"
+#: ../src/ui/dialog/inkscape-preferences.cpp:975
+msgid "Commands bar icon size"
+msgstr "Wielkość ikon w przyborniku"
 
-#: ../src/verbs.cpp:2165
-msgid "Save document"
-msgstr "Zapisz dokument"
+#: ../src/ui/dialog/inkscape-preferences.cpp:976
+msgid "Set the size for the commands toolbar to use (requires restart)"
+msgstr "Określ wielkość ikon w przyborniku (wymaga ponownego uruchomienia aplikacji)"
 
-#: ../src/verbs.cpp:2167
-msgid "Save _As..."
-msgstr "Za_pisz jako..."
+#: ../src/ui/dialog/inkscape-preferences.cpp:979
+msgid "Tool controls bar icon size"
+msgstr "Wielkość ikon na pasku narzędzi sterujących"
 
-#: ../src/verbs.cpp:2168
-msgid "Save document under a new name"
-msgstr "Zapisuje dokument pod nową nazwą"
+#: ../src/ui/dialog/inkscape-preferences.cpp:980
+msgid "Set the size for the secondary toolbar to use (requires restart)"
+msgstr "Określ wielkość ikon na pasku narzędzi sterujących (wymaga ponownego uruchomienia aplikacji)"
 
-#: ../src/verbs.cpp:2169
-msgid "Save a Cop_y..."
-msgstr "Z_apisz kopię..."
+#: ../src/ui/dialog/inkscape-preferences.cpp:983
+msgid "Main toolbar icon size"
+msgstr "Wielkość ikon na głównym pasku narzędzi"
 
-#: ../src/verbs.cpp:2170
-msgid "Save a copy of the document under a new name"
-msgstr "Zapisuje kopię dokumentu z nową nazwą"
+#: ../src/ui/dialog/inkscape-preferences.cpp:984
+msgid "Set the size for the main tools to use (requires restart)"
+msgstr "Określ wielkość ikon na głównym pasku narzędzi (wymaga ponownego uruchomienia aplikacji)"
 
-#: ../src/verbs.cpp:2171
-msgid "_Print..."
-msgstr "_Drukuj..."
+#: ../src/ui/dialog/inkscape-preferences.cpp:987
+msgid "Maximum documents in Open Recent:"
+msgstr "Maksymalna liczba dokumentów:"
 
-#: ../src/verbs.cpp:2171
-msgid "Print document"
-msgstr "Drukuj dokument"
+#: ../src/ui/dialog/inkscape-preferences.cpp:988
+msgid "The maximum length of the Open Recent list in the File menu"
+msgstr "Maksymalna liczba dokumentów przechowywanych na liście ostatnio używanych dokumentów znajdującej się w menu \"Plik\""
 
-#. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions)
-#: ../src/verbs.cpp:2174
-msgid "Vac_uum Defs"
-msgstr "Wyczyść de_finicje"
+#: ../src/ui/dialog/inkscape-preferences.cpp:991
+msgid "Zoom correction factor (in %):"
+msgstr "Wskaźnik korekcji przybliżenia (%)"
 
-#: ../src/verbs.cpp:2174
-msgid ""
-"Remove unused definitions (such as gradients or clipping paths) from the &lt;"
-"defs&gt; of the document"
-msgstr ""
-"Usuwa nieużywane elementy (takie jak gradienty, czy ścieżki przycinające) z "
-"&lt;defs&gt; dokumentu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:992
+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 "Dostrój, używając suwaka, długość widocznej tutaj linijki do wartości rzeczywistych. Dane te są używane podczas przybliżania w skali 1:1, 1:2 itd., aby wyświetlać obiekty w ich rzeczywistej wielkości."
 
-#: ../src/verbs.cpp:2176
-msgid "Print Previe_w"
-msgstr "Podgląd _wydruku"
+#: ../src/ui/dialog/inkscape-preferences.cpp:994
+msgid "Interface"
+msgstr "Interfejs"
 
-#: ../src/verbs.cpp:2177
-msgid "Preview document printout"
-msgstr "Wyświetla podgląd wydruku rysunku"
+#. Autosave options
+#: ../src/ui/dialog/inkscape-preferences.cpp:1001
+msgid "Enable autosave (requires restart)"
+msgstr "Automatyczny zapis (wymaga ponownego uruchomienia aplikacji):"
 
-#: ../src/verbs.cpp:2178
-msgid "_Import..."
-msgstr "_Importuj..."
+#: ../src/ui/dialog/inkscape-preferences.cpp:1002
+msgid "Automatically save the current document(s) at a given interval, thus minimizing loss in case of a crash"
+msgstr "Automatycznie zapisuje aktywne dokumenty po określonym czasie. Minimalizuje to straty w przypadku awarii programu."
 
-#: ../src/verbs.cpp:2179
-msgid "Import a bitmap or SVG image into this document"
-msgstr "Importuj bitmapę lub rysunek SVG do dokumentu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1004
+msgid "Interval (in minutes) at which document will be autosaved"
+msgstr "Odstęp czasowy po jakim nastąpi kolejny automatyczny zapis"
 
-#: ../src/verbs.cpp:2180
-msgid "_Export Bitmap..."
-msgstr "_Eksportuj jako bitmapę..."
+#: ../src/ui/dialog/inkscape-preferences.cpp:1004
+msgid "Interval (in minutes):"
+msgstr "Odstęp czasowy (min.):"
 
-#: ../src/verbs.cpp:2181
-msgid "Export this document or a selection as a bitmap image"
-msgstr "Eksportuj dokument lub obszar zaznaczenia jako bitmapę"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1006
+msgid "Path:"
+msgstr "Ścieżka do katalogu zapisu:"
 
-#: ../src/verbs.cpp:2182
-msgid "Import a document from Open Clip Art Library"
-msgstr "Importuje dokument z biblioteki klipartów"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1006
+msgid "The directory where autosaves will be written"
+msgstr "Ścieżka do katalogu gdzie będą przechowywane kopie automatyczne"
 
-#: ../src/verbs.cpp:2183
-msgid "Export To Open Clip Art Library"
-msgstr "Eksportuje do biblioteki klipartów"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1008
+msgid "Maximum number of autosaved files; use this to limit the storage space used"
+msgstr "Maksymalna liczba zapisywanych automatycznie plików. Opcję można używać do limitowania miejsca zajmowanego przez pliki kopii."
 
-#: ../src/verbs.cpp:2183
-msgid "Export this document to Open Clip Art Library"
-msgstr "Eksportuje ten dokument do galerii klipartów"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1008
+msgid "Maximum number of autosaves:"
+msgstr "Maksymalna liczba kopii automatycznych:"
 
-#: ../src/verbs.cpp:2184
-msgid "N_ext Window"
-msgstr "_Następne okno"
+#. When changing the interval or enabling/disabling the autosave function,
+#. * update our running configuration
+#. *
+#. * FIXME!
+#. * the inkscape_autosave_init should be called AFTER the values have been changed
+#. * (which cannot be guaranteed from here)
+#. *
+#. * For now, autosave-settings will not change until restart
+#.
+#.
+#. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE );
+#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE );
+#.
+#. -----------
+#: ../src/ui/dialog/inkscape-preferences.cpp:1026
+msgid "Autosave"
+msgstr "Automatyczny zapis"
 
-#: ../src/verbs.cpp:2185
-msgid "Switch to the next document window"
-msgstr "Przełącza do okna następnego dokumentu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1032
+msgid "16x16"
+msgstr "16x16"
 
-#: ../src/verbs.cpp:2186
-msgid "P_revious Window"
-msgstr "Popr_zednie okno"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1032
+msgid "2x2"
+msgstr "2x2"
 
-#: ../src/verbs.cpp:2187
-msgid "Switch to the previous document window"
-msgstr "Przełącza do okna poprzedniego dokumentu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1032
+msgid "4x4"
+msgstr "4x4"
 
-#: ../src/verbs.cpp:2188
-msgid "_Close"
-msgstr "Zam_knij"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1032
+msgid "8x8"
+msgstr "8x8"
 
-#: ../src/verbs.cpp:2189
-msgid "Close this document window"
-msgstr "Zamyka okno aktywnego dokumentu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1036
+msgid "Oversample bitmaps:"
+msgstr "Nadpróbkowanie bitmap:"
 
-#: ../src/verbs.cpp:2190
-msgid "_Quit"
-msgstr "Zakoń_cz"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1039
+msgid "Automatically reload bitmaps"
+msgstr "Odświeżaj automatycznie bitmapy"
 
-#: ../src/verbs.cpp:2190
-msgid "Quit Inkscape"
-msgstr "Zamyka program Inkscape"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1041
+msgid "Automatically reload linked images when file is changed on disk"
+msgstr "Po zmianie w pliku obrazka na dysku, automatycznie odświeża powiązane wyświetlone obrazki"
 
-#: ../src/verbs.cpp:2193
-msgid "Undo last action"
-msgstr "Wycofaj ostatnio wykonaną operację"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1055
+msgid "Bitmap editor:"
+msgstr "Edytor bitmap:"
 
-#: ../src/verbs.cpp:2196
-msgid "Do again the last undone action"
-msgstr "Przywróć ostatnio wycofaną operację"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1061
+msgid "Resolution for Create Bitmap Copy:"
+msgstr "Rozdzielczość tworzonej kopii bitmapy"
 
-#: ../src/verbs.cpp:2197
-msgid "Cu_t"
-msgstr "Wy_tnij"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1062
+msgid "Resolution used by the Create Bitmap Copy command"
+msgstr "Rozdzielczość stosowana przez polecenie Utwórz kopię bitmapy"
 
-#: ../src/verbs.cpp:2198
-msgid "Cut selection to clipboard"
-msgstr "Wytnij zaznaczone obiekty i przechowuj je w schowku"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1064
+msgid "Bitmaps"
+msgstr "Bitmapy"
 
-#: ../src/verbs.cpp:2199
-msgid "_Copy"
-msgstr "_Kopiuj"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1070
+msgid "Add label comments to printing output"
+msgstr "Dodawaj etykiety komentarzy do pliku wyjściowego"
 
-#: ../src/verbs.cpp:2200
-msgid "Copy selection to clipboard"
-msgstr "Kopiuj zaznaczone obiekty do schowka"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1072
+msgid "When on, a comment will be added to the raw print output, marking the rendered output for an object with its label"
+msgstr "Powoduje wstawienie do pliku wyjściowego RAW komentarzy opisujących każdy obiekt jego etykietą"
 
-#: ../src/verbs.cpp:2201
-msgid "_Paste"
-msgstr "_Wklej"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1074
+msgid "Prevent sharing of gradient definitions"
+msgstr "Zapobiegaj współdzieleniu definicji gradientu"
 
-#: ../src/verbs.cpp:2202
-msgid "Paste objects from clipboard to mouse point, or paste text"
-msgstr "Wklej obiekty lub tekst ze schowka w pozycji wskaźnika myszy"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1076
+msgid "When on, shared gradient definitions are automatically forked on change; uncheck to allow sharing of gradient definitions so that editing one object may affect other objects using the same gradient"
+msgstr "Współdzielone definicje gradientu będą automatycznie zabezpieczone przed zmianą. Jeśli opcja zostanie wyłączona, dozwolone będzie współdzielenie definicji gradientu, zatem edytowanie jednego obiektu będzie miało wpływ na inne obiekty używające tego samego gradientu."
 
-#: ../src/verbs.cpp:2203
-msgid "Paste _Style"
-msgstr "Wklej _styl"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1079
+msgid "Simplification threshold:"
+msgstr "Próg czułości uproszczenia:"
 
-#: ../src/verbs.cpp:2204
-msgid "Apply the style of the copied object to selection"
-msgstr "Przypisuje zaznaczonym obiektom styl ze skopiowanego obiektu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1080
+msgid "How strong is the 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 "Domyślna wartość (siła upraszczania) używana przez polecenie \"Uprość\". Wywołanie tego polecenia kilkakrotnie w krótkich odstępach czasu powoduje nasilenie jego działania. Ponowne wykonanie po krótkiej przerwie przywraca wartość domyślną."
 
-#: ../src/verbs.cpp:2206
-msgid "Scale selection to match the size of the copied object"
-msgstr ""
-"Skaluje zaznaczenie tak, aby dopasować do rozmiaru skopiowanego obiektu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1083
+msgid "(requires restart)"
+msgstr "(wymaga ponownego uruchomienia aplikacji):"
 
-#: ../src/verbs.cpp:2207
-msgid "Paste _Width"
-msgstr "Wklej _szerokość"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1083
+msgid "Latency skew:"
+msgstr "Przesunięcie czasowe"
 
-#: ../src/verbs.cpp:2208
-msgid "Scale selection horizontally to match the width of the copied object"
-msgstr ""
-"Skaluje zaznaczenie poziomo tak, aby dopasować do szerokości skopiowanego "
-"obiektu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1084
+msgid "Factor by which the event clock is skewed from the actual time (0.9766 on some systems)."
+msgstr "Wskażnik wg, którego nastepuje przesunięcie czasu w stosunku do aktualnego czasu (na niektórych systemach jest to 0.9766)"
 
-#: ../src/verbs.cpp:2209
-msgid "Paste _Height"
-msgstr "Wklej _wysokość"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1086
+msgid "Pre-render named icons"
+msgstr "Renderuj wstępnie nazwy ikon"
 
-#: ../src/verbs.cpp:2210
-msgid "Scale selection vertically to match the height of the copied object"
-msgstr ""
-"Skaluje zaznaczenie pionowo tak, aby dopasować do wysokości skopiowanego "
-"obiektu"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1088
+msgid "When on, named icons will be rendered before displaying the ui. This is for working around bugs in GTK+ named icon notification"
+msgstr "Nazwy ikon będą renderowane przed wyświetleniem interfejsu."
 
-#: ../src/verbs.cpp:2211
-msgid "Paste Size Separately"
-msgstr "Wklej _rozmiar oddzielnie"
+#: ../src/ui/dialog/inkscape-preferences.cpp:1090
+msgid "Misc"
+msgstr "Różne"
 
-#: ../src/verbs.cpp:2212
-msgid "Scale each selected object to match the size of the copied object"
-msgstr ""
-"Skaluje osobno każdy z zaznaczonych obiektów tak, aby dopasować do rozmiaru "
-"skopiowanego obiektu"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:76
+msgid "Apply new effect"
+msgstr "Zastosuj nowy efekt"
 
-#: ../src/verbs.cpp:2213
-msgid "Paste Width Separately"
-msgstr "Wklej s_zerokość oddzielnie"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:77
+msgid "Current effect"
+msgstr "Aktualny efekt"
 
-#: ../src/verbs.cpp:2214
-msgid ""
-"Scale each selected object horizontally to match the width of the copied "
-"object"
-msgstr ""
-"Skaluje osobno każdy z zaznaczonych obiektów poziomo tak, aby dopasować do "
-"szerokości skopiowanego obiektu"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:78
+msgid "Effect list"
+msgstr "Lista efektów"
 
-#: ../src/verbs.cpp:2215
-msgid "Paste Height Separately"
-msgstr "Wklej wyso_kość oddzielnie"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:266
+msgid "Unknown effect is applied"
+msgstr "Został zastosowany nieznany efekt"
 
-#: ../src/verbs.cpp:2216
-msgid ""
-"Scale each selected object vertically to match the height of the copied "
-"object"
-msgstr ""
-"Skaluje osobno każdy z zaznaczonych obiektów pionowo tak, aby dopasować do "
-"wysokości skopiowanego obiektu"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:269
+msgid "No effect applied"
+msgstr "Nie zastosowano żadnego efektu"
 
-#: ../src/verbs.cpp:2217
-msgid "Paste _In Place"
-msgstr "Wkle_j w miejscu pochodzenia"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:273
+msgid "Item is not a path or shape"
+msgstr "Element nie jest ścieżką ani kształtem"
 
-#: ../src/verbs.cpp:2218
-msgid "Paste objects from clipboard to the original location"
-msgstr "Wkleja obiekty ze schowka w miejscu, z którego pochodzą"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:277
+msgid "Only one item can be selected"
+msgstr "Tylko jeden element może być zaznaczony"
 
-#: ../src/verbs.cpp:2219
-msgid "Paste Path _Effect"
-msgstr "Wklej e_fekt ścieżki"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:281
+msgid "Empty selection"
+msgstr "Puste zaznaczenie"
 
-#: ../src/verbs.cpp:2220
-msgid "Apply the path effect of the copied object to selection"
-msgstr "Przypisuje efekt ścieżki ze skopiowanego obiektu do zaznaczenia"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:371
+msgid "Create and apply path effect"
+msgstr "Tworzy i zastosowuje efekt ścieżki"
 
-#: ../src/verbs.cpp:2221
-msgid "Remove Path _Effect"
-msgstr "Usuń _efekt ścieżki"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:388
+msgid "Remove path effect"
+msgstr "Usuń efekt ścieżki"
 
-#: ../src/verbs.cpp:2222
-msgid "Remove any path effects from selected objects"
-msgstr "Usuwa wszystkie efekty ścieżki z zaznaczonych obiektów"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:404
+msgid "Move path effect up"
+msgstr "Przenieś efekt ścieżki do góry"
 
-#: ../src/verbs.cpp:2223
-#, fuzzy
-msgid "Remove Filter"
-msgstr "Usuń filtr"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:420
+msgid "Move path effect down"
+msgstr "Przenieś efekt ścieżki w dół"
 
-#: ../src/verbs.cpp:2224
-#, fuzzy
-msgid "Remove any filters from selected objects"
-msgstr "Usuwa wszystkie efekty ścieżki z zaznaczonych obiektów"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:459
+msgid "Activate path effect"
+msgstr "Aktywuj efekt ścieżki"
 
-#: ../src/verbs.cpp:2225
-msgid "_Delete"
-msgstr "_Usuń"
+#: ../src/ui/dialog/livepatheffect-editor.cpp:459
+msgid "Deactivate path effect"
+msgstr "Dezaktywuj efekt ścieżki"
 
-#: ../src/verbs.cpp:2226
-msgid "Delete selection"
-msgstr "Usuwa zaznaczone obiekty"
+#: ../src/ui/dialog/memory.cpp:94
+msgid "Heap"
+msgstr "Stos"
 
-#: ../src/verbs.cpp:2227
-msgid "Duplic_ate"
-msgstr "_Powiel"
+#: ../src/ui/dialog/memory.cpp:95
+msgid "In Use"
+msgstr "Używana"
 
-#: ../src/verbs.cpp:2228
-msgid "Duplicate selected objects"
-msgstr "Duplikuj zaznaczone obiekty"
+#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused.
+#. More typical usage is to call this memory "free" rather than "slack".
+#: ../src/ui/dialog/memory.cpp:98
+msgid "Slack"
+msgstr "Wolna"
 
-#: ../src/verbs.cpp:2229
-msgid "Create Clo_ne"
-msgstr "_Utwórz klon"
+#: ../src/ui/dialog/memory.cpp:99
+msgid "Total"
+msgstr "Całkowita"
 
-#: ../src/verbs.cpp:2230
-msgid "Create a clone (a copy linked to the original) of selected object"
-msgstr "Utwórz klon zaznaczonego obiektu (kopia połączona z oryginałem)"
+#: ../src/ui/dialog/memory.cpp:139
+#: ../src/ui/dialog/memory.cpp:145
+#: ../src/ui/dialog/memory.cpp:152
+#: ../src/ui/dialog/memory.cpp:184
+msgid "Unknown"
+msgstr "Nieznane"
 
-#: ../src/verbs.cpp:2231
-msgid "Unlin_k Clone"
-msgstr "_Odłącz klon"
+#: ../src/ui/dialog/memory.cpp:165
+msgid "Combined"
+msgstr "Połączone"
 
-#: ../src/verbs.cpp:2232
-msgid ""
-"Cut the selected clone's link to its original, turning it into a standalone "
-"object"
-msgstr ""
-"Usuń zaznaczone połączenie klonu z jego oryginałem zamieniając go na "
-"samodzielny obiekt"
+#: ../src/ui/dialog/memory.cpp:207
+msgid "Recalculate"
+msgstr "Przelicz ponownie"
 
-#: ../src/verbs.cpp:2233
-msgid "Select _Original"
-msgstr "Zaznacz o_ryginał"
+#: ../src/ui/dialog/messages.cpp:75
+msgid "Ready."
+msgstr "Gotowe"
 
-#: ../src/verbs.cpp:2234
-msgid "Select the object to which the selected clone is linked"
-msgstr "Zaznacza oryginalny obiekt, z którym połączony jest zaznaczony klon"
+#: ../src/ui/dialog/messages.cpp:76
+msgid "Enable log display by setting dialogs.debug 'redirect' attribute to 1 in preferences.xml"
+msgstr "Włącz wyświetlanie dziennika ustawiając w pliku preferences.xml dla dialogs.debug atrybut \"redirect\" na 1"
 
-#. TRANSLATORS: Convert selection to a line marker
-#: ../src/verbs.cpp:2236
-msgid "Objects to _Marker"
-msgstr "Obiekty na _znacznik"
+#: ../src/ui/dialog/ocaldialogs.cpp:78
+msgid "File"
+msgstr "Plik"
 
-#: ../src/verbs.cpp:2237
-msgid "Convert selection to a line marker"
-msgstr "Konwertuje zaznaczenie na znacznik lini"
+#: ../src/ui/dialog/ocaldialogs.cpp:176
+msgid "Username:"
+msgstr "Nazwa użytkownika:"
 
-#. TRANSLATORS: Convert selection to a collection of guidelines
-#: ../src/verbs.cpp:2239
-msgid "Objects to Gu_ides"
-msgstr "Obiekty na prow_adnice"
+#: ../src/ui/dialog/ocaldialogs.cpp:177
+msgid "Password:"
+msgstr "Hasło:"
 
-#: ../src/verbs.cpp:2240
-msgid ""
-"Convert selected objects to a collection of guidelines aligned with their "
-"edges"
-msgstr ""
-"Konwertuje zaznaczone obiekty na kolekcję linii prowadnic wyrównanych z ich "
-"krawędziami"
+#: ../src/ui/dialog/ocaldialogs.cpp:404
+msgid "Error while reading the Open Clip Art RSS feed"
+msgstr "Wystąpił błąd podczas czytania kanału RSS Open Clip Art"
 
-#. TRANSLATORS: Convert selection to a rectangle with tiled pattern fill
-#: ../src/verbs.cpp:2242
-msgid "Objects to Patter_n"
-msgstr "_Obiekty na deseń"
+#: ../src/ui/dialog/ocaldialogs.cpp:443
+msgid "Failed to receive the Open Clip Art Library RSS feed. Verify if the server name is correct in Configuration->Import/Export (e.g.: openclipart.org)"
+msgstr "Nie udało się odebrać kanału RSS Open Clip Art Library. Proszę sprawdzić w ustawieniach nazwę serwera (np: openclipart.org.)"
 
-#: ../src/verbs.cpp:2243
-msgid "Convert selection to a rectangle with tiled pattern fill"
-msgstr "Konwertuje zaznaczenie na prostokąt z ułożonym wzorcem wypełnienia"
+#: ../src/ui/dialog/ocaldialogs.cpp:457
+msgid "Server supplied malformed Clip Art feed"
+msgstr "Serwer dostarczył zniekształcony kanał Clip Art"
 
-#. TRANSLATORS: Extract objects from a tiled pattern fill
-#: ../src/verbs.cpp:2245
-msgid "Pattern to _Objects"
-msgstr "_Deseń na obiekty"
+#: ../src/ui/dialog/ocaldialogs.cpp:548
+msgid "Search for:"
+msgstr "Szukaj:"
 
-#: ../src/verbs.cpp:2246
-msgid "Extract objects from a tiled pattern fill"
-msgstr "Wyodrębnia obiekty z wypełnienia desenia"
+#: ../src/ui/dialog/ocaldialogs.cpp:549
+msgid "No files matched your search"
+msgstr "Nie ma plików spełniających kryteria szukania"
 
-#: ../src/verbs.cpp:2247
-msgid "Clea_r All"
-msgstr "_Wyczyść wszystko"
+#: ../src/ui/dialog/ocaldialogs.cpp:560
+msgid "Search"
+msgstr "Szukaj"
 
-#: ../src/verbs.cpp:2248
-msgid "Delete all objects from document"
-msgstr "Usuwa wszystkie obiekty z dokumentu"
+#: ../src/ui/dialog/ocaldialogs.cpp:577
+msgid "Files found"
+msgstr "Znaleziono pliki"
 
-#: ../src/verbs.cpp:2249
-msgid "Select Al_l"
-msgstr "Z_aznacz wszystko"
+#: ../src/ui/dialog/print.cpp:142
+msgid "Could not open temporary PNG for bitmap printing"
+msgstr "Nie można otworzyć do wydruku tymczasowego pliku PNG"
 
-#: ../src/verbs.cpp:2250
-msgid "Select all objects or all nodes"
-msgstr "Zaznacz wszystkie obiekty lub węzły"
+#: ../src/ui/dialog/print.cpp:177
+msgid "Could not set up Document"
+msgstr "Nie można określić dokumentu"
 
-#: ../src/verbs.cpp:2251
-msgid "Select All in All La_yers"
-msgstr "Zaznacz wsz_ystko na wszystkich warstwach"
+#: ../src/ui/dialog/print.cpp:181
+msgid "Failed to set CairoRenderContext"
+msgstr "Nie udało się ustawić CairoRenderContext"
 
-#: ../src/verbs.cpp:2252
-msgid "Select all objects in all visible and unlocked layers"
-msgstr ""
-"Zaznacz wszystkie obiekty na wszystkich widocznych i odblokowanych warstwach"
+#. set up dialog title, based on document name
+#: ../src/ui/dialog/print.cpp:221
+msgid "SVG Document"
+msgstr "Dokument SVG"
 
-#: ../src/verbs.cpp:2253
-msgid "In_vert Selection"
-msgstr "O_dwróć zaznaczenie"
+#: ../src/ui/dialog/print.cpp:222
+msgid "Print"
+msgstr "Drukuj"
 
-#: ../src/verbs.cpp:2254
-msgid "Invert selection (unselect what is selected and select everything else)"
-msgstr "Odwraca zaznaczenie (usuwa zaznaczenie obiektów i zaznacza pozostałe)"
+#. build custom preferences tab
+#: ../src/ui/dialog/print.cpp:249
+msgid "Rendering"
+msgstr "Renderowanie"
 
-#: ../src/verbs.cpp:2255
-msgid "Invert in All Layers"
-msgstr "Odwróć na wszystkich warstwach"
+#: ../src/ui/dialog/scriptdialog.cpp:211
+msgid "_Execute Javascript"
+msgstr "Wykonaj skrypt _Javascript"
 
-#: ../src/verbs.cpp:2256
-msgid "Invert selection in all visible and unlocked layers"
-msgstr "Odwraca zaznaczenie na wszystkich widocznych i odblokowanych warstwach"
+#: ../src/ui/dialog/scriptdialog.cpp:213
+msgid "_Execute Python"
+msgstr "Wykonaj skrypt _Python"
 
-#: ../src/verbs.cpp:2257
-msgid "Select Next"
-msgstr "Zaznacz następny"
+#: ../src/ui/dialog/scriptdialog.cpp:215
+msgid "_Execute Ruby"
+msgstr "Wykonaj skrypt _Ruby"
 
-#: ../src/verbs.cpp:2258
-msgid "Select next object or node"
-msgstr "Zaznacza następny obiekt lub węzeł"
+#: ../src/ui/dialog/scriptdialog.cpp:224
+msgid "Script"
+msgstr "Skrypt"
 
-#: ../src/verbs.cpp:2259
-msgid "Select Previous"
-msgstr "Zaznacz poprzedni"
+#: ../src/ui/dialog/scriptdialog.cpp:234
+msgid "Output"
+msgstr "Wyjście"
 
-#: ../src/verbs.cpp:2260
-msgid "Select previous object or node"
-msgstr "Zaznacza poprzedni obiekt lub węzeł"
+#: ../src/ui/dialog/scriptdialog.cpp:244
+msgid "Errors"
+msgstr "Błędy"
 
-#: ../src/verbs.cpp:2261
-msgid "D_eselect"
-msgstr "Usuń zaz_naczenie"
+#. Dialog organization
+#: ../src/ui/dialog/session-player.cpp:73
+msgid "Session file"
+msgstr "Plik sesji"
 
-#: ../src/verbs.cpp:2262
-msgid "Deselect any selected objects or nodes"
-msgstr "Usuń zaznaczenie ze wszystkich zaznaczonych obiektów lub węzłów"
+#: ../src/ui/dialog/session-player.cpp:74
+msgid "Playback controls"
+msgstr "Kontrola odtwarzania"
 
-#: ../src/verbs.cpp:2263
-msgid "_Guides around page"
-msgstr "_Prowadnice wokół strony"
+#: ../src/ui/dialog/session-player.cpp:75
+#, fuzzy
+msgid "Message information"
+msgstr "Informacja o użyciu pamięci"
 
-#: ../src/verbs.cpp:2264
-msgid "Create four guides aligned with the page borders"
-msgstr "Tworzy cztery prowadnice przylegające do krawędzi strony"
+#. Active session file display
+#. fixme: Does this mean the active file for the session, or the file for the active session?
+#. Please indicate which with a TRANSLATORS comment.
+#: ../src/ui/dialog/session-player.cpp:85
+msgid "Active session file:"
+msgstr "Aktywny plik sesji:"
 
-#: ../src/verbs.cpp:2265
-msgid "Next Path Effect Parameter"
-msgstr "Następny parametr efektu ścieżki"
+#: ../src/ui/dialog/session-player.cpp:86
+msgid "Delay (milliseconds):"
+msgstr "Opóźnienie (ms):"
 
-#: ../src/verbs.cpp:2266
-msgid "Show next Path Effect parameter for editing"
-msgstr "Wyświetl do edycji następny parametr efektu ścieżki"
+#. Unload/load buttons
+#: ../src/ui/dialog/session-player.cpp:94
+msgid "Close file"
+msgstr "Zamknij plik"
 
-#. Selection
-#: ../src/verbs.cpp:2269
-msgid "Raise to _Top"
-msgstr "Przenieś na wierzc_h"
+#: ../src/ui/dialog/session-player.cpp:95
+msgid "Open new file"
+msgstr "Otwórz nowy plik"
 
-#: ../src/verbs.cpp:2270
-msgid "Raise selection to top"
-msgstr "Przenieś zaznaczone obiekty na wierzch"
+#: ../src/ui/dialog/session-player.cpp:96
+msgid "Set delay"
+msgstr "Ustaw opóźnienie"
 
-#: ../src/verbs.cpp:2271
-msgid "Lower to _Bottom"
-msgstr "Przenieś pod _spód"
+#: ../src/ui/dialog/session-player.cpp:138
+msgid "Rewind"
+msgstr "Powrót"
 
-#: ../src/verbs.cpp:2272
-msgid "Lower selection to bottom"
-msgstr "Przenieś zaznaczone obiekty na spód"
+#: ../src/ui/dialog/session-player.cpp:139
+msgid "Go back one change"
+msgstr "Powraca o jedną zmianę"
 
-#: ../src/verbs.cpp:2273
-msgid "_Raise"
-msgstr "Przenieś w _górę"
+#: ../src/ui/dialog/session-player.cpp:140
+msgid "Pause"
+msgstr "Pauza"
 
-#: ../src/verbs.cpp:2274
-msgid "Raise selection one step"
-msgstr "Przenieś zaznaczone obiekty o jedną pozycję w górę"
+#: ../src/ui/dialog/session-player.cpp:141
+msgid "Go forward one change"
+msgstr "Przechodzi do przodu o jedną zmianę"
 
-#: ../src/verbs.cpp:2275
-msgid "_Lower"
-msgstr "Przenieś w _dół"
+#: ../src/ui/dialog/session-player.cpp:142
+msgid "Play"
+msgstr "Odtwórz"
 
-#: ../src/verbs.cpp:2276
-msgid "Lower selection one step"
-msgstr "Przenieś zaznaczone obiekty o jedną pozycję w dół"
+#: ../src/ui/dialog/session-player.cpp:177
+msgid "Open session file"
+msgstr "Otwórz plik sesji"
 
-#: ../src/verbs.cpp:2277
-msgid "_Group"
-msgstr "Grup_uj"
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:111
+msgid "Set SVG Font attribute"
+msgstr "Określ atrybut czcionki SVG"
 
-#: ../src/verbs.cpp:2278
-msgid "Group selected objects"
-msgstr "Grupuj zaznaczone obiekty"
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:261
+msgid "Set width:"
+msgstr "Określ szerokość:"
 
-#: ../src/verbs.cpp:2280
-msgid "Ungroup selected groups"
-msgstr "Rozdziel zaznaczone grupy obiektów"
+#. Kerning Setup:
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:287
+msgid "Kerning Setup:"
+msgstr "Ustawienia kerningu:"
 
-#: ../src/verbs.cpp:2282
-msgid "_Put on Path"
-msgstr "_Wstaw na ścieżkę"
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:289
+msgid "1st Glyph:"
+msgstr "Pierwszy glif:"
 
-#: ../src/verbs.cpp:2284
-msgid "_Remove from Path"
-msgstr "_Zdejmij ze ścieżki"
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:291
+msgid "2nd Glyph:"
+msgstr "Drugi glif:"
 
-#: ../src/verbs.cpp:2286
-msgid "Remove Manual _Kerns"
-msgstr "U_suń ręczne podcięcie"
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:302
+msgid "Kerning value:"
+msgstr "Wartość kerningu:"
 
-#. 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:2289
-msgid "Remove all manual kerns and glyph rotations from a text object"
-msgstr "Usuwa ręcznie wprowadzone podcięcia i obrót glifu z obiektu tekstowego"
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:322
+msgid "_Font"
+msgstr "_Czcionka"
+
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:330
+msgid "_Global Settings"
+msgstr "Ustawienia _globalne:"
 
-#: ../src/verbs.cpp:2291
-msgid "_Union"
-msgstr "_Suma"
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:331
+msgid "_Glyphs"
+msgstr "_Glify"
 
-#: ../src/verbs.cpp:2292
-msgid "Create union of selected paths"
-msgstr "Tworzy sumę zaznaczonych ścieżek"
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:332
+msgid "_Kerning"
+msgstr "_Kerning"
 
-#: ../src/verbs.cpp:2293
-msgid "_Intersection"
-msgstr "Część wspó_lna"
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:344
+msgid "Preview Text:"
+msgstr "Podgląd tekstu:"
 
-#: ../src/verbs.cpp:2294
-msgid "Create intersection of selected paths"
-msgstr "Tworzy część wspólną zaznaczonych ścieżek"
+#. #### begin left panel
+#. ### begin notebook
+#. ## begin mode page
+#. # begin single scan
+#. brightness
+#: ../src/ui/dialog/tracedialog.cpp:396
+msgid "Brightness cutoff"
+msgstr "Rozdzielanie jasności"
 
-#: ../src/verbs.cpp:2295
-msgid "_Difference"
-msgstr "Różnic_a"
+#: ../src/ui/dialog/tracedialog.cpp:400
+msgid "Trace by a given brightness level"
+msgstr "Wektoryzacja w oparciu o jasność"
 
-#: ../src/verbs.cpp:2296
-msgid "Create difference of selected paths (bottom minus top)"
-msgstr "Tworzy różnicę zaznaczonych ścieżek (dalszy minus bliższy)"
+#: ../src/ui/dialog/tracedialog.cpp:408
+msgid "Brightness cutoff for black/white"
+msgstr "Próg rozdzielenia czarny/biały"
 
-#: ../src/verbs.cpp:2297
-msgid "E_xclusion"
-msgstr "_Wykluczenie"
+#: ../src/ui/dialog/tracedialog.cpp:415
+msgid "Single scan: creates a path"
+msgstr "Jeden przebieg: tworzy jedną ścieżkę"
 
-#: ../src/verbs.cpp:2298
-msgid ""
-"Create exclusive OR of selected paths (those parts that belong to only one "
-"path)"
-msgstr ""
-"Tworzy różnicę symetryczną zaznaczonych ścieżek (części należące tylko do "
-"jednej ze ścieżek)"
+#. canny edge detection
+#. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method
+#: ../src/ui/dialog/tracedialog.cpp:420
+msgid "Edge detection"
+msgstr "Wykrywanie krawędzi"
 
-#: ../src/verbs.cpp:2299
-msgid "Di_vision"
-msgstr "_Podział"
+#: ../src/ui/dialog/tracedialog.cpp:424
+msgid "Trace with optimal edge detection by J. Canny's algorithm"
+msgstr "Wektoryzacja z wykorzystaniem optymalnego wykrywania krawędzi metodą J.Canny'ego"
 
-#: ../src/verbs.cpp:2300
-msgid "Cut the bottom path into pieces"
-msgstr "Rozcina dolną ścieżkę na części"
+#: ../src/ui/dialog/tracedialog.cpp:441
+msgid "Brightness cutoff for adjacent pixels (determines edge thickness)"
+msgstr "Odcięcie jasności dla sąsiednich pikseli (decyduje o szerokości krawędzi)"
 
-#. 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:2303
-msgid "Cut _Path"
-msgstr "Ro_zcięcie ścieżki"
+#. quantization
+#. TRANSLATORS: Color Quantization: the process of reducing the number
+#. of colors in an image by selecting an optimized set of representative
+#. colors and then re-applying this reduced set to the original image.
+#: ../src/ui/dialog/tracedialog.cpp:453
+msgid "Color quantization"
+msgstr "Redukcja kolorów"
 
-#: ../src/verbs.cpp:2304
-msgid "Cut the bottom path's stroke into pieces, removing fill"
-msgstr "Rozcina kontur dolnej ścieżki na części i usuwa wypełnienie"
+#: ../src/ui/dialog/tracedialog.cpp:457
+msgid "Trace along the boundaries of reduced colors"
+msgstr "Śledzenie wzdłuż obszarów granicznych redukowanych kolorów"
 
-#. 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:2308
-msgid "Outs_et"
-msgstr "Przesuń na z_ewnątrz"
+#: ../src/ui/dialog/tracedialog.cpp:465
+msgid "The number of reduced colors"
+msgstr "Liczba zredukowanych kolorów"
 
-#: ../src/verbs.cpp:2309
-msgid "Outset selected paths"
-msgstr "Przesuwa zaznaczone ścieżki na zewnątrz kształtu"
+#: ../src/ui/dialog/tracedialog.cpp:467
+msgid "Colors:"
+msgstr "Liczba kolorów:"
 
-#: ../src/verbs.cpp:2311
-msgid "O_utset Path by 1 px"
-msgstr "Przesuń ścieżkę na _zewnątrz o 1px"
+#. swap black and white
+#: ../src/ui/dialog/tracedialog.cpp:473
+msgid "Invert image"
+msgstr "Odwróć obrazek"
 
-#: ../src/verbs.cpp:2312
-msgid "Outset selected paths by 1 px"
-msgstr "Przesuwa zaznaczone ścieżki na zewnątrz kształtu o 1 px"
+#: ../src/ui/dialog/tracedialog.cpp:478
+msgid "Invert black and white regions"
+msgstr "Zamienia białe i czarne obszary"
 
-#: ../src/verbs.cpp:2314
-msgid "O_utset Path by 10 px"
-msgstr "Przesuń ścieżkę na z_ewnątrz o 10px"
+#. # end single scan
+#. # begin multiple scan
+#: ../src/ui/dialog/tracedialog.cpp:487
+msgid "Brightness steps"
+msgstr "Stopnie jasności"
 
-#: ../src/verbs.cpp:2315
-msgid "Outset selected paths by 10 px"
-msgstr "Przesuwa zaznaczone ścieżki na zewnątrz kształtu o 10 px"
+#: ../src/ui/dialog/tracedialog.cpp:491
+msgid "Trace the given number of brightness levels"
+msgstr "Śledzenie określonej ilości stopni jasności"
 
-#. 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:2319
-msgid "I_nset"
-msgstr "Przesuń do wewną_trz"
+#: ../src/ui/dialog/tracedialog.cpp:498
+msgid "Scans:"
+msgstr "Liczba przebiegów:"
 
-#: ../src/verbs.cpp:2320
-msgid "Inset selected paths"
-msgstr "Przesuwa zaznaczone ścieżki do wewnątrz kształtu"
+#: ../src/ui/dialog/tracedialog.cpp:501
+msgid "The desired number of scans"
+msgstr "Żądana liczba przebiegów skanowania"
 
-#: ../src/verbs.cpp:2322
-msgid "I_nset Path by 1 px"
-msgstr "Przesuń ścieżkę do _wewnątrz o 1px"
+#: ../src/ui/dialog/tracedialog.cpp:505
+msgid "Colors"
+msgstr "Kolory"
 
-#: ../src/verbs.cpp:2323
-msgid "Inset selected paths by 1 px"
-msgstr "Przesuwa zaznaczone ścieżki do wewnątrz kształtu o 1 px"
+#: ../src/ui/dialog/tracedialog.cpp:509
+msgid "Trace the given number of reduced colors"
+msgstr "Śledzenie określonej ilości zredukowanych kolorów"
 
-#: ../src/verbs.cpp:2325
-msgid "I_nset Path by 10 px"
-msgstr "Przesuń ścieżkę do wew_nątrz o 10 px"
+#: ../src/ui/dialog/tracedialog.cpp:513
+msgid "Grays"
+msgstr "Odcienie szarości"
 
-#: ../src/verbs.cpp:2326
-msgid "Inset selected paths by 10 px"
-msgstr "Przesuwa zaznaczone ścieżki do wewnątrz kształtu o 10 px"
+#: ../src/ui/dialog/tracedialog.cpp:517
+msgid "Same as Colors, but the result is converted to grayscale"
+msgstr "Jak dla funkcji \"Kolory\", ale z końcową konwersją do skali szarości"
 
-#: ../src/verbs.cpp:2328
-msgid "D_ynamic Offset"
-msgstr "Przesuń _dynamicznie"
+#. TRANSLATORS: "Smooth" is a verb here
+#: ../src/ui/dialog/tracedialog.cpp:522
+msgid "Smooth"
+msgstr "Rozmycie"
 
-#: ../src/verbs.cpp:2328
-msgid "Create a dynamic offset object"
-msgstr "Tworzy obiekt przesunięty dynamicznie"
+#: ../src/ui/dialog/tracedialog.cpp:526
+msgid "Apply Gaussian blur to the bitmap before tracing"
+msgstr "Przed wektoryzacją wykonuje na bitmapie rozmycie Gaussa"
 
-#: ../src/verbs.cpp:2330
-msgid "_Linked Offset"
-msgstr "Przesuń łą_cznie"
+#. TRANSLATORS: "Stack" is a verb here
+#: ../src/ui/dialog/tracedialog.cpp:529
+msgid "Stack scans"
+msgstr "Tworzenie stosu przebiegów"
 
-#: ../src/verbs.cpp:2331
-msgid "Create a dynamic offset object linked to the original path"
-msgstr "Tworzy obiekt przesunięty dynamicznie i połączony z oryginalną ścieżką"
+#: ../src/ui/dialog/tracedialog.cpp:532
+msgid "Stack scans on top of one another (no gaps) instead of tiling (usually with gaps)"
+msgstr "Nakładanie na siebie obszarów (brak prześwitów) zamiast złożenia wzdłuż krawędzi (zwykle widoczne są prześwity)"
 
-#: ../src/verbs.cpp:2333
-msgid "_Stroke to Path"
-msgstr "_Kontur na ścieżkę"
+#: ../src/ui/dialog/tracedialog.cpp:535
+msgid "Remove background"
+msgstr "Usuń tło"
 
-#: ../src/verbs.cpp:2334
-msgid "Convert selected object's stroke to paths"
-msgstr "Konwertuj kontur zaznaczonych obiektów na ścieżki"
+#: ../src/ui/dialog/tracedialog.cpp:540
+msgid "Remove bottom (background) layer when done"
+msgstr "Po zakończeniu usuwa dolną (tło) warstwę"
 
-#: ../src/verbs.cpp:2335
-msgid "Si_mplify"
-msgstr "_Uprość"
+#: ../src/ui/dialog/tracedialog.cpp:544
+msgid "Multiple scans: creates a group of paths"
+msgstr "Wiele przebiegów - tworzy grupę ścieżek"
 
-#: ../src/verbs.cpp:2336
-msgid "Simplify selected paths (remove extra nodes)"
-msgstr "Upraszcza zaznaczone ścieżki usuwając zbędne węzły"
+#. ## begin option page
+#. # potrace parameters
+#: ../src/ui/dialog/tracedialog.cpp:559
+msgid "Suppress speckles"
+msgstr "Tuszuj plamki"
 
-#: ../src/verbs.cpp:2337
-msgid "_Reverse"
-msgstr "Odwróć kieru_nek"
+#: ../src/ui/dialog/tracedialog.cpp:561
+msgid "Ignore small spots (speckles) in the bitmap"
+msgstr "Pomija małe plamki (cętki) w bitmapie"
 
-#: ../src/verbs.cpp:2338
-msgid "Reverse the direction of selected paths (useful for flipping markers)"
-msgstr ""
-"Odwraca kierunek zaznaczonych ścieżek (przydatne do odwracania znaczników "
-"rozmieszczonych na konturze)"
+#: ../src/ui/dialog/tracedialog.cpp:569
+msgid "Speckles of up to this many pixels will be suppressed"
+msgstr "Plamki powyżej określonej tutaj ilości pikseli będą tuszowane"
 
-#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
-#: ../src/verbs.cpp:2340
-msgid "_Trace Bitmap..."
-msgstr "Wektoryzuj bit_mapę..."
+#: ../src/ui/dialog/tracedialog.cpp:571
+msgid "Size:"
+msgstr "Rozmiar"
 
-#: ../src/verbs.cpp:2341
-msgid "Create one or more paths from a bitmap by tracing it"
-msgstr "Tworzy z bitmapy, poprzez jej wektoryzację, jedną lub więcej ścieżek"
+#: ../src/ui/dialog/tracedialog.cpp:574
+msgid "Smooth corners"
+msgstr "Wygładź narożniki"
 
-#: ../src/verbs.cpp:2342
-msgid "_Make a Bitmap Copy"
-msgstr "Kopiuj jako _bitmapę"
+#: ../src/ui/dialog/tracedialog.cpp:576
+msgid "Smooth out sharp corners of the trace"
+msgstr "Wygładza ostre krawędzie ścieżki wektorowej"
 
-#: ../src/verbs.cpp:2343
-msgid "Export selection to a bitmap and insert it into document"
-msgstr "Eksportuje zaznaczenie do bitmapy i wstawia do dokumentu jako obraz"
+#: ../src/ui/dialog/tracedialog.cpp:585
+msgid "Increase this to smooth corners more"
+msgstr "Zwiększ wartość, aby bardziej wygładzić narożniki"
 
-#: ../src/verbs.cpp:2344
-msgid "_Combine"
-msgstr "P_ołącz"
+#: ../src/ui/dialog/tracedialog.cpp:589
+msgid "Optimize paths"
+msgstr "Optymalizuj ścieżki"
 
-#: ../src/verbs.cpp:2345
-msgid "Combine several paths into one"
-msgstr "Łączy kilka ścieżek w jedną"
+#: ../src/ui/dialog/tracedialog.cpp:592
+msgid "Try to optimize paths by joining adjacent Bezier curve segments"
+msgstr "Nastąpi próba optymalizacji ścieżek poprzez łączenie przylegających do siebie segmentów krzywej Beziera"
 
-#. 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:2348
-msgid "Break _Apart"
-msgstr "_Rozdziel"
+#: ../src/ui/dialog/tracedialog.cpp:600
+msgid "Increase this to reduce the number of nodes in the trace by more aggressive optimization"
+msgstr "Zwiększ wartość, aby poprzez intensywniejszą optymalizację, w tworzonej krzywej wektorowej zredukować liczbę węzłów"
+
+#: ../src/ui/dialog/tracedialog.cpp:601
+msgid "Tolerance:"
+msgstr "Zaokrąglenie:"
 
-#: ../src/verbs.cpp:2349
-msgid "Break selected paths into subpaths"
-msgstr "Rozdziela zaznaczone ścieżki na poszczególne elementy"
+#. ## end option page
+#: ../src/ui/dialog/tracedialog.cpp:607
+#: ../src/ui/dialog/tracedialog.cpp:613
+msgid "Options"
+msgstr "Opcje"
 
-#: ../src/verbs.cpp:2350
-msgid "Rows and Columns..."
-msgstr "W_iersze i kolumny..."
+#. ### credits
+#: ../src/ui/dialog/tracedialog.cpp:621
+msgid "Thanks to Peter Selinger, http://potrace.sourceforge.net"
+msgstr "Podziękowania dla Petera Selingera, http://potrace.sourceforge.net"
 
-#: ../src/verbs.cpp:2351
-msgid "Arrange selected objects in a table"
-msgstr ""
-"Otwórz okno umożliwiające rozmieszczanie zaznaczonych obiektów w tabeli"
+#: ../src/ui/dialog/tracedialog.cpp:623
+msgid "Credits"
+msgstr "Podziękowania"
 
-#. Layer
-#: ../src/verbs.cpp:2353
-msgid "_Add Layer..."
-msgstr "_Nowa warstwa..."
+#. #### begin right panel
+#. ## SIOX
+#: ../src/ui/dialog/tracedialog.cpp:637
+msgid "SIOX foreground selection"
+msgstr "SIOX - wybór obszaru pierwszego planu"
 
-#: ../src/verbs.cpp:2354
-msgid "Create a new layer"
-msgstr "Tworzy nową warstwę"
+#: ../src/ui/dialog/tracedialog.cpp:640
+msgid "Cover the area you want to select as the foreground"
+msgstr "Oznacza obszar jaki chcesz wybrać jako pierwszy plan"
 
-#: ../src/verbs.cpp:2355
-msgid "Re_name Layer..."
-msgstr "_Zmień nazwę warstwy..."
+#. ## preview
+#: ../src/ui/dialog/tracedialog.cpp:645
+msgid "Update"
+msgstr "Aktualizuj"
 
-#: ../src/verbs.cpp:2356
-msgid "Rename the current layer"
-msgstr "Zmienia nazwę aktywnej warstwy"
+#: ../src/ui/dialog/tracedialog.cpp:651
+msgid "Preview the intermediate bitmap with the current settings, without actual tracing"
+msgstr "Podgląd bitmapy z aktualnymi ustawieniami, bez wektoryzacji"
 
-#: ../src/verbs.cpp:2357
-msgid "Switch to Layer Abov_e"
-msgstr "_Przejdź na wyższą warstwę"
+#: ../src/ui/dialog/tracedialog.cpp:655
+msgid "Preview"
+msgstr "Podgląd"
 
-#: ../src/verbs.cpp:2358
-msgid "Switch to the layer above the current"
-msgstr "Przechodzi do warstwy położonej powyżej aktywnej warstwy"
+#: ../src/ui/dialog/tracedialog.cpp:672
+msgid "Abort a trace in progress"
+msgstr "Przerwij wektoryzację"
 
-#: ../src/verbs.cpp:2359
-msgid "Switch to Layer Belo_w"
-msgstr "Przej_dź na niższą warstwę"
+#: ../src/ui/dialog/tracedialog.cpp:676
+msgid "Execute the trace"
+msgstr "Wykonaj wektoryzację"
 
-#: ../src/verbs.cpp:2360
-msgid "Switch to the layer below the current"
-msgstr "Przechodzi do warstwy położonej poniżej aktywnej warstwy"
+#: ../src/ui/dialog/transformation.cpp:83
+msgid "Horizontal displacement (relative) or position (absolute)"
+msgstr "Przesunięcie poziome (względne) lub pozycja (bezwzględna)"
 
-#: ../src/verbs.cpp:2361
-msgid "Move Selection to Layer Abo_ve"
-msgstr "Przenieś zazna_czenie na wyższą warstwę"
+#: ../src/ui/dialog/transformation.cpp:83
+#: ../src/ui/dialog/transformation.cpp:93
+msgid "_Horizontal"
+msgstr "_Poziome"
 
-#: ../src/verbs.cpp:2362
-msgid "Move selection to the layer above the current"
-msgstr "Przenosi zaznaczenie na warstwę ponad aktywną"
+#: ../src/ui/dialog/transformation.cpp:85
+msgid "Vertical displacement (relative) or position (absolute)"
+msgstr "Przesunięcie pionowe (względne) lub pozycja (bezwzględna)"
 
-#: ../src/verbs.cpp:2363
-msgid "Move Selection to Layer Bel_ow"
-msgstr "Prz_enieś zaznaczenie na niższą warstwę"
+#: ../src/ui/dialog/transformation.cpp:85
+#: ../src/ui/dialog/transformation.cpp:95
+msgid "_Vertical"
+msgstr "Pi_onowe"
 
-#: ../src/verbs.cpp:2364
-msgid "Move selection to the layer below the current"
-msgstr "Przenosi zaznaczenie na warstwę poniżej aktywnej"
+#: ../src/ui/dialog/transformation.cpp:87
+msgid "Horizontal size (absolute or percentage of current)"
+msgstr "Poziomy przyrost rozmiaru (bezwzględny lub procentowy aktualnego)"
 
-#: ../src/verbs.cpp:2365
-msgid "Layer to _Top"
-msgstr "Przenieś warstwę na _wierzch"
+#: ../src/ui/dialog/transformation.cpp:87
+msgid "_Width"
+msgstr "_Szerokość"
 
-#: ../src/verbs.cpp:2366
-msgid "Raise the current layer to the top"
-msgstr "Przenosi aktywną warstwę na górę"
+#: ../src/ui/dialog/transformation.cpp:89
+msgid "Vertical size (absolute or percentage of current)"
+msgstr "Pionowy przyrost rozmiaru (bezwzględny lub procentowy aktualnego)"
 
-#: ../src/verbs.cpp:2367
-msgid "Layer to _Bottom"
-msgstr "Przenieś warstwę pod _spód"
+#: ../src/ui/dialog/transformation.cpp:89
+msgid "_Height"
+msgstr "_Wysokość"
 
-#: ../src/verbs.cpp:2368
-msgid "Lower the current layer to the bottom"
-msgstr "Przenosi aktywną warstwę na dół"
+#: ../src/ui/dialog/transformation.cpp:91
+msgid "A_ngle"
+msgstr "_Kąt"
 
-#: ../src/verbs.cpp:2369
-msgid "_Raise Layer"
-msgstr "Przenieś w_arstwę wyżej"
+#: ../src/ui/dialog/transformation.cpp:91
+msgid "Rotation angle (positive = counterclockwise)"
+msgstr "Kąt obrotu (dodatni = przeciwnie do ruchu wskazówek zegara)"
 
-#: ../src/verbs.cpp:2370
-msgid "Raise the current layer"
-msgstr "Przenosi aktywną warstwę o jedną pozycję wyżej"
+#: ../src/ui/dialog/transformation.cpp:93
+msgid "Horizontal skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"
+msgstr "Poziomy kąt pochylenia (dodatni = przeciwnie do ruchu wskazówek zegara), lub bezwzględne przesunięcie, lub przesunięcie procentowe"
 
-#: ../src/verbs.cpp:2371
-msgid "_Lower Layer"
-msgstr "Przenieś wa_rstwę niżej"
+#: ../src/ui/dialog/transformation.cpp:95
+msgid "Vertical skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"
+msgstr "Pionowy kąt pochylenia (dodatni = przeciwnie do ruchu wskazówek zegara), lub bezwzględne przesunięcie, lub przesunięcie procentowe"
 
-#: ../src/verbs.cpp:2372
-msgid "Lower the current layer"
-msgstr "Przenosi aktywną warstwę o jedną pozycję niżej"
+#: ../src/ui/dialog/transformation.cpp:98
+msgid "Transformation matrix element A"
+msgstr "Element A macierzy przekształcenia"
 
-#: ../src/verbs.cpp:2373
-msgid "_Delete Current Layer"
-msgstr "_Usuń aktywną warstwę"
+#: ../src/ui/dialog/transformation.cpp:99
+msgid "Transformation matrix element B"
+msgstr "Element B macierzy przekształcenia"
 
-#: ../src/verbs.cpp:2374
-msgid "Delete the current layer"
-msgstr "Usuwa aktywną warstwę razem ze znajdującymi się na niej obiektami"
+#: ../src/ui/dialog/transformation.cpp:100
+msgid "Transformation matrix element C"
+msgstr "Element C macierzy przekształcenia"
 
-#. Object
-#: ../src/verbs.cpp:2377
-msgid "Rotate _90&#176; CW"
-msgstr "_Obróć o 90&#176; w prawo"
+#: ../src/ui/dialog/transformation.cpp:101
+msgid "Transformation matrix element D"
+msgstr "Element D macierzy przekształcenia"
 
-#. This is shared between tooltips and statusbar, so they
-#. must use UTF-8, not HTML entities for special characters.
-#: ../src/verbs.cpp:2380
-msgid "Rotate selection 90° clockwise"
-msgstr "Obróć zaznaczone obiekty o 90&#176; w prawo"
+#: ../src/ui/dialog/transformation.cpp:102
+msgid "Transformation matrix element E"
+msgstr "Element E macierzy przekształcenia"
 
-#: ../src/verbs.cpp:2381
-msgid "Rotate 9_0&#176; CCW"
-msgstr "O_bróć o 90&#176; w lewo"
+#: ../src/ui/dialog/transformation.cpp:103
+msgid "Transformation matrix element F"
+msgstr "Element F macierzy przekształcenia"
 
-#. This is shared between tooltips and statusbar, so they
-#. must use UTF-8, not HTML entities for special characters.
-#: ../src/verbs.cpp:2384
-msgid "Rotate selection 90° counter-clockwise"
-msgstr "Obróć zaznaczone obiekty o 90&#176; w lewo"
+#: ../src/ui/dialog/transformation.cpp:105
+msgid "Add the specified relative displacement to the current position; otherwise, edit the current absolute position directly"
+msgstr "Dodaj wybraną wartość przesunięcia względnego do aktualnej pozycji lub bezpośrednio edytuj bezwzględną pozycję"
 
-#: ../src/verbs.cpp:2385
-msgid "Remove _Transformations"
-msgstr "Usuń przekształcenia"
+#: ../src/ui/dialog/transformation.cpp:105
+msgid "Rela_tive move"
+msgstr "Przesunięcie względne"
 
-#: ../src/verbs.cpp:2386
-msgid "Remove transformations from object"
-msgstr "Usuwa przekształcenia z obiektu"
+#: ../src/ui/dialog/transformation.cpp:106
+msgid "Preserve the width/height ratio of the scaled objects"
+msgstr "Zachowuje proporcje pomiędzy szerokością i wysokością dla skalowanych obiektów"
 
-#: ../src/verbs.cpp:2387
-msgid "_Object to Path"
-msgstr "O_biekt na ścieżkę"
+#: ../src/ui/dialog/transformation.cpp:106
+msgid "Scale proportionally"
+msgstr "Skaluj proporcjonalne"
 
-#: ../src/verbs.cpp:2388
-msgid "Convert selected object to path"
-msgstr "Konwertuj zaznaczone obiekty na ścieżki"
+#: ../src/ui/dialog/transformation.cpp:107
+msgid "Apply the scale/rotate/skew to each selected object separately; otherwise, transform the selection as a whole"
+msgstr "Wykonuje skalowanie/obrot/pochylenie osobno dla każdego z zaznaczonych obiektów, w przeciwnym razie zaznaczenie jest przekształcane jako całość"
 
-#: ../src/verbs.cpp:2389
-msgid "_Flow into Frame"
-msgstr "W_prowadź tekst do kształtu"
+#: ../src/ui/dialog/transformation.cpp:107
+msgid "Apply to each _object separately"
+msgstr "Zastosuj osobno dla każdego obiektu"
 
-#: ../src/verbs.cpp:2390
-msgid ""
-"Put text into a frame (path or shape), creating a flowed text linked to the "
-"frame object"
-msgstr ""
-"Wprowadza tekst do ramki, ścieżki lub kształtu, tworząc tekst opływający "
-"przypisany do ramki obiektu"
+#: ../src/ui/dialog/transformation.cpp:108
+msgid "Edit c_urrent matrix"
+msgstr "Edycja macierzy istniejącego przekształcenia"
 
-#: ../src/verbs.cpp:2391
-msgid "_Unflow"
-msgstr "_Uwolnij tekst"
+#: ../src/ui/dialog/transformation.cpp:108
+msgid "Edit the current transform= matrix; otherwise, post-multiply transform= by this matrix"
+msgstr "Jeśli opcja jest zaznaczona, edytowana jest macierz całego istniejącego przekształcenia obiektu, w przeciwnym razie istniejące przekształcenie zostanie pomnożone przez nową macierz"
 
-#: ../src/verbs.cpp:2392
-msgid "Remove text from frame (creates a single-line text object)"
-msgstr "Usuwa tekst z ramki (tworzy obiekt tekstowy w pojedynczej linii)"
+#: ../src/ui/dialog/transformation.cpp:118
+msgid "_Move"
+msgstr "_Przesuń"
 
-#: ../src/verbs.cpp:2393
-msgid "_Convert to Text"
-msgstr "_Konwertuj na zwykły tekst"
+#: ../src/ui/dialog/transformation.cpp:121
+msgid "_Scale"
+msgstr "_Skaluj"
 
-#: ../src/verbs.cpp:2394
-msgid "Convert flowed text to regular text object (preserves appearance)"
-msgstr ""
-"Konwertuje tekst dopasowany do kształtu na zwykły obiekt tekstowy (z "
-"zachowaniem wyglądu)"
+#: ../src/ui/dialog/transformation.cpp:124
+msgid "_Rotate"
+msgstr "_Obróć"
 
-#: ../src/verbs.cpp:2396
-msgid "Flip _Horizontal"
-msgstr "Odbij pozio_mo"
+#: ../src/ui/dialog/transformation.cpp:127
+msgid "Ske_w"
+msgstr "Po_chyl"
 
-#: ../src/verbs.cpp:2396
-msgid "Flip selected objects horizontally"
-msgstr "Odbij zaznaczone obiekty poziomo"
+#: ../src/ui/dialog/transformation.cpp:130
+msgid "Matri_x"
+msgstr "_Macierz"
 
-#: ../src/verbs.cpp:2399
-msgid "Flip _Vertical"
-msgstr "Odbij pio_nowo"
+#: ../src/ui/dialog/transformation.cpp:153
+msgid "Reset the values on the current tab to defaults"
+msgstr "Zresetuj wartości w aktywnej karcie do wartości domyślnych"
 
-#: ../src/verbs.cpp:2399
-msgid "Flip selected objects vertically"
-msgstr "Odbij zaznaczone obiekty pionowo"
+#: ../src/ui/dialog/transformation.cpp:160
+msgid "Apply transformation to selection"
+msgstr "Zastosuj przekształcenie do zaznaczenia"
 
-#: ../src/verbs.cpp:2402
-msgid "Apply mask to selection (using the topmost object as mask)"
-msgstr ""
-"Nakłada maskę na zaznaczenie (wykorzystując obiekt na wierzchu jako maskę)"
+#: ../src/ui/dialog/transformation.cpp:842
+msgid "Edit transformation matrix"
+msgstr "Edytuj macierz przekształcenia"
 
-#: ../src/verbs.cpp:2404
-msgid "Edit mask"
-msgstr "Edytuj maskę"
+#: ../src/ui/dialog/whiteboard-connect.cpp:44
+msgid "_Register"
+msgstr "_Rejestruj"
 
-#: ../src/verbs.cpp:2405 ../src/verbs.cpp:2411
-msgid "_Release"
-msgstr "_Zdejmij"
+#: ../src/ui/dialog/whiteboard-connect.cpp:44
+msgid "_Use SSL"
+msgstr "_Użyj SSL"
 
-#: ../src/verbs.cpp:2406
-msgid "Remove mask from selection"
-msgstr "Zdejmuje maskę z zaznaczonych obiektów"
+#. Construct dialog interface
+#: ../src/ui/dialog/whiteboard-connect.cpp:75
+msgid "_Server:"
+msgstr "_Serwer:"
 
-#: ../src/verbs.cpp:2408
-msgid ""
-"Apply clipping path to selection (using the topmost object as clipping path)"
-msgstr ""
-"Nakłada ścieżkę przycinającą na zaznaczenie wykorzystując obiekt na wierzchu "
-"jako ścieżkę przycinającą"
+#: ../src/ui/dialog/whiteboard-connect.cpp:76
+msgid "_Username:"
+msgstr "Nazwa _użytkownika:"
 
-#: ../src/verbs.cpp:2410 ../src/widgets/toolbox.cpp:1222
-msgid "Edit clipping path"
-msgstr "Edytuj ścieżkę przycinania"
+#: ../src/ui/dialog/whiteboard-connect.cpp:77
+msgid "_Password:"
+msgstr "_Hasło:"
 
-#: ../src/verbs.cpp:2412
-msgid "Remove clipping path from selection"
-msgstr "Usuwa z zaznaczenia ścieżkę przycinającą"
+#: ../src/ui/dialog/whiteboard-connect.cpp:78
+msgid "P_ort:"
+msgstr "P_ort:"
 
-#. Tools
-#: ../src/verbs.cpp:2415
-msgid "Select"
-msgstr "Wskaźnik"
+#. Buttons
+#: ../src/ui/dialog/whiteboard-connect.cpp:115
+msgid "Connect"
+msgstr "Połącz"
 
-#: ../src/verbs.cpp:2416
-msgid "Select and transform objects"
-msgstr "Wskaźnik: Zaznaczanie i przekształcanie obiektów"
+#: ../src/ui/dialog/whiteboard-connect.cpp:146
+msgid "Establishing connection to Jabber server <b>%1</b>"
+msgstr "Ustanawianie połączenia z serwerem Jabbera <b>%1</b>"
 
-#: ../src/verbs.cpp:2417
-msgid "Node Edit"
-msgstr "Edycja węzłów"
+#: ../src/ui/dialog/whiteboard-connect.cpp:173
+#: ../src/ui/dialog/whiteboard-connect.cpp:219
+#: ../src/ui/dialog/whiteboard-connect.cpp:257
+msgid "Failed to establish connection to Jabber server <b>%1</b>"
+msgstr "Nie udało się ustanowić połączenia z serwerem Jabbera <b>%1</b>"
 
-#: ../src/verbs.cpp:2418
-msgid "Edit paths by nodes"
-msgstr "Edycja węzłów: Edytowanie węzłów i uchwytów sterujących ścieżek"
+#: ../src/ui/dialog/whiteboard-connect.cpp:212
+msgid "Establishing connection to Jabber server <b>%1</b> as user <b>%2</b>"
+msgstr "Ustanowiono połączenie z serwerem Jabbera <b>%1</b> jako <b>%2</b>"
 
-#: ../src/verbs.cpp:2420
-msgid "Tweak objects by sculpting or painting"
-msgstr "Ulepszanie: Ulepszanie obiektów za pomocą rzeźbienia lub malowania"
+#: ../src/ui/dialog/whiteboard-connect.cpp:224
+msgid "Authentication failed on Jabber server <b>%1</b> as <b>%2</b>"
+msgstr "Autoryzacja na serwerze Jabbera <b>%1</b> jako <b>%2</b> się nie powiodła"
 
-#: ../src/verbs.cpp:2422
-msgid "Create rectangles and squares"
-msgstr "Prostokąt: Tworzenie prostokątów i kwadratów"
+#: ../src/ui/dialog/whiteboard-connect.cpp:229
+#: ../src/ui/dialog/whiteboard-connect.cpp:267
+msgid "SSL initialization failed when connecting to Jabber server <b>%1</b>"
+msgstr "Nie udało się zainicjować obsługi SSL w trakcie połączenia z serwerem Jabbera <b>%1</b>"
 
-#: ../src/verbs.cpp:2424
-msgid "Create 3D boxes"
-msgstr "Obiekt 3D: Tworzenie obiektów 3D"
+#: ../src/ui/dialog/whiteboard-connect.cpp:235
+#: ../src/ui/dialog/whiteboard-connect.cpp:273
+msgid "Connected to Jabber server <b>%1</b> as <b>%2</b>"
+msgstr "Połączono z serwerem Jabbera <b>%1</b> jako <b>%2</b>"
 
-#: ../src/verbs.cpp:2426
-msgid "Create circles, ellipses, and arcs"
-msgstr "Okrąg: Tworzenie okręgów, elips i łuków"
+#: ../src/ui/dialog/whiteboard-connect.cpp:262
+msgid "Registration failed on Jabber server <b>%1</b> as <b>%2</b>"
+msgstr "Nie udało się zarejestrować na serwerze Jabbera <b>%1</b> jako <b>%2</b>"
 
-#: ../src/verbs.cpp:2428
-msgid "Create stars and polygons"
-msgstr "Gwiazda: Tworzenie gwiazd i wielokątów"
+#. Construct labels
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:74
+msgid "Chatroom _name:"
+msgstr "_Nazwa pokoju rozmów:"
 
-#: ../src/verbs.cpp:2430
-msgid "Create spirals"
-msgstr "Spirala: Tworzenie spiral"
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:75
+msgid "Chatroom _server:"
+msgstr "_Serwer pokoju rozmów:"
 
-#: ../src/verbs.cpp:2432
-msgid "Draw freehand lines"
-msgstr "Ołówek: Ręczne rysowanie krzywych"
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:76
+msgid "Chatroom _password:"
+msgstr "_Hasło pokoju rozmów:"
 
-#: ../src/verbs.cpp:2434
-msgid "Draw Bezier curves and straight lines"
-msgstr "Pióro: Rysowanie krzywych Beziera i linii prostych"
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:77
+#, fuzzy
+msgid "Chatroom _handle:"
+msgstr "_Nazwa pokoju rozmów"
 
-#: ../src/verbs.cpp:2436
-msgid "Draw calligraphic or brush strokes"
-msgstr "Kaligrafia: Tworzenie linii kaligraficznych lub pociągnięć pędzlem"
+#. Button setup and callback registration
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:101
+msgid "Connect to chatroom"
+msgstr "Połącz z pokojem rozmów"
 
-#: ../src/verbs.cpp:2438
-msgid "Create and edit text objects"
-msgstr "Tekst: Tworzenie i modyfikowanie obiektów tekstowych"
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:136
+msgid "Synchronizing with chatroom <b>%1@%2</b> using the handle <b>%3</b>"
+msgstr "Synchronizowanie z pokojem rozmów <b>%1@%2</b> używając nazwy <b>%3</b>"
 
-#: ../src/verbs.cpp:2440
-msgid "Create and edit gradients"
-msgstr "Gradient: Tworzenie i modyfikowanie gradientów"
+#. Construct dialog interface
+#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:76
+msgid "_User's Jabber ID:"
+msgstr "ID Jabbera _użytkownika"
 
-#: ../src/verbs.cpp:2442
-msgid "Zoom in or out"
-msgstr "Powiększenie: Zmienianie skali wyświetlania rysunku"
+#. Buttons
+#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:80
+msgid "_Invite user"
+msgstr "_Zaproś"
 
-#: ../src/verbs.cpp:2444
-msgid "Pick colors from image"
-msgstr "Próbnik koloru: Pobieranie kolorów z obrazka"
+#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:81
+msgid "_Cancel"
+msgstr "_Anuluj"
 
-#: ../src/verbs.cpp:2446
-msgid "Create diagram connectors"
-msgstr "Łącznik: Tworzenie diagramu łączników"
+#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:92
+msgid "Buddy List"
+msgstr "Lista znajomych"
 
-#: ../src/verbs.cpp:2448
-msgid "Fill bounded areas"
-msgstr "Wypełnienie: Wypełnianie kolorem zaznaczonych obszarów"
+#: ../src/ui/dialog/whiteboard-sharewithuser.cpp:181
+msgid "Sending whiteboard invitation to <b>%1</b>"
+msgstr "Wysyłanie zaproszenia do <b>%1</b>"
 
-#: ../src/verbs.cpp:2449
-msgid "LPE Edit"
-msgstr "Edytuj LPE"
+#. FIXME: strings are replaced by placeholders, NOT to be translated until the code is enabled
+#. See http://sourceforge.net/mailarchive/message.php?msg_id=11746016 for details
+#. File menu
+#. Edit menu
+#. View menu
+#. Layer menu
+#. Object menu
+#. Path menu
+#. add(Gtk::StockItem(CLEANUP, _("PLACEHOLDER, do not translate"))); (using Gtk::Stock::CLEAR)
+#. Text menu
+#. About menu
+#. Tools toolbox
+#. Select Tool controls
+#. Node Tool controls
+#. Calligraphy Tool controls
+#. Session playback controls
+#: ../src/ui/stock-items.cpp:31
+#: ../src/ui/stock-items.cpp:32
+#: ../src/ui/stock-items.cpp:33
+#: ../src/ui/stock-items.cpp:34
+#: ../src/ui/stock-items.cpp:35
+#: ../src/ui/stock-items.cpp:36
+#: ../src/ui/stock-items.cpp:37
+#: ../src/ui/stock-items.cpp:38
+#: ../src/ui/stock-items.cpp:39
+#: ../src/ui/stock-items.cpp:40
+#: ../src/ui/stock-items.cpp:41
+#: ../src/ui/stock-items.cpp:42
+#: ../src/ui/stock-items.cpp:45
+#: ../src/ui/stock-items.cpp:46
+#: ../src/ui/stock-items.cpp:47
+#: ../src/ui/stock-items.cpp:48
+#: ../src/ui/stock-items.cpp:49
+#: ../src/ui/stock-items.cpp:50
+#: ../src/ui/stock-items.cpp:51
+#: ../src/ui/stock-items.cpp:52
+#: ../src/ui/stock-items.cpp:53
+#: ../src/ui/stock-items.cpp:54
+#: ../src/ui/stock-items.cpp:55
+#: ../src/ui/stock-items.cpp:56
+#: ../src/ui/stock-items.cpp:57
+#: ../src/ui/stock-items.cpp:58
+#: ../src/ui/stock-items.cpp:61
+#: ../src/ui/stock-items.cpp:62
+#: ../src/ui/stock-items.cpp:63
+#: ../src/ui/stock-items.cpp:64
+#: ../src/ui/stock-items.cpp:65
+#: ../src/ui/stock-items.cpp:66
+#: ../src/ui/stock-items.cpp:67
+#: ../src/ui/stock-items.cpp:68
+#: ../src/ui/stock-items.cpp:69
+#: ../src/ui/stock-items.cpp:70
+#: ../src/ui/stock-items.cpp:71
+#: ../src/ui/stock-items.cpp:72
+#: ../src/ui/stock-items.cpp:73
+#: ../src/ui/stock-items.cpp:74
+#: ../src/ui/stock-items.cpp:75
+#: ../src/ui/stock-items.cpp:76
+#: ../src/ui/stock-items.cpp:77
+#: ../src/ui/stock-items.cpp:78
+#: ../src/ui/stock-items.cpp:79
+#: ../src/ui/stock-items.cpp:80
+#: ../src/ui/stock-items.cpp:81
+#: ../src/ui/stock-items.cpp:82
+#: ../src/ui/stock-items.cpp:83
+#: ../src/ui/stock-items.cpp:84
+#: ../src/ui/stock-items.cpp:85
+#: ../src/ui/stock-items.cpp:86
+#: ../src/ui/stock-items.cpp:87
+#: ../src/ui/stock-items.cpp:88
+#: ../src/ui/stock-items.cpp:91
+#: ../src/ui/stock-items.cpp:92
+#: ../src/ui/stock-items.cpp:93
+#: ../src/ui/stock-items.cpp:94
+#: ../src/ui/stock-items.cpp:95
+#: ../src/ui/stock-items.cpp:96
+#: ../src/ui/stock-items.cpp:97
+#: ../src/ui/stock-items.cpp:98
+#: ../src/ui/stock-items.cpp:99
+#: ../src/ui/stock-items.cpp:100
+#: ../src/ui/stock-items.cpp:101
+#: ../src/ui/stock-items.cpp:102
+#: ../src/ui/stock-items.cpp:103
+#: ../src/ui/stock-items.cpp:104
+#: ../src/ui/stock-items.cpp:107
+#: ../src/ui/stock-items.cpp:108
+#: ../src/ui/stock-items.cpp:109
+#: ../src/ui/stock-items.cpp:110
+#: ../src/ui/stock-items.cpp:111
+#: ../src/ui/stock-items.cpp:112
+#: ../src/ui/stock-items.cpp:113
+#: ../src/ui/stock-items.cpp:114
+#: ../src/ui/stock-items.cpp:115
+#: ../src/ui/stock-items.cpp:116
+#: ../src/ui/stock-items.cpp:117
+#: ../src/ui/stock-items.cpp:118
+#: ../src/ui/stock-items.cpp:119
+#: ../src/ui/stock-items.cpp:120
+#: ../src/ui/stock-items.cpp:121
+#: ../src/ui/stock-items.cpp:122
+#: ../src/ui/stock-items.cpp:123
+#: ../src/ui/stock-items.cpp:124
+#: ../src/ui/stock-items.cpp:125
+#: ../src/ui/stock-items.cpp:126
+#: ../src/ui/stock-items.cpp:129
+#: ../src/ui/stock-items.cpp:130
+#: ../src/ui/stock-items.cpp:131
+#: ../src/ui/stock-items.cpp:132
+#: ../src/ui/stock-items.cpp:133
+#: ../src/ui/stock-items.cpp:134
+#: ../src/ui/stock-items.cpp:135
+#: ../src/ui/stock-items.cpp:136
+#: ../src/ui/stock-items.cpp:137
+#: ../src/ui/stock-items.cpp:138
+#: ../src/ui/stock-items.cpp:139
+#: ../src/ui/stock-items.cpp:140
+#: ../src/ui/stock-items.cpp:141
+#: ../src/ui/stock-items.cpp:142
+#: ../src/ui/stock-items.cpp:143
+#: ../src/ui/stock-items.cpp:144
+#: ../src/ui/stock-items.cpp:145
+#: ../src/ui/stock-items.cpp:149
+#: ../src/ui/stock-items.cpp:150
+#: ../src/ui/stock-items.cpp:151
+#: ../src/ui/stock-items.cpp:152
+#: ../src/ui/stock-items.cpp:155
+#: ../src/ui/stock-items.cpp:156
+#: ../src/ui/stock-items.cpp:157
+#: ../src/ui/stock-items.cpp:160
+#: ../src/ui/stock-items.cpp:161
+#: ../src/ui/stock-items.cpp:162
+#: ../src/ui/stock-items.cpp:163
+#: ../src/ui/stock-items.cpp:164
+#: ../src/ui/stock-items.cpp:165
+#: ../src/ui/stock-items.cpp:166
+#: ../src/ui/stock-items.cpp:167
+#: ../src/ui/stock-items.cpp:168
+#: ../src/ui/stock-items.cpp:169
+#: ../src/ui/stock-items.cpp:170
+#: ../src/ui/stock-items.cpp:171
+#: ../src/ui/stock-items.cpp:174
+#: ../src/ui/stock-items.cpp:175
+#: ../src/ui/stock-items.cpp:176
+#: ../src/ui/stock-items.cpp:177
+#: ../src/ui/stock-items.cpp:180
+#: ../src/ui/stock-items.cpp:181
+#: ../src/ui/stock-items.cpp:182
+#: ../src/ui/stock-items.cpp:183
+#: ../src/ui/stock-items.cpp:184
+#: ../src/ui/stock-items.cpp:185
+#: ../src/ui/stock-items.cpp:186
+#: ../src/ui/stock-items.cpp:187
+#: ../src/ui/stock-items.cpp:188
+#: ../src/ui/stock-items.cpp:189
+#: ../src/ui/stock-items.cpp:190
+#: ../src/ui/stock-items.cpp:193
+#: ../src/ui/stock-items.cpp:194
+#: ../src/ui/stock-items.cpp:197
+#: ../src/ui/stock-items.cpp:198
+#: ../src/ui/stock-items.cpp:199
+#: ../src/ui/stock-items.cpp:200
+#: ../src/ui/stock-items.cpp:201
+#: ../src/ui/view/edit-widget.cpp:343
+#: ../src/ui/view/edit-widget.cpp:348
+#: ../src/ui/view/edit-widget.cpp:356
+#: ../src/ui/view/edit-widget.cpp:361
+#: ../src/ui/view/edit-widget.cpp:366
+#: ../src/ui/view/edit-widget.cpp:371
+#: ../src/ui/view/edit-widget.cpp:376
+#: ../src/ui/view/edit-widget.cpp:381
+#: ../src/ui/view/edit-widget.cpp:394
+#: ../src/ui/view/edit-widget.cpp:399
+#: ../src/ui/view/edit-widget.cpp:413
+#: ../src/ui/view/edit-widget.cpp:417
+#: ../src/ui/view/edit-widget.cpp:421
+#: ../src/ui/view/edit-widget.cpp:425
+#: ../src/ui/view/edit-widget.cpp:429
+#: ../src/ui/view/edit-widget.cpp:433
+#: ../src/ui/view/edit-widget.cpp:447
+#: ../src/ui/view/edit-widget.cpp:451
+#: ../src/ui/view/edit-widget.cpp:455
+#: ../src/ui/view/edit-widget.cpp:486
+#: ../src/ui/view/edit-widget.cpp:495
+#: ../src/ui/view/edit-widget.cpp:499
+#: ../src/ui/view/edit-widget.cpp:503
+#: ../src/ui/view/edit-widget.cpp:507
+#: ../src/ui/view/edit-widget.cpp:511
+#: ../src/ui/view/edit-widget.cpp:515
+#: ../src/ui/view/edit-widget.cpp:519
+#: ../src/ui/view/edit-widget.cpp:523
+#: ../src/ui/view/edit-widget.cpp:527
+#: ../src/ui/view/edit-widget.cpp:531
+#: ../src/ui/view/edit-widget.cpp:535
+#: ../src/ui/view/edit-widget.cpp:632
+#: ../src/ui/view/edit-widget.cpp:644
+#: ../src/ui/view/edit-widget.cpp:648
+#: ../src/ui/view/edit-widget.cpp:652
+#: ../src/ui/view/edit-widget.cpp:656
+#: ../src/ui/view/edit-widget.cpp:660
+#: ../src/ui/view/edit-widget.cpp:664
+#: ../src/ui/view/edit-widget.cpp:668
+#: ../src/ui/view/edit-widget.cpp:672
+#: ../src/ui/view/edit-widget.cpp:676
+#: ../src/ui/view/edit-widget.cpp:680
+#: ../src/ui/view/edit-widget.cpp:684
+#: ../src/ui/view/edit-widget.cpp:688
+#: ../src/ui/view/edit-widget.cpp:692
+#: ../src/ui/view/edit-widget.cpp:696
+#: ../src/ui/view/edit-widget.cpp:700
+#: ../src/ui/view/edit-widget.cpp:704
+#: ../src/ui/view/edit-widget.cpp:709
+#: ../src/ui/view/edit-widget.cpp:715
+#: ../src/ui/view/edit-widget.cpp:719
+#: ../src/ui/view/edit-widget.cpp:769
+#: ../src/ui/view/edit-widget.cpp:774
+#: ../src/ui/view/edit-widget.cpp:810
+#: ../src/ui/view/edit-widget.cpp:815
+#: ../src/ui/view/edit-widget.cpp:820
+#: ../src/ui/view/edit-widget.cpp:824
+#: ../src/ui/view/edit-widget.cpp:828
+#: ../src/ui/view/edit-widget.cpp:832
+#: ../src/ui/view/edit-widget.cpp:836
+#: ../src/ui/view/edit-widget.cpp:840
+#: ../src/ui/view/edit-widget.cpp:844
+#: ../src/ui/view/edit-widget.cpp:848
+#: ../src/ui/view/edit-widget.cpp:852
+#: ../src/ui/view/edit-widget.cpp:856
+#: ../src/ui/view/edit-widget.cpp:861
+#: ../src/ui/view/edit-widget.cpp:865
+#: ../src/ui/view/edit-widget.cpp:869
+#: ../src/ui/view/edit-widget.cpp:873
+#: ../src/ui/view/edit-widget.cpp:878
+#: ../src/ui/view/edit-widget.cpp:882
+#: ../src/ui/view/edit-widget.cpp:886
+#: ../src/ui/view/edit-widget.cpp:890
+#: ../src/ui/view/edit-widget.cpp:894
+#: ../src/ui/view/edit-widget.cpp:898
+#: ../src/ui/view/edit-widget.cpp:902
+#: ../src/ui/view/edit-widget.cpp:906
+#: ../src/ui/view/edit-widget.cpp:910
+#: ../src/ui/view/edit-widget.cpp:914
+#: ../src/ui/view/edit-widget.cpp:918
+#: ../src/ui/view/edit-widget.cpp:1003
+msgid "PLACEHOLDER, do not translate"
+msgstr "-"
 
-#: ../src/verbs.cpp:2450
-msgid "Edit Live Path Effect parameters"
-msgstr "Edycja parametrów efektu żywej ścieżki"
+#: ../src/ui/view/edit-widget.cpp:1062
+#: ../src/widgets/desktop-widget.cpp:379
+msgid "Zoom drawing if window size changes"
+msgstr "Dopasowuje rozmiar całego rysunku do okna"
 
-#: ../src/verbs.cpp:2452
-msgid "Erase existing paths"
-msgstr "Usuń istniejące ścieżki"
+#: ../src/ui/view/edit-widget.cpp:1083
+#: ../src/widgets/desktop-widget.cpp:504
+msgid "Cursor coordinates"
+msgstr "Współrzędne kursora"
 
-#. Tool prefs
-#: ../src/verbs.cpp:2454
-msgid "Selector Preferences"
-msgstr "Ustawienia narzędzia \"Wskaźnik\""
+#: ../src/ui/view/edit-widget.cpp:1100
+#, fuzzy
+msgid "<b>Welcome to Inkscape!</b> Use shape or drawing tools to create objects; use selector (arrow) to move or transform them."
+msgstr "<b>Witaj w programie Inkscape!</b> Wybierz z przybornika narzędzie do rysowania lub użyj wskaźnika (strzałki), aby przesuwać lub przekształcać obiekty."
 
-#: ../src/verbs.cpp:2455
-msgid "Open Preferences for the Selector tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Wskaźnik\""
+#: ../src/ui/view/edit-widget.cpp:1211
+#: ../src/widgets/desktop-widget.cpp:839
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Save changes to document \"%s\" before closing?</span>\n"
+"\n"
+"If you close without saving, your changes will be discarded."
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Czy przed zamknięciem programu zapisać zmiany w dokumencie \"%s\"?</span>\n"
+"\n"
+"Zamknięcie bez zapisywania spowoduje utratę wprowadzonych zmian."
 
-#: ../src/verbs.cpp:2456
-msgid "Node Tool Preferences"
-msgstr "Ustawienia narzędzia \"Edycja węzłów\""
+#: ../src/ui/view/edit-widget.cpp:1222
+#: ../src/ui/view/edit-widget.cpp:1269
+#: ../src/widgets/desktop-widget.cpp:846
+#: ../src/widgets/desktop-widget.cpp:902
+msgid "Close _without saving"
+msgstr "_Nie zapisuj"
 
-#: ../src/verbs.cpp:2457
-msgid "Open Preferences for the Node tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Edycja węzłów\""
+#: ../src/ui/view/edit-widget.cpp:1257
+#: ../src/widgets/desktop-widget.cpp:894
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a format (%s) that may cause data loss!</span>\n"
+"\n"
+"Do you want to save this file as an Inkscape SVG?"
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Plik \"%s\" został zapisany w formacie (%s), który może spowodować utratę danych!</span>\n"
+"\n"
+"Czy chcesz zapisać ten plik w formacie SVG Inkscape'a?"
 
-#: ../src/verbs.cpp:2458
-msgid "Tweak Tool Preferences"
-msgstr "Ustawienia narzędzia \"Ulepszanie\""
+#: ../src/ui/view/edit-widget.cpp:1272
+#: ../src/widgets/desktop-widget.cpp:905
+msgid "_Save as SVG"
+msgstr "Zapisz jako S_VG"
 
-#: ../src/verbs.cpp:2459
-msgid "Open Preferences for the Tweak tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Ulepszanie\""
+#: ../src/ui/widget/filter-effect-chooser.cpp:25
+msgid "_Blend mode:"
+msgstr "Tryb _przenikania:"
 
-#: ../src/verbs.cpp:2460
-msgid "Rectangle Preferences"
-msgstr "Ustawienia narzędzia \"Prostokąt\""
+#: ../src/ui/widget/filter-effect-chooser.cpp:26
+msgid "B_lur:"
+msgstr "_Rozmycie"
 
-#: ../src/verbs.cpp:2461
-msgid "Open Preferences for the Rectangle tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Prostokąt\""
+#: ../src/ui/widget/licensor.cpp:35
+msgid "Proprietary"
+msgstr "Własność autora"
 
-#: ../src/verbs.cpp:2462
-msgid "3D Box Preferences"
-msgstr "Ustawienia narzędzia \"Obiekt 3D\""
+#: ../src/ui/widget/licensor.cpp:38
+msgid "Other"
+msgstr "Inne"
 
-#: ../src/verbs.cpp:2463
-msgid "Open Preferences for the 3D Box tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Obiekt 3D\""
+#: ../src/ui/widget/object-composite-settings.cpp:158
+msgid "Change blur"
+msgstr "Zmień rozmycie"
 
-#: ../src/verbs.cpp:2464
-msgid "Ellipse Preferences"
-msgstr "Ustawienia narzędzia \"Okrąg\""
+#: ../src/ui/widget/object-composite-settings.cpp:198
+#: ../src/ui/widget/selected-style.cpp:851
+#: ../src/ui/widget/selected-style.cpp:1145
+msgid "Change opacity"
+msgstr "Zmień krycie"
 
-#: ../src/verbs.cpp:2465
-msgid "Open Preferences for the Ellipse tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Okrąg\""
+#: ../src/ui/widget/page-sizer.cpp:208
+msgid "U_nits:"
+msgstr "_Jednostki:"
 
-#: ../src/verbs.cpp:2466
-msgid "Star Preferences"
-msgstr "Ustawienia narzędzia \"Gwiazda\""
+#: ../src/ui/widget/page-sizer.cpp:209
+msgid "Width of paper"
+msgstr "Szerokość papieru"
 
-#: ../src/verbs.cpp:2467
-msgid "Open Preferences for the Star tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Gwiazda\""
+#: ../src/ui/widget/page-sizer.cpp:210
+msgid "Height of paper"
+msgstr "Wysokość papieru"
 
-#: ../src/verbs.cpp:2468
-msgid "Spiral Preferences"
-msgstr "Ustawienia narzędzia \"Spirala\""
+#: ../src/ui/widget/page-sizer.cpp:210
+msgid "_Height:"
+msgstr "_Wysokość:"
 
-#: ../src/verbs.cpp:2469
-msgid "Open Preferences for the Spiral tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Spirala\""
+#: ../src/ui/widget/page-sizer.cpp:256
+msgid "P_age size:"
+msgstr "_Rozmiar:"
 
-#: ../src/verbs.cpp:2470
-msgid "Pencil Preferences"
-msgstr "Ustawienia narzędzia \"Ołówek\""
+#: ../src/ui/widget/page-sizer.cpp:264
+msgid "Page orientation:"
+msgstr "Orientacja:"
 
-#: ../src/verbs.cpp:2471
-msgid "Open Preferences for the Pencil tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Ołówek\""
+#: ../src/ui/widget/page-sizer.cpp:267
+msgid "_Landscape"
+msgstr "P_ozioma"
 
-#: ../src/verbs.cpp:2472
-msgid "Pen Preferences"
-msgstr "Ustawienia narzędzia \"Pióro\""
+#: ../src/ui/widget/page-sizer.cpp:272
+msgid "_Portrait"
+msgstr "_Pionowa"
 
-#: ../src/verbs.cpp:2473
-msgid "Open Preferences for the Pen tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Pióro\""
+#. ## Set up custom size frame
+#: ../src/ui/widget/page-sizer.cpp:279
+msgid "Custom size"
+msgstr "Rozmiar niestandardowy"
 
-#: ../src/verbs.cpp:2474
-msgid "Calligraphic Preferences"
-msgstr "Ustawienia narzędzia \"Kaligrafia\""
+#: ../src/ui/widget/page-sizer.cpp:292
+msgid "_Fit page to selection"
+msgstr "_Dopasuj do ramki zaznaczenia"
 
-#: ../src/verbs.cpp:2475
-msgid "Open Preferences for the Calligraphy tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Kaligrafia\""
+#: ../src/ui/widget/page-sizer.cpp:293
+msgid "Resize the page to fit the current selection, or the entire drawing if there is no selection"
+msgstr "Zmienia rozmiar strony tak, aby dopasować do aktualnego zaznaczenia lub jeśli nie ma zaznaczenia, zmieścić cały rysunek"
 
-#: ../src/verbs.cpp:2476
-msgid "Text Preferences"
-msgstr "Ustawienia narzędzia \"Tekst\""
+#: ../src/ui/widget/page-sizer.cpp:351
+msgid "Set page size"
+msgstr "Określ rozmiar strony"
 
-#: ../src/verbs.cpp:2477
-msgid "Open Preferences for the Text tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Tekst\""
+#: ../src/ui/widget/panel.cpp:121
+msgid "List"
+msgstr "Lista"
 
-#: ../src/verbs.cpp:2478
-msgid "Gradient Preferences"
-msgstr "Ustawienia narzędzia \"Gradient\""
+#: ../src/ui/widget/panel.cpp:144
+msgid "swatches|Size"
+msgstr "Wysokość elementów palety"
 
-#: ../src/verbs.cpp:2479
-msgid "Open Preferences for the Gradient tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Gradient\""
+#: ../src/ui/widget/panel.cpp:148
+msgid "tiny"
+msgstr "Bardzo niskie"
 
-#: ../src/verbs.cpp:2480
-msgid "Zoom Preferences"
-msgstr "Ustawienia narzędzia \"Powiększenie\""
+#: ../src/ui/widget/panel.cpp:149
+msgid "small"
+msgstr "Niskie"
 
-#: ../src/verbs.cpp:2481
-msgid "Open Preferences for the Zoom tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Powiększenie\""
+#. TRANSLATORS: Translate only the word "medium". Indicates size of colour swatches
+#: ../src/ui/widget/panel.cpp:151
+msgid "swatchesHeight|medium"
+msgstr "Średnie"
 
-#: ../src/verbs.cpp:2482
-msgid "Dropper Preferences"
-msgstr "Ustawienia narzędzia \"Próbnik koloru\""
+#: ../src/ui/widget/panel.cpp:152
+msgid "large"
+msgstr "Wysokie"
 
-#: ../src/verbs.cpp:2483
-msgid "Open Preferences for the Dropper tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Próbnik koloru\""
+#: ../src/ui/widget/panel.cpp:153
+msgid "huge"
+msgstr "Bardzo wysokie"
 
-#: ../src/verbs.cpp:2484
-msgid "Connector Preferences"
-msgstr "Ustawienia narzędzia \"Łącznik\""
+#: ../src/ui/widget/panel.cpp:175
+msgid "swatches|Width"
+msgstr "Szerokość elementów palety"
 
-#: ../src/verbs.cpp:2485
-msgid "Open Preferences for the Connector tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Łącznik\""
+#: ../src/ui/widget/panel.cpp:179
+msgid "narrower"
+msgstr "Bardzo wąskie"
 
-#: ../src/verbs.cpp:2486
-msgid "Paint Bucket Preferences"
-msgstr "Ustawienia narzędzia \"Wypełnienie\""
+#: ../src/ui/widget/panel.cpp:180
+msgid "narrow"
+msgstr "Wąskie"
 
-#: ../src/verbs.cpp:2487
-msgid "Open Preferences for the Paint Bucket tool"
-msgstr "Otwiera okno ustawień dla narzędzia \"Wypełnienie\""
+#. TRANSLATORS: Translate only the word "medium". Indicates width of colour swatches
+#: ../src/ui/widget/panel.cpp:182
+msgid "swatchesWidth|medium"
+msgstr "Średnie"
 
-#: ../src/verbs.cpp:2488
-msgid "Eraser Preferences"
-msgstr "Ustawienia usuwania"
+#: ../src/ui/widget/panel.cpp:183
+msgid "wide"
+msgstr "Szerokie"
 
-#: ../src/verbs.cpp:2489
-msgid "Open Preferences for the Eraser tool"
-msgstr "Otwiera okno ustawień dla narzędzia usuwania"
+#: ../src/ui/widget/panel.cpp:184
+msgid "wider"
+msgstr "Bardzo szerokie"
 
-#. Zoom/View
-#: ../src/verbs.cpp:2492
-msgid "Zoom In"
-msgstr "Powiększ"
+#. TRANSLATORS: Translate only the word "Wrap". Indicates how colour swatches are displayed
+#: ../src/ui/widget/panel.cpp:215
+msgid "swatches|Wrap"
+msgstr "Zawijaj"
 
-#: ../src/verbs.cpp:2492
-msgid "Zoom in"
-msgstr "Powiększ"
+#: ../src/ui/widget/preferences-widget.cpp:504
+msgid "Reset"
+msgstr "Resetuj"
 
-#: ../src/verbs.cpp:2493
-msgid "Zoom Out"
-msgstr "Pomniejsz"
+#: ../src/ui/widget/random.cpp:123
+msgid "Reseed the random number generator; this creates a different sequence of random numbers."
+msgstr "Wygeneruj ponownie liczby losowe; operacja ta tworzy różne sekwencje liczb losowych"
 
-#: ../src/verbs.cpp:2493
-msgid "Zoom out"
-msgstr "Pomniejsz"
+#: ../src/ui/widget/rendering-options.cpp:39
+msgid "Backend"
+msgstr "Format wyjściowy"
 
-#: ../src/verbs.cpp:2494
-msgid "_Rulers"
-msgstr "_Linijki"
+#: ../src/ui/widget/rendering-options.cpp:40
+msgid "Vector"
+msgstr "Wektorowy"
 
-#: ../src/verbs.cpp:2494
-msgid "Show or hide the canvas rulers"
-msgstr "Wyświetla lub ukrywa linijki"
+#: ../src/ui/widget/rendering-options.cpp:41
+msgid "Bitmap"
+msgstr "Bitmapowy"
 
-#: ../src/verbs.cpp:2495
-msgid "Scroll_bars"
-msgstr "Paski p_rzewijania"
+#: ../src/ui/widget/rendering-options.cpp:42
+msgid "Bitmap options"
+msgstr "Opcje bitmapy"
 
-#: ../src/verbs.cpp:2495
-msgid "Show or hide the canvas scrollbars"
-msgstr "Wyświetla lub ukrywa paski przewijania"
+#: ../src/ui/widget/rendering-options.cpp:44
+msgid "Preferred resolution of rendering, in dots per inch."
+msgstr "Preferowana rozdzielczość renderowania (w dpi)"
 
-#: ../src/verbs.cpp:2496
-msgid "_Grid"
-msgstr "Wyświetl _siatkę"
+#: ../src/ui/widget/rendering-options.cpp:52
+msgid "Render using Cairo vector operations.  The resulting image is usually smaller in file size and can be arbitrarily scaled, but some filter effects will not be correctly rendered."
+msgstr "Renderuj stosując wektorowe operacje Cairo. Plik wynikowy jest zwykle mniejszy i można skalować zapisany w nim rysunek, ale niektóre efekty filtrów nie będą prawidłowo przetworzone."
 
-#: ../src/verbs.cpp:2496
-msgid "Show or hide the grid"
-msgstr "Wyświetla lub ukrywa siatkę"
+#: ../src/ui/widget/rendering-options.cpp:57
+msgid "Render everything as bitmap.  The resulting image is usually larger in file size and cannot be arbitrarily scaled without quality loss, but all objects will be rendered exactly as displayed."
+msgstr "Renderuj wszystko jako bitmapę. Plik wynikowy jest zwykle większy i nie można  skalować zapisanego w nim rysunku bez utraty jakości, ale wszystkie obiekty zostaną zobrazowane dokładnie tak jak są wyświetlane na ekranie."
 
-#: ../src/verbs.cpp:2497
-msgid "G_uides"
-msgstr "Wyświetl pro_wadnice"
+#: ../src/ui/widget/selected-style.cpp:106
+#: ../src/ui/widget/style-swatch.cpp:110
+msgid "Fill:"
+msgstr "Wypełnienie:"
 
-#: ../src/verbs.cpp:2497
-msgid "Show or hide guides (drag from a ruler to create a guide)"
-msgstr ""
-"Wyświetla lub ukrywa prowadnice (przeciągnij z linijki, aby utworzyć "
-"prowadnice)"
+#: ../src/ui/widget/selected-style.cpp:107
+#: ../src/ui/widget/style-swatch.cpp:111
+msgid "Stroke:"
+msgstr "Kontur:"
 
-#: ../src/verbs.cpp:2499
-msgid "Nex_t Zoom"
-msgstr "_Następne powiększenie"
+#: ../src/ui/widget/selected-style.cpp:108
+msgid "O:"
+msgstr "K:"
 
-#: ../src/verbs.cpp:2499
-msgid "Next zoom (from the history of zooms)"
-msgstr "Następne powiększenie (z historii powiększeń)"
+#: ../src/ui/widget/selected-style.cpp:150
+msgid "N/A"
+msgstr "N/D"
 
-#: ../src/verbs.cpp:2501
-msgid "Pre_vious Zoom"
-msgstr "_Poprzednie powiększenie"
+#: ../src/ui/widget/selected-style.cpp:153
+#: ../src/ui/widget/selected-style.cpp:1020
+#: ../src/ui/widget/selected-style.cpp:1021
+msgid "Nothing selected"
+msgstr "Nie zaznaczono żadnego obiektu"
 
-#: ../src/verbs.cpp:2501
-msgid "Previous zoom (from the history of zooms)"
-msgstr "Poprzednie powiększenie (z historii powiększeń)"
+#: ../src/ui/widget/selected-style.cpp:155
+#: ../src/ui/widget/style-swatch.cpp:328
+msgid "<i>None</i>"
+msgstr "<i>Brak</i>"
 
-#: ../src/verbs.cpp:2503
-msgid "Zoom 1:_1"
-msgstr "Skala 1:_1"
+#: ../src/ui/widget/selected-style.cpp:158
+#: ../src/ui/widget/style-swatch.cpp:330
+msgid "No fill"
+msgstr "Brak wypełnienia"
 
-#: ../src/verbs.cpp:2503
-msgid "Zoom to 1:1"
-msgstr "Skala 1:1"
+#: ../src/ui/widget/selected-style.cpp:158
+#: ../src/ui/widget/style-swatch.cpp:330
+msgid "No stroke"
+msgstr "Brak konturu"
 
-#: ../src/verbs.cpp:2505
-msgid "Zoom 1:_2"
-msgstr "Skala 1:_2"
+#: ../src/ui/widget/selected-style.cpp:160
+#: ../src/ui/widget/style-swatch.cpp:309
+#: ../src/widgets/paint-selector.cpp:189
+msgid "Pattern"
+msgstr "Deseń"
 
-#: ../src/verbs.cpp:2505
-msgid "Zoom to 1:2"
-msgstr "Skala 1:2"
+#: ../src/ui/widget/selected-style.cpp:163
+#: ../src/ui/widget/style-swatch.cpp:311
+#: ../src/widgets/paint-selector.cpp:997
+msgid "Pattern fill"
+msgstr "Wypełnienie desenia"
 
-#: ../src/verbs.cpp:2507
-msgid "_Zoom 2:1"
-msgstr "_Skala 2:1"
+#: ../src/ui/widget/selected-style.cpp:163
+#: ../src/ui/widget/style-swatch.cpp:311
+msgid "Pattern stroke"
+msgstr "Kontur desenia"
 
-#: ../src/verbs.cpp:2507
-msgid "Zoom to 2:1"
-msgstr "Skala 2:1"
+#: ../src/ui/widget/selected-style.cpp:165
+msgid "<b>L</b>"
+msgstr "<b>L</b>"
 
-#: ../src/verbs.cpp:2510
-msgid "_Fullscreen"
-msgstr "Pełny _ekran"
+#: ../src/ui/widget/selected-style.cpp:168
+#: ../src/ui/widget/style-swatch.cpp:303
+msgid "Linear gradient fill"
+msgstr "Wypełnienie gradientem liniowym"
 
-#: ../src/verbs.cpp:2510
-msgid "Stretch this document window to full screen"
-msgstr "Rozciąga okno dokumentu na cały ekran"
+#: ../src/ui/widget/selected-style.cpp:168
+#: ../src/ui/widget/style-swatch.cpp:303
+msgid "Linear gradient stroke"
+msgstr "Kontur z gradientem liniowym"
 
-#: ../src/verbs.cpp:2513
-msgid "Duplic_ate Window"
-msgstr "_Powiel okno"
+#: ../src/ui/widget/selected-style.cpp:175
+msgid "<b>R</b>"
+msgstr "<b>R</b>"
 
-#: ../src/verbs.cpp:2513
-msgid "Open a new window with the same document"
-msgstr "Otwiera nowe okno z tym samym dokumentem"
+#: ../src/ui/widget/selected-style.cpp:178
+#: ../src/ui/widget/style-swatch.cpp:307
+msgid "Radial gradient fill"
+msgstr "Wypełnienie gradientem radialnym"
+
+#: ../src/ui/widget/selected-style.cpp:178
+#: ../src/ui/widget/style-swatch.cpp:307
+msgid "Radial gradient stroke"
+msgstr "Kontur z gradientem radialnym"
 
-#: ../src/verbs.cpp:2515
-msgid "_New View Preview"
-msgstr "Nowy podgląd widoku"
+#: ../src/ui/widget/selected-style.cpp:185
+msgid "Different"
+msgstr "Różne"
 
-#: ../src/verbs.cpp:2516
-msgid "New View Preview"
-msgstr "Nowy podgląd widoku"
+#: ../src/ui/widget/selected-style.cpp:188
+msgid "Different fills"
+msgstr "Różne wypełnienia"
 
-#. "view_new_preview"
-#: ../src/verbs.cpp:2518
-msgid "_Normal"
-msgstr "_Normalny"
+#: ../src/ui/widget/selected-style.cpp:188
+msgid "Different strokes"
+msgstr "Różne kontury"
 
-#: ../src/verbs.cpp:2519
-msgid "Switch to normal display mode"
-msgstr "Przełącza do normalnego widoku"
+#: ../src/ui/widget/selected-style.cpp:190
+#: ../src/ui/widget/style-swatch.cpp:333
+msgid "<b>Unset</b>"
+msgstr "<b>Nie ustawiono</b>"
 
-#: ../src/verbs.cpp:2520
-msgid "No _Filters"
-msgstr "Bez _filtrów"
+#: ../src/ui/widget/selected-style.cpp:196
+msgid "Flat color fill"
+msgstr "Jednolity kolor wypełnienia"
 
-#: ../src/verbs.cpp:2521
-msgid "Switch to normal display without filters"
-msgstr "Przełącza do normalnego widoku bez filtrów"
+#: ../src/ui/widget/selected-style.cpp:196
+msgid "Flat color stroke"
+msgstr "Jednolity kolor konturu"
 
-#: ../src/verbs.cpp:2522
-msgid "_Outline"
-msgstr "_Szkieletowy"
+#. TRANSLATOR COMMENT: A means "Averaged"
+#: ../src/ui/widget/selected-style.cpp:199
+msgid "<b>a</b>"
+msgstr "<b>u</b>"
 
-#: ../src/verbs.cpp:2523
-msgid "Switch to outline (wireframe) display mode"
-msgstr "Przełącza do widoku konturowego (bez wypełnienia)"
+#: ../src/ui/widget/selected-style.cpp:202
+msgid "Fill is averaged over selected objects"
+msgstr "Uśredniony styl wypełnienia z zaznaczonych obiektów"
 
-#: ../src/verbs.cpp:2524
-msgid "_Toggle"
-msgstr "_Przełącz"
+#: ../src/ui/widget/selected-style.cpp:202
+msgid "Stroke is averaged over selected objects"
+msgstr "Uśredniony styl konturu z zaznaczonych obiektów"
 
-#: ../src/verbs.cpp:2525
-msgid "Toggle between normal and outline display modes"
-msgstr "Przełącza pomiędzy normalnym i szkieletowym trybem wyświetlania"
+#. TRANSLATOR COMMENT: M means "Multiple"
+#: ../src/ui/widget/selected-style.cpp:205
+msgid "<b>m</b>"
+msgstr "<b>w</b>"
 
-#: ../src/verbs.cpp:2527
-msgid "Color-managed view"
-msgstr "Za_rządzanie kolorem"
+#: ../src/ui/widget/selected-style.cpp:208
+msgid "Multiple selected objects have the same fill"
+msgstr "Wszystkie zaznaczone obiekty mają ten sam styl wypełnienia"
 
-#: ../src/verbs.cpp:2528
-msgid "Toggle color-managed display for this document window"
-msgstr "Przełącza zarządzanie kolorem monitora dla okna tego dokumentu"
+#: ../src/ui/widget/selected-style.cpp:208
+msgid "Multiple selected objects have the same stroke"
+msgstr "Wszystkie zaznaczone obiekty mają ten sam styl konturu"
 
-#: ../src/verbs.cpp:2530
-msgid "Ico_n Preview..."
-msgstr "Po_dgląd ikon..."
+#: ../src/ui/widget/selected-style.cpp:210
+msgid "Edit fill..."
+msgstr "Edytuj wypełnienie..."
 
-#: ../src/verbs.cpp:2531
-msgid "Open a window to preview objects at different icon resolutions"
-msgstr ""
-"Otwiera okno z podglądem zaznaczonych obiektów jako ikony w różnych "
-"rozdzielczościach"
+#: ../src/ui/widget/selected-style.cpp:210
+msgid "Edit stroke..."
+msgstr "Edytuj kontur..."
 
-#: ../src/verbs.cpp:2533
-msgid "Zoom to fit page in window"
-msgstr "Dopasuj stronę do okna"
+#: ../src/ui/widget/selected-style.cpp:214
+msgid "Last set color"
+msgstr "Ostatnio ustawiony kolor"
 
-#: ../src/verbs.cpp:2534
-msgid "Page _Width"
-msgstr "Szerokość s_trony"
+#: ../src/ui/widget/selected-style.cpp:218
+msgid "Last selected color"
+msgstr "Ostatnio zaznaczony kolor"
 
-#: ../src/verbs.cpp:2535
-msgid "Zoom to fit page width in window"
-msgstr "Dopasuj szerokość strony do okna"
+#: ../src/ui/widget/selected-style.cpp:222
+msgid "Invert"
+msgstr "Negatyw"
 
-#: ../src/verbs.cpp:2537
-msgid "Zoom to fit drawing in window"
-msgstr "Dopasuj rozmiar rysunku do okna"
+#: ../src/ui/widget/selected-style.cpp:226
+msgid "White"
+msgstr "Biały"
 
-#: ../src/verbs.cpp:2539
-msgid "Zoom to fit selection in window"
-msgstr "Dopasuj rozmiar zaznaczenia do okna"
+#: ../src/ui/widget/selected-style.cpp:230
+#: ../src/widgets/sp-color-icc-selector.cpp:237
+#: ../src/widgets/sp-color-scales.cpp:461
+#: ../src/widgets/sp-color-scales.cpp:462
+msgid "Black"
+msgstr "Czarny"
 
-#. Dialogs
-#: ../src/verbs.cpp:2542
-msgid "In_kscape Preferences..."
-msgstr "Usta_wienia Inkscape..."
+#: ../src/ui/widget/selected-style.cpp:234
+msgid "Copy color"
+msgstr "Kopiuj kolor"
 
-#: ../src/verbs.cpp:2543
-msgid "Edit global Inkscape preferences"
-msgstr "Ustawienia globalne Inkscape"
+#: ../src/ui/widget/selected-style.cpp:238
+msgid "Paste color"
+msgstr "Wklej kolor"
 
-#: ../src/verbs.cpp:2544
-msgid "_Document Properties..."
-msgstr "Właściwości doku_mentu..."
+#: ../src/ui/widget/selected-style.cpp:242
+#: ../src/ui/widget/selected-style.cpp:776
+msgid "Swap fill and stroke"
+msgstr "Zamień styl wypełnienia i konturu"
 
-#: ../src/verbs.cpp:2545
-msgid "Edit properties of this document (to be saved with the document)"
-msgstr "Edytuj właściwości dokumentu zapisywane razem z dokumentem"
+#: ../src/ui/widget/selected-style.cpp:246
+#: ../src/ui/widget/selected-style.cpp:518
+#: ../src/ui/widget/selected-style.cpp:527
+msgid "Make fill opaque"
+msgstr "Wyzeruj przezroczystość wypełnienia"
 
-#: ../src/verbs.cpp:2546
-msgid "Document _Metadata..."
-msgstr "Me_tadane dokumentu..."
+#: ../src/ui/widget/selected-style.cpp:246
+msgid "Make stroke opaque"
+msgstr "Wyzeruj przezroczystość konturu"
 
-#: ../src/verbs.cpp:2547
-msgid "Edit document metadata (to be saved with the document)"
-msgstr "Zmiana metadanych dokumentu (zapisywanych razem z dokumentem)"
+#: ../src/ui/widget/selected-style.cpp:308
+msgid "Remove"
+msgstr "Usuń"
 
-#: ../src/verbs.cpp:2548
-msgid "_Fill and Stroke..."
-msgstr "_Wypełnienie i kontur..."
+#: ../src/ui/widget/selected-style.cpp:539
+msgid "Apply last set color to fill"
+msgstr "Zastosuj dla wypełnienia ostatnio ustawiony kolor"
 
-#: ../src/verbs.cpp:2549
-msgid ""
-"Edit objects' colors, gradients, stroke width, arrowheads, dash patterns..."
-msgstr "Edytuj kolor, gradient, styl konturu obiektów"
+#: ../src/ui/widget/selected-style.cpp:551
+msgid "Apply last set color to stroke"
+msgstr "Zastosuj dla konturu ostatnio ustawiony kolor"
 
-#. TRANSLATORS: "Swatches" means: color samples
-#: ../src/verbs.cpp:2551
-msgid "S_watches..."
-msgstr "Przykł_adowe kolory..."
+#: ../src/ui/widget/selected-style.cpp:562
+msgid "Apply last selected color to fill"
+msgstr "Zastosuj dla wypełnienia ostatnio wybrany kolor"
 
-#: ../src/verbs.cpp:2552
-msgid "Select colors from a swatches palette"
-msgstr "Otwiera okno umożliwiające wybór kolorów z palety"
+#: ../src/ui/widget/selected-style.cpp:573
+msgid "Apply last selected color to stroke"
+msgstr "Zastosuj dla konturu ostatnio wybrany kolor"
 
-#: ../src/verbs.cpp:2553
-msgid "Transfor_m..."
-msgstr "Przeksz_tałć..."
+#: ../src/ui/widget/selected-style.cpp:593
+msgid "Invert fill"
+msgstr "Negatyw wypełnienia"
 
-#: ../src/verbs.cpp:2554
-msgid "Precisely control objects' transformations"
-msgstr "Otwiera okno umożliwiające dokładną kontrolę przekształcenia obiektów"
+#: ../src/ui/widget/selected-style.cpp:613
+msgid "Invert stroke"
+msgstr "Negatyw konturu"
 
-#: ../src/verbs.cpp:2555
-msgid "_Align and Distribute..."
-msgstr "W_yrównaj i rozmieść..."
+#: ../src/ui/widget/selected-style.cpp:625
+msgid "White fill"
+msgstr "Białe wypełnienie"
 
-#: ../src/verbs.cpp:2556
-msgid "Align and distribute objects"
-msgstr "Otwórz okno umożliwiające wyrównanie i rozmieszczenie obiektów"
+#: ../src/ui/widget/selected-style.cpp:637
+msgid "White stroke"
+msgstr "Biały kontur"
 
-#: ../src/verbs.cpp:2557
-msgid "Undo _History..."
-msgstr "_Historia wycofanych zmian..."
+#: ../src/ui/widget/selected-style.cpp:649
+msgid "Black fill"
+msgstr "Czarne wypełnienie"
 
-#: ../src/verbs.cpp:2558
-msgid "Undo History"
-msgstr "Historia wycofanych zmian"
+#: ../src/ui/widget/selected-style.cpp:661
+msgid "Black stroke"
+msgstr "Czarny kontur"
 
-#: ../src/verbs.cpp:2559
-msgid "_Text and Font..."
-msgstr "_Tekst i czcionka..."
+#: ../src/ui/widget/selected-style.cpp:704
+msgid "Paste fill"
+msgstr "Wklej wypełnienie"
 
-#: ../src/verbs.cpp:2560
-msgid "View and select font family, font size and other text properties"
-msgstr "Zobacz i wybierz typ czcionki, jej wielkości i inne właściwości tekstu"
+#: ../src/ui/widget/selected-style.cpp:722
+msgid "Paste stroke"
+msgstr "Wklej kontur"
 
-#: ../src/verbs.cpp:2561
-msgid "_XML Editor..."
-msgstr "Edytor _XML..."
+#: ../src/ui/widget/selected-style.cpp:886
+msgid "Change stroke width"
+msgstr "Skalowanie szerokości konturu"
 
-#: ../src/verbs.cpp:2562
-msgid "View and edit the XML tree of the document"
-msgstr "Otwórz okno do przeglądania i edycji drzewa XML dokumentu"
+#: ../src/ui/widget/selected-style.cpp:981
+msgid ", drag to adjust"
+msgstr ", wykonaj ciągnięcie, aby dostroić"
 
-#: ../src/verbs.cpp:2563
-msgid "_Find..."
-msgstr "_Znajdź..."
+#: ../src/ui/widget/selected-style.cpp:1062
+#, c-format
+msgid "Stroke width: %.5g%s%s"
+msgstr "Szerokość konturu: %.5g%s%s"
 
-#: ../src/verbs.cpp:2564
-msgid "Find objects in document"
-msgstr "Wyszukuje obiekty w dokumencie"
+#: ../src/ui/widget/selected-style.cpp:1066
+msgid " (averaged)"
+msgstr " (uśredniona)"
 
-#: ../src/verbs.cpp:2565
-msgid "_Messages..."
-msgstr "Ko_munikaty..."
+#: ../src/ui/widget/selected-style.cpp:1094
+msgid "0 (transparent)"
+msgstr "0 (przezroczysty)"
 
-#: ../src/verbs.cpp:2566
-msgid "View debug messages"
-msgstr "Wyświetla okno komunikatów programu"
+#: ../src/ui/widget/selected-style.cpp:1118
+msgid "100% (opaque)"
+msgstr "100% (nieprzezroczysty)"
+
+#: ../src/ui/widget/selected-style.cpp:1271
+msgid "Adjust saturation"
+msgstr "Dostosuj nasycenie"
 
-#: ../src/verbs.cpp:2567
-msgid "S_cripts..."
-msgstr "Skr_ypty..."
+#: ../src/ui/widget/selected-style.cpp:1273
+#, c-format
+msgid "Adjusting <b>saturation</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Ctrl</b> to adjust lightness, without modifiers to adjust hue"
+msgstr "Dostosowywanie <b>nasycenia</b>: było %.3g, jest <b>%.3g</b> (różnica %.3g); z <b>Ctrl</b> dostrajanie jasności, bez modyfikatorów dostrajanie barwy"
 
-#: ../src/verbs.cpp:2568
-msgid "Run scripts"
-msgstr "Otwiera okno do uruchamiania skryptów"
+#: ../src/ui/widget/selected-style.cpp:1277
+msgid "Adjust lightness"
+msgstr "Dostosuj jasność"
 
-#: ../src/verbs.cpp:2569
-msgid "Show/Hide D_ialogs"
-msgstr "Wyświetl/_Ukryj okna dialogowe"
+#: ../src/ui/widget/selected-style.cpp:1279
+#, c-format
+msgid "Adjusting <b>lightness</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</b> to adjust saturation, without modifiers to adjust hue"
+msgstr "Dostosowywanie <b>jasności</b>: było %.3g, jest <b>%.3g</b> (różnica %.3g); z <b>Shift</b> dostrajanie nasycenia, bez modyfikatorów dostrajanie barwy"
 
-#: ../src/verbs.cpp:2570
-msgid "Show or hide all open dialogs"
-msgstr "Wyświetla lub ukrywa wszystkie otwarte okna dialogowe"
+#: ../src/ui/widget/selected-style.cpp:1283
+msgid "Adjust hue"
+msgstr "Dostosuj barwę"
 
-#: ../src/verbs.cpp:2571
-msgid "Create Tiled Clones..."
-msgstr "Ut_wórz układ klonów..."
+#: ../src/ui/widget/selected-style.cpp:1285
+#, c-format
+msgid "Adjusting <b>hue</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</b> to adjust saturation, with <b>Ctrl</b> to adjust lightness"
+msgstr "Dostosowywanie <b>barwy</b>: było %.3g, jest <b>%.3g</b> (różnica %.3g); z <b>Shift</b> dostrajanie nasycenia, z <b>Ctrl</b> dostrajanie jasności"
 
-#: ../src/verbs.cpp:2572
-msgid ""
-"Create multiple clones of selected object, arranging them into a pattern or "
-"scattering"
-msgstr ""
-"Utwórz wiele klonów zaznaczonego obiektu, rozkładając je równomiernie bądź "
-"rozpraszając"
+#: ../src/ui/widget/selected-style.cpp:1394
+#: ../src/ui/widget/selected-style.cpp:1408
+msgid "Adjust stroke width"
+msgstr "Ustaw szerokość konturu"
 
-#: ../src/verbs.cpp:2573
-msgid "_Object Properties..."
-msgstr "Właś_ciwości obiektu..."
+#: ../src/ui/widget/selected-style.cpp:1395
+#, c-format
+msgid "Adjusting <b>stroke width</b>: was %.3g, now <b>%.3g</b> (diff %.3g)"
+msgstr "Dostosowywanie <b>szerokości konturu</b>: było %.3g, teraz jest <b>%.3g</b> (różnica %.3g)"
 
-#: ../src/verbs.cpp:2574
-msgid "Edit the ID, locked and visible status, and other object properties"
-msgstr ""
-"Otwiera okno do edycji ID, blokowania, stanu widoczności i innych "
-"właściwości obiektów"
+#. TRANSLATORS: Only translate the word "Link" - means to _link_ two sliders together
+#: ../src/ui/widget/spin-slider.cpp:118
+msgid "sliders|Link"
+msgstr "Odnośnik"
 
-#: ../src/verbs.cpp:2577
-msgid "_Instant Messaging..."
-msgstr "_Komunikator..."
+#: ../src/ui/widget/style-swatch.cpp:301
+msgid "L Gradient"
+msgstr "Gradient L"
 
-#: ../src/verbs.cpp:2577
-msgid "Jabber Instant Messaging Client"
-msgstr "Klient Jabbera"
+#: ../src/ui/widget/style-swatch.cpp:305
+msgid "R Gradient"
+msgstr "Gradient R"
 
-#: ../src/verbs.cpp:2579
-msgid "_Input Devices..."
-msgstr "_Urządzenia wejściowe..."
+#: ../src/ui/widget/style-swatch.cpp:321
+#, c-format
+msgid "Fill: %06x/%.3g"
+msgstr "Wypełnienie: %06x/%.3g"
 
-#: ../src/verbs.cpp:2580 ../src/verbs.cpp:2582
-msgid "Configure extended input devices, such as a graphics tablet"
-msgstr "Skonfiguruj urządzenie wejściowe, takie jak tablet graficzny"
+#: ../src/ui/widget/style-swatch.cpp:323
+#, c-format
+msgid "Stroke: %06x/%.3g"
+msgstr "Kontur: %06x/%.3g"
 
-#: ../src/verbs.cpp:2581
-msgid "_Input Devices (new)..."
-msgstr "_Urządzenia wejściowe(nowe)..."
+#: ../src/ui/widget/style-swatch.cpp:355
+#, c-format
+msgid "Stroke width: %.5g%s"
+msgstr "Szerokość konturu: %.5g%s"
 
-#: ../src/verbs.cpp:2583
-msgid "_Extensions..."
-msgstr "Rozszerzenia..."
+#: ../src/ui/widget/style-swatch.cpp:371
+#, c-format
+msgid "O:%.3g"
+msgstr "N:%.3g"
 
-#: ../src/verbs.cpp:2584
-msgid "Query information about extensions"
-msgstr "Pobiera i wyświetla informacje na temat rozszerzeń"
+#: ../src/ui/widget/style-swatch.cpp:373
+#, c-format
+msgid "O:.%d"
+msgstr "N:.%d"
 
-#: ../src/verbs.cpp:2585
-msgid "Layer_s..."
-msgstr "Wars_twy..."
+#: ../src/ui/widget/style-swatch.cpp:378
+#, c-format
+msgid "Opacity: %.3g"
+msgstr "Krycie: %.3g"
 
-#: ../src/verbs.cpp:2586
-msgid "View Layers"
-msgstr "Otwiera okno dialogowe z ustawieniami warstw"
+#: ../src/vanishing-point.cpp:124
+msgid "Split vanishing points"
+msgstr "Rozdziel punkty zbiegu"
 
-#: ../src/verbs.cpp:2587
-msgid "Path Effects..."
-msgstr "E_fekty ścieżki..."
+#: ../src/vanishing-point.cpp:169
+msgid "Merge vanishing points"
+msgstr "Połącz punkty zbiegu"
 
-#: ../src/verbs.cpp:2588
-msgid "Manage path effects"
-msgstr "Zarządzanie efektami ścieżki"
+#: ../src/vanishing-point.cpp:225
+msgid "3D box: Move vanishing point"
+msgstr "Obiekt 3D: Przesuń punkty zbiegu"
 
-#: ../src/verbs.cpp:2589
-msgid "Filter Effects..."
-msgstr "_Filtry efektów..."
+#: ../src/vanishing-point.cpp:306
+#, c-format
+msgid "<b>Finite</b> vanishing point shared by <b>%d</b> box"
+msgid_plural "<b>Finite</b> vanishing point shared by <b>%d</b> boxes; drag with <b>Shift</b> to separate selected box(es)"
+msgstr[0] "<b>Skończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem "
+msgstr[1] "<b>Skończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem. Wykonaj ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
+msgstr[2] "<b>Skończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem. Wykonaj ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
 
-#: ../src/verbs.cpp:2590
-msgid "Manage SVG filter effects"
-msgstr "Zarządzanie filtrami SVG"
+#. 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:313
+#, c-format
+msgid "<b>Infinite</b> vanishing point shared by <b>%d</b> box"
+msgid_plural "<b>Infinite</b> vanishing point shared by <b>%d</b> boxes; drag with <b>Shift</b> to separate selected box(es)"
+msgstr[0] "<b>Nieskończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem "
+msgstr[1] "<b>Nieskończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem. Wykonaj ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
+msgstr[2] "<b>Nieskończony</b> punkt zbiegu współdzielony z <b>%d</b> obiektem. Wykonaj ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
 
-#. Help
-#: ../src/verbs.cpp:2593
-msgid "About E_xtensions"
-msgstr "Informacje o _rozszerzeniach"
+#: ../src/vanishing-point.cpp:321
+#, c-format
+msgid "shared by <b>%d</b> box; drag with <b>Shift</b> to separate selected box(es)"
+msgid_plural "shared by <b>%d</b> boxes; drag with <b>Shift</b> to separate selected box(es)"
+msgstr[0] "współdzielony z <b>%d</b> obiektem. Wykonaj ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
+msgstr[1] "współdzielony z <b>%d</b> obiektami. Wykonaj ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
+msgstr[2] "współdzielony z <b>%d</b> obiektami. Wykonaj ciągnięcie z <b>Shift</b>, aby rozdzielić zaznaczone obiekty."
 
-#: ../src/verbs.cpp:2594
-msgid "Information on Inkscape extensions"
-msgstr "Informacje o rozszerzeniach Inkscape"
+#: ../src/verbs.cpp:1137
+msgid "Switch to next layer"
+msgstr "Przenieś do następnej warstwy"
 
-#: ../src/verbs.cpp:2595
-msgid "About _Memory"
-msgstr "_Informacje o pamięci"
+#: ../src/verbs.cpp:1138
+msgid "Switched to next layer."
+msgstr "Przeniesiono do następnej warstwy"
 
-#: ../src/verbs.cpp:2596
-msgid "Memory usage information"
-msgstr "Informacja o użyciu pamięci"
+#: ../src/verbs.cpp:1140
+msgid "Cannot go past last layer."
+msgstr "Nie można przenieść poza ostatnią warstwę"
 
-#: ../src/verbs.cpp:2597
-msgid "_About Inkscape"
-msgstr "_O programie Inkscape"
+#: ../src/verbs.cpp:1149
+msgid "Switch to previous layer"
+msgstr "Przenieś do poprzedniej warstwy"
 
-#: ../src/verbs.cpp:2598
-msgid "Inkscape version, authors, license"
-msgstr "Wersja Inkscape, autorzy, licencja"
+#: ../src/verbs.cpp:1150
+msgid "Switched to previous layer."
+msgstr "Przeniesiono do poprzedniej warstwy"
 
-#. "help_about"
-#. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"),
-#. N_("Distribution terms"), /*"show_license"*/"inkscape_options"),
-#. Tutorials
-#: ../src/verbs.cpp:2603
-msgid "Inkscape: _Basic"
-msgstr "Inkscape: _Podstawy"
+#: ../src/verbs.cpp:1152
+msgid "Cannot go before first layer."
+msgstr "Nie można przenieść przed pierwszą warstwę"
 
-#: ../src/verbs.cpp:2604
-msgid "Getting started with Inkscape"
-msgstr "Pierwsze kroki z Inkscape"
+#: ../src/verbs.cpp:1169
+#: ../src/verbs.cpp:1246
+#: ../src/verbs.cpp:1278
+#: ../src/verbs.cpp:1284
+msgid "No current layer."
+msgstr "Brak aktywnej warstwy"
 
-#. "tutorial_basic"
-#: ../src/verbs.cpp:2605
-msgid "Inkscape: _Shapes"
-msgstr "Inkscape: _Kształty"
+#: ../src/verbs.cpp:1198
+#: ../src/verbs.cpp:1202
+#, c-format
+msgid "Raised layer <b>%s</b>."
+msgstr "Warstwa <b>%s</b> została przeniesiona wyżej"
 
-#: ../src/verbs.cpp:2606
-msgid "Using shape tools to create and edit shapes"
-msgstr "Stosowanie narzędzi do tworzenia i edycji kształtów"
+#: ../src/verbs.cpp:1199
+msgid "Layer to top"
+msgstr "Przenieś warstwę na wierzch"
 
-#: ../src/verbs.cpp:2607
-msgid "Inkscape: _Advanced"
-msgstr "Inkscape: _Zaawansowane"
+#: ../src/verbs.cpp:1203
+msgid "Raise layer"
+msgstr "Przesuń warstwę wyżej"
 
-#: ../src/verbs.cpp:2608
-msgid "Advanced Inkscape topics"
-msgstr "Zaawansowane zagadnienia związane z Inkscape"
+#: ../src/verbs.cpp:1206
+#: ../src/verbs.cpp:1210
+#, c-format
+msgid "Lowered layer <b>%s</b>."
+msgstr "Warstwa <b>%s</b> przeniesiona niżej"
 
-#. "tutorial_advanced"
-#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
-#: ../src/verbs.cpp:2610
-msgid "Inkscape: T_racing"
-msgstr "Inkscape: _Wektoryzacja"
+#: ../src/verbs.cpp:1207
+msgid "Layer to bottom"
+msgstr "Przenieś warstwę na spód"
 
-#: ../src/verbs.cpp:2611
-msgid "Using bitmap tracing"
-msgstr "Obsługa wektoryzacji bitmap"
+#: ../src/verbs.cpp:1211
+msgid "Lower layer"
+msgstr "Przesuń warstwę niżej"
 
-#. "tutorial_tracing"
-#: ../src/verbs.cpp:2612
-msgid "Inkscape: _Calligraphy"
-msgstr "Inkscape: Kali_grafia"
+#: ../src/verbs.cpp:1220
+msgid "Cannot move layer any further."
+msgstr "Nie można przenieść warstwy dalej"
 
-#: ../src/verbs.cpp:2613
-msgid "Using the Calligraphy pen tool"
-msgstr "Stosowanie narzędzia \"Pióro\""
+#: ../src/verbs.cpp:1229
+#, c-format
+msgid "%s copy"
+msgstr "%s kopia"
 
-#: ../src/verbs.cpp:2614
-msgid "_Elements of Design"
-msgstr "_Elementy kompozycji"
+#: ../src/verbs.cpp:1241
+msgid "Duplicate layer"
+msgstr "Powiel warstwę"
 
-#: ../src/verbs.cpp:2615
-msgid "Principles of design in the tutorial form"
-msgstr "Przewodnik po zasadach kształtowania kompozycji"
+#. TRANSLATORS: this means "The layer has been duplicated."
+#: ../src/verbs.cpp:1244
+msgid "Duplicated layer."
+msgstr "Powielona ścieżka"
 
-#. "tutorial_design"
-#: ../src/verbs.cpp:2616
-msgid "_Tips and Tricks"
-msgstr "Porady i _sztuczki"
+#: ../src/verbs.cpp:1273
+msgid "Delete layer"
+msgstr "Usuń warstwę"
 
-#: ../src/verbs.cpp:2617
-msgid "Miscellaneous tips and tricks"
-msgstr "Zbiór różnych porad i sztuczek"
+#. TRANSLATORS: this means "The layer has been deleted."
+#: ../src/verbs.cpp:1276
+msgid "Deleted layer."
+msgstr "Warstwa została usunięta"
 
-#. "tutorial_tips"
-#. Effect
-#: ../src/verbs.cpp:2620
-msgid "Previous Effect"
-msgstr "Poprzedni efekt"
+#: ../src/verbs.cpp:1287
+#, fuzzy
+msgid "Toggle layer solo"
+msgstr "Przełącz widzialność aktywnej warstwy"
 
-#: ../src/verbs.cpp:2621
-msgid "Repeat the last effect with the same settings"
-msgstr "Powtórz ostatni efekt z zachowaniem ustawień"
+#: ../src/verbs.cpp:1380
+msgid "Flip horizontally"
+msgstr "Odbij poziomo"
 
-#: ../src/verbs.cpp:2622
-msgid "Previous Effect Settings..."
-msgstr "Ustawienia poprzedniego efektu..."
+#: ../src/verbs.cpp:1395
+msgid "Flip vertically"
+msgstr "Odbij pionowo"
 
-#: ../src/verbs.cpp:2623
-msgid "Repeat the last effect with new settings"
-msgstr "Powtórz ostatni efekt z nowymi ustawieniami"
+#. TRANSLATORS: If you have translated the tutorial-basic.svg file to your language,
+#. then translate this string as "tutorial-basic.LANG.svg" (where LANG is your language
+#. code); otherwise leave as "tutorial-basic.svg".
+#: ../src/verbs.cpp:1896
+msgid "tutorial-basic.svg"
+msgstr "tutorial-basic.svg"
+
+#. TRANSLATORS: See "tutorial-basic.svg" comment.
+#: ../src/verbs.cpp:1900
+msgid "tutorial-shapes.svg"
+msgstr "tutorial-shapes.svg"
 
-#. Fit Page
-#: ../src/verbs.cpp:2626
-msgid "Fit Page to Selection"
-msgstr "Dopasuj stronę do ramki zaznaczenia"
+#. TRANSLATORS: See "tutorial-basic.svg" comment.
+#: ../src/verbs.cpp:1904
+msgid "tutorial-advanced.svg"
+msgstr "tutorial-advanced.svg"
 
-#: ../src/verbs.cpp:2627
-msgid "Fit the page to the current selection"
-msgstr "Dopasuj rozmiar strony do aktualnego zaznaczenia"
+#. TRANSLATORS: See "tutorial-basic.svg" comment.
+#: ../src/verbs.cpp:1908
+msgid "tutorial-tracing.svg"
+msgstr "tutorial-tracing.svg"
 
-#: ../src/verbs.cpp:2628
-msgid "Fit Page to Drawing"
-msgstr "Dopasuj stronę do rysunku"
+#. TRANSLATORS: See "tutorial-basic.svg" comment.
+#: ../src/verbs.cpp:1912
+msgid "tutorial-calligraphy.svg"
+msgstr "tutorial-calligraphy.svg"
 
-#: ../src/verbs.cpp:2629
-msgid "Fit the page to the drawing"
-msgstr "Dopasuj stronę do rysunku"
+#. TRANSLATORS: See "tutorial-basic.svg" comment.
+#: ../src/verbs.cpp:1916
+msgid "tutorial-elements.svg"
+msgstr "tutorial-elements.svg"
 
-#: ../src/verbs.cpp:2630
-msgid "Fit Page to Selection or Drawing"
-msgstr "Dopasuj stronę do zaznaczenia lub rysunku"
+#. TRANSLATORS: See "tutorial-basic.svg" comment.
+#: ../src/verbs.cpp:1920
+msgid "tutorial-tips.svg"
+msgstr "tutorial-tips.svg"
 
-#: ../src/verbs.cpp:2631
-msgid ""
-"Fit the page to the current selection or the drawing if there is no selection"
-msgstr ""
-"Dopasuj stronę do aktualnego zaznaczenia lub do rysunku jeśli nic nie jest "
-"zaznaczone"
+#: ../src/verbs.cpp:2196
+#: ../src/verbs.cpp:2723
+msgid "Unlock all objects in the current layer"
+msgstr "Odblokowuje wszystkie obiekty na aktywnej warstwie"
 
-#. LockAndHide
-#: ../src/verbs.cpp:2633
-msgid "Unlock All"
-msgstr "Odb_lokuj wszystko"
+#: ../src/verbs.cpp:2200
+#: ../src/verbs.cpp:2725
+msgid "Unlock all objects in all layers"
+msgstr "Odblokowuje wszystkie obiekty na wszystkich warstwach"
 
-#: ../src/verbs.cpp:2635
-msgid "Unlock All in All Layers"
-msgstr "Odblokowuje wszystko na wszystkich warstwach"
+#: ../src/verbs.cpp:2204
+#: ../src/verbs.cpp:2727
+msgid "Unhide all objects in the current layer"
+msgstr "Wyświetla wszystkie obiekty na aktywnej warstwie"
 
-#: ../src/verbs.cpp:2637
-msgid "Unhide All"
-msgstr "_Pokaż wszystko"
+#: ../src/verbs.cpp:2208
+#: ../src/verbs.cpp:2729
+msgid "Unhide all objects in all layers"
+msgstr "Wyświetla wszystkie obiekty na wszystkich warstwach"
 
-#: ../src/verbs.cpp:2639
-msgid "Unhide All in All Layers"
-msgstr "Wyświetla wszystko na wszystkich warstwach"
+#: ../src/verbs.cpp:2223
+msgid "Does nothing"
+msgstr "Nic nie wykonuje"
 
-#: ../src/widgets/calligraphic-profile-rename.cpp:34
-msgid "Profile name:"
-msgstr "Nazwa profilu:"
+#: ../src/verbs.cpp:2226
+msgid "Create new document from the default template"
+msgstr "Utwórz nowy dokument na bazie domyślnego szablonu"
 
-#: ../src/widgets/calligraphic-profile-rename.cpp:48
-msgid "Save"
-msgstr "Zapisz"
+#: ../src/verbs.cpp:2228
+msgid "_Open..."
+msgstr "_Otwórz..."
 
-#: ../src/widgets/dash-selector.cpp:106
-msgid "Dash pattern"
-msgstr "Style kresek"
+#: ../src/verbs.cpp:2229
+msgid "Open an existing document"
+msgstr "Otwórz istniejący dokument"
 
-#: ../src/widgets/dash-selector.cpp:121
-msgid "Pattern offset"
-msgstr "Przesunięcie wzoru"
+#: ../src/verbs.cpp:2230
+msgid "Re_vert"
+msgstr "P_rzywróć"
 
-#: ../src/widgets/desktop-widget.cpp:620
-#, c-format
-msgid "%s: %d (outline) - Inkscape"
-msgstr "%s: %d (obramowanie) - Inkscape"
+#: ../src/verbs.cpp:2231
+msgid "Revert to the last saved version of document (changes will be lost)"
+msgstr "Przywraca ostatnio zapisaną wersję dokumentu (zmiany zostaną utracone)"
 
-#: ../src/widgets/desktop-widget.cpp:622
-#, c-format
-msgid "%s: %d - Inkscape"
-msgstr "%s: %d - Inkscape"
+#: ../src/verbs.cpp:2232
+msgid "Save document"
+msgstr "Zapisz dokument"
 
-#: ../src/widgets/desktop-widget.cpp:626
-#, c-format
-msgid "%s (outline) - Inkscape"
-msgstr "%s - (obramowanie) Inkscape"
+#: ../src/verbs.cpp:2232
+msgid "_Save"
+msgstr "_Zapisz"
 
-#: ../src/widgets/desktop-widget.cpp:628
-#, c-format
-msgid "%s - Inkscape"
-msgstr "%s - Inkscape"
+#: ../src/verbs.cpp:2234
+msgid "Save _As..."
+msgstr "Za_pisz jako..."
 
-#. Family frame
-#: ../src/widgets/font-selector.cpp:154
-msgid "Font family"
-msgstr "Czcionki"
+#: ../src/verbs.cpp:2235
+msgid "Save document under a new name"
+msgstr "Zapisuje dokument pod nową nazwą"
 
-#. Style frame
-#: ../src/widgets/font-selector.cpp:185
-#: ../share/extensions/polyhedron_3d.inx.h:44
-msgid "Style"
-msgstr "Styl"
+#: ../src/verbs.cpp:2236
+msgid "Save a Cop_y..."
+msgstr "Z_apisz kopię..."
 
-#: ../src/widgets/font-selector.cpp:223
-msgid "Font size:"
-msgstr "Rozmiar czcionki:"
+#: ../src/verbs.cpp:2237
+msgid "Save a copy of the document under a new name"
+msgstr "Zapisuje kopię dokumentu z nową nazwą"
 
-#. TRANSLATORS: Test string used in text and font dialog (when no
-#. * text has been entered) to get a preview of the font.  Choose
-#. * some representative characters that users of your locale will be
-#. * interested in.
-#: ../src/widgets/font-selector.cpp:636 ../src/widgets/toolbox.cpp:5123
-msgid "AaBbCcIiPpQq12369$€¢?.;/()"
-msgstr "AaĄąBbCćĘęKkÓóŹź0123:/()"
+#: ../src/verbs.cpp:2238
+msgid "Print document"
+msgstr "Drukuj dokument"
 
-#: ../src/widgets/gradient-selector.cpp:139
-#: ../src/widgets/gradient-toolbar.cpp:462
-msgid "Edit..."
-msgstr "Edytuj..."
+#: ../src/verbs.cpp:2238
+msgid "_Print..."
+msgstr "_Drukuj..."
 
-#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute
-#: ../src/widgets/gradient-selector.cpp:156
-msgid ""
-"Whether to fill with flat color beyond the ends of the gradient vector "
-"(spreadMethod=\"pad\"), or repeat the gradient in the same direction "
-"(spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite "
-"directions (spreadMethod=\"reflect\")"
-msgstr ""
-"Wygląd gradientu poza końcami definiującego wektora:\n"
-"\"brak\" = zostanie zastosowany jednolity kolor\n"
-"\"kierunek\" = zostanie powtórzony gradient w tym samym kierunku\n"
-"\"odbicie\" = zostanie powtórzony gradient w odwrotnym kierunku"
+#: ../src/verbs.cpp:2241
+msgid "Remove unused definitions (such as gradients or clipping paths) from the &lt;defs&gt; of the document"
+msgstr "Usuwa nieużywane elementy (takie jak gradienty, czy ścieżki przycinające) z &lt;defs&gt; dokumentu"
 
-#: ../src/widgets/gradient-selector.cpp:166
-msgid "reflected"
-msgstr "odbicie"
+#. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions)
+#: ../src/verbs.cpp:2241
+msgid "Vac_uum Defs"
+msgstr "Wyczyść de_finicje"
 
-#: ../src/widgets/gradient-selector.cpp:170
-msgid "direct"
-msgstr "kierunek"
+#: ../src/verbs.cpp:2243
+msgid "Print Previe_w"
+msgstr "Podgląd _wydruku"
 
-#: ../src/widgets/gradient-selector.cpp:178
-msgid "Repeat:"
-msgstr "Powtarzanie:"
+#: ../src/verbs.cpp:2244
+msgid "Preview document printout"
+msgstr "Wyświetla podgląd wydruku rysunku"
 
-#: ../src/widgets/gradient-toolbar.cpp:151
-msgid "Assign gradient to object"
-msgstr "Przypisz gradient do obiektu"
+#: ../src/verbs.cpp:2245
+msgid "_Import..."
+msgstr "_Importuj..."
 
-#: ../src/widgets/gradient-toolbar.cpp:185
-msgid "<small>No gradients</small>"
-msgstr "<small>Brak gradientów</small>"
+#: ../src/verbs.cpp:2246
+msgid "Import a bitmap or SVG image into this document"
+msgstr "Importuj bitmapę lub rysunek SVG do dokumentu"
 
-#: ../src/widgets/gradient-toolbar.cpp:194
-msgid "<small>Nothing selected</small>"
-msgstr "<small>Nic nie zaznaczono</small>"
+#: ../src/verbs.cpp:2247
+msgid "_Export Bitmap..."
+msgstr "_Eksportuj jako bitmapę..."
 
-#: ../src/widgets/gradient-toolbar.cpp:205
-msgid "<small>No gradients in selection</small>"
-msgstr "<small>Brak gradientów w zaznaczeniu</small>"
+#: ../src/verbs.cpp:2248
+msgid "Export this document or a selection as a bitmap image"
+msgstr "Eksportuj dokument lub obszar zaznaczenia jako bitmapę"
 
-#: ../src/widgets/gradient-toolbar.cpp:215
-msgid "<small>Multiple gradients</small>"
-msgstr "<small>Wiele gradientów</small>"
+#: ../src/verbs.cpp:2249
+msgid "Import a document from Open Clip Art Library"
+msgstr "Importuje dokument z biblioteki klipartów"
 
-#: ../src/widgets/gradient-toolbar.cpp:463
-msgid "Edit the stops of the gradient"
-msgstr "Edytuj punkty sterujące gradientu"
+#: ../src/verbs.cpp:2250
+msgid "Export To Open Clip Art Library"
+msgstr "Eksportuje do biblioteki klipartów"
 
-#: ../src/widgets/gradient-toolbar.cpp:522 ../src/widgets/toolbox.cpp:1936
-#: ../src/widgets/toolbox.cpp:2010 ../src/widgets/toolbox.cpp:2340
-#: ../src/widgets/toolbox.cpp:2378 ../src/widgets/toolbox.cpp:2992
-#: ../src/widgets/toolbox.cpp:3016 ../src/widgets/toolbox.cpp:4110
-#: ../src/widgets/toolbox.cpp:4137
-msgid "<b>New:</b>"
-msgstr "<b>Nowy:</b>"
+#: ../src/verbs.cpp:2250
+msgid "Export this document to Open Clip Art Library"
+msgstr "Eksportuje ten dokument do galerii klipartów"
 
-#: ../src/widgets/gradient-toolbar.cpp:535
-msgid "Create linear gradient"
-msgstr "Utwórz gradient liniowy"
+#: ../src/verbs.cpp:2251
+msgid "N_ext Window"
+msgstr "_Następne okno"
 
-#: ../src/widgets/gradient-toolbar.cpp:549
-msgid "Create radial (elliptic or circular) gradient"
-msgstr "Utwórz gradient radialny (eliptyczny lub kołowy)"
+#: ../src/verbs.cpp:2252
+msgid "Switch to the next document window"
+msgstr "Przełącza do okna następnego dokumentu"
 
-#: ../src/widgets/gradient-toolbar.cpp:564
-msgid "on"
-msgstr "na"
+#: ../src/verbs.cpp:2253
+msgid "P_revious Window"
+msgstr "Popr_zednie okno"
 
-#: ../src/widgets/gradient-toolbar.cpp:577
-msgid "Create gradient in the fill"
-msgstr "Utwórz gradient w wypełnieniu"
+#: ../src/verbs.cpp:2254
+msgid "Switch to the previous document window"
+msgstr "Przełącza do okna poprzedniego dokumentu"
 
-#: ../src/widgets/gradient-toolbar.cpp:591
-msgid "Create gradient in the stroke"
-msgstr "Utwórz gradient na konturze"
+#: ../src/verbs.cpp:2255
+msgid "_Close"
+msgstr "Zam_knij"
 
-#. FIXME: implement averaging of all parameters for multiple selected
-#. gtk_label_set_markup(GTK_LABEL(l), _("<b>Average:</b>"));
-#: ../src/widgets/gradient-toolbar.cpp:605 ../src/widgets/toolbox.cpp:1938
-#: ../src/widgets/toolbox.cpp:2348 ../src/widgets/toolbox.cpp:2366
-#: ../src/widgets/toolbox.cpp:2994 ../src/widgets/toolbox.cpp:3005
-#: ../src/widgets/toolbox.cpp:4113 ../src/widgets/toolbox.cpp:4124
-msgid "<b>Change:</b>"
-msgstr "<b>Zmień:</b>"
+#: ../src/verbs.cpp:2256
+msgid "Close this document window"
+msgstr "Zamyka okno aktywnego dokumentu"
 
-#: ../src/widgets/gradient-vector.cpp:270
-msgid "No gradients in document"
-msgstr "Brak gradientów w dokumencie"
+#: ../src/verbs.cpp:2257
+msgid "Quit Inkscape"
+msgstr "Zamyka program Inkscape"
 
-#: ../src/widgets/gradient-vector.cpp:276
-msgid "No gradient selected"
-msgstr "Nie zaznaczono gradientu"
+#: ../src/verbs.cpp:2257
+msgid "_Quit"
+msgstr "Zakoń_cz"
 
-#: ../src/widgets/gradient-vector.cpp:538
-msgid "No stops in gradient"
-msgstr "Brak punktów sterujących w gradiencie"
+#: ../src/verbs.cpp:2260
+msgid "Undo last action"
+msgstr "Wycofaj ostatnio wykonaną operację"
 
-#: ../src/widgets/gradient-vector.cpp:661
-msgid "Change gradient stop offset"
-msgstr "Zmień przesunięcie punktu kontrolnego"
+#: ../src/verbs.cpp:2263
+msgid "Do again the last undone action"
+msgstr "Przywróć ostatnio wycofaną operację"
 
-#. TRANSLATORS: "Stop" means: a "phase" of a gradient
-#: ../src/widgets/gradient-vector.cpp:803
-msgid "Add stop"
-msgstr "Dodaj punkt"
+#: ../src/verbs.cpp:2264
+msgid "Cu_t"
+msgstr "Wy_tnij"
 
-#: ../src/widgets/gradient-vector.cpp:806
-msgid "Add another control stop to gradient"
-msgstr "Dodaj kolejny punkt kontrolny do gradientu"
+#: ../src/verbs.cpp:2265
+msgid "Cut selection to clipboard"
+msgstr "Wytnij zaznaczone obiekty i przechowuj je w schowku"
 
-#: ../src/widgets/gradient-vector.cpp:808
-msgid "Delete stop"
-msgstr "Usuń punkt"
+#: ../src/verbs.cpp:2266
+msgid "_Copy"
+msgstr "_Kopiuj"
 
-#: ../src/widgets/gradient-vector.cpp:811
-msgid "Delete current control stop from gradient"
-msgstr "Usuń z gradientu wyświetlony powyżej punkt kontrolny"
+#: ../src/verbs.cpp:2267
+msgid "Copy selection to clipboard"
+msgstr "Kopiuj zaznaczone obiekty do schowka"
 
-#. Label
-#: ../src/widgets/gradient-vector.cpp:822
-msgid "Offset:"
-msgstr "Przesunięcie:"
+#: ../src/verbs.cpp:2268
+msgid "_Paste"
+msgstr "_Wklej"
 
-#. TRANSLATORS: "Stop" means: a "phase" of a gradient
-#: ../src/widgets/gradient-vector.cpp:867
-msgid "Stop Color"
-msgstr "Kolor w punkcie"
+#: ../src/verbs.cpp:2269
+msgid "Paste objects from clipboard to mouse point, or paste text"
+msgstr "Wklej obiekty lub tekst ze schowka w pozycji wskaźnika myszy"
 
-#: ../src/widgets/gradient-vector.cpp:896
-msgid "Gradient editor"
-msgstr "Edytor gradientu"
+#: ../src/verbs.cpp:2270
+msgid "Paste _Style"
+msgstr "Wklej _styl"
 
-#: ../src/widgets/gradient-vector.cpp:1171
-msgid "Change gradient stop color"
-msgstr "Zmień kolor w punkcie kontrolnym"
+#: ../src/verbs.cpp:2271
+msgid "Apply the style of the copied object to selection"
+msgstr "Przypisuje zaznaczonym obiektom styl ze skopiowanego obiektu"
 
-#: ../src/widgets/layer-selector.cpp:115
-msgid "Toggle current layer visibility"
-msgstr "Przełącz widzialność aktywnej warstwy"
+#: ../src/verbs.cpp:2273
+msgid "Scale selection to match the size of the copied object"
+msgstr "Skaluje zaznaczenie tak, aby dopasować do rozmiaru skopiowanego obiektu"
 
-#: ../src/widgets/layer-selector.cpp:135
-msgid "Lock or unlock current layer"
-msgstr "Zablokuj/odblokuj aktywną warstwę"
+#: ../src/verbs.cpp:2274
+msgid "Paste _Width"
+msgstr "Wklej _szerokość"
 
-#: ../src/widgets/layer-selector.cpp:138
-msgid "Current layer"
-msgstr "Aktywna warstwa"
+#: ../src/verbs.cpp:2275
+msgid "Scale selection horizontally to match the width of the copied object"
+msgstr "Skaluje zaznaczenie poziomo tak, aby dopasować do szerokości skopiowanego obiektu"
 
-#: ../src/widgets/layer-selector.cpp:566
-msgid "(root)"
-msgstr "(warstwa główna)"
+#: ../src/verbs.cpp:2276
+msgid "Paste _Height"
+msgstr "Wklej _wysokość"
 
-#: ../src/widgets/paint-selector.cpp:181 ../src/widgets/paint-selector.cpp:564
-msgid "No paint"
-msgstr "Brak koloru"
+#: ../src/verbs.cpp:2277
+msgid "Scale selection vertically to match the height of the copied object"
+msgstr "Skaluje zaznaczenie pionowo tak, aby dopasować do wysokości skopiowanego obiektu"
 
-#: ../src/widgets/paint-selector.cpp:183 ../src/widgets/paint-selector.cpp:636
-msgid "Flat color"
-msgstr "Jednolity kolor"
+#: ../src/verbs.cpp:2278
+msgid "Paste Size Separately"
+msgstr "Wklej _rozmiar oddzielnie"
 
-#: ../src/widgets/paint-selector.cpp:185 ../src/widgets/paint-selector.cpp:707
-msgid "Linear gradient"
-msgstr "Gradient liniowy"
+#: ../src/verbs.cpp:2279
+msgid "Scale each selected object to match the size of the copied object"
+msgstr "Skaluje osobno każdy z zaznaczonych obiektów tak, aby dopasować do rozmiaru skopiowanego obiektu"
 
-#: ../src/widgets/paint-selector.cpp:187 ../src/widgets/paint-selector.cpp:710
-msgid "Radial gradient"
-msgstr "Gradient radialny"
+#: ../src/verbs.cpp:2280
+msgid "Paste Width Separately"
+msgstr "Wklej s_zerokość oddzielnie"
 
-#: ../src/widgets/paint-selector.cpp:191
-msgid "Unset paint (make it undefined so it can be inherited)"
-msgstr ""
-"Wyzeruj wypełnienie (ustaw jako niezdefiniowane, co umożliwia późniejsze "
-"dziedziczenie)"
+#: ../src/verbs.cpp:2281
+msgid "Scale each selected object horizontally to match the width of the copied object"
+msgstr "Skaluje osobno każdy z zaznaczonych obiektów poziomo tak, aby dopasować do szerokości skopiowanego obiektu"
 
-#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
-#: ../src/widgets/paint-selector.cpp:203
-msgid ""
-"Any path self-intersections or subpaths create holes in the fill (fill-rule: "
-"evenodd)"
-msgstr ""
-"Obszary nałożone lub ścieżki wewnątrz figury nie są wypełniane (zasada "
-"nieparzystości)"
+#: ../src/verbs.cpp:2282
+msgid "Paste Height Separately"
+msgstr "Wklej wyso_kość oddzielnie"
 
-#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
-#: ../src/widgets/paint-selector.cpp:214
-msgid ""
-"Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)"
-msgstr ""
-"Wypełnienie przenika całą figurę, chyba że ścieżka składowa ma odwrócony "
-"kierunek (zasada przenikania)"
+#: ../src/verbs.cpp:2283
+msgid "Scale each selected object vertically to match the height of the copied object"
+msgstr "Skaluje osobno każdy z zaznaczonych obiektów pionowo tak, aby dopasować do wysokości skopiowanego obiektu"
 
-#: ../src/widgets/paint-selector.cpp:531
-msgid "No objects"
-msgstr "Brak obiektów"
+#: ../src/verbs.cpp:2284
+msgid "Paste _In Place"
+msgstr "Wkle_j w miejscu pochodzenia"
 
-#: ../src/widgets/paint-selector.cpp:542
-msgid "Multiple styles"
-msgstr "Wiele stylów"
+#: ../src/verbs.cpp:2285
+msgid "Paste objects from clipboard to the original location"
+msgstr "Wkleja obiekty ze schowka w miejscu, z którego pochodzą"
 
-#: ../src/widgets/paint-selector.cpp:553
-msgid "Paint is undefined"
-msgstr "Wypełnienie niezdefiniowane"
+#: ../src/verbs.cpp:2286
+msgid "Paste Path _Effect"
+msgstr "Wklej e_fekt ścieżki"
 
-#: ../src/widgets/paint-selector.cpp:984
-msgid ""
-"Use the <b>Node tool</b> to adjust position, scale, and rotation of the "
-"pattern on canvas. Use <b>Object &gt; Pattern &gt; Objects to Pattern</b> to "
-"create a new pattern from selection."
-msgstr ""
-"Użyj narzędzia <b>Edycja węzłów</b>, aby dopasować położenie, skalowanie i "
-"rotację wzorca w obszarze roboczym. Użyj <b>Obiekt &raquo; Deseń  &raquo; "
-"Obiekty na deseń</b>, aby utworzyć nowy wzór wypełnienia z zaznaczonych "
-"obiektów."
+#: ../src/verbs.cpp:2287
+msgid "Apply the path effect of the copied object to selection"
+msgstr "Przypisuje efekt ścieżki ze skopiowanego obiektu do zaznaczenia"
 
-#: ../src/widgets/select-toolbar.cpp:244
-msgid "Transform by toolbar"
-msgstr "Przekształć używając paska narzędziowego"
+#: ../src/verbs.cpp:2288
+msgid "Remove Path _Effect"
+msgstr "Usuń _efekt ścieżki"
 
-#: ../src/widgets/select-toolbar.cpp:299
-msgid "Now <b>stroke width</b> is <b>scaled</b> when objects are scaled."
-msgstr ""
-"Teraz <b>szerokość konturu</b> <b>jest skalowana</b> podczas skalowania "
-"obiektów"
+#: ../src/verbs.cpp:2289
+msgid "Remove any path effects from selected objects"
+msgstr "Usuwa wszystkie efekty ścieżki z zaznaczonych obiektów"
 
-#: ../src/widgets/select-toolbar.cpp:301
-msgid "Now <b>stroke width</b> is <b>not scaled</b> when objects are scaled."
-msgstr ""
-"Teraz <b>szerokość konturu</b> <b>nie jest skalowana</b> podczas skalowania "
-"obiektów"
+#: ../src/verbs.cpp:2290
+msgid "Remove Filter"
+msgstr "Usuń filtr"
 
-#: ../src/widgets/select-toolbar.cpp:310
-msgid ""
-"Now <b>rounded rectangle corners</b> are <b>scaled</b> when rectangles are "
-"scaled."
-msgstr ""
-"Teraz <b>zaokrąglone narożniki</b> <b>są skalowane</b> podczas skalowania "
-"prostokątów"
+#: ../src/verbs.cpp:2291
+msgid "Remove any filters from selected objects"
+msgstr "Usuwa wszystkie efekty ścieżki z zaznaczonych obiektów"
 
-#: ../src/widgets/select-toolbar.cpp:312
-msgid ""
-"Now <b>rounded rectangle corners</b> are <b>not scaled</b> when rectangles "
-"are scaled."
-msgstr ""
-"Teraz <b>zaokrąglone narożniki</b> <b>nie są skalowane</b> podczas "
-"skalowania prostokątów"
+#: ../src/verbs.cpp:2292
+msgid "_Delete"
+msgstr "_Usuń"
 
-#: ../src/widgets/select-toolbar.cpp:321
-msgid ""
-"Now <b>gradients</b> are <b>transformed</b> along with their objects when "
-"those are transformed (moved, scaled, rotated, or skewed)."
-msgstr ""
-"Teraz <b>gradienty</b> <b>są przekształcane</b> wraz z edycją obiektów "
-"(przesuwanie, skalowanie, obrót, pochylenie)"
+#: ../src/verbs.cpp:2293
+msgid "Delete selection"
+msgstr "Usuwa zaznaczone obiekty"
 
-#: ../src/widgets/select-toolbar.cpp:323
-msgid ""
-"Now <b>gradients</b> remain <b>fixed</b> when objects are transformed "
-"(moved, scaled, rotated, or skewed)."
-msgstr ""
-"Teraz <b>gradienty</b> <b>pozostają niezmienione</b> podczas, gdy obiekty są "
-"przekształcane (przesuwanie, skalowanie, obrót, pochylenie)"
+#: ../src/verbs.cpp:2294
+msgid "Duplic_ate"
+msgstr "_Powiel"
 
-#: ../src/widgets/select-toolbar.cpp:332
-msgid ""
-"Now <b>patterns</b> are <b>transformed</b> along with their objects when "
-"those are transformed (moved, scaled, rotated, or skewed)."
-msgstr ""
-"Teraz <b>desenie</b> <b>są przekształcane</b> wraz z edycją obiektów "
-"(przesuwanie, skalowanie, obrót, pochylenie)"
+#: ../src/verbs.cpp:2295
+msgid "Duplicate selected objects"
+msgstr "Duplikuj zaznaczone obiekty"
 
-#: ../src/widgets/select-toolbar.cpp:334
-msgid ""
-"Now <b>patterns</b> remain <b>fixed</b> when objects are transformed (moved, "
-"scaled, rotated, or skewed)."
-msgstr ""
-"Teraz <b>desenie</b> <b>pozostają niezmienione</b> podczas, gdy obiekty są "
-"przekształcane (przesuwanie, skalowanie, obrót, pochylenie)"
+#: ../src/verbs.cpp:2296
+msgid "Create Clo_ne"
+msgstr "_Utwórz klon"
 
-#. four spinbuttons
-#. TRANSLATORS: only translate "string" in "context|string".
-#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/widgets/select-toolbar.cpp:446
-msgid "select_toolbar|X position"
-msgstr "pozycja X"
+#: ../src/verbs.cpp:2297
+msgid "Create a clone (a copy linked to the original) of selected object"
+msgstr "Utwórz klon zaznaczonego obiektu (kopia połączona z oryginałem)"
 
-#: ../src/widgets/select-toolbar.cpp:446
-msgid "select_toolbar|X"
-msgstr "X"
+#: ../src/verbs.cpp:2298
+msgid "Unlin_k Clone"
+msgstr "_Odłącz klon"
 
-#: ../src/widgets/select-toolbar.cpp:448
-msgid "Horizontal coordinate of selection"
-msgstr "Pozioma współrzędna zaznaczenia"
+#: ../src/verbs.cpp:2299
+msgid "Cut the selected clones' links to the originals, turning them into standalone objects"
+msgstr "Usuń zaznaczone połączenie klonu z jego oryginałem zamieniając go na samodzielne obiekty"
 
-#. TRANSLATORS: only translate "string" in "context|string".
-#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/widgets/select-toolbar.cpp:454
-msgid "select_toolbar|Y position"
-msgstr "pozycja Y"
+#: ../src/verbs.cpp:2300
+msgid "Relink to Copied"
+msgstr ""
 
-#: ../src/widgets/select-toolbar.cpp:454
-msgid "select_toolbar|Y"
-msgstr "Y"
+#: ../src/verbs.cpp:2301
+msgid "Relink the selected clones to the object currently on the clipboard"
+msgstr ""
 
-#: ../src/widgets/select-toolbar.cpp:456
-msgid "Vertical coordinate of selection"
-msgstr "Pionowa współrzędna zaznaczenia"
+#: ../src/verbs.cpp:2302
+msgid "Select _Original"
+msgstr "Zaznacz o_ryginał"
 
-#. TRANSLATORS: only translate "string" in "context|string".
-#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/widgets/select-toolbar.cpp:462
-msgid "select_toolbar|Width"
-msgstr "Szerokość"
+#: ../src/verbs.cpp:2303
+msgid "Select the object to which the selected clone is linked"
+msgstr "Zaznacza oryginalny obiekt, z którym połączony jest zaznaczony klon"
 
-#: ../src/widgets/select-toolbar.cpp:462
-msgid "select_toolbar|W"
-msgstr "Szer."
+#. TRANSLATORS: Convert selection to a line marker
+#: ../src/verbs.cpp:2305
+msgid "Objects to _Marker"
+msgstr "Obiekty na _znacznik"
 
-#: ../src/widgets/select-toolbar.cpp:464
-msgid "Width of selection"
-msgstr "Szerokość zaznaczenia"
+#: ../src/verbs.cpp:2306
+msgid "Convert selection to a line marker"
+msgstr "Konwertuje zaznaczenie na znacznik lini"
 
-#: ../src/widgets/select-toolbar.cpp:471
-msgid "Lock width and height"
-msgstr "Zablokuj szerokość i wysokość"
+#. TRANSLATORS: Convert selection to a collection of guidelines
+#: ../src/verbs.cpp:2308
+msgid "Objects to Gu_ides"
+msgstr "Obiekty na prow_adnice"
 
-#: ../src/widgets/select-toolbar.cpp:472
-msgid "When locked, change both width and height by the same proportion"
-msgstr ""
-"Gdy blokada jest włączona, zmiana szerokości i wysokości następuje z "
-"zachowaniem proporcji"
+#: ../src/verbs.cpp:2309
+msgid "Convert selected objects to a collection of guidelines aligned with their edges"
+msgstr "Konwertuje zaznaczone obiekty na kolekcję linii prowadnic wyrównanych z ich krawędziami"
 
-#. TRANSLATORS: only translate "string" in "context|string".
-#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/widgets/select-toolbar.cpp:483
-msgid "select_toolbar|Height"
-msgstr "Wysokość"
+#. TRANSLATORS: Convert selection to a rectangle with tiled pattern fill
+#: ../src/verbs.cpp:2311
+msgid "Objects to Patter_n"
+msgstr "_Obiekty na deseń"
 
-#: ../src/widgets/select-toolbar.cpp:483
-msgid "select_toolbar|H"
-msgstr "Wys."
+#: ../src/verbs.cpp:2312
+msgid "Convert selection to a rectangle with tiled pattern fill"
+msgstr "Konwertuje zaznaczenie na prostokąt z ułożonym wzorcem wypełnienia"
 
-#: ../src/widgets/select-toolbar.cpp:485
-msgid "Height of selection"
-msgstr "Wysokość zaznaczenia"
+#. TRANSLATORS: Extract objects from a tiled pattern fill
+#: ../src/verbs.cpp:2314
+msgid "Pattern to _Objects"
+msgstr "_Deseń na obiekty"
 
-#: ../src/widgets/select-toolbar.cpp:516
-msgid "Affect:"
-msgstr "Zależności:"
+#: ../src/verbs.cpp:2315
+msgid "Extract objects from a tiled pattern fill"
+msgstr "Wyodrębnia obiekty z wypełnienia desenia"
 
-#: ../src/widgets/select-toolbar.cpp:535
-msgid "Scale rounded corners"
-msgstr "Skaluj zaokrąglone narożniki"
+#: ../src/verbs.cpp:2316
+msgid "Clea_r All"
+msgstr "_Wyczyść wszystko"
 
-#: ../src/widgets/select-toolbar.cpp:546
-msgid "Move gradients"
-msgstr "Przesuń uchwyt gradientu"
+#: ../src/verbs.cpp:2317
+msgid "Delete all objects from document"
+msgstr "Usuwa wszystkie obiekty z dokumentu"
 
-#: ../src/widgets/select-toolbar.cpp:557
-msgid "Move patterns"
-msgstr "Przesuń desenie"
+#: ../src/verbs.cpp:2318
+msgid "Select Al_l"
+msgstr "Z_aznacz wszystko"
 
-#: ../src/widgets/sp-color-gtkselector.cpp:50
-msgid "System"
-msgstr "System"
+#: ../src/verbs.cpp:2319
+msgid "Select all objects or all nodes"
+msgstr "Zaznacz wszystkie obiekty lub węzły"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:110
-msgid "CMS"
-msgstr "CMS"
+#: ../src/verbs.cpp:2320
+msgid "Select All in All La_yers"
+msgstr "Zaznacz wsz_ystko na wszystkich warstwach"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:219
-#: ../src/widgets/sp-color-scales.cpp:397
-msgid "_R"
-msgstr "_R"
+#: ../src/verbs.cpp:2321
+msgid "Select all objects in all visible and unlocked layers"
+msgstr "Zaznacz wszystkie obiekty na wszystkich widocznych i odblokowanych warstwach"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:219
-#: ../src/widgets/sp-color-icc-selector.cpp:220
-#: ../src/widgets/sp-color-scales.cpp:400
-msgid "_G"
-msgstr "_G"
+#: ../src/verbs.cpp:2322
+msgid "In_vert Selection"
+msgstr "O_dwróć zaznaczenie"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:219
-#: ../src/widgets/sp-color-scales.cpp:403
-msgid "_B"
-msgstr "_B"
+#: ../src/verbs.cpp:2323
+msgid "Invert selection (unselect what is selected and select everything else)"
+msgstr "Odwraca zaznaczenie (usuwa zaznaczenie obiektów i zaznacza pozostałe)"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:221
-#: ../src/widgets/sp-color-icc-selector.cpp:222
-#: ../src/widgets/sp-color-scales.cpp:423
-msgid "_H"
-msgstr "_H"
+#: ../src/verbs.cpp:2324
+msgid "Invert in All Layers"
+msgstr "Odwróć na wszystkich warstwach"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:221
-#: ../src/widgets/sp-color-icc-selector.cpp:222
-#: ../src/widgets/sp-color-scales.cpp:426
-msgid "_S"
-msgstr "_S"
+#: ../src/verbs.cpp:2325
+msgid "Invert selection in all visible and unlocked layers"
+msgstr "Odwraca zaznaczenie na wszystkich widocznych i odblokowanych warstwach"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:222
-#: ../src/widgets/sp-color-scales.cpp:429
-msgid "_L"
-msgstr "_L"
+#: ../src/verbs.cpp:2326
+msgid "Select Next"
+msgstr "Zaznacz następny"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:223
-#: ../src/widgets/sp-color-icc-selector.cpp:224
-#: ../src/widgets/sp-color-scales.cpp:451
-msgid "_C"
-msgstr "_C"
+#: ../src/verbs.cpp:2327
+msgid "Select next object or node"
+msgstr "Zaznacza następny obiekt lub węzeł"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:223
-#: ../src/widgets/sp-color-icc-selector.cpp:224
-#: ../src/widgets/sp-color-scales.cpp:454
-msgid "_M"
-msgstr "_M"
+#: ../src/verbs.cpp:2328
+msgid "Select Previous"
+msgstr "Zaznacz poprzedni"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:223
-#: ../src/widgets/sp-color-icc-selector.cpp:224
-#: ../src/widgets/sp-color-scales.cpp:457
-msgid "_Y"
-msgstr "_Y"
+#: ../src/verbs.cpp:2329
+msgid "Select previous object or node"
+msgstr "Zaznacza poprzedni obiekt lub węzeł"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:223
-#: ../src/widgets/sp-color-scales.cpp:460
-msgid "_K"
-msgstr "_K"
+#: ../src/verbs.cpp:2330
+msgid "D_eselect"
+msgstr "Usuń zaz_naczenie"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:234
-msgid "Gray"
-msgstr "Odcienie szarości"
+#: ../src/verbs.cpp:2331
+msgid "Deselect any selected objects or nodes"
+msgstr "Usuń zaznaczenie ze wszystkich zaznaczonych obiektów lub węzłów"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:237
-#: ../src/widgets/sp-color-icc-selector.cpp:238
-#: ../src/widgets/sp-color-scales.cpp:452
-#: ../src/widgets/sp-color-scales.cpp:453
-msgid "Cyan"
-msgstr "Cyjan"
+#: ../src/verbs.cpp:2332
+msgid "_Guides around page"
+msgstr "_Prowadnice wokół strony"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:237
-#: ../src/widgets/sp-color-icc-selector.cpp:238
-#: ../src/widgets/sp-color-scales.cpp:455
-#: ../src/widgets/sp-color-scales.cpp:456
-msgid "Magenta"
-msgstr "Magenta"
+#: ../src/verbs.cpp:2333
+msgid "Create four guides aligned with the page borders"
+msgstr "Tworzy cztery prowadnice przylegające do krawędzi strony"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:237
-#: ../src/widgets/sp-color-icc-selector.cpp:238
-#: ../src/widgets/sp-color-scales.cpp:458
-#: ../src/widgets/sp-color-scales.cpp:459
-msgid "Yellow"
-msgstr "Yellow"
+#: ../src/verbs.cpp:2334
+msgid "Next Path Effect Parameter"
+msgstr "Następny parametr efektu ścieżki"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:295
-msgid "Fix"
-msgstr "Napraw"
+#: ../src/verbs.cpp:2335
+msgid "Show next Path Effect parameter for editing"
+msgstr "Wyświetl do edycji następny parametr efektu ścieżki"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:298
-msgid "Fix RGB fallback to match icc-color() value."
-msgstr "Napraw awarię składowych RGB, aby odpowiadały wartościom icc-color()"
+#. Selection
+#: ../src/verbs.cpp:2338
+msgid "Raise to _Top"
+msgstr "Przenieś na wierzc_h"
 
-#. Label
-#: ../src/widgets/sp-color-icc-selector.cpp:379
-#: ../src/widgets/sp-color-scales.cpp:406
-#: ../src/widgets/sp-color-scales.cpp:432
-#: ../src/widgets/sp-color-scales.cpp:463
-#: ../src/widgets/sp-color-wheel-selector.cpp:134
-msgid "_A"
-msgstr "_A"
+#: ../src/verbs.cpp:2339
+msgid "Raise selection to top"
+msgstr "Przenieś zaznaczone obiekty na wierzch"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:389
-#: ../src/widgets/sp-color-icc-selector.cpp:401
-#: ../src/widgets/sp-color-scales.cpp:407
-#: ../src/widgets/sp-color-scales.cpp:408
-#: ../src/widgets/sp-color-scales.cpp:433
-#: ../src/widgets/sp-color-scales.cpp:434
-#: ../src/widgets/sp-color-scales.cpp:464
-#: ../src/widgets/sp-color-scales.cpp:465
-#: ../src/widgets/sp-color-wheel-selector.cpp:144
-#: ../src/widgets/sp-color-wheel-selector.cpp:156
-msgid "Alpha (opacity)"
-msgstr "Krycie (przezroczystość)"
+#: ../src/verbs.cpp:2340
+msgid "Lower to _Bottom"
+msgstr "Przenieś pod _spód"
 
-#: ../src/widgets/sp-color-notebook.cpp:329
-msgid "RGBA_:"
-msgstr "RGBA_:"
+#: ../src/verbs.cpp:2341
+msgid "Lower selection to bottom"
+msgstr "Przenieś zaznaczone obiekty na spód"
 
-#: ../src/widgets/sp-color-notebook.cpp:337
-msgid "Hexadecimal RGBA value of the color"
-msgstr "Wartość szesnastkowa koloru RGBA"
+#: ../src/verbs.cpp:2342
+msgid "_Raise"
+msgstr "Przenieś w _górę"
 
-#: ../src/widgets/sp-color-scales.cpp:77
-msgid "RGB"
-msgstr "RGB"
+#: ../src/verbs.cpp:2343
+msgid "Raise selection one step"
+msgstr "Przenieś zaznaczone obiekty o jedną pozycję w górę"
 
-#: ../src/widgets/sp-color-scales.cpp:77
-msgid "HSL"
-msgstr "HSL"
+#: ../src/verbs.cpp:2344
+msgid "_Lower"
+msgstr "Przenieś w _dół"
 
-#: ../src/widgets/sp-color-scales.cpp:77
-msgid "CMYK"
-msgstr "CMYK"
+#: ../src/verbs.cpp:2345
+msgid "Lower selection one step"
+msgstr "Przenieś zaznaczone obiekty o jedną pozycję w dół"
 
-#: ../src/widgets/sp-color-selector.cpp:64
-msgid "Unnamed"
-msgstr "Bez nazwy"
+#: ../src/verbs.cpp:2346
+msgid "_Group"
+msgstr "Grup_uj"
 
-#: ../src/widgets/sp-color-wheel-selector.cpp:61
-msgid "Wheel"
-msgstr "Koło"
+#: ../src/verbs.cpp:2347
+msgid "Group selected objects"
+msgstr "Grupuj zaznaczone obiekty"
 
-#: ../src/widgets/sp-xmlview-attr-list.cpp:46
-msgid "Attribute"
-msgstr "Atrybut"
+#: ../src/verbs.cpp:2349
+msgid "Ungroup selected groups"
+msgstr "Rozdziel zaznaczone grupy obiektów"
 
-#: ../src/widgets/sp-xmlview-attr-list.cpp:47
-#: ../share/extensions/perfectboundcover.inx.h:19
-msgid "Value"
-msgstr "Wartość"
+#: ../src/verbs.cpp:2351
+msgid "_Put on Path"
+msgstr "_Wstaw na ścieżkę"
 
-#: ../src/widgets/sp-xmlview-content.cpp:169
-msgid "Type text in a text node"
-msgstr "Wprowadź tekst w węźle tekstowym"
+#: ../src/verbs.cpp:2353
+msgid "_Remove from Path"
+msgstr "_Zdejmij ze ścieżki"
 
-#: ../src/widgets/toolbox.cpp:187
-msgid "Color/opacity used for color tweaking"
-msgstr "Kolor/krycie użyte dla ustawień koloru"
+#: ../src/verbs.cpp:2355
+msgid "Remove Manual _Kerns"
+msgstr "U_suń ręczne podcięcie"
 
-#: ../src/widgets/toolbox.cpp:191
-msgid "Style of new stars"
-msgstr "Styl nowych gwiazd"
+#. 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:2358
+msgid "Remove all manual kerns and glyph rotations from a text object"
+msgstr "Usuwa ręcznie wprowadzone podcięcia i obrót glifu z obiektu tekstowego"
 
-#: ../src/widgets/toolbox.cpp:193
-msgid "Style of new rectangles"
-msgstr "Styl nowych prostokątów"
+#: ../src/verbs.cpp:2360
+msgid "_Union"
+msgstr "_Suma"
 
-#: ../src/widgets/toolbox.cpp:195
-msgid "Style of new 3D boxes"
-msgstr "Styl nowych elementów 3D"
+#: ../src/verbs.cpp:2361
+msgid "Create union of selected paths"
+msgstr "Tworzy sumę zaznaczonych ścieżek"
 
-#: ../src/widgets/toolbox.cpp:197
-msgid "Style of new ellipses"
-msgstr "Styl nowych elips"
+#: ../src/verbs.cpp:2362
+msgid "_Intersection"
+msgstr "Część wspó_lna"
 
-#: ../src/widgets/toolbox.cpp:199
-msgid "Style of new spirals"
-msgstr "Styl nowych spiral"
+#: ../src/verbs.cpp:2363
+msgid "Create intersection of selected paths"
+msgstr "Tworzy część wspólną zaznaczonych ścieżek"
 
-#: ../src/widgets/toolbox.cpp:201
-msgid "Style of new paths created by Pencil"
-msgstr "Styl nowych ścieżek utworzonych za pomocą ołówka"
+#: ../src/verbs.cpp:2364
+msgid "_Difference"
+msgstr "Różnic_a"
 
-#: ../src/widgets/toolbox.cpp:203
-msgid "Style of new paths created by Pen"
-msgstr "Styl nowych ścieżek utworzonych za pomocą narzędzia \"Pióro\""
+#: ../src/verbs.cpp:2365
+msgid "Create difference of selected paths (bottom minus top)"
+msgstr "Tworzy różnicę zaznaczonych ścieżek (dalszy minus bliższy)"
 
-#: ../src/widgets/toolbox.cpp:205
-msgid "Style of new calligraphic strokes"
-msgstr "Styl nowych linii kaligraficznych"
+#: ../src/verbs.cpp:2366
+msgid "E_xclusion"
+msgstr "_Wykluczenie"
 
-#: ../src/widgets/toolbox.cpp:207
-msgid "TBD"
-msgstr ""
+#: ../src/verbs.cpp:2367
+msgid "Create exclusive OR of selected paths (those parts that belong to only one path)"
+msgstr "Tworzy różnicę symetryczną zaznaczonych ścieżek (części należące tylko do jednej ze ścieżek)"
 
-#: ../src/widgets/toolbox.cpp:217
-msgid "Style of Paint Bucket fill objects"
-msgstr "Styl wypełniania obiektów"
+#: ../src/verbs.cpp:2368
+msgid "Di_vision"
+msgstr "_Podział"
 
-#: ../src/widgets/toolbox.cpp:1075
-msgid "Insert node"
-msgstr "Wstaw węzeł"
+#: ../src/verbs.cpp:2369
+msgid "Cut the bottom path into pieces"
+msgstr "Rozcina dolną ścieżkę na części"
 
-#: ../src/widgets/toolbox.cpp:1076
-msgid "Insert new nodes into selected segments"
-msgstr "Wstaw nowe węzły do zaznaczonych segmentów"
+#. 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:2372
+msgid "Cut _Path"
+msgstr "Ro_zcięcie ścieżki"
 
-#: ../src/widgets/toolbox.cpp:1079
-msgid "Insert"
-msgstr "Wstaw"
+#: ../src/verbs.cpp:2373
+msgid "Cut the bottom path's stroke into pieces, removing fill"
+msgstr "Rozcina kontur dolnej ścieżki na części i usuwa wypełnienie"
 
-#: ../src/widgets/toolbox.cpp:1087
-msgid "Delete selected nodes"
-msgstr "Usuń zaznaczone węzły"
+#. 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:2377
+msgid "Outs_et"
+msgstr "Przesuń na z_ewnątrz"
 
-#: ../src/widgets/toolbox.cpp:1097
-msgid "Join endnodes"
-msgstr "Połącz węzły końcowe"
+#: ../src/verbs.cpp:2378
+msgid "Outset selected paths"
+msgstr "Przesuwa zaznaczone ścieżki na zewnątrz kształtu"
 
-#: ../src/widgets/toolbox.cpp:1098
-msgid "Join selected endnodes"
-msgstr "Połącz zaznaczone węzły końcowe"
+#: ../src/verbs.cpp:2380
+msgid "O_utset Path by 1 px"
+msgstr "Przesuń ścieżkę na _zewnątrz o 1px"
 
-#: ../src/widgets/toolbox.cpp:1101
-msgid "Join"
-msgstr "Połącz"
+#: ../src/verbs.cpp:2381
+msgid "Outset selected paths by 1 px"
+msgstr "Przesuwa zaznaczone ścieżki na zewnątrz kształtu o 1 px"
 
-#: ../src/widgets/toolbox.cpp:1108
-msgid "Break nodes"
-msgstr ""
+#: ../src/verbs.cpp:2383
+msgid "O_utset Path by 10 px"
+msgstr "Przesuń ścieżkę na z_ewnątrz o 10px"
 
-#: ../src/widgets/toolbox.cpp:1109
-msgid "Break path at selected nodes"
-msgstr "Rozdziel ścieżkę w zaznaczonych węzłach"
+#: ../src/verbs.cpp:2384
+msgid "Outset selected paths by 10 px"
+msgstr "Przesuwa zaznaczone ścieżki na zewnątrz kształtu o 10 px"
 
-#: ../src/widgets/toolbox.cpp:1119
-msgid "Join with segment"
-msgstr "Połącz z odcinkiem"
+#. 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:2388
+msgid "I_nset"
+msgstr "Przesuń do wewną_trz"
 
-#: ../src/widgets/toolbox.cpp:1120
-msgid "Join selected endnodes with a new segment"
-msgstr "Połącz zaznaczone węzły końcowe wstawiając nowy odcinek"
+#: ../src/verbs.cpp:2389
+msgid "Inset selected paths"
+msgstr "Przesuwa zaznaczone ścieżki do wewnątrz kształtu"
 
-#: ../src/widgets/toolbox.cpp:1130
-msgid "Delete segment between two non-endpoint nodes"
-msgstr "Usuń odcinek pomiędzy dwoma nie końcowymi punktami"
+#: ../src/verbs.cpp:2391
+msgid "I_nset Path by 1 px"
+msgstr "Przesuń ścieżkę do _wewnątrz o 1px"
 
-#: ../src/widgets/toolbox.cpp:1139
-msgid "Node Cusp"
-msgstr "Węzeł wierzchołka"
+#: ../src/verbs.cpp:2392
+msgid "Inset selected paths by 1 px"
+msgstr "Przesuwa zaznaczone ścieżki do wewnątrz kształtu o 1 px"
 
-#: ../src/widgets/toolbox.cpp:1140
-msgid "Make selected nodes corner"
-msgstr "Zamień zaznaczone węzły w narożniki"
+#: ../src/verbs.cpp:2394
+msgid "I_nset Path by 10 px"
+msgstr "Przesuń ścieżkę do wew_nątrz o 10 px"
 
-#: ../src/widgets/toolbox.cpp:1149
-msgid "Node Smooth"
-msgstr "Wygładź węzły"
+#: ../src/verbs.cpp:2395
+msgid "Inset selected paths by 10 px"
+msgstr "Przesuwa zaznaczone ścieżki do wewnątrz kształtu o 10 px"
 
-#: ../src/widgets/toolbox.cpp:1150
-msgid "Make selected nodes smooth"
-msgstr "Zamień zaznaczone węzły w gładkie zaokrąglenia"
+#: ../src/verbs.cpp:2397
+msgid "Create a dynamic offset object"
+msgstr "Tworzy obiekt przesunięty dynamicznie"
 
-#: ../src/widgets/toolbox.cpp:1159
-msgid "Node Symmetric"
-msgstr "Symetria"
+#: ../src/verbs.cpp:2397
+msgid "D_ynamic Offset"
+msgstr "Przesuń _dynamicznie"
 
-#: ../src/widgets/toolbox.cpp:1160
-msgid "Make selected nodes symmetric"
-msgstr "Ustaw symetrię zaznaczonych węzłów"
+#: ../src/verbs.cpp:2399
+msgid "_Linked Offset"
+msgstr "Przesuń łą_cznie"
 
-#: ../src/widgets/toolbox.cpp:1169
-msgid "Node Line"
-msgstr "Linia"
+#: ../src/verbs.cpp:2400
+msgid "Create a dynamic offset object linked to the original path"
+msgstr "Tworzy obiekt przesunięty dynamicznie i połączony z oryginalną ścieżką"
 
-#: ../src/widgets/toolbox.cpp:1170
-msgid "Make selected segments lines"
-msgstr "Zamień zaznaczone segmenty na linie"
+#: ../src/verbs.cpp:2402
+msgid "_Stroke to Path"
+msgstr "_Kontur na ścieżkę"
 
-#: ../src/widgets/toolbox.cpp:1179
-msgid "Node Curve"
-msgstr "Krzywa"
+#: ../src/verbs.cpp:2403
+msgid "Convert selected object's stroke to paths"
+msgstr "Konwertuj kontur zaznaczonych obiektów na ścieżki"
 
-#: ../src/widgets/toolbox.cpp:1180
-msgid "Make selected segments curves"
-msgstr "Zamień zaznaczone segmenty na krzywe"
+#: ../src/verbs.cpp:2404
+msgid "Si_mplify"
+msgstr "_Uprość"
 
-#: ../src/widgets/toolbox.cpp:1189
-msgid "Show Handles"
-msgstr "Pokaż uchwyty"
+#: ../src/verbs.cpp:2405
+msgid "Simplify selected paths (remove extra nodes)"
+msgstr "Upraszcza zaznaczone ścieżki usuwając zbędne węzły"
 
-#: ../src/widgets/toolbox.cpp:1190
-msgid "Show the Bezier handles of selected nodes"
-msgstr "Pokaż uchwyty kontrolne krzywej Beziera zaznaczonych węzłów"
+#: ../src/verbs.cpp:2406
+msgid "_Reverse"
+msgstr "Odwróć kieru_nek"
 
-#: ../src/widgets/toolbox.cpp:1200
-msgid "Show Outline"
-msgstr "Pokaż obramowanie"
+#: ../src/verbs.cpp:2407
+msgid "Reverse the direction of selected paths (useful for flipping markers)"
+msgstr "Odwraca kierunek zaznaczonych ścieżek (przydatne do odwracania znaczników rozmieszczonych na konturze)"
 
-#: ../src/widgets/toolbox.cpp:1201
-msgid "Show the outline of the path"
-msgstr "Pokaż obramowanie ścieżki"
+#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
+#: ../src/verbs.cpp:2409
+msgid "_Trace Bitmap..."
+msgstr "Wektoryzuj bit_mapę..."
 
-#: ../src/widgets/toolbox.cpp:1211
-msgid "Next path effect parameter"
-msgstr "Następny parametr efektu ścieżki"
+#: ../src/verbs.cpp:2410
+msgid "Create one or more paths from a bitmap by tracing it"
+msgstr "Tworzy z bitmapy, poprzez jej wektoryzację, jedną lub więcej ścieżek"
 
-#: ../src/widgets/toolbox.cpp:1212
-msgid "Show next path effect parameter for editing"
-msgstr "Wyświetl do edycji następny parametr efektu ścieżki"
+#: ../src/verbs.cpp:2411
+msgid "_Make a Bitmap Copy"
+msgstr "Kopiuj jako _bitmapę"
 
-#: ../src/widgets/toolbox.cpp:1223
-msgid "Edit the clipping path of the object"
-msgstr "Eytuj ścieżkę przycinania obiektu"
+#: ../src/verbs.cpp:2412
+msgid "Export selection to a bitmap and insert it into document"
+msgstr "Eksportuje zaznaczenie do bitmapy i wstawia do dokumentu jako obraz"
 
-#: ../src/widgets/toolbox.cpp:1233
-msgid "Edit mask path"
-msgstr "Eytuj ścieżkę maski"
+#: ../src/verbs.cpp:2413
+msgid "_Combine"
+msgstr "P_ołącz"
 
-#: ../src/widgets/toolbox.cpp:1234
-msgid "Edit the mask of the object"
-msgstr "Edytuj maskę obiektu"
+#: ../src/verbs.cpp:2414
+msgid "Combine several paths into one"
+msgstr "Łączy kilka ścieżek w jedną"
 
-#: ../src/widgets/toolbox.cpp:1248
-msgid "X coordinate:"
-msgstr "Współrzędna X:"
+#. 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:2417
+msgid "Break _Apart"
+msgstr "_Rozdziel"
 
-#: ../src/widgets/toolbox.cpp:1248
-msgid "X coordinate of selected node(s)"
-msgstr "Współrzędna X zaznaczonego węzła(ów)"
+#: ../src/verbs.cpp:2418
+msgid "Break selected paths into subpaths"
+msgstr "Rozdziela zaznaczone ścieżki na poszczególne elementy"
 
-#: ../src/widgets/toolbox.cpp:1266
-msgid "Y coordinate:"
-msgstr "Współrzędna Y:"
+#: ../src/verbs.cpp:2419
+msgid "Rows and Columns..."
+msgstr "W_iersze i kolumny..."
 
-#: ../src/widgets/toolbox.cpp:1266
-msgid "Y coordinate of selected node(s)"
-msgstr "Współrzędna Y zaznaczonego węzła(ów)"
+#: ../src/verbs.cpp:2420
+msgid "Arrange selected objects in a table"
+msgstr "Otwórz okno umożliwiające rozmieszczanie zaznaczonych obiektów w tabeli"
 
-#: ../src/widgets/toolbox.cpp:1688
-msgid "Star: Change number of corners"
-msgstr "Gwiazda: Zmień liczbę narożników"
+#. Layer
+#: ../src/verbs.cpp:2422
+msgid "_Add Layer..."
+msgstr "_Nowa warstwa..."
 
-#: ../src/widgets/toolbox.cpp:1730
-msgid "Star: Change spoke ratio"
-msgstr "Gwiazda: Zmień proporcje ramion"
+#: ../src/verbs.cpp:2423
+msgid "Create a new layer"
+msgstr "Tworzy nową warstwę"
 
-#: ../src/widgets/toolbox.cpp:1773
-msgid "Make polygon"
-msgstr "Utwórz wielokąt"
+#: ../src/verbs.cpp:2424
+msgid "Re_name Layer..."
+msgstr "_Zmień nazwę warstwy..."
 
-#: ../src/widgets/toolbox.cpp:1773
-msgid "Make star"
-msgstr "Utwórz gwiazdę"
+#: ../src/verbs.cpp:2425
+msgid "Rename the current layer"
+msgstr "Zmienia nazwę aktywnej warstwy"
 
-#: ../src/widgets/toolbox.cpp:1808
-msgid "Star: Change rounding"
-msgstr "Gwiazda: Zmień zaokrąglenia"
+#: ../src/verbs.cpp:2426
+msgid "Switch to Layer Abov_e"
+msgstr "_Przejdź na wyższą warstwę"
 
-#: ../src/widgets/toolbox.cpp:1842
-msgid "Star: Change randomization"
-msgstr "Gwiazda: Zmień losowość"
+#: ../src/verbs.cpp:2427
+msgid "Switch to the layer above the current"
+msgstr "Przechodzi do warstwy położonej powyżej aktywnej warstwy"
 
-#: ../src/widgets/toolbox.cpp:2029
-msgid "Regular polygon (with one handle) instead of a star"
-msgstr "Wielokąt foremny zamiast gwiazdy (z jednym uchwytem)"
+#: ../src/verbs.cpp:2428
+msgid "Switch to Layer Belo_w"
+msgstr "Przej_dź na niższą warstwę"
 
-#: ../src/widgets/toolbox.cpp:2036
-msgid "Star instead of a regular polygon (with one handle)"
-msgstr "Gwiazda zamiast wielokąta foremnego (z jednym uchwytem)"
+#: ../src/verbs.cpp:2429
+msgid "Switch to the layer below the current"
+msgstr "Przechodzi do warstwy położonej poniżej aktywnej warstwy"
 
-#: ../src/widgets/toolbox.cpp:2057
-msgid "triangle/tri-star"
-msgstr "trójkąt/gwiazda trójramienna"
+#: ../src/verbs.cpp:2430
+msgid "Move Selection to Layer Abo_ve"
+msgstr "Przenieś zazna_czenie na wyższą warstwę"
 
-#: ../src/widgets/toolbox.cpp:2057
-msgid "square/quad-star"
-msgstr "kwadrat/gwiazda czteroramienna"
+#: ../src/verbs.cpp:2431
+msgid "Move selection to the layer above the current"
+msgstr "Przenosi zaznaczenie na warstwę ponad aktywną"
 
-#: ../src/widgets/toolbox.cpp:2057
-msgid "pentagon/five-pointed star"
-msgstr "pentagon/gwiazda pięcioramienna"
+#: ../src/verbs.cpp:2432
+msgid "Move Selection to Layer Bel_ow"
+msgstr "Prz_enieś zaznaczenie na niższą warstwę"
 
-#: ../src/widgets/toolbox.cpp:2057
-msgid "hexagon/six-pointed star"
-msgstr "hexagon/gwiazda sześcioramienna"
+#: ../src/verbs.cpp:2433
+msgid "Move selection to the layer below the current"
+msgstr "Przenosi zaznaczenie na warstwę poniżej aktywnej"
+
+#: ../src/verbs.cpp:2434
+msgid "Layer to _Top"
+msgstr "Przenieś warstwę na _wierzch"
 
-#: ../src/widgets/toolbox.cpp:2060
-msgid "Corners"
-msgstr "Narożniki"
+#: ../src/verbs.cpp:2435
+msgid "Raise the current layer to the top"
+msgstr "Przenosi aktywną warstwę na górę"
 
-#: ../src/widgets/toolbox.cpp:2060
-msgid "Corners:"
-msgstr "Narożniki:"
+#: ../src/verbs.cpp:2436
+msgid "Layer to _Bottom"
+msgstr "Przenieś warstwę pod _spód"
 
-#: ../src/widgets/toolbox.cpp:2060
-msgid "Number of corners of a polygon or star"
-msgstr "Liczba narożników wielokąta lub gwiazdy"
+#: ../src/verbs.cpp:2437
+msgid "Lower the current layer to the bottom"
+msgstr "Przenosi aktywną warstwę na dół"
 
-#: ../src/widgets/toolbox.cpp:2073
-msgid "thin-ray star"
-msgstr "gwiazda o cienkich ramionach"
+#: ../src/verbs.cpp:2438
+msgid "_Raise Layer"
+msgstr "Przenieś w_arstwę wyżej"
 
-#: ../src/widgets/toolbox.cpp:2073
-msgid "pentagram"
-msgstr "pentagram"
+#: ../src/verbs.cpp:2439
+msgid "Raise the current layer"
+msgstr "Przenosi aktywną warstwę o jedną pozycję wyżej"
 
-#: ../src/widgets/toolbox.cpp:2073
-msgid "hexagram"
-msgstr "heksagram"
+#: ../src/verbs.cpp:2440
+msgid "_Lower Layer"
+msgstr "Przenieś wa_rstwę niżej"
 
-#: ../src/widgets/toolbox.cpp:2073
-msgid "heptagram"
-msgstr "heptagram"
+#: ../src/verbs.cpp:2441
+msgid "Lower the current layer"
+msgstr "Przenosi aktywną warstwę o jedną pozycję niżej"
 
-#: ../src/widgets/toolbox.cpp:2073
-msgid "octagram"
-msgstr "oktagram"
+#: ../src/verbs.cpp:2442
+msgid "Duplicate Current Layer..."
+msgstr "Powiel aktywną warstwę..."
 
-#: ../src/widgets/toolbox.cpp:2073
-msgid "regular polygon"
-msgstr "wielokąt foremny"
+#: ../src/verbs.cpp:2443
+msgid "Duplicate an existing layer"
+msgstr "Powiel istniejącą warstwę"
 
-#: ../src/widgets/toolbox.cpp:2076
-msgid "Spoke ratio"
-msgstr "Proporcje ramion"
+#: ../src/verbs.cpp:2444
+msgid "_Delete Current Layer"
+msgstr "_Usuń aktywną warstwę"
 
-#: ../src/widgets/toolbox.cpp:2076
-msgid "Spoke ratio:"
-msgstr "Proporcje ramion:"
+#: ../src/verbs.cpp:2445
+msgid "Delete the current layer"
+msgstr "Usuwa aktywną warstwę razem ze znajdującymi się na niej obiektami"
 
-#. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle.
-#. Base radius is the same for the closest handle.
-#: ../src/widgets/toolbox.cpp:2079
-msgid "Base radius to tip radius ratio"
-msgstr "Stosunek promienia podstawy do promienia wierzchołków ramion"
+#: ../src/verbs.cpp:2446
+msgid "_Show/hide other layers"
+msgstr "Wyświetl/Ukryj inne warstwy"
 
-#: ../src/widgets/toolbox.cpp:2097
-msgid "stretched"
-msgstr "rozciągnięty"
+#: ../src/verbs.cpp:2447
+#, fuzzy
+msgid "Solo the current layer"
+msgstr "Przenosi aktywną warstwę o jedną pozycję niżej"
 
-#: ../src/widgets/toolbox.cpp:2097
-msgid "twisted"
-msgstr "zwichrowany"
+#: ../src/verbs.cpp:2449
+msgid "Lock Layers"
+msgstr "Zablokuj warstwy"
 
-#: ../src/widgets/toolbox.cpp:2097
-msgid "slightly pinched"
-msgstr "odchudzony"
+#: ../src/verbs.cpp:2450
+msgid "Lock all layers"
+msgstr "Zablokuj wszystkie warstwy"
 
-#: ../src/widgets/toolbox.cpp:2097
-msgid "NOT rounded"
-msgstr "niezaokrąglony"
+#: ../src/verbs.cpp:2451
+msgid "Unlock Layers"
+msgstr "Odblokuj warstwy"
 
-#: ../src/widgets/toolbox.cpp:2097
-msgid "slightly rounded"
-msgstr "nieznacznie zaokrąglony"
+#: ../src/verbs.cpp:2452
+msgid "Unlock all layers"
+msgstr "Odblokuj wszystkie warstwy"
 
-#: ../src/widgets/toolbox.cpp:2097
-msgid "visibly rounded"
-msgstr "wyraźnie zaokrąglony"
+#: ../src/verbs.cpp:2453
+msgid "Hide Layers"
+msgstr "Ukryj warstwy"
 
-#: ../src/widgets/toolbox.cpp:2097
-msgid "well rounded"
-msgstr "dobrze zaokrąglony"
+#: ../src/verbs.cpp:2454
+msgid "Hide all layers"
+msgstr "Ukryj wszystkie warstwy"
 
-#: ../src/widgets/toolbox.cpp:2097
-msgid "amply rounded"
-msgstr "bardzo zaokrąglony"
+#: ../src/verbs.cpp:2455
+msgid "Show Layers"
+msgstr "Pokaż warstwy"
 
-#: ../src/widgets/toolbox.cpp:2097 ../src/widgets/toolbox.cpp:2112
-msgid "blown up"
-msgstr "nadmuchany"
+#: ../src/verbs.cpp:2456
+msgid "Show all layers"
+msgstr "Pokaż wszystkie warstwy"
 
-#: ../src/widgets/toolbox.cpp:2100
-msgid "Rounded"
-msgstr "Zaokrąglone"
+#. Object
+#: ../src/verbs.cpp:2458
+msgid "Rotate _90&#176; CW"
+msgstr "Obróć o _90&#176; w prawo"
 
-#: ../src/widgets/toolbox.cpp:2100
-msgid "Rounded:"
-msgstr "Zaokrąglenie:"
+#. This is shared between tooltips and statusbar, so they
+#. must use UTF-8, not HTML entities for special characters.
+#: ../src/verbs.cpp:2461
+msgid "Rotate selection 90° clockwise"
+msgstr "Obróć zaznaczone obiekty o 90° w prawo"
 
-#: ../src/widgets/toolbox.cpp:2100
-msgid "How much rounded are the corners (0 for sharp)"
-msgstr "Wartość zaokrąglenia narożników (0 dla ostrych)"
+#: ../src/verbs.cpp:2462
+msgid "Rotate 9_0&#176; CCW"
+msgstr "Obróć o 9_0&#176; w lewo"
 
-#: ../src/widgets/toolbox.cpp:2112
-msgid "NOT randomized"
-msgstr "bez losowości"
+#. This is shared between tooltips and statusbar, so they
+#. must use UTF-8, not HTML entities for special characters.
+#: ../src/verbs.cpp:2465
+msgid "Rotate selection 90° counter-clockwise"
+msgstr "Obróć zaznaczone obiekty o 90° w lewo"
 
-#: ../src/widgets/toolbox.cpp:2112
-msgid "slightly irregular"
-msgstr "nierównomierny"
+#: ../src/verbs.cpp:2466
+msgid "Remove _Transformations"
+msgstr "Usuń przekształcenia"
 
-#: ../src/widgets/toolbox.cpp:2112
-msgid "visibly randomized"
-msgstr "widocznie zdeformowany"
+#: ../src/verbs.cpp:2467
+msgid "Remove transformations from object"
+msgstr "Usuwa przekształcenia z obiektu"
 
-#: ../src/widgets/toolbox.cpp:2112
-msgid "strongly randomized"
-msgstr "silnie zdeformowany"
+#: ../src/verbs.cpp:2468
+msgid "_Object to Path"
+msgstr "O_biekt na ścieżkę"
 
-#: ../src/widgets/toolbox.cpp:2115
-msgid "Randomized"
-msgstr "Deformacja losowa"
+#: ../src/verbs.cpp:2469
+msgid "Convert selected object to path"
+msgstr "Konwertuj zaznaczone obiekty na ścieżki"
 
-#: ../src/widgets/toolbox.cpp:2115
-msgid "Randomized:"
-msgstr "Deformacja losowa:"
+#: ../src/verbs.cpp:2470
+msgid "_Flow into Frame"
+msgstr "W_prowadź tekst do kształtu"
 
-#: ../src/widgets/toolbox.cpp:2115
-msgid "Scatter randomly the corners and angles"
-msgstr "Losowe zniekształcenie narożników i kątów"
+#: ../src/verbs.cpp:2471
+msgid "Put text into a frame (path or shape), creating a flowed text linked to the frame object"
+msgstr "Wprowadza tekst do ramki, ścieżki lub kształtu, tworząc tekst opływający przypisany do ramki obiektu"
 
-#: ../src/widgets/toolbox.cpp:2130 ../src/widgets/toolbox.cpp:3067
-#: ../src/widgets/toolbox.cpp:3847 ../src/widgets/toolbox.cpp:5804
-msgid "Defaults"
-msgstr "Domyślne"
+#: ../src/verbs.cpp:2472
+msgid "_Unflow"
+msgstr "_Uwolnij tekst"
 
-#: ../src/widgets/toolbox.cpp:2131 ../src/widgets/toolbox.cpp:3068
-msgid ""
-"Reset shape parameters to defaults (use Inkscape Preferences > Tools to "
-"change defaults)"
-msgstr ""
-"Przywróć domyślne ustawienia dla kształtu. Aby zmienić domyślne wartości "
-"przejdź do Ustawienia Inkscape » Narzędzia."
+#: ../src/verbs.cpp:2473
+msgid "Remove text from frame (creates a single-line text object)"
+msgstr "Usuwa tekst z ramki (tworzy obiekt tekstowy w pojedynczej linii)"
 
-#: ../src/widgets/toolbox.cpp:2203
-msgid "Change rectangle"
-msgstr "Zmień prostokąt"
+#: ../src/verbs.cpp:2474
+msgid "_Convert to Text"
+msgstr "_Konwertuj na zwykły tekst"
 
-#: ../src/widgets/toolbox.cpp:2396
-msgid "W:"
-msgstr "Szer.:"
+#: ../src/verbs.cpp:2475
+msgid "Convert flowed text to regular text object (preserves appearance)"
+msgstr "Konwertuje tekst dopasowany do kształtu na zwykły obiekt tekstowy (z zachowaniem wyglądu)"
 
-#: ../src/widgets/toolbox.cpp:2396
-msgid "Width of rectangle"
-msgstr "Szerokość prostokąta"
+#: ../src/verbs.cpp:2477
+msgid "Flip _Horizontal"
+msgstr "Odbij pozio_mo"
 
-#: ../src/widgets/toolbox.cpp:2413
-msgid "H:"
-msgstr "Wys.:"
+#: ../src/verbs.cpp:2477
+msgid "Flip selected objects horizontally"
+msgstr "Odbij zaznaczone obiekty poziomo"
 
-#: ../src/widgets/toolbox.cpp:2413
-msgid "Height of rectangle"
-msgstr "Wysokość prostokąta"
+#: ../src/verbs.cpp:2480
+msgid "Flip _Vertical"
+msgstr "Odbij pio_nowo"
 
-#: ../src/widgets/toolbox.cpp:2427 ../src/widgets/toolbox.cpp:2442
-msgid "not rounded"
-msgstr "niezaokrąglony"
+#: ../src/verbs.cpp:2480
+msgid "Flip selected objects vertically"
+msgstr "Odbij zaznaczone obiekty pionowo"
 
-#: ../src/widgets/toolbox.cpp:2430
-msgid "Horizontal radius"
-msgstr "Promień poziomy"
+#: ../src/verbs.cpp:2483
+msgid "Apply mask to selection (using the topmost object as mask)"
+msgstr "Nakłada maskę na zaznaczenie (wykorzystując obiekt na wierzchu jako maskę)"
 
-#: ../src/widgets/toolbox.cpp:2430
-msgid "Rx:"
-msgstr "Rx:"
+#: ../src/verbs.cpp:2485
+msgid "Edit mask"
+msgstr "Edytuj maskę"
 
-#: ../src/widgets/toolbox.cpp:2430
-msgid "Horizontal radius of rounded corners"
-msgstr "Poziomy promień zaokrąglonych narożników"
+#: ../src/verbs.cpp:2486
+#: ../src/verbs.cpp:2492
+msgid "_Release"
+msgstr "_Zdejmij"
 
-#: ../src/widgets/toolbox.cpp:2445
-msgid "Vertical radius"
-msgstr "Promień pionowy"
+#: ../src/verbs.cpp:2487
+msgid "Remove mask from selection"
+msgstr "Zdejmuje maskę z zaznaczonych obiektów"
 
-#: ../src/widgets/toolbox.cpp:2445
-msgid "Ry:"
-msgstr "Ry:"
+#: ../src/verbs.cpp:2489
+msgid "Apply clipping path to selection (using the topmost object as clipping path)"
+msgstr "Nakłada ścieżkę przycinającą na zaznaczenie wykorzystując obiekt na wierzchu jako ścieżkę przycinającą"
 
-#: ../src/widgets/toolbox.cpp:2445
-msgid "Vertical radius of rounded corners"
-msgstr "Pionowy promień zaokrąglonych narożników"
+#: ../src/verbs.cpp:2491
+#: ../src/widgets/toolbox.cpp:1412
+msgid "Edit clipping path"
+msgstr "Edytuj ścieżkę przycinania"
 
-#: ../src/widgets/toolbox.cpp:2464
-msgid "Not rounded"
-msgstr "Bez zaokrąglenia"
+#: ../src/verbs.cpp:2493
+msgid "Remove clipping path from selection"
+msgstr "Usuwa z zaznaczenia ścieżkę przycinającą"
 
-#: ../src/widgets/toolbox.cpp:2465
-msgid "Make corners sharp"
-msgstr "Utwórz ostre narożniki"
+#. Tools
+#: ../src/verbs.cpp:2496
+msgid "Select"
+msgstr "Wskaźnik"
 
-#. TODO: use the correct axis here, too
-#: ../src/widgets/toolbox.cpp:2654
-msgid "3D Box: Change perspective (angle of infinite axis)"
-msgstr "Obiekt 3D: Zmienia perspektywę (kąt osi nieskończonej)"
+#: ../src/verbs.cpp:2497
+msgid "Select and transform objects"
+msgstr "Wskaźnik: Zaznaczanie i przekształcanie obiektów"
 
-#: ../src/widgets/toolbox.cpp:2723
-msgid "Angle in X direction"
-msgstr "Kąt w orientacji X"
+#: ../src/verbs.cpp:2498
+msgid "Node Edit"
+msgstr "Edycja węzłów"
 
-#. Translators: PL is short for 'perspective line'
-#: ../src/widgets/toolbox.cpp:2725
-msgid "Angle of PLs in X direction"
-msgstr "Kąt linii perspektywy w orientacji X"
+#: ../src/verbs.cpp:2499
+msgid "Edit paths by nodes"
+msgstr "Edycja węzłów: Edytowanie węzłów i uchwytów sterujących ścieżek"
 
-#. Translators: VP is short for 'vanishing point'
-#: ../src/widgets/toolbox.cpp:2747
-msgid "State of VP in X direction"
-msgstr "Stan punktu zbiegu w orientacji X"
+#: ../src/verbs.cpp:2501
+msgid "Tweak objects by sculpting or painting"
+msgstr "Ulepszanie: Ulepszanie obiektów za pomocą rzeźbienia lub malowania"
 
-#: ../src/widgets/toolbox.cpp:2748
-msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)"
-msgstr ""
-"Przełącza punkt zbiegu w orientacji X pomiędzy \"skończony\" i \"nieskończony"
-"\" (=równoległy)"
+#: ../src/verbs.cpp:2503
+msgid "Create rectangles and squares"
+msgstr "Prostokąt: Tworzenie prostokątów i kwadratów"
 
-#: ../src/widgets/toolbox.cpp:2763
-msgid "Angle in Y direction"
-msgstr "Kąt w orientacji Y"
+#: ../src/verbs.cpp:2505
+msgid "Create 3D boxes"
+msgstr "Obiekt 3D: Tworzenie obiektów 3D"
 
-#: ../src/widgets/toolbox.cpp:2763
-msgid "Angle Y:"
-msgstr "Kąt Y:"
+#: ../src/verbs.cpp:2507
+msgid "Create circles, ellipses, and arcs"
+msgstr "Okrąg: Tworzenie okręgów, elips i łuków"
 
-#. Translators: PL is short for 'perspective line'
-#: ../src/widgets/toolbox.cpp:2765
-msgid "Angle of PLs in Y direction"
-msgstr "Kąt linii perspektywy w orientacji Y"
+#: ../src/verbs.cpp:2509
+msgid "Create stars and polygons"
+msgstr "Gwiazda: Tworzenie gwiazd i wielokątów"
 
-#. Translators: VP is short for 'vanishing point'
-#: ../src/widgets/toolbox.cpp:2786
-msgid "State of VP in Y direction"
-msgstr "Stan punktu zbiegu w orientacji Y"
+#: ../src/verbs.cpp:2511
+msgid "Create spirals"
+msgstr "Spirala: Tworzenie spiral"
 
-#: ../src/widgets/toolbox.cpp:2787
-msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)"
-msgstr ""
-"Przełącza punkt zbiegu w orientacji Y pomiędzy \"skończony\" i \"nieskończony"
-"\" (=równoległy)"
+#: ../src/verbs.cpp:2513
+msgid "Draw freehand lines"
+msgstr "Ołówek: Ręczne rysowanie krzywych"
 
-#: ../src/widgets/toolbox.cpp:2802
-msgid "Angle in Z direction"
-msgstr "Kąt w orientacji Z"
+#: ../src/verbs.cpp:2515
+msgid "Draw Bezier curves and straight lines"
+msgstr "Pióro: Rysowanie krzywych Beziera i linii prostych"
 
-#. Translators: PL is short for 'perspective line'
-#: ../src/widgets/toolbox.cpp:2804
-msgid "Angle of PLs in Z direction"
-msgstr "Kąt linii perspektywy w orientacji Z"
+#: ../src/verbs.cpp:2517
+msgid "Draw calligraphic or brush strokes"
+msgstr "Kaligrafia: Tworzenie linii kaligraficznych lub pociągnięć pędzlem"
 
-#. Translators: VP is short for 'vanishing point'
-#: ../src/widgets/toolbox.cpp:2825
-msgid "State of VP in Z direction"
-msgstr "Stan punktu zbiegu w orientacji Z"
+#: ../src/verbs.cpp:2519
+msgid "Create and edit text objects"
+msgstr "Tekst: Tworzenie i modyfikowanie obiektów tekstowych"
 
-#: ../src/widgets/toolbox.cpp:2826
-msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)"
-msgstr ""
-"Przełącza punkt zbiegu w orientacji Z pomiędzy \"skończony\" i \"nieskończony"
-"\" (=równoległy)"
+#: ../src/verbs.cpp:2521
+msgid "Create and edit gradients"
+msgstr "Gradient: Tworzenie i modyfikowanie gradientów"
 
-#: ../src/widgets/toolbox.cpp:2883
-msgid "Change spiral"
-msgstr "Zmień spiralę"
+#: ../src/verbs.cpp:2523
+msgid "Zoom in or out"
+msgstr "Powiększenie: Zmienianie skali wyświetlania rysunku"
 
-#: ../src/widgets/toolbox.cpp:3024
-msgid "just a curve"
-msgstr "tylko krzywa"
+#: ../src/verbs.cpp:2525
+msgid "Pick colors from image"
+msgstr "Próbnik koloru: Pobieranie kolorów z obrazka"
 
-#: ../src/widgets/toolbox.cpp:3024
-msgid "one full revolution"
-msgstr "jeden pełny obrót"
+#: ../src/verbs.cpp:2527
+msgid "Create diagram connectors"
+msgstr "Łącznik: Tworzenie diagramu łączników"
 
-#: ../src/widgets/toolbox.cpp:3027
-msgid "Number of turns"
-msgstr "Liczba obrotów"
+#: ../src/verbs.cpp:2529
+msgid "Fill bounded areas"
+msgstr "Wypełnienie: Wypełnianie kolorem zaznaczonych obszarów"
 
-#: ../src/widgets/toolbox.cpp:3027
-msgid "Turns:"
-msgstr "Obroty:"
+#: ../src/verbs.cpp:2530
+msgid "LPE Edit"
+msgstr "Edytuj LPE"
 
-#: ../src/widgets/toolbox.cpp:3027
-msgid "Number of revolutions"
-msgstr "Liczba obrotów"
+#: ../src/verbs.cpp:2531
+msgid "Edit Live Path Effect parameters"
+msgstr "Edycja parametrów efektu żywej ścieżki"
 
-#: ../src/widgets/toolbox.cpp:3038
-msgid "circle"
-msgstr "okrąg"
+#: ../src/verbs.cpp:2533
+msgid "Erase existing paths"
+msgstr "Usuń istniejące ścieżki"
 
-#: ../src/widgets/toolbox.cpp:3038
-msgid "edge is much denser"
-msgstr "krawędź jest bardzo skupiona"
+#: ../src/verbs.cpp:2535
+msgid "Do geometric constructions"
+msgstr ""
 
-#: ../src/widgets/toolbox.cpp:3038
-msgid "edge is denser"
-msgstr "krawędź jest skupiona"
+#. Tool prefs
+#: ../src/verbs.cpp:2537
+msgid "Selector Preferences"
+msgstr "Ustawienia narzędzia \"Wskaźnik\""
 
-#: ../src/widgets/toolbox.cpp:3038
-msgid "even"
-msgstr "równy"
+#: ../src/verbs.cpp:2538
+msgid "Open Preferences for the Selector tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Wskaźnik\""
 
-#: ../src/widgets/toolbox.cpp:3038
-msgid "center is denser"
-msgstr "środek jest skupiony"
+#: ../src/verbs.cpp:2539
+msgid "Node Tool Preferences"
+msgstr "Ustawienia narzędzia \"Edycja węzłów\""
 
-#: ../src/widgets/toolbox.cpp:3038
-msgid "center is much denser"
-msgstr "środek jest bardzo skupiony"
+#: ../src/verbs.cpp:2540
+msgid "Open Preferences for the Node tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Edycja węzłów\""
 
-#: ../src/widgets/toolbox.cpp:3041
-msgid "Divergence"
-msgstr "Zbieżność"
+#: ../src/verbs.cpp:2541
+msgid "Tweak Tool Preferences"
+msgstr "Ustawienia narzędzia \"Ulepszanie\""
 
-#: ../src/widgets/toolbox.cpp:3041
-msgid "Divergence:"
-msgstr "Zbieżność:"
+#: ../src/verbs.cpp:2542
+msgid "Open Preferences for the Tweak tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Ulepszanie\""
 
-#: ../src/widgets/toolbox.cpp:3041
-msgid "How much denser/sparser are outer revolutions; 1 = uniform"
-msgstr "Jak bardzo są skupione/rozrzucone obroty; 1 = równomiernie"
+#: ../src/verbs.cpp:2543
+msgid "Rectangle Preferences"
+msgstr "Ustawienia narzędzia \"Prostokąt\""
 
-#: ../src/widgets/toolbox.cpp:3052
-msgid "starts from center"
-msgstr "rozpocznij od środka"
+#: ../src/verbs.cpp:2544
+msgid "Open Preferences for the Rectangle tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Prostokąt\""
 
-#: ../src/widgets/toolbox.cpp:3052
-msgid "starts mid-way"
-msgstr "rozpocznij w połowie drogi"
+#: ../src/verbs.cpp:2545
+msgid "3D Box Preferences"
+msgstr "Ustawienia narzędzia \"Obiekt 3D\""
 
-#: ../src/widgets/toolbox.cpp:3052
-msgid "starts near edge"
-msgstr "rozpocznij w pobliżu krawędzi"
+#: ../src/verbs.cpp:2546
+msgid "Open Preferences for the 3D Box tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Obiekt 3D\""
 
-#: ../src/widgets/toolbox.cpp:3055
-msgid "Inner radius"
-msgstr "Wewnętrzny promień"
+#: ../src/verbs.cpp:2547
+msgid "Ellipse Preferences"
+msgstr "Ustawienia narzędzia \"Okrąg\""
 
-#: ../src/widgets/toolbox.cpp:3055
-msgid "Inner radius:"
-msgstr "Wewnętrzny promień:"
+#: ../src/verbs.cpp:2548
+msgid "Open Preferences for the Ellipse tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Okrąg\""
 
-#: ../src/widgets/toolbox.cpp:3055
-msgid "Radius of the innermost revolution (relative to the spiral size)"
-msgstr ""
-"Promień położonego najbliżej środka obrotu (względem wielkości spirali)"
+#: ../src/verbs.cpp:2549
+msgid "Star Preferences"
+msgstr "Ustawienia narzędzia \"Gwiazda\""
 
-#: ../src/widgets/toolbox.cpp:3101
-#, fuzzy
-msgid "<b>Mode:</b>"
-msgstr "<b>Kontur</b>"
+#: ../src/verbs.cpp:2550
+msgid "Open Preferences for the Star tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Gwiazda\""
 
-#: ../src/widgets/toolbox.cpp:3121
-msgid "Bézier"
-msgstr ""
+#: ../src/verbs.cpp:2551
+msgid "Spiral Preferences"
+msgstr "Ustawienia narzędzia \"Spirala\""
 
-#: ../src/widgets/toolbox.cpp:3122
-msgid "Regular Bézier mode"
-msgstr ""
+#: ../src/verbs.cpp:2552
+msgid "Open Preferences for the Spiral tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Spirala\""
 
-#: ../src/widgets/toolbox.cpp:3128
-#, fuzzy
-msgid "Spiro"
-msgstr "Spirala"
+#: ../src/verbs.cpp:2553
+msgid "Pencil Preferences"
+msgstr "Ustawienia narzędzia \"Ołówek\""
 
-#: ../src/widgets/toolbox.cpp:3129
-#, fuzzy
-msgid "Spiro splines mode"
-msgstr "Tryb zmniejszania"
+#: ../src/verbs.cpp:2554
+msgid "Open Preferences for the Pencil tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Ołówek\""
 
-#. Width
-#: ../src/widgets/toolbox.cpp:3238
-msgid "(pinch tweak)"
-msgstr "(udoskonalanie wąskie)"
+#: ../src/verbs.cpp:2555
+msgid "Pen Preferences"
+msgstr "Ustawienia narzędzia \"Pióro\""
 
-#: ../src/widgets/toolbox.cpp:3238 ../src/widgets/toolbox.cpp:3254
-#: ../src/widgets/toolbox.cpp:3420 ../src/widgets/toolbox.cpp:3642
-#: ../src/widgets/toolbox.cpp:3674 ../src/widgets/toolbox.cpp:4315
-msgid "(default)"
-msgstr "(domyślny)"
+#: ../src/verbs.cpp:2556
+msgid "Open Preferences for the Pen tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Pióro\""
 
-#: ../src/widgets/toolbox.cpp:3238
-msgid "(broad tweak)"
-msgstr "(udoskonalanie szerokie)"
+#: ../src/verbs.cpp:2557
+msgid "Calligraphic Preferences"
+msgstr "Ustawienia narzędzia \"Kaligrafia\""
 
-#: ../src/widgets/toolbox.cpp:3241
-msgid "The width of the tweak area (relative to the visible canvas area)"
-msgstr "Szerokość zmienianego obszaru (względem widocznego obszaru pracy)"
+#: ../src/verbs.cpp:2558
+msgid "Open Preferences for the Calligraphy tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Kaligrafia\""
 
-#. Force
-#: ../src/widgets/toolbox.cpp:3254
-msgid "(minimum force)"
-msgstr "(minimalna siła)"
+#: ../src/verbs.cpp:2559
+msgid "Text Preferences"
+msgstr "Ustawienia narzędzia \"Tekst\""
 
-#: ../src/widgets/toolbox.cpp:3254
-msgid "(maximum force)"
-msgstr "(maksymalna siła)"
+#: ../src/verbs.cpp:2560
+msgid "Open Preferences for the Text tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Tekst\""
 
-#: ../src/widgets/toolbox.cpp:3257
-msgid "Force"
-msgstr "Siła"
+#: ../src/verbs.cpp:2561
+msgid "Gradient Preferences"
+msgstr "Ustawienia narzędzia \"Gradient\""
 
-#: ../src/widgets/toolbox.cpp:3257
-msgid "Force:"
-msgstr "Siła:"
+#: ../src/verbs.cpp:2562
+msgid "Open Preferences for the Gradient tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Gradient\""
 
-#: ../src/widgets/toolbox.cpp:3257
-msgid "The force of the tweak action"
-msgstr "Siła działania udoskonalania"
+#: ../src/verbs.cpp:2563
+msgid "Zoom Preferences"
+msgstr "Ustawienia narzędzia \"Powiększenie\""
 
-#: ../src/widgets/toolbox.cpp:3274
-msgid "Push mode"
-msgstr "Tryb nacisku"
+#: ../src/verbs.cpp:2564
+msgid "Open Preferences for the Zoom tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Powiększenie\""
 
-#: ../src/widgets/toolbox.cpp:3275
-msgid "Push parts of paths in any direction"
-msgstr "Popychaj części ścieżek w jakimkolwiek kierunku"
+#: ../src/verbs.cpp:2565
+msgid "Dropper Preferences"
+msgstr "Ustawienia narzędzia \"Próbnik koloru\""
 
-#: ../src/widgets/toolbox.cpp:3281
-msgid "Shrink mode"
-msgstr "Tryb zmniejszania"
+#: ../src/verbs.cpp:2566
+msgid "Open Preferences for the Dropper tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Próbnik koloru\""
 
-#: ../src/widgets/toolbox.cpp:3282
-msgid "Shrink (inset) parts of paths"
-msgstr "Zmniejsz części ścieżki (efekt wklęśnięcia)"
+#: ../src/verbs.cpp:2567
+msgid "Connector Preferences"
+msgstr "Ustawienia narzędzia \"Łącznik\""
 
-#: ../src/widgets/toolbox.cpp:3288
-msgid "Grow mode"
-msgstr "Tryb powiększania"
+#: ../src/verbs.cpp:2568
+msgid "Open Preferences for the Connector tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Łącznik\""
 
-#: ../src/widgets/toolbox.cpp:3289
-msgid "Grow (outset) parts of paths"
-msgstr "Zwiększ części ścieżki (efekt uwypuklenia)"
+#: ../src/verbs.cpp:2569
+msgid "Paint Bucket Preferences"
+msgstr "Ustawienia narzędzia \"Wypełnienie\""
 
-#: ../src/widgets/toolbox.cpp:3295
-msgid "Attract mode"
-msgstr "Tryb przyciągania"
+#: ../src/verbs.cpp:2570
+msgid "Open Preferences for the Paint Bucket tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Wypełnienie\""
 
-#: ../src/widgets/toolbox.cpp:3296
-msgid "Attract parts of paths towards cursor"
-msgstr "Przyciągaj części ścieżek do kursora"
+#: ../src/verbs.cpp:2571
+msgid "Eraser Preferences"
+msgstr "Ustawienia usuwania"
 
-#: ../src/widgets/toolbox.cpp:3302
-msgid "Repel mode"
-msgstr "Tryb odpychania"
+#: ../src/verbs.cpp:2572
+msgid "Open Preferences for the Eraser tool"
+msgstr "Otwiera okno ustawień dla narzędzia usuwania"
 
-#: ../src/widgets/toolbox.cpp:3303
-msgid "Repel parts of paths from cursor"
-msgstr "Odpychaj części ścieżek od kursora"
+#: ../src/verbs.cpp:2573
+msgid "LPE Tool Preferences"
+msgstr ""
 
-#: ../src/widgets/toolbox.cpp:3309
-msgid "Roughen mode"
-msgstr "Tryb chropowatości"
+#: ../src/verbs.cpp:2574
+#, fuzzy
+msgid "Open Preferences for the LPETool tool"
+msgstr "Otwiera okno ustawień dla narzędzia \"Powiększenie\""
 
-#: ../src/widgets/toolbox.cpp:3310
-msgid "Roughen parts of paths"
-msgstr "Twórz chropowatość ścieżek"
+#. Zoom/View
+#: ../src/verbs.cpp:2577
+msgid "Zoom In"
+msgstr "Powiększ"
 
-#: ../src/widgets/toolbox.cpp:3316
-msgid "Color paint mode"
-msgstr "Tryb malowania"
+#: ../src/verbs.cpp:2577
+msgid "Zoom in"
+msgstr "Powiększ"
 
-#: ../src/widgets/toolbox.cpp:3317
-msgid "Paint the tool's color upon selected objects"
-msgstr "Maluj kolorem narzędzia na zaznaczonych obiektach"
+#: ../src/verbs.cpp:2578
+msgid "Zoom Out"
+msgstr "Pomniejsz"
 
-#: ../src/widgets/toolbox.cpp:3323
-msgid "Color jitter mode"
-msgstr "Tryb desynchronizacji koloru"
+#: ../src/verbs.cpp:2578
+msgid "Zoom out"
+msgstr "Pomniejsz"
 
-#: ../src/widgets/toolbox.cpp:3324
-msgid "Jitter the colors of selected objects"
-msgstr "Desynchronizuj kolory zaznaczonych obiektów"
+#: ../src/verbs.cpp:2579
+msgid "Show or hide the canvas rulers"
+msgstr "Wyświetla lub ukrywa linijki"
 
-#: ../src/widgets/toolbox.cpp:3329
-msgid "Mode:"
-msgstr "Tryb:"
+#: ../src/verbs.cpp:2579
+msgid "_Rulers"
+msgstr "_Linijki"
 
-#: ../src/widgets/toolbox.cpp:3350
-msgid "Channels:"
-msgstr "Kanały:"
+#: ../src/verbs.cpp:2580
+msgid "Scroll_bars"
+msgstr "Paski p_rzewijania"
 
-#: ../src/widgets/toolbox.cpp:3361
-msgid "In color mode, act on objects' hue"
-msgstr "W trybie koloru oddziałuje na barwę obiektu"
+#: ../src/verbs.cpp:2580
+msgid "Show or hide the canvas scrollbars"
+msgstr "Wyświetla lub ukrywa paski przewijania"
 
-#. TRANSLATORS:  "H" here stands for hue
-#: ../src/widgets/toolbox.cpp:3365
-msgid "H"
-msgstr "B"
+#: ../src/verbs.cpp:2581
+msgid "Show or hide the grid"
+msgstr "Wyświetla lub ukrywa siatkę"
 
-#: ../src/widgets/toolbox.cpp:3376
-msgid "In color mode, act on objects' saturation"
-msgstr "W trybie koloru oddziałuje na nasycenie kolorów obiektu"
+#: ../src/verbs.cpp:2581
+msgid "_Grid"
+msgstr "Wyświetl _siatkę"
 
-#. TRANSLATORS: "S" here stands for Saturation
-#: ../src/widgets/toolbox.cpp:3380
-msgid "S"
-msgstr "N"
+#: ../src/verbs.cpp:2582
+msgid "G_uides"
+msgstr "Wyświetl pro_wadnice"
 
-#: ../src/widgets/toolbox.cpp:3391
-msgid "In color mode, act on objects' lightness"
-msgstr "W trybie koloru oddziałuje na jasność obiektu"
+#: ../src/verbs.cpp:2582
+msgid "Show or hide guides (drag from a ruler to create a guide)"
+msgstr "Wyświetla lub ukrywa prowadnice (przeciągnij z linijki, aby utworzyć prowadnice)"
 
-#. TRANSLATORS: "L" here stands for Lightness
-#: ../src/widgets/toolbox.cpp:3395
-msgid "L"
-msgstr "J"
+#: ../src/verbs.cpp:2584
+msgid "Nex_t Zoom"
+msgstr "_Następne powiększenie"
 
-#: ../src/widgets/toolbox.cpp:3406
-msgid "In color mode, act on objects' opacity"
-msgstr "W trybie koloru oddziałuje na krycie obiektu"
+#: ../src/verbs.cpp:2584
+msgid "Next zoom (from the history of zooms)"
+msgstr "Następne powiększenie (z historii powiększeń)"
 
-#. TRANSLATORS: "O" here stands for Opacity
-#: ../src/widgets/toolbox.cpp:3410
-msgid "O"
-msgstr "K"
+#: ../src/verbs.cpp:2586
+msgid "Pre_vious Zoom"
+msgstr "_Poprzednie powiększenie"
 
-#. Fidelity
-#: ../src/widgets/toolbox.cpp:3420
-msgid "(rough, simplified)"
-msgstr "(niewygładzony, uproszczony)"
+#: ../src/verbs.cpp:2586
+msgid "Previous zoom (from the history of zooms)"
+msgstr "Poprzednie powiększenie (z historii powiększeń)"
 
-#: ../src/widgets/toolbox.cpp:3420
-msgid "(fine, but many nodes)"
-msgstr "(dokładnie, ale wiele węzłów)"
+#: ../src/verbs.cpp:2588
+msgid "Zoom 1:_1"
+msgstr "Skala 1:_1"
 
-#: ../src/widgets/toolbox.cpp:3423
-msgid "Fidelity"
-msgstr "Dokładność"
+#: ../src/verbs.cpp:2588
+msgid "Zoom to 1:1"
+msgstr "Skala 1:1"
 
-#: ../src/widgets/toolbox.cpp:3423
-msgid "Fidelity:"
-msgstr "Dokładność:"
+#: ../src/verbs.cpp:2590
+msgid "Zoom 1:_2"
+msgstr "Skala 1:_2"
 
-#: ../src/widgets/toolbox.cpp:3424
-msgid ""
-"Low fidelity simplifies paths; high fidelity preserves path features but may "
-"generate a lot of new nodes"
-msgstr ""
-"Mała dokładność upraszcza ścieżki, duża zachowuje cechy ścieżki, ale może "
-"generować dodatkowe węzły"
+#: ../src/verbs.cpp:2590
+msgid "Zoom to 1:2"
+msgstr "Skala 1:2"
 
-#: ../src/widgets/toolbox.cpp:3441 ../src/widgets/toolbox.cpp:3789
-msgid "Pressure"
-msgstr "Siła nacisku"
+#: ../src/verbs.cpp:2592
+msgid "Zoom to 2:1"
+msgstr "Skala 2:1"
 
-#: ../src/widgets/toolbox.cpp:3442
-msgid "Use the pressure of the input device to alter the force of tweak action"
-msgstr ""
-"Zastosuj siłę nacisku urządzenia wejściowego do zmiany szerokości kreski"
+#: ../src/verbs.cpp:2592
+msgid "_Zoom 2:1"
+msgstr "_Skala 2:1"
 
-#. Width
-#: ../src/widgets/toolbox.cpp:3642 ../src/widgets/toolbox.cpp:4315
-msgid "(hairline)"
-msgstr "(włosowy)"
+#: ../src/verbs.cpp:2595
+msgid "Stretch this document window to full screen"
+msgstr "Rozciąga okno dokumentu na cały ekran"
 
-#: ../src/widgets/toolbox.cpp:3642 ../src/widgets/toolbox.cpp:4315
-msgid "(broad stroke)"
-msgstr "(szeroki kontur)"
+#: ../src/verbs.cpp:2595
+msgid "_Fullscreen"
+msgstr "Pełny _ekran"
 
-#: ../src/widgets/toolbox.cpp:3645 ../src/widgets/toolbox.cpp:4318
-msgid "Pen Width"
-msgstr "Szerokość linii kaligraficznych"
+#: ../src/verbs.cpp:2598
+msgid "Remove excess toolbars to focus on drawing"
+msgstr ""
 
-#: ../src/widgets/toolbox.cpp:3646
-msgid "The width of the calligraphic pen (relative to the visible canvas area)"
+#: ../src/verbs.cpp:2598
+msgid "Toggle _Focus Mode"
 msgstr ""
-"Szerokość pisma kaligraficznego (względem widocznego obszaru roboczego)"
 
-#. Thinning
-#: ../src/widgets/toolbox.cpp:3658
-msgid "(speed blows up stroke)"
-msgstr "(szybkość powiększa kontur)"
+#: ../src/verbs.cpp:2600
+msgid "Duplic_ate Window"
+msgstr "_Powiel okno"
 
-#: ../src/widgets/toolbox.cpp:3658
-msgid "(slight widening)"
-msgstr "(niewielkie poszerzenie)"
+#: ../src/verbs.cpp:2600
+msgid "Open a new window with the same document"
+msgstr "Otwiera nowe okno z tym samym dokumentem"
 
-#: ../src/widgets/toolbox.cpp:3658
-msgid "(constant width)"
-msgstr "(stała szerokość)"
+#: ../src/verbs.cpp:2602
+msgid "_New View Preview"
+msgstr "Nowy podgląd widoku"
 
-#: ../src/widgets/toolbox.cpp:3658
-msgid "(slight thinning, default)"
-msgstr "(niewielkie pocienienie, domyślna)"
+#: ../src/verbs.cpp:2603
+msgid "New View Preview"
+msgstr "Nowy podgląd widoku"
 
-#: ../src/widgets/toolbox.cpp:3658
-msgid "(speed deflates stroke)"
-msgstr "(szybkość znacznie zmniejsza kontur)"
+#. "view_new_preview"
+#: ../src/verbs.cpp:2605
+msgid "_Normal"
+msgstr "_Normalny"
 
-#: ../src/widgets/toolbox.cpp:3661
-msgid "Stroke Thinning"
-msgstr "Pocienienie konturu"
+#: ../src/verbs.cpp:2606
+msgid "Switch to normal display mode"
+msgstr "Przełącza do normalnego widoku"
 
-#: ../src/widgets/toolbox.cpp:3661
-msgid "Thinning:"
-msgstr "Pocienienie:"
+#: ../src/verbs.cpp:2607
+msgid "No _Filters"
+msgstr "Bez _filtrów"
 
-#: ../src/widgets/toolbox.cpp:3662
-msgid ""
-"How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 "
-"makes them broader, 0 makes width independent of velocity)"
-msgstr ""
-"W jakim stopniu szybkość pociągnięcia wpływa na szerokość konturu (> 0 "
-"pocienia szybkie pociągnięcia, < 0 poszerza je, 0 uniezależnia szerokość od "
-"szybkości)"
+#: ../src/verbs.cpp:2608
+msgid "Switch to normal display without filters"
+msgstr "Przełącza do normalnego widoku bez filtrów"
 
-#. Angle
-#: ../src/widgets/toolbox.cpp:3674
-msgid "(left edge up)"
-msgstr "(lewa górna krawędź)"
+#: ../src/verbs.cpp:2609
+msgid "_Outline"
+msgstr "_Szkieletowy"
 
-#: ../src/widgets/toolbox.cpp:3674
-msgid "(horizontal)"
-msgstr "(poziomo)"
+#: ../src/verbs.cpp:2610
+msgid "Switch to outline (wireframe) display mode"
+msgstr "Przełącza do widoku konturowego (bez wypełnienia)"
 
-#: ../src/widgets/toolbox.cpp:3674
-msgid "(right edge up)"
-msgstr "(prawa górna krawędź)"
+#: ../src/verbs.cpp:2611
+msgid "_Toggle"
+msgstr "_Przełącz"
 
-#: ../src/widgets/toolbox.cpp:3677
-msgid "Pen Angle"
-msgstr "Kąt linii kaligraficznych"
+#: ../src/verbs.cpp:2612
+msgid "Toggle between normal and outline display modes"
+msgstr "Przełącza pomiędzy normalnym i szkieletowym trybem wyświetlania"
 
-#: ../src/widgets/toolbox.cpp:3677
-msgid "Angle:"
-msgstr "Kąt:"
+#: ../src/verbs.cpp:2614
+msgid "Color-managed view"
+msgstr "Za_rządzanie kolorem"
 
-#: ../src/widgets/toolbox.cpp:3678
-msgid ""
-"The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if "
-"fixation = 0)"
-msgstr ""
-"Kąt stalówki pióra (w stopniach; 0 = poziomo; nie daje efektu jeśli wartość "
-"= 0)"
+#: ../src/verbs.cpp:2615
+msgid "Toggle color-managed display for this document window"
+msgstr "Przełącza zarządzanie kolorem monitora dla okna tego dokumentu"
 
-#. Fixation
-#: ../src/widgets/toolbox.cpp:3692
-msgid "(perpendicular to stroke, \"brush\")"
-msgstr "(prostopadle do konturu, \"pędzel\")"
+#: ../src/verbs.cpp:2617
+msgid "Ico_n Preview..."
+msgstr "Po_dgląd ikon..."
 
-#: ../src/widgets/toolbox.cpp:3692
-msgid "(almost fixed, default)"
-msgstr "(prawie stały, domyślny)"
+#: ../src/verbs.cpp:2618
+msgid "Open a window to preview objects at different icon resolutions"
+msgstr "Otwiera okno z podglądem zaznaczonych obiektów jako ikony w różnych rozdzielczościach"
 
-#: ../src/widgets/toolbox.cpp:3692
-msgid "(fixed by Angle, \"pen\")"
-msgstr "(określony przez kąt, \"pióro\")"
+#: ../src/verbs.cpp:2620
+msgid "Zoom to fit page in window"
+msgstr "Dopasuj stronę do okna"
 
-#: ../src/widgets/toolbox.cpp:3695
-msgid "Fixation"
-msgstr "Ułożenie"
+#: ../src/verbs.cpp:2621
+msgid "Page _Width"
+msgstr "Szerokość s_trony"
 
-#: ../src/widgets/toolbox.cpp:3695
-msgid "Fixation:"
-msgstr "Ułożenie:"
+#: ../src/verbs.cpp:2622
+msgid "Zoom to fit page width in window"
+msgstr "Dopasuj szerokość strony do okna"
 
-#: ../src/widgets/toolbox.cpp:3696
-msgid ""
-"Angle behavior (0 = nib always perpendicular to stroke direction, 1 = fixed "
-"angle)"
-msgstr ""
-"Zachowanie kąta stalówki (0 = zawsze prostopadle do kierunku linii, 1 = "
-"zachowanie wybranego kąta)"
+#: ../src/verbs.cpp:2624
+msgid "Zoom to fit drawing in window"
+msgstr "Dopasuj rozmiar rysunku do okna"
 
-#. Cap Rounding
-#: ../src/widgets/toolbox.cpp:3708
-msgid "(blunt caps, default)"
-msgstr "(tępo zakończone, wartość domyślna)"
+#: ../src/verbs.cpp:2626
+msgid "Zoom to fit selection in window"
+msgstr "Dopasuj rozmiar zaznaczenia do okna"
 
-#: ../src/widgets/toolbox.cpp:3708
-msgid "(slightly bulging)"
-msgstr "(nieznacznie wybrzuszone)"
+#. Dialogs
+#: ../src/verbs.cpp:2629
+msgid "In_kscape Preferences..."
+msgstr "Usta_wienia Inkscape..."
 
-#: ../src/widgets/toolbox.cpp:3708
-msgid "(approximately round)"
-msgstr "(nieznacznie zaokrąglone)"
+#: ../src/verbs.cpp:2630
+msgid "Edit global Inkscape preferences"
+msgstr "Ustawienia globalne Inkscape"
 
-#: ../src/widgets/toolbox.cpp:3708
-msgid "(long protruding caps)"
-msgstr "długie uwypuklenie"
+#: ../src/verbs.cpp:2631
+msgid "_Document Properties..."
+msgstr "Właściwości doku_mentu..."
 
-#: ../src/widgets/toolbox.cpp:3712
-msgid "Cap rounding"
-msgstr "Zaokrąglenia końcówek"
+#: ../src/verbs.cpp:2632
+msgid "Edit properties of this document (to be saved with the document)"
+msgstr "Edytuj właściwości dokumentu zapisywane razem z dokumentem"
 
-#: ../src/widgets/toolbox.cpp:3712
-msgid "Caps:"
-msgstr "Zakończenia:"
+#: ../src/verbs.cpp:2633
+msgid "Document _Metadata..."
+msgstr "Me_tadane dokumentu..."
 
-#: ../src/widgets/toolbox.cpp:3713
-msgid ""
-"Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = "
-"round caps)"
-msgstr ""
-"Zwiększ wartość, aby zakończenia pociągnięć były bardziej wypukłe (0 = bez "
-"zakończeń, 1 = zakończenia zaokrąglone)"
+#: ../src/verbs.cpp:2634
+msgid "Edit document metadata (to be saved with the document)"
+msgstr "Zmiana metadanych dokumentu (zapisywanych razem z dokumentem)"
 
-#. Tremor
-#: ../src/widgets/toolbox.cpp:3725
-msgid "(smooth line)"
-msgstr "(gładka linia)"
+#: ../src/verbs.cpp:2635
+msgid "_Fill and Stroke..."
+msgstr "_Wypełnienie i kontur..."
 
-#: ../src/widgets/toolbox.cpp:3725
-msgid "(slight tremor)"
-msgstr "(niewielkie drżenie)"
+#: ../src/verbs.cpp:2636
+msgid "Edit objects' colors, gradients, stroke width, arrowheads, dash patterns..."
+msgstr "Edytuj kolor, gradient, styl konturu obiektów"
 
-#: ../src/widgets/toolbox.cpp:3725
-msgid "(noticeable tremor)"
-msgstr "(widoczne drżenie)"
+#. TRANSLATORS: "Swatches" means: color samples
+#: ../src/verbs.cpp:2638
+msgid "S_watches..."
+msgstr "Przykł_adowe kolory..."
 
-#: ../src/widgets/toolbox.cpp:3725
-msgid "(maximum tremor)"
-msgstr "(maksymalne drżenie)"
+#: ../src/verbs.cpp:2639
+msgid "Select colors from a swatches palette"
+msgstr "Otwiera okno umożliwiające wybór kolorów z palety"
 
-#: ../src/widgets/toolbox.cpp:3728
-msgid "Stroke Tremor"
-msgstr "Drżenie konturu"
+#: ../src/verbs.cpp:2640
+msgid "Transfor_m..."
+msgstr "Przeksz_tałć..."
 
-#: ../src/widgets/toolbox.cpp:3728
-msgid "Tremor:"
-msgstr "Drżenie:"
+#: ../src/verbs.cpp:2641
+msgid "Precisely control objects' transformations"
+msgstr "Otwiera okno umożliwiające dokładną kontrolę przekształcenia obiektów"
 
-#: ../src/widgets/toolbox.cpp:3729
-msgid "Increase to make strokes rugged and trembling"
-msgstr "Zwiększ wartość, aby pociągnięcia były nierówne i roztrzęsione"
+#: ../src/verbs.cpp:2642
+msgid "_Align and Distribute..."
+msgstr "W_yrównaj i rozmieść..."
 
-#. Wiggle
-#: ../src/widgets/toolbox.cpp:3742
-msgid "(no wiggle)"
-msgstr "(nie ma ruchu)"
+#: ../src/verbs.cpp:2643
+msgid "Align and distribute objects"
+msgstr "Otwórz okno umożliwiające wyrównanie i rozmieszczenie obiektów"
 
-#: ../src/widgets/toolbox.cpp:3742
-msgid "(slight deviation)"
-msgstr "(niewielkie odchylenie)"
+#: ../src/verbs.cpp:2644
+msgid "Undo _History..."
+msgstr "_Historia wycofanych zmian..."
 
-#: ../src/widgets/toolbox.cpp:3742
-msgid "(wild waves and curls)"
-msgstr "(szalone fale i wiry)"
+#: ../src/verbs.cpp:2645
+msgid "Undo History"
+msgstr "Historia wycofanych zmian"
 
-#: ../src/widgets/toolbox.cpp:3745
-msgid "Pen Wiggle"
-msgstr "Drżenie ołówka"
+#: ../src/verbs.cpp:2646
+msgid "_Text and Font..."
+msgstr "_Tekst i czcionka..."
 
-#: ../src/widgets/toolbox.cpp:3745
-msgid "Wiggle:"
-msgstr "Poruszenie:"
+#: ../src/verbs.cpp:2647
+msgid "View and select font family, font size and other text properties"
+msgstr "Zobacz i wybierz typ czcionki, jej wielkości i inne właściwości tekstu"
 
-#: ../src/widgets/toolbox.cpp:3746
-msgid "Increase to make the pen waver and wiggle"
-msgstr "Zwiększ wartość, aby pióro było bardziej chwiejne i drżące"
+#: ../src/verbs.cpp:2648
+msgid "_XML Editor..."
+msgstr "Edytor _XML..."
 
-#. Mass
-#: ../src/widgets/toolbox.cpp:3758
-msgid "(no inertia)"
-msgstr "(brak inercji)"
+#: ../src/verbs.cpp:2649
+msgid "View and edit the XML tree of the document"
+msgstr "Otwórz okno do przeglądania i edycji drzewa XML dokumentu"
 
-#: ../src/widgets/toolbox.cpp:3758
-msgid "(slight smoothing, default)"
-msgstr "(niewielkie wygładzanie, domyślna)"
+#: ../src/verbs.cpp:2650
+msgid "_Find..."
+msgstr "_Znajdź..."
 
-#: ../src/widgets/toolbox.cpp:3758
-msgid "(noticeable lagging)"
-msgstr "(widoczne opóźnienie)"
+#: ../src/verbs.cpp:2651
+msgid "Find objects in document"
+msgstr "Wyszukuje obiekty w dokumencie"
 
-#: ../src/widgets/toolbox.cpp:3758
-msgid "(maximum inertia)"
-msgstr "(maksymalna inercja)"
+#: ../src/verbs.cpp:2652
+msgid "_Messages..."
+msgstr "Ko_munikaty..."
 
-#: ../src/widgets/toolbox.cpp:3761
-msgid "Pen Mass"
-msgstr "Masa pióra"
+#: ../src/verbs.cpp:2653
+msgid "View debug messages"
+msgstr "Wyświetla okno komunikatów programu"
 
-#: ../src/widgets/toolbox.cpp:3761
-msgid "Mass:"
-msgstr "Masa:"
+#: ../src/verbs.cpp:2654
+msgid "S_cripts..."
+msgstr "Skr_ypty..."
 
-#: ../src/widgets/toolbox.cpp:3762
-msgid "Increase to make the pen drag behind, as if slowed by inertia"
-msgstr ""
-"Zwiększ wartość, aby ciągnięcie piórem pozostawało w tyle, jak gdyby było "
-"spowalniane przez inercję"
+#: ../src/verbs.cpp:2655
+msgid "Run scripts"
+msgstr "Otwiera okno do uruchamiania skryptów"
 
-#: ../src/widgets/toolbox.cpp:3776
-msgid "Trace Background"
-msgstr "Śledzenie tła"
+#: ../src/verbs.cpp:2656
+msgid "Show/Hide D_ialogs"
+msgstr "Wyświetl/_Ukryj okna dialogowe"
 
-#: ../src/widgets/toolbox.cpp:3777
-msgid ""
-"Trace the lightness of the background by the width of the pen (white - "
-"minimum width, black - maximum width)"
-msgstr ""
-"Śledzenie jasności tła poprzez szerokość pióra (biały - minimalna szerokość, "
-"czarny - maksymalna szerokość)"
+#: ../src/verbs.cpp:2657
+msgid "Show or hide all open dialogs"
+msgstr "Wyświetla lub ukrywa wszystkie otwarte okna dialogowe"
 
-#: ../src/widgets/toolbox.cpp:3790
-msgid "Use the pressure of the input device to alter the width of the pen"
-msgstr ""
-"Zastosuj siłę nacisku urządzenia wejściowego do zmiany szerokości kreski"
+#: ../src/verbs.cpp:2658
+msgid "Create Tiled Clones..."
+msgstr "Ut_wórz układ klonów..."
 
-#: ../src/widgets/toolbox.cpp:3802
-msgid "Tilt"
-msgstr "Nachylenie"
+#: ../src/verbs.cpp:2659
+msgid "Create multiple clones of selected object, arranging them into a pattern or scattering"
+msgstr "Utwórz wiele klonów zaznaczonego obiektu, rozkładając je równomiernie bądź rozpraszając"
 
-#: ../src/widgets/toolbox.cpp:3803
-msgid "Use the tilt of the input device to alter the angle of the pen's nib"
-msgstr ""
-"Zastosuj nachylenie urządzenia wejściowego do zmiany kąta ustawienia stalówki"
+#: ../src/verbs.cpp:2660
+msgid "_Object Properties..."
+msgstr "Właś_ciwości obiektu..."
 
-#: ../src/widgets/toolbox.cpp:3821
-msgid "No preset"
-msgstr "Brak ustawień"
+#: ../src/verbs.cpp:2661
+msgid "Edit the ID, locked and visible status, and other object properties"
+msgstr "Otwiera okno do edycji ID, blokowania, stanu widoczności i innych właściwości obiektów"
 
-#: ../src/widgets/toolbox.cpp:3836
-#, fuzzy
-msgid "Change calligraphic profile"
-msgstr "Rysuj linie kaligraficzne"
+#: ../src/verbs.cpp:2664
+msgid "Jabber Instant Messaging Client"
+msgstr "Klient Jabbera"
 
-#: ../src/widgets/toolbox.cpp:3848
-msgid "Save current settings as new profile"
-msgstr "Zapisz obecne ustawienia jako nowy profil"
+#: ../src/verbs.cpp:2664
+msgid "_Instant Messaging..."
+msgstr "_Komunikator..."
 
-#: ../src/widgets/toolbox.cpp:3933
-msgid "Arc: Change start/end"
-msgstr "Łuk: Zmień początek/koniec"
+#: ../src/verbs.cpp:2666
+msgid "_Input Devices..."
+msgstr "_Urządzenia wejściowe..."
 
-#: ../src/widgets/toolbox.cpp:4022
-msgid "Arc: Change open/closed"
-msgstr "Łuk: Zmień otwarcie/zamknięcie"
+#: ../src/verbs.cpp:2667
+#: ../src/verbs.cpp:2669
+msgid "Configure extended input devices, such as a graphics tablet"
+msgstr "Skonfiguruj urządzenie wejściowe, takie jak tablet graficzny"
 
-#: ../src/widgets/toolbox.cpp:4146
-msgid "Start"
-msgstr "Początek"
+#: ../src/verbs.cpp:2668
+msgid "_Input Devices (new)..."
+msgstr "_Urządzenia wejściowe(nowe)..."
 
-#: ../src/widgets/toolbox.cpp:4146
-msgid "Start:"
-msgstr "Początek:"
+#: ../src/verbs.cpp:2670
+msgid "_Extensions..."
+msgstr "Rozszerzenia..."
 
-#: ../src/widgets/toolbox.cpp:4147
-msgid "The angle (in degrees) from the horizontal to the arc's start point"
-msgstr "Kąt (w stopniach) od poziomu do punktu początkowego łuku"
+#: ../src/verbs.cpp:2671
+msgid "Query information about extensions"
+msgstr "Pobiera i wyświetla informacje na temat rozszerzeń"
 
-#: ../src/widgets/toolbox.cpp:4159
-msgid "End"
-msgstr "Koniec"
+#: ../src/verbs.cpp:2672
+msgid "Layer_s..."
+msgstr "Wars_twy..."
 
-#: ../src/widgets/toolbox.cpp:4159
-msgid "End:"
-msgstr "Koniec:"
+#: ../src/verbs.cpp:2673
+msgid "View Layers"
+msgstr "Otwiera okno dialogowe z ustawieniami warstw"
 
-#: ../src/widgets/toolbox.cpp:4160
-msgid "The angle (in degrees) from the horizontal to the arc's end point"
-msgstr "Kąt (w stopniach) od poziomu do punktu końcowego łuku"
+#: ../src/verbs.cpp:2674
+msgid "Path Effects..."
+msgstr "E_fekty ścieżki..."
 
-#: ../src/widgets/toolbox.cpp:4176
-msgid "Closed arc"
-msgstr "Łuk zamknięty"
+#: ../src/verbs.cpp:2675
+msgid "Manage path effects"
+msgstr "Zarządzanie efektami ścieżki"
 
-#: ../src/widgets/toolbox.cpp:4177
-msgid "Switch to segment (closed shape with two radii)"
-msgstr "Przełącz do odcinka (zamknięty kształt z dwoma promieniami)"
+#: ../src/verbs.cpp:2676
+msgid "Filter Effects..."
+msgstr "_Filtry efektów..."
 
-#: ../src/widgets/toolbox.cpp:4183
-msgid "Open Arc"
-msgstr "Łuk otwarty"
+#: ../src/verbs.cpp:2677
+msgid "Manage SVG filter effects"
+msgstr "Zarządzanie filtrami SVG"
 
-#: ../src/widgets/toolbox.cpp:4184
-msgid "Switch to arc (unclosed shape)"
-msgstr "Przełącz do łuku (kształt otwarty)"
+#: ../src/verbs.cpp:2678
+msgid "SVG Fonts..."
+msgstr "Czcionki SVG..."
 
-#: ../src/widgets/toolbox.cpp:4208
-msgid "Make whole"
-msgstr "Pełny kształt"
+#: ../src/verbs.cpp:2679
+msgid "Manage SVG fonts"
+msgstr "Zarządzanie czcionkami SVG"
 
-#: ../src/widgets/toolbox.cpp:4209
-msgid "Make the shape a whole ellipse, not arc or segment"
-msgstr "Zamień na pełną elipsę, zamiast łuku lub wycinka elipsy"
+#. Help
+#: ../src/verbs.cpp:2682
+msgid "About E_xtensions"
+msgstr "Informacje o _rozszerzeniach"
 
-#: ../src/widgets/toolbox.cpp:4275
-msgid "Opacity:"
-msgstr "Krycie:"
+#: ../src/verbs.cpp:2683
+msgid "Information on Inkscape extensions"
+msgstr "Informacje o rozszerzeniach Inkscape"
 
-#: ../src/widgets/toolbox.cpp:4282
-msgid "Pick opacity"
-msgstr "Wybierz krycie"
+#: ../src/verbs.cpp:2684
+msgid "About _Memory"
+msgstr "_Informacje o pamięci"
 
-#: ../src/widgets/toolbox.cpp:4283
-msgid ""
-"Pick both the color and the alpha (transparency) under cursor; otherwise, "
-"pick only the visible color premultiplied by alpha"
-msgstr ""
-"Wybiera zarówno kolor jak i krycie (przezroczystość) obiektów wskazanych "
-"przez kursor myszy. W pozostałych przypadkach wskazuje tylko widziany kolor "
-"zwielokrotniony przez kanał alfa."
+#: ../src/verbs.cpp:2685
+msgid "Memory usage information"
+msgstr "Informacja o użyciu pamięci"
 
-#: ../src/widgets/toolbox.cpp:4286
-#, fuzzy
-msgid "Pick"
-msgstr "Pika"
+#: ../src/verbs.cpp:2686
+msgid "_About Inkscape"
+msgstr "_O programie Inkscape"
 
-#: ../src/widgets/toolbox.cpp:4295
-msgid "Assign opacity"
-msgstr "Określ krycie"
+#: ../src/verbs.cpp:2687
+msgid "Inkscape version, authors, license"
+msgstr "Wersja Inkscape, autorzy, licencja"
 
-#: ../src/widgets/toolbox.cpp:4296
-msgid ""
-"If alpha was picked, assign it to selection as fill or stroke transparency"
-msgstr ""
-"Jeśli zostało wybrane krycie, to zostaje ono przydzielone do zaznaczenia "
-"jako przezroczystość wypełnienia lub konturu"
+#. "help_about"
+#. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"),
+#. N_("Distribution terms"), /*"show_license"*/"inkscape_options"),
+#. Tutorials
+#: ../src/verbs.cpp:2692
+msgid "Inkscape: _Basic"
+msgstr "Inkscape: _Podstawy"
 
-#: ../src/widgets/toolbox.cpp:4299
-msgid "Assign"
-msgstr "Przydziel"
+#: ../src/verbs.cpp:2693
+msgid "Getting started with Inkscape"
+msgstr "Pierwsze kroki z Inkscape"
 
-#: ../src/widgets/toolbox.cpp:4319
-msgid "The width of the eraser pen (relative to the visible canvas area)"
-msgstr "Szerokość gumki (relatywna do widocznego obszaru pracy)"
+#. "tutorial_basic"
+#: ../src/verbs.cpp:2694
+msgid "Inkscape: _Shapes"
+msgstr "Inkscape: _Kształty"
 
-#: ../src/widgets/toolbox.cpp:4336
-msgid "Delete objects touched by the eraser"
-msgstr ""
+#: ../src/verbs.cpp:2695
+msgid "Using shape tools to create and edit shapes"
+msgstr "Stosowanie narzędzi do tworzenia i edycji kształtów"
 
-#: ../src/widgets/toolbox.cpp:4342
-msgid "Cut"
-msgstr "Wytnij"
+#: ../src/verbs.cpp:2696
+msgid "Inkscape: _Advanced"
+msgstr "Inkscape: _Zaawansowane"
 
-#: ../src/widgets/toolbox.cpp:4343
-msgid "Cut out from objects"
-msgstr "Wycinanie z obiektów"
+#: ../src/verbs.cpp:2697
+msgid "Advanced Inkscape topics"
+msgstr "Zaawansowane zagadnienia związane z Inkscape"
 
-#: ../src/widgets/toolbox.cpp:4678
-msgid "Text: Change font family"
-msgstr "Tekst: Zmień czcionkę"
+#. "tutorial_advanced"
+#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
+#: ../src/verbs.cpp:2699
+msgid "Inkscape: T_racing"
+msgstr "Inkscape: _Wektoryzacja"
 
-#: ../src/widgets/toolbox.cpp:4763
-msgid "Text: Change alignment"
-msgstr "Tekst: Zmień wyrównanie"
+#: ../src/verbs.cpp:2700
+msgid "Using bitmap tracing"
+msgstr "Obsługa wektoryzacji bitmap"
 
-#: ../src/widgets/toolbox.cpp:4846
-msgid "Text: Change font style"
-msgstr "Tekst: Zmień styl czcionki"
+#. "tutorial_tracing"
+#: ../src/verbs.cpp:2701
+msgid "Inkscape: _Calligraphy"
+msgstr "Inkscape: Kali_grafia"
 
-#: ../src/widgets/toolbox.cpp:4893
-msgid "Text: Change orientation"
-msgstr "Tekst: Zmień orientację"
+#: ../src/verbs.cpp:2702
+msgid "Using the Calligraphy pen tool"
+msgstr "Stosowanie narzędzia \"Pióro\""
 
-#: ../src/widgets/toolbox.cpp:4992
-msgid "Text: Change font size"
-msgstr "Tekst: Zmień rozmiar czcionki"
+#: ../src/verbs.cpp:2703
+msgid "_Elements of Design"
+msgstr "_Elementy kompozycji"
 
-#: ../src/widgets/toolbox.cpp:5232
-msgid ""
-"This font is currently not installed on your system. Inkscape will use the "
-"default font instead."
-msgstr ""
-"Ta czcionka nie jest aktualnie zainstalowana systemie. Inkscape będzie "
-"używał zamiast niej czcionkę domyślną."
+#: ../src/verbs.cpp:2704
+msgid "Principles of design in the tutorial form"
+msgstr "Przewodnik po zasadach kształtowania kompozycji"
 
-#: ../src/widgets/toolbox.cpp:5271
-msgid "Align left"
-msgstr "Wyrównaj do lewej"
+#. "tutorial_design"
+#: ../src/verbs.cpp:2705
+msgid "_Tips and Tricks"
+msgstr "Porady i _sztuczki"
 
-#: ../src/widgets/toolbox.cpp:5282
-msgid "Center"
-msgstr "Wyśrodkuj"
+#: ../src/verbs.cpp:2706
+msgid "Miscellaneous tips and tricks"
+msgstr "Zbiór różnych porad i sztuczek"
+
+#. "tutorial_tips"
+#. Effect
+#: ../src/verbs.cpp:2709
+msgid "Previous Effect"
+msgstr "Poprzedni efekt"
 
-#: ../src/widgets/toolbox.cpp:5293
-msgid "Align right"
-msgstr "Wyrównaj do prawej"
+#: ../src/verbs.cpp:2710
+msgid "Repeat the last effect with the same settings"
+msgstr "Powtórz ostatni efekt z zachowaniem ustawień"
 
-#: ../src/widgets/toolbox.cpp:5304
-msgid "Justify"
-msgstr "Wyjustuj"
+#: ../src/verbs.cpp:2711
+msgid "Previous Effect Settings..."
+msgstr "Ustawienia poprzedniego efektu..."
 
-#: ../src/widgets/toolbox.cpp:5320
-msgid "Bold"
-msgstr "Pogrubienie"
+#: ../src/verbs.cpp:2712
+msgid "Repeat the last effect with new settings"
+msgstr "Powtórz ostatni efekt z nowymi ustawieniami"
 
-#: ../src/widgets/toolbox.cpp:5331
-msgid "Italic"
-msgstr "Kursywa"
+#: ../src/verbs.cpp:2716
+msgid "Fit the page to the current selection"
+msgstr "Dopasuj rozmiar strony do aktualnego zaznaczenia"
 
-#: ../src/widgets/toolbox.cpp:5465
-msgid "Change connector spacing"
-msgstr "Zmień odstęp łącznika"
+#: ../src/verbs.cpp:2718
+msgid "Fit the page to the drawing"
+msgstr "Dopasuj stronę do rysunku"
 
-#: ../src/widgets/toolbox.cpp:5553
-msgid "Avoid"
-msgstr "Pomiń"
+#: ../src/verbs.cpp:2720
+msgid "Fit the page to the current selection or the drawing if there is no selection"
+msgstr "Dopasuj stronę do aktualnego zaznaczenia lub do rysunku jeśli nic nie jest zaznaczone"
 
-#: ../src/widgets/toolbox.cpp:5563
-msgid "Ignore"
-msgstr "Ignoruj"
+#. LockAndHide
+#: ../src/verbs.cpp:2722
+msgid "Unlock All"
+msgstr "Odb_lokuj wszystko"
 
-#: ../src/widgets/toolbox.cpp:5575
-msgid "Connector Spacing"
-msgstr "Odstępy łączników"
+#: ../src/verbs.cpp:2724
+msgid "Unlock All in All Layers"
+msgstr "Odblokowuje wszystko na wszystkich warstwach"
 
-#: ../src/widgets/toolbox.cpp:5575
-msgid "Spacing:"
-msgstr "Odstępy:"
+#: ../src/verbs.cpp:2726
+msgid "Unhide All"
+msgstr "_Pokaż wszystko"
 
-#: ../src/widgets/toolbox.cpp:5576
-msgid "The amount of space left around objects by auto-routing connectors"
-msgstr "Odstęp wokół obiektów automatycznie wyznaczony przez łączniki"
+#: ../src/verbs.cpp:2728
+msgid "Unhide All in All Layers"
+msgstr "Wyświetla wszystko na wszystkich warstwach"
 
-#: ../src/widgets/toolbox.cpp:5587
-msgid "Graph"
-msgstr "Wykres"
+#: ../src/widgets/calligraphic-profile-rename.cpp:34
+msgid "Profile name:"
+msgstr "Nazwa profilu:"
 
-#: ../src/widgets/toolbox.cpp:5597
-msgid "Connector Length"
-msgstr "Długość łącznika"
+#: ../src/widgets/calligraphic-profile-rename.cpp:48
+msgid "Save"
+msgstr "Zapisz"
 
-#: ../src/widgets/toolbox.cpp:5597
-msgid "Length:"
-msgstr "Długość:"
+#: ../src/widgets/dash-selector.cpp:59
+msgid "Dash pattern"
+msgstr "Style kresek"
 
-#: ../src/widgets/toolbox.cpp:5598
-msgid "Ideal length for connectors when layout is applied"
-msgstr "Odpowiednia długość dla łączników podczas stosowania rozmieszczenia"
+#: ../src/widgets/dash-selector.cpp:74
+msgid "Pattern offset"
+msgstr "Przesunięcie wzoru"
 
-#: ../src/widgets/toolbox.cpp:5610
-msgid "Downwards"
-msgstr "Do dołu"
+#. display the initial welcome message in the statusbar
+#: ../src/widgets/desktop-widget.cpp:552
+msgid "<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; use selector (arrow) to move or transform them."
+msgstr "<b>Witaj w programie Inkscape!</b> Wybierz z przybornika narzędzie do rysowania lub użyj wskaźnika (strzałki), aby przesuwać lub przekształcać obiekty."
 
-#: ../src/widgets/toolbox.cpp:5611
-msgid "Make connectors with end-markers (arrows) point downwards"
-msgstr "Utwórz łączniki ze strzałkami skierowanymi w dół"
+#: ../src/widgets/desktop-widget.cpp:614
+#, c-format
+msgid "%s: %d (outline) - Inkscape"
+msgstr "%s: %d (obramowanie) - Inkscape"
 
-#: ../src/widgets/toolbox.cpp:5627
-msgid "Do not allow overlapping shapes"
-msgstr "Nie pozwalaj na nakładanie się kształtów"
+#: ../src/widgets/desktop-widget.cpp:616
+#, c-format
+msgid "%s: %d - Inkscape"
+msgstr "%s: %d - Inkscape"
 
-#: ../src/widgets/toolbox.cpp:5728
-msgid "Fill by"
-msgstr "Wypełnij"
+#: ../src/widgets/desktop-widget.cpp:620
+#, c-format
+msgid "%s (outline) - Inkscape"
+msgstr "%s - (obramowanie) Inkscape"
 
-#: ../src/widgets/toolbox.cpp:5729
-msgid "Fill by:"
-msgstr "Wypełnij:"
+#: ../src/widgets/desktop-widget.cpp:622
+#, c-format
+msgid "%s - Inkscape"
+msgstr "%s - Inkscape"
 
-#: ../src/widgets/toolbox.cpp:5741
-msgid "Fill Threshold"
-msgstr "Próg wypełniania"
+#. Family frame
+#: ../src/widgets/font-selector.cpp:157
+msgid "Font family"
+msgstr "Czcionki"
 
-#: ../src/widgets/toolbox.cpp:5742
-msgid ""
-"The maximum allowed difference between the clicked pixel and the neighboring "
-"pixels to be counted in the fill"
-msgstr ""
-"Maksymalna dozwolona różnica pomiędzy klikniętym pikselem, a sąsiednimi "
-"pikselami branymi pod uwagę podczas wypełniania"
+#: ../src/widgets/font-selector.cpp:226
+msgid "Font size:"
+msgstr "Rozmiar czcionki:"
 
-#: ../src/widgets/toolbox.cpp:5766
-msgid "Grow/shrink by"
-msgstr "Powiększ/pomniejsz o"
+#. TRANSLATORS: Test string used in text and font dialog (when no
+#. * text has been entered) to get a preview of the font.  Choose
+#. * some representative characters that users of your locale will be
+#. * interested in.
+#: ../src/widgets/font-selector.cpp:639
+#: ../src/widgets/toolbox.cpp:6093
+msgid "AaBbCcIiPpQq12369$€¢?.;/()"
+msgstr "AaĄąBbCćĘęKkÓóŹź0123:/()"
 
-#: ../src/widgets/toolbox.cpp:5766
-msgid "Grow/shrink by:"
-msgstr "Powiększ/pomniejsz o:"
+#: ../src/widgets/gradient-selector.cpp:139
+#: ../src/widgets/gradient-toolbar.cpp:462
+msgid "Edit..."
+msgstr "Edytuj..."
 
-#: ../src/widgets/toolbox.cpp:5767
-msgid ""
-"The amount to grow (positive) or shrink (negative) the created fill path"
+#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute
+#: ../src/widgets/gradient-selector.cpp:156
+msgid "Whether to fill with flat color beyond the ends of the gradient vector (spreadMethod=\"pad\"), or repeat the gradient in the same direction (spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite directions (spreadMethod=\"reflect\")"
 msgstr ""
-"Wartość zwiększenia (wartości dodatnie) lub zmniejszenia (wartości ujemne) "
-"utworzonej ścieżki wypełnienia"
-
-#: ../src/widgets/toolbox.cpp:5792
-msgid "Close gaps"
-msgstr "Zamyknie przerw"
+"Wygląd gradientu poza końcami definiującego wektora:\n"
+"\"brak\" = zostanie zastosowany jednolity kolor\n"
+"\"kierunek\" = zostanie powtórzony gradient w tym samym kierunku\n"
+"\"odbicie\" = zostanie powtórzony gradient w odwrotnym kierunku"
 
-#: ../src/widgets/toolbox.cpp:5793
-msgid "Close gaps:"
-msgstr "Zamknij przerwy:"
+#: ../src/widgets/gradient-selector.cpp:166
+msgid "reflected"
+msgstr "odbicie"
 
-#: ../src/widgets/toolbox.cpp:5805
-msgid ""
-"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools "
-"to change defaults)"
-msgstr ""
-"Przywraca domyślne ustawienia wypełniania. Aby zmienić domyślne wartości "
-"przejdź do Ustawienia Inkscape » Narzędzia."
+#: ../src/widgets/gradient-selector.cpp:170
+msgid "direct"
+msgstr "kierunek"
 
-#: ../share/extensions/dimension.py:97
-msgid "Unable to process this object.  Try changing it into a path first."
-msgstr ""
+#: ../src/widgets/gradient-selector.cpp:178
+msgid "Repeat:"
+msgstr "Powtarzanie:"
 
-#: ../share/extensions/embedimage.py:79
-msgid ""
-"No xlink:href or sodipodi:absref attributes found, or they do not point to "
-"an existing file! Unable to embed image."
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:151
+msgid "Assign gradient to object"
+msgstr "Przypisz gradient do obiektu"
 
-#: ../share/extensions/embedimage.py:104
-#, python-format
-msgid ""
-"%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, "
-"or image/x-icon"
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:185
+msgid "<small>No gradients</small>"
+msgstr "<small>Brak gradientów</small>"
 
-#: ../share/extensions/embedimage.py:106
-#, python-format
-msgid "Sorry we could not locate %s"
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:194
+msgid "<small>Nothing selected</small>"
+msgstr "<small>Nic nie zaznaczono</small>"
 
-#: ../share/extensions/export_gimp_palette.py:14
-msgid ""
-"The export_gpl.py module requires PyXML.  Please download the latest version "
-"from http://pyxml.sourceforge.net/."
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:205
+msgid "<small>No gradients in selection</small>"
+msgstr "<small>Brak gradientów w zaznaczeniu</small>"
 
-#: ../share/extensions/extractimage.py:66
-msgid "Difficulty finding the image data."
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:215
+msgid "<small>Multiple gradients</small>"
+msgstr "<small>Wiele gradientów</small>"
 
-#: ../share/extensions/inkex.py:61
-msgid ""
-"The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore "
-"this extension. Please download and install the latest version from http://"
-"cheeseshop.python.org/pypi/lxml/, or install it through your package manager "
-"by a command like: sudo apt-get install python-lxml"
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:463
+msgid "Edit the stops of the gradient"
+msgstr "Edytuj punkty sterujące gradientu"
 
-#: ../share/extensions/inkex.py:187
-#, python-format
-msgid "No matching node for expression: %s"
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:522
+#: ../src/widgets/toolbox.cpp:2151
+#: ../src/widgets/toolbox.cpp:2229
+#: ../src/widgets/toolbox.cpp:2560
+#: ../src/widgets/toolbox.cpp:2598
+#: ../src/widgets/toolbox.cpp:3213
+#: ../src/widgets/toolbox.cpp:3237
+#: ../src/widgets/toolbox.cpp:4672
+#: ../src/widgets/toolbox.cpp:4701
+msgid "<b>New:</b>"
+msgstr "<b>Nowy:</b>"
 
-#: ../share/extensions/markers_strokepaint.py:41
-#, python-format
-msgid "No style attribute found for id: %s"
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:535
+msgid "Create linear gradient"
+msgstr "Utwórz gradient liniowy"
 
-#: ../share/extensions/markers_strokepaint.py:56
-#, python-format
-msgid "unable to locate marker: %s"
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:549
+msgid "Create radial (elliptic or circular) gradient"
+msgstr "Utwórz gradient radialny (eliptyczny lub kołowy)"
 
-#: ../share/extensions/pathalongpath.py:197
-#: ../share/extensions/pathscatter.py:208
-#: ../share/extensions/perspective.py:55
-#: ../share/extensions/summersnight.py:30
-#, fuzzy
-msgid "This extension requires two selected paths."
-msgstr "Tworzy sumę zaznaczonych ścieżek"
+#. TODO replace aux_toolbox_space(tbl, AUX_SPACING);
+#: ../src/widgets/gradient-toolbar.cpp:564
+msgid "on"
+msgstr "na"
 
-#: ../share/extensions/pathmodifier.py:229
-#, python-format
-msgid "Please first convert objects to paths!  (Got [%s].)"
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:577
+msgid "Create gradient in the fill"
+msgstr "Utwórz gradient w wypełnieniu"
 
-#: ../share/extensions/perspective.py:29
-msgid ""
-"Failed to import the numpy or numpy.linalg modules. These modules are "
-"required by this extension. Please install them and try again.  On a Debian-"
-"like system this can be done with the command, sudo apt-get install python-"
-"numpy."
-msgstr ""
+#: ../src/widgets/gradient-toolbar.cpp:591
+msgid "Create gradient in the stroke"
+msgstr "Utwórz gradient na konturze"
 
-#: ../share/extensions/perspective.py:64
-msgid ""
-"This extension requires that the second selected path be four nodes long."
-msgstr ""
+#. FIXME: implement averaging of all parameters for multiple selected
+#. gtk_label_set_markup(GTK_LABEL(l), _("<b>Average:</b>"));
+#: ../src/widgets/gradient-toolbar.cpp:605
+#: ../src/widgets/toolbox.cpp:2153
+#: ../src/widgets/toolbox.cpp:2568
+#: ../src/widgets/toolbox.cpp:2586
+#: ../src/widgets/toolbox.cpp:3215
+#: ../src/widgets/toolbox.cpp:3226
+#: ../src/widgets/toolbox.cpp:4675
+#: ../src/widgets/toolbox.cpp:4686
+msgid "<b>Change:</b>"
+msgstr "<b>Zmień:</b>"
 
-#: ../share/extensions/polyhedron_3d.py:60
-msgid ""
-"Failed to import the numpy module. This module is required by this "
-"extension. Please install them and try again.  On a Debian-like system this "
-"can be done with the command, sudo apt-get install python-numpy."
-msgstr ""
+#: ../src/widgets/gradient-vector.cpp:270
+msgid "No gradients in document"
+msgstr "Brak gradientów w dokumencie"
 
-#: ../share/extensions/summersnight.py:32
-msgid "The second path must be exactly four nodes long."
-msgstr ""
+#: ../src/widgets/gradient-vector.cpp:276
+msgid "No gradient selected"
+msgstr "Nie zaznaczono gradientu"
 
-#: ../share/extensions/svg_and_media_zip_output.py:103
-#, fuzzy, python-format
-msgid "Could not locate file: %s"
-msgstr "Nie można wyeksportować do pliku %s.\n"
+#: ../src/widgets/gradient-vector.cpp:541
+msgid "No stops in gradient"
+msgstr "Brak punktów sterujących w gradiencie"
 
-#. vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 encoding=utf-8 textwidth=99
-#: ../share/extensions/addnodes.inx.h:1
-msgid "Add Nodes"
-msgstr "Dodaj węzły"
+#: ../src/widgets/gradient-vector.cpp:664
+msgid "Change gradient stop offset"
+msgstr "Zmień przesunięcie punktu kontrolnego"
 
-#: ../share/extensions/addnodes.inx.h:2
-msgid "By max. segment length"
-msgstr "Wg maksymalnej długość odcinka"
+#. TRANSLATORS: "Stop" means: a "phase" of a gradient
+#: ../src/widgets/gradient-vector.cpp:806
+msgid "Add stop"
+msgstr "Dodaj punkt"
 
-#: ../share/extensions/addnodes.inx.h:3
-msgid "By number of segments"
-msgstr "Wg liczby zębów"
+#: ../src/widgets/gradient-vector.cpp:809
+msgid "Add another control stop to gradient"
+msgstr "Dodaj kolejny punkt kontrolny do gradientu"
 
-#: ../share/extensions/addnodes.inx.h:4
-msgid "Division method"
-msgstr "Metoda podziału"
+#: ../src/widgets/gradient-vector.cpp:811
+msgid "Delete stop"
+msgstr "Usuń punkt"
 
-#: ../share/extensions/addnodes.inx.h:5
-msgid "Maximum segment length (px)"
-msgstr "Maksymalna długość odcinka (px)"
+#: ../src/widgets/gradient-vector.cpp:814
+msgid "Delete current control stop from gradient"
+msgstr "Usuń z gradientu wyświetlony powyżej punkt kontrolny"
 
-#: ../share/extensions/addnodes.inx.h:6 ../share/extensions/edge3d.inx.h:6
-#: ../share/extensions/flatten.inx.h:3 ../share/extensions/fractalize.inx.h:2
-#: ../share/extensions/markers_strokepaint.inx.h:2
-#: ../share/extensions/perspective.inx.h:1
-#: ../share/extensions/radiusrand.inx.h:4
-#: ../share/extensions/rubberstretch.inx.h:3
-#: ../share/extensions/straightseg.inx.h:2
-#: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:2
-msgid "Modify Path"
-msgstr "Modyfikuj ścieżkę"
+#. Label
+#: ../src/widgets/gradient-vector.cpp:825
+msgid "Offset:"
+msgstr "Przesunięcie:"
 
-#: ../share/extensions/addnodes.inx.h:7
-msgid "Number of segments"
-msgstr "Liczba odcinków"
+#. TRANSLATORS: "Stop" means: a "phase" of a gradient
+#: ../src/widgets/gradient-vector.cpp:870
+msgid "Stop Color"
+msgstr "Kolor w punkcie"
 
-#: ../share/extensions/ai_input.inx.h:1
-msgid "AI 8.0 Input"
-msgstr "Źródło AI 8.0"
+#: ../src/widgets/gradient-vector.cpp:899
+msgid "Gradient editor"
+msgstr "Edytor gradientu"
 
-#: ../share/extensions/ai_input.inx.h:2
-msgid "Adobe Illustrator 8.0 and below (*.ai)"
-msgstr "Adobe Illustrator 8.0 lub starszy (*.ai)"
+#: ../src/widgets/gradient-vector.cpp:1174
+msgid "Change gradient stop color"
+msgstr "Zmień kolor w punkcie kontrolnym"
 
-#: ../share/extensions/ai_input.inx.h:3
-msgid "Open files saved with Adobe Illustrator 8.0 or older"
-msgstr "Otwórz pliki zapisane w programie Adobe Illustrator 8.0 lub starszym"
+#: ../src/widgets/layer-selector.cpp:115
+msgid "Toggle current layer visibility"
+msgstr "Przełącz widzialność aktywnej warstwy"
 
-#: ../share/extensions/ai_output.inx.h:1
-msgid "AI 8.0 Output"
-msgstr "Zapis AI 8.0"
+#: ../src/widgets/layer-selector.cpp:135
+msgid "Lock or unlock current layer"
+msgstr "Zablokuj/odblokuj aktywną warstwę"
 
-#: ../share/extensions/ai_output.inx.h:2
-msgid "Adobe Illustrator 8.0 (*.ai)"
-msgstr "Adobe Illustrator 8.0 (*.ai)"
+#: ../src/widgets/layer-selector.cpp:138
+msgid "Current layer"
+msgstr "Aktywna warstwa"
 
-#: ../share/extensions/ai_output.inx.h:3
-msgid "Write Adobe Illustrator 8.0 (Postscript-based)"
-msgstr "Zapisz jako Adobe Illustrator 8.0 (oparty o Postscript)"
+#: ../src/widgets/layer-selector.cpp:566
+msgid "(root)"
+msgstr "(warstwa główna)"
 
-#: ../share/extensions/aisvg.inx.h:1
-msgid "AI SVG Input"
-msgstr "Źródło plików AI SVG"
+#: ../src/widgets/paint-selector.cpp:181
+#: ../src/widgets/paint-selector.cpp:564
+msgid "No paint"
+msgstr "Brak koloru"
 
-#: ../share/extensions/aisvg.inx.h:2
-msgid "Adobe Illustrator SVG (*.ai.svg)"
-msgstr "Adobe Illustrator SVG (*.ai.svg)"
+#: ../src/widgets/paint-selector.cpp:183
+#: ../src/widgets/paint-selector.cpp:636
+msgid "Flat color"
+msgstr "Jednolity kolor"
 
-#: ../share/extensions/aisvg.inx.h:3
-msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening"
-msgstr ""
-"Wyczyść niestandardowe dodatki programu Adobe Illustrator przed otwarciem "
-"pliku SVG"
+#: ../src/widgets/paint-selector.cpp:185
+#: ../src/widgets/paint-selector.cpp:707
+msgid "Linear gradient"
+msgstr "Gradient liniowy"
 
-#: ../share/extensions/ccx_input.inx.h:1
-msgid "Corel DRAW Compressed Exchange files (.ccx)"
-msgstr "Pliki Corel DRAW Compressed Exchange (.ccx)"
+#: ../src/widgets/paint-selector.cpp:187
+#: ../src/widgets/paint-selector.cpp:710
+msgid "Radial gradient"
+msgstr "Gradient radialny"
 
-#: ../share/extensions/ccx_input.inx.h:2
-msgid "Corel DRAW Compressed Exchange files input"
-msgstr "Źródło plików Corel DRAW Compressed Exchange"
+#: ../src/widgets/paint-selector.cpp:191
+msgid "Unset paint (make it undefined so it can be inherited)"
+msgstr "Wyzeruj wypełnienie (ustaw jako niezdefiniowane, co umożliwia późniejsze dziedziczenie)"
 
-#: ../share/extensions/ccx_input.inx.h:3
-msgid "Open compressed exchange files saved in Corel DRAW"
-msgstr "Otwórz skompresowane pliki wymiany zapisane w programie Corel DRAW"
+#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
+#: ../src/widgets/paint-selector.cpp:203
+msgid "Any path self-intersections or subpaths create holes in the fill (fill-rule: evenodd)"
+msgstr "Obszary nałożone lub ścieżki wewnątrz figury nie są wypełniane (zasada nieparzystości)"
 
-#: ../share/extensions/cdr_input.inx.h:1
-msgid "Corel DRAW 7-X4 files (*.cdr)"
-msgstr "Pliki Corel DRAW 7-X4 (*.cdr)"
+#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
+#: ../src/widgets/paint-selector.cpp:214
+msgid "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)"
+msgstr "Wypełnienie przenika całą figurę, chyba że ścieżka składowa ma odwrócony kierunek (zasada przenikania)"
 
-#: ../share/extensions/cdr_input.inx.h:2
-msgid "Corel DRAW Input"
-msgstr "Źródło plików Corel DRAW"
+#: ../src/widgets/paint-selector.cpp:531
+msgid "No objects"
+msgstr "Brak obiektów"
 
-#: ../share/extensions/cdr_input.inx.h:3
-msgid "Open files saved in Corel DRAW 7-X4"
-msgstr "Otwórz pliki zapisane w programie Corel DRAW 7-X4"
+#: ../src/widgets/paint-selector.cpp:542
+msgid "Multiple styles"
+msgstr "Wiele stylów"
 
-#: ../share/extensions/cdt_input.inx.h:1
-msgid "Corel DRAW 7-13 template files (.cdt)"
-msgstr "Pliki Corel DRAW 7-13 template (.cdt)"
+#: ../src/widgets/paint-selector.cpp:553
+msgid "Paint is undefined"
+msgstr "Wypełnienie niezdefiniowane"
 
-#: ../share/extensions/cdt_input.inx.h:2
-msgid "Corel DRAW templates input"
-msgstr "Źródło szablonów Corel DRAW"
+#: ../src/widgets/paint-selector.cpp:984
+msgid "Use the <b>Node tool</b> to adjust position, scale, and rotation of the pattern on canvas. Use <b>Object &gt; Pattern &gt; Objects to Pattern</b> to create a new pattern from selection."
+msgstr "Użyj narzędzia <b>Edycja węzłów</b>, aby dopasować położenie, skalowanie i rotację wzorca w obszarze roboczym. Użyj <b>Obiekt &raquo; Deseń  &raquo; Obiekty na deseń</b>, aby utworzyć nowy wzór wypełnienia z zaznaczonych obiektów."
 
-#: ../share/extensions/cdt_input.inx.h:3
-msgid "Open files saved in Corel DRAW 7-13"
-msgstr "Otwórz pliki zapisane w programie Corel DRAW 7-13"
+#: ../src/widgets/select-toolbar.cpp:245
+msgid "Transform by toolbar"
+msgstr "Przekształć używając paska narzędziowego"
 
-#: ../share/extensions/cgm_input.inx.h:1
-msgid "Computer Graphics Metafile files (.cgm)"
-msgstr "Pliki Computer Graphics Metafile (.cgm)"
+#: ../src/widgets/select-toolbar.cpp:300
+msgid "Now <b>stroke width</b> is <b>scaled</b> when objects are scaled."
+msgstr "Teraz <b>szerokość konturu</b> <b>jest skalowana</b> podczas skalowania obiektów"
 
-#: ../share/extensions/cgm_input.inx.h:2
-msgid "Computer Graphics Metafile files input"
-msgstr "Źródło plików Computer Graphics Metafile"
+#: ../src/widgets/select-toolbar.cpp:302
+msgid "Now <b>stroke width</b> is <b>not scaled</b> when objects are scaled."
+msgstr "Teraz <b>szerokość konturu</b> <b>nie jest skalowana</b> podczas skalowania obiektów"
 
-#: ../share/extensions/cgm_input.inx.h:3
-msgid "Open Computer Graphics Metafile files"
-msgstr "Otwórz pliki zapisane w programie Computer Graphics Metafile"
+#: ../src/widgets/select-toolbar.cpp:311
+msgid "Now <b>rounded rectangle corners</b> are <b>scaled</b> when rectangles are scaled."
+msgstr "Teraz <b>zaokrąglone narożniki</b> <b>są skalowane</b> podczas skalowania prostokątów"
 
-#: ../share/extensions/cmx_input.inx.h:1
-msgid "Corel DRAW Presentation Exchange files (.cmx)"
-msgstr "Pliki Corel DRAW Presentation Exchange (.cmx)"
+#: ../src/widgets/select-toolbar.cpp:313
+msgid "Now <b>rounded rectangle corners</b> are <b>not scaled</b> when rectangles are scaled."
+msgstr "Teraz <b>zaokrąglone narożniki</b> <b>nie są skalowane</b> podczas skalowania prostokątów"
 
-#: ../share/extensions/cmx_input.inx.h:2
-msgid "Corel DRAW Presentation Exchange files input"
-msgstr "Źródło plików Corel DRAW Presentation Exchange"
+#: ../src/widgets/select-toolbar.cpp:322
+msgid "Now <b>gradients</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."
+msgstr "Teraz <b>gradienty</b> <b>są przekształcane</b> wraz z edycją obiektów (przesuwanie, skalowanie, obrót, pochylenie)"
 
-#: ../share/extensions/cmx_input.inx.h:3
-msgid "Open presentation exchange files saved in Corel DRAW"
-msgstr "Otwórz pliki prezentacji zapisane w programie Corel DRAW"
+#: ../src/widgets/select-toolbar.cpp:324
+msgid "Now <b>gradients</b> remain <b>fixed</b> when objects are transformed (moved, scaled, rotated, or skewed)."
+msgstr "Teraz <b>gradienty</b> <b>pozostają niezmienione</b> podczas, gdy obiekty są przekształcane (przesuwanie, skalowanie, obrót, pochylenie)"
 
-#: ../share/extensions/color_brighter.inx.h:1
-msgid "Brighter"
-msgstr "Jaśniejszy"
+#: ../src/widgets/select-toolbar.cpp:333
+msgid "Now <b>patterns</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."
+msgstr "Teraz <b>desenie</b> <b>są przekształcane</b> wraz z edycją obiektów (przesuwanie, skalowanie, obrót, pochylenie)"
 
-#: ../share/extensions/color_custom.inx.h:1
-msgid "Blue Function"
-msgstr "Funkcja składowej b (niebieski)"
+#: ../src/widgets/select-toolbar.cpp:335
+msgid "Now <b>patterns</b> remain <b>fixed</b> when objects are transformed (moved, scaled, rotated, or skewed)."
+msgstr "Teraz <b>desenie</b> <b>pozostają niezmienione</b> podczas, gdy obiekty są przekształcane (przesuwanie, skalowanie, obrót, pochylenie)"
 
-#: ../share/extensions/color_custom.inx.h:4
-msgid "Green Function"
-msgstr "Funkcja składowej g (zielony)"
+#: ../src/widgets/select-toolbar.cpp:447
+msgid "select_toolbar|X"
+msgstr "X"
 
-#: ../share/extensions/color_custom.inx.h:5
-msgid "Red Function"
-msgstr "Funkcja składowej r (czerwony)"
+#. four spinbuttons
+#. TRANSLATORS: only translate "string" in "context|string".
+#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
+#: ../src/widgets/select-toolbar.cpp:447
+msgid "select_toolbar|X position"
+msgstr "pozycja X"
 
-#: ../share/extensions/color_darker.inx.h:2
-msgid "Darker"
-msgstr "Ciemniejszy"
+#: ../src/widgets/select-toolbar.cpp:449
+msgid "Horizontal coordinate of selection"
+msgstr "Pozioma współrzędna zaznaczenia"
 
-#: ../share/extensions/color_desaturate.inx.h:2
-msgid "Desaturate"
-msgstr "Mniejsze nasycenie"
+#: ../src/widgets/select-toolbar.cpp:455
+msgid "select_toolbar|Y"
+msgstr "Y"
 
-#: ../share/extensions/color_grayscale.inx.h:2
-msgid "Grayscale"
-msgstr "Skala szarości"
+#. TRANSLATORS: only translate "string" in "context|string".
+#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
+#: ../src/widgets/select-toolbar.cpp:455
+msgid "select_toolbar|Y position"
+msgstr "pozycja Y"
 
-#: ../share/extensions/color_lesshue.inx.h:2
-msgid "Less Hue"
-msgstr "Mniejsze zabarwienie"
+#: ../src/widgets/select-toolbar.cpp:457
+msgid "Vertical coordinate of selection"
+msgstr "Pionowa współrzędna zaznaczenia"
 
-#: ../share/extensions/color_lesslight.inx.h:2
-msgid "Less Light"
-msgstr "Mniej światła"
+#: ../src/widgets/select-toolbar.cpp:463
+msgid "select_toolbar|W"
+msgstr "Szer."
 
-#: ../share/extensions/color_lesssaturation.inx.h:2
-msgid "Less Saturation"
-msgstr "Mniejsze nasycenie"
+#. TRANSLATORS: only translate "string" in "context|string".
+#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
+#: ../src/widgets/select-toolbar.cpp:463
+msgid "select_toolbar|Width"
+msgstr "Szerokość"
 
-#: ../share/extensions/color_morehue.inx.h:2
-msgid "More Hue"
-msgstr "Większe zabarwienie"
+#: ../src/widgets/select-toolbar.cpp:465
+msgid "Width of selection"
+msgstr "Szerokość zaznaczenia"
 
-#: ../share/extensions/color_morelight.inx.h:2
-msgid "More Light"
-msgstr "Więcej światła"
+#: ../src/widgets/select-toolbar.cpp:472
+msgid "Lock width and height"
+msgstr "Zablokuj szerokość i wysokość"
 
-#: ../share/extensions/color_moresaturation.inx.h:2
-msgid "More Saturation"
-msgstr "Większe nasycenie"
+#: ../src/widgets/select-toolbar.cpp:473
+msgid "When locked, change both width and height by the same proportion"
+msgstr "Gdy blokada jest włączona, zmiana szerokości i wysokości następuje z zachowaniem proporcji"
 
-#: ../share/extensions/color_negative.inx.h:2
-msgid "Negative"
-msgstr "Negatyw"
+#: ../src/widgets/select-toolbar.cpp:484
+msgid "select_toolbar|H"
+msgstr "Wys."
 
-#: ../share/extensions/color_randomize.inx.h:4
-msgid "Randomize"
-msgstr "Zmiana losowa"
+#. TRANSLATORS: only translate "string" in "context|string".
+#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
+#: ../src/widgets/select-toolbar.cpp:484
+msgid "select_toolbar|Height"
+msgstr "Wysokość"
 
-#: ../share/extensions/color_removeblue.inx.h:2
-msgid "Remove Blue"
-msgstr "Usuń niebieski"
+#: ../src/widgets/select-toolbar.cpp:486
+msgid "Height of selection"
+msgstr "Wysokość zaznaczenia"
 
-#: ../share/extensions/color_removegreen.inx.h:2
-msgid "Remove Green"
-msgstr "Usuń zielony"
+#: ../src/widgets/select-toolbar.cpp:523
+msgid "Affect:"
+msgstr "Zależności:"
 
-#: ../share/extensions/color_removered.inx.h:2
-msgid "Remove Red"
-msgstr "Usuń czerwony"
+#: ../src/widgets/select-toolbar.cpp:542
+msgid "Scale rounded corners"
+msgstr "Skaluj zaokrąglone narożniki"
 
-#: ../share/extensions/color_replace.inx.h:1
-msgid "By color (RRGGBB hex):"
-msgstr "Na kolor (RRGGBB hex):"
+#: ../src/widgets/select-toolbar.cpp:553
+msgid "Move gradients"
+msgstr "Przesuń uchwyt gradientu"
 
-#: ../share/extensions/color_replace.inx.h:3
-msgid "Replace color"
-msgstr "Zamień kolor"
+#: ../src/widgets/select-toolbar.cpp:564
+msgid "Move patterns"
+msgstr "Przesuń desenie"
 
-#: ../share/extensions/color_replace.inx.h:4
-msgid "Replace color (RRGGBB hex):"
-msgstr "Zamień kolor (RRGGBB hex):"
+#: ../src/widgets/sp-color-gtkselector.cpp:50
+msgid "System"
+msgstr "System"
 
-#: ../share/extensions/color_rgbbarrel.inx.h:2
-msgid "RGB Barrel"
-msgstr "Rotacja kanałów RGB"
+#: ../src/widgets/sp-color-icc-selector.cpp:110
+msgid "CMS"
+msgstr "CMS"
 
-#: ../share/extensions/dia.inx.h:1
-msgid "A diagram created with the program Dia"
-msgstr "Diagram utworzony za pomocą programu Dia"
+#: ../src/widgets/sp-color-icc-selector.cpp:219
+#: ../src/widgets/sp-color-scales.cpp:403
+msgid "_B"
+msgstr "_B"
 
-#: ../share/extensions/dia.inx.h:2
-msgid "Dia Diagram (*.dia)"
-msgstr "Diagram programu Dia (*.dia)"
+#: ../src/widgets/sp-color-icc-selector.cpp:219
+#: ../src/widgets/sp-color-icc-selector.cpp:220
+#: ../src/widgets/sp-color-scales.cpp:400
+msgid "_G"
+msgstr "_G"
 
-#: ../share/extensions/dia.inx.h:3
-msgid "Dia Input"
-msgstr "Źródło Dia"
+#: ../src/widgets/sp-color-icc-selector.cpp:219
+#: ../src/widgets/sp-color-scales.cpp:397
+msgid "_R"
+msgstr "_R"
 
-#: ../share/extensions/dia.inx.h:4
-msgid ""
-"In order to import Dia files, Dia itself must be installed.  You can get Dia "
-"at http://live.gnome.org/Dia"
-msgstr ""
-"Aby dokonać importu plików Dia konieczne jest zainstalowanie programu Dia.  "
-"Można pobrać go pod adresem http://live.gnome.org/Dia"
+#: ../src/widgets/sp-color-icc-selector.cpp:221
+#: ../src/widgets/sp-color-icc-selector.cpp:222
+#: ../src/widgets/sp-color-scales.cpp:423
+msgid "_H"
+msgstr "_H"
 
-#: ../share/extensions/dia.inx.h:5
-msgid ""
-"The dia2svg.sh script should be installed with your Inkscape distribution.  "
-"If you do not have it, there is likely to be something wrong with your "
-"Inkscape installation."
-msgstr ""
-"Skrypt konwersji dia2svg.sh powinien zostać zainstalowany wraz z pakietem "
-"programu Inkscape. Jeśli go nie ma, to prawdopodobnie proces instalacji "
-"Inkscape nie przebiegł prawidłowo."
+#: ../src/widgets/sp-color-icc-selector.cpp:221
+#: ../src/widgets/sp-color-icc-selector.cpp:222
+#: ../src/widgets/sp-color-scales.cpp:426
+msgid "_S"
+msgstr "_S"
 
-#: ../share/extensions/dimension.inx.h:2 ../share/extensions/dots.inx.h:4
-#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:11
-msgid "Visualize Path"
-msgstr "Wizualizacja ścieżki"
+#: ../src/widgets/sp-color-icc-selector.cpp:222
+#: ../src/widgets/sp-color-scales.cpp:429
+msgid "_L"
+msgstr "_L"
 
-#: ../share/extensions/dimension.inx.h:3
-msgid "X Offset"
-msgstr "Odsunięcie X"
+#: ../src/widgets/sp-color-icc-selector.cpp:223
+#: ../src/widgets/sp-color-icc-selector.cpp:224
+#: ../src/widgets/sp-color-scales.cpp:451
+msgid "_C"
+msgstr "_C"
 
-#: ../share/extensions/dimension.inx.h:4
-msgid "Y Offset"
-msgstr "Odsunięcie Y"
+#: ../src/widgets/sp-color-icc-selector.cpp:223
+#: ../src/widgets/sp-color-scales.cpp:460
+msgid "_K"
+msgstr "_K"
 
-#: ../share/extensions/dots.inx.h:1
-msgid "Dot size"
-msgstr "Rozmiar punktów"
+#: ../src/widgets/sp-color-icc-selector.cpp:223
+#: ../src/widgets/sp-color-icc-selector.cpp:224
+#: ../src/widgets/sp-color-scales.cpp:454
+msgid "_M"
+msgstr "_M"
 
-#: ../share/extensions/dots.inx.h:2
-msgid "Font size"
-msgstr "Rozmiar czcionki"
+#: ../src/widgets/sp-color-icc-selector.cpp:223
+#: ../src/widgets/sp-color-icc-selector.cpp:224
+#: ../src/widgets/sp-color-scales.cpp:457
+msgid "_Y"
+msgstr "_Y"
 
-#: ../share/extensions/dots.inx.h:3
-msgid "Number Nodes"
-msgstr "Numeruj węzły"
+#: ../src/widgets/sp-color-icc-selector.cpp:234
+msgid "Gray"
+msgstr "Odcienie szarości"
 
-#: ../share/extensions/dxf_input.inx.h:1
-#: ../share/extensions/dxf_output.inx.h:1
-msgid "AutoCAD DXF (*.dxf)"
-msgstr "AutoCAD DXF (*.dxf)"
+#: ../src/widgets/sp-color-icc-selector.cpp:237
+#: ../src/widgets/sp-color-icc-selector.cpp:238
+#: ../src/widgets/sp-color-scales.cpp:452
+#: ../src/widgets/sp-color-scales.cpp:453
+msgid "Cyan"
+msgstr "Cyjan"
 
-#: ../share/extensions/dxf_input.inx.h:2
-msgid "DXF Input"
-msgstr "Źródło DXF"
+#: ../src/widgets/sp-color-icc-selector.cpp:237
+#: ../src/widgets/sp-color-icc-selector.cpp:238
+#: ../src/widgets/sp-color-scales.cpp:455
+#: ../src/widgets/sp-color-scales.cpp:456
+msgid "Magenta"
+msgstr "Magenta"
 
-#: ../share/extensions/dxf_input.inx.h:3
-msgid "Import AutoCAD's Document Exchange Format"
-msgstr "Import formatu Document Exchange programu AutoCAD"
+#: ../src/widgets/sp-color-icc-selector.cpp:237
+#: ../src/widgets/sp-color-icc-selector.cpp:238
+#: ../src/widgets/sp-color-scales.cpp:458
+#: ../src/widgets/sp-color-scales.cpp:459
+msgid "Yellow"
+msgstr "Yellow"
 
-#: ../share/extensions/dxf_input.inx.h:4
-msgid ""
-"dxf2svg may come with Inkscape, but is also at http://dxf-svg-convert."
-"sourceforge.net/"
-msgstr ""
-"Skrypt dxf2svg może być dostępny wraz z pakietem Inkscape. Można go także "
-"pobrać pod adresem http://dxf-svg-convert.sourceforge.net/"
+#: ../src/widgets/sp-color-icc-selector.cpp:295
+msgid "Fix"
+msgstr "Napraw"
 
-#: ../share/extensions/dxf_outlines.inx.h:1
-msgid "Desktop Cutting Plotter"
-msgstr "Ploter tnący"
+#: ../src/widgets/sp-color-icc-selector.cpp:298
+msgid "Fix RGB fallback to match icc-color() value."
+msgstr "Napraw awarię składowych RGB, aby odpowiadały wartościom icc-color()"
 
-#: ../share/extensions/dxf_outlines.inx.h:2
-msgid "Desktop Cutting Plotter (*.DXF)"
-msgstr "Desktop Cutting Plotter (*.DXF)"
+#. Label
+#: ../src/widgets/sp-color-icc-selector.cpp:379
+#: ../src/widgets/sp-color-scales.cpp:406
+#: ../src/widgets/sp-color-scales.cpp:432
+#: ../src/widgets/sp-color-scales.cpp:463
+#: ../src/widgets/sp-color-wheel-selector.cpp:134
+msgid "_A"
+msgstr "_A"
 
-#: ../share/extensions/dxf_output.inx.h:2
-msgid "DXF Output"
-msgstr "Zapis DXF"
+#: ../src/widgets/sp-color-icc-selector.cpp:389
+#: ../src/widgets/sp-color-icc-selector.cpp:401
+#: ../src/widgets/sp-color-scales.cpp:407
+#: ../src/widgets/sp-color-scales.cpp:408
+#: ../src/widgets/sp-color-scales.cpp:433
+#: ../src/widgets/sp-color-scales.cpp:434
+#: ../src/widgets/sp-color-scales.cpp:464
+#: ../src/widgets/sp-color-scales.cpp:465
+#: ../src/widgets/sp-color-wheel-selector.cpp:144
+#: ../src/widgets/sp-color-wheel-selector.cpp:156
+msgid "Alpha (opacity)"
+msgstr "Krycie (przezroczystość)"
 
-#: ../share/extensions/dxf_output.inx.h:3
-msgid "DXF file written by pstoedit"
-msgstr "Plik DXF zapisany przez pstoedit"
+#: ../src/widgets/sp-color-notebook.cpp:329
+msgid "RGBA_:"
+msgstr "RGBA_:"
 
-#: ../share/extensions/dxf_output.inx.h:4
-msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit"
-msgstr ""
-"Aby wykonać operację musi być zainstalowany program pstoedit. Odwiedź "
-"witrynę http://www.pstoedit.net/pstoedit"
+#: ../src/widgets/sp-color-notebook.cpp:337
+msgid "Hexadecimal RGBA value of the color"
+msgstr "Wartość szesnastkowa koloru RGBA"
 
-#: ../share/extensions/edge3d.inx.h:1
-msgid "Blur height"
-msgstr "Wysokość rozmycia"
+#: ../src/widgets/sp-color-scales.cpp:77
+msgid "CMYK"
+msgstr "CMYK"
 
-#: ../share/extensions/edge3d.inx.h:2
-msgid "Blur stdDeviation"
-msgstr "Odchylenie standardowe rozmycia"
+#: ../src/widgets/sp-color-scales.cpp:77
+msgid "HSL"
+msgstr "HSL"
 
-#: ../share/extensions/edge3d.inx.h:3
-msgid "Blur width"
-msgstr "Szerokość rozmycia"
+#: ../src/widgets/sp-color-scales.cpp:77
+msgid "RGB"
+msgstr "RGB"
 
-#: ../share/extensions/edge3d.inx.h:4
-msgid "Edge 3D"
-msgstr "Krawędź 3D"
+#: ../src/widgets/sp-color-selector.cpp:64
+msgid "Unnamed"
+msgstr "Bez nazwy"
 
-#: ../share/extensions/edge3d.inx.h:5
-msgid "Illumination Angle"
-msgstr "Kąt oświetlenia"
+#: ../src/widgets/sp-color-wheel-selector.cpp:61
+msgid "Wheel"
+msgstr "Koło"
 
-#: ../share/extensions/edge3d.inx.h:7
-msgid "Only black and white"
-msgstr "Tylko czarny i biały"
+#: ../src/widgets/sp-xmlview-attr-list.cpp:46
+msgid "Attribute"
+msgstr "Atrybut"
 
-#: ../share/extensions/edge3d.inx.h:8
-msgid "Shades"
-msgstr "Cienie"
+#: ../src/widgets/sp-xmlview-content.cpp:169
+msgid "Type text in a text node"
+msgstr "Wprowadź tekst w węźle tekstowym"
 
-#: ../share/extensions/embedimage.inx.h:1
-msgid "Embed All Images"
-msgstr "Osadź wszystkie obrazki"
+#: ../src/widgets/toolbox.cpp:197
+msgid "Color/opacity used for color tweaking"
+msgstr "Kolor/krycie użyte dla ustawień koloru"
 
-#: ../share/extensions/embedimage.inx.h:2
-msgid "Embed only selected images"
-msgstr "Osadź tylko zaznaczone obrazki"
+#: ../src/widgets/toolbox.cpp:201
+msgid "Style of new stars"
+msgstr "Styl nowych gwiazd"
 
-#: ../share/extensions/eps_input.inx.h:1
-msgid "EPS Input"
-msgstr "Źródło EPS"
+#: ../src/widgets/toolbox.cpp:203
+msgid "Style of new rectangles"
+msgstr "Styl nowych prostokątów"
 
-#: ../share/extensions/eps_input.inx.h:2
-msgid "Encapsulated Postscript"
-msgstr "Encapsulated Postscript"
+#: ../src/widgets/toolbox.cpp:205
+msgid "Style of new 3D boxes"
+msgstr "Styl nowych elementów 3D"
 
-#: ../share/extensions/epsi_output.inx.h:1
-msgid "EPSI Output"
-msgstr "Zapis EPSI"
+#: ../src/widgets/toolbox.cpp:207
+msgid "Style of new ellipses"
+msgstr "Styl nowych elips"
 
-#: ../share/extensions/epsi_output.inx.h:2
-msgid "Encapsulated Postscript Interchange (*.epsi)"
-msgstr "Encapsulated Postscript Interchange (*.epsi)"
+#: ../src/widgets/toolbox.cpp:209
+msgid "Style of new spirals"
+msgstr "Styl nowych spiral"
 
-#: ../share/extensions/epsi_output.inx.h:3
-msgid "Encapsulated Postscript with a thumbnail"
-msgstr "Encapsulated Postscript z miniaturką"
+#: ../src/widgets/toolbox.cpp:211
+msgid "Style of new paths created by Pencil"
+msgstr "Styl nowych ścieżek utworzonych za pomocą ołówka"
 
-#: ../share/extensions/eqtexsvg.inx.h:1
-msgid "LaTeX formula"
-msgstr "Wzór LaTeX"
+#: ../src/widgets/toolbox.cpp:213
+msgid "Style of new paths created by Pen"
+msgstr "Styl nowych ścieżek utworzonych za pomocą narzędzia \"Pióro\""
 
-#: ../share/extensions/eqtexsvg.inx.h:2
-msgid "LaTeX formula: "
-msgstr "Wzór LaTeX:"
+#: ../src/widgets/toolbox.cpp:215
+msgid "Style of new calligraphic strokes"
+msgstr "Styl nowych linii kaligraficznych"
 
-#: ../share/extensions/export_gimp_palette.inx.h:1
-msgid "Export as GIMP Palette"
-msgstr "Eksportuj jako paletę GIMP-a"
+#: ../src/widgets/toolbox.cpp:217
+#: ../src/widgets/toolbox.cpp:219
+msgid "TBD"
+msgstr ""
 
-#: ../share/extensions/export_gimp_palette.inx.h:2
-msgid "Exports the colors of this document as GIMP Palette"
-msgstr "Eksportuje kolory zawarte w tym dokumencie jako paletę GIMP-a"
+#: ../src/widgets/toolbox.cpp:229
+msgid "Style of Paint Bucket fill objects"
+msgstr "Styl wypełniania obiektów"
 
-#: ../share/extensions/export_gimp_palette.inx.h:3
-msgid "GIMP Palette (*.gpl)"
-msgstr "Paleta GIMP-a (*.gpl)"
+#: ../src/widgets/toolbox.cpp:1265
+msgid "Insert node"
+msgstr "Wstaw węzeł"
 
-#: ../share/extensions/extractimage.inx.h:1
-msgid "Extract One Image"
-msgstr "Wyodrębnij jeden obrazek"
+#: ../src/widgets/toolbox.cpp:1266
+msgid "Insert new nodes into selected segments"
+msgstr "Wstaw nowe węzły do zaznaczonych segmentów"
 
-#: ../share/extensions/extractimage.inx.h:3
-msgid "Note: The file extension is appended automatically."
-msgstr "Informacja: Rozszerzenie pliku jest dodawane automatycznie."
+#: ../src/widgets/toolbox.cpp:1269
+msgid "Insert"
+msgstr "Wstaw"
 
-#: ../share/extensions/extractimage.inx.h:4
-msgid "Path to save image"
-msgstr "Ścieżka do zapisania obrazka"
+#: ../src/widgets/toolbox.cpp:1277
+msgid "Delete selected nodes"
+msgstr "Usuń zaznaczone węzły"
 
-#: ../share/extensions/fig_input.inx.h:1
-msgid "Open files saved with XFIG"
-msgstr "Otwórz pliki zapisane za pomocą XFIG"
+#: ../src/widgets/toolbox.cpp:1287
+msgid "Join endnodes"
+msgstr "Połącz węzły końcowe"
 
-#: ../share/extensions/fig_input.inx.h:2
-msgid "XFIG Graphics File (*.fig)"
-msgstr "Plik graficzny XFIG (*.fig)"
+#: ../src/widgets/toolbox.cpp:1288
+msgid "Join selected endnodes"
+msgstr "Połącz zaznaczone węzły końcowe"
 
-#: ../share/extensions/fig_input.inx.h:3
-msgid "XFIG Input"
-msgstr "Wyjście XFIG"
+#: ../src/widgets/toolbox.cpp:1291
+msgid "Join"
+msgstr "Połącz"
 
-#: ../share/extensions/flatten.inx.h:1
-msgid "Flatness"
-msgstr "Redukcja krzywizny"
+#: ../src/widgets/toolbox.cpp:1298
+msgid "Break nodes"
+msgstr ""
 
-#: ../share/extensions/flatten.inx.h:2
-msgid "Flatten Beziers"
-msgstr "Spłaszcz krzywe Beziera"
+#: ../src/widgets/toolbox.cpp:1299
+msgid "Break path at selected nodes"
+msgstr "Rozdziel ścieżkę w zaznaczonych węzłach"
 
-#: ../share/extensions/fractalize.inx.h:1
-msgid "Fractalize"
-msgstr "Generuj fraktale"
+#: ../src/widgets/toolbox.cpp:1309
+msgid "Join with segment"
+msgstr "Połącz z odcinkiem"
 
-#: ../share/extensions/fractalize.inx.h:3
-msgid "Smoothness"
-msgstr "Wygładzanie"
+#: ../src/widgets/toolbox.cpp:1310
+msgid "Join selected endnodes with a new segment"
+msgstr "Połącz zaznaczone węzły końcowe wstawiając nowy odcinek"
 
-#: ../share/extensions/fractalize.inx.h:4
-msgid "Subdivisions"
-msgstr "Podziały"
+#: ../src/widgets/toolbox.cpp:1320
+msgid "Delete segment between two non-endpoint nodes"
+msgstr "Usuń odcinek pomiędzy dwoma nie końcowymi punktami"
 
-#: ../share/extensions/funcplot.inx.h:1
-msgid "Calculate first derivative numerically"
-msgstr "Oblicz numerycznie pierwszą pochodną"
+#: ../src/widgets/toolbox.cpp:1329
+msgid "Node Cusp"
+msgstr "Węzeł wierzchołka"
 
-#: ../share/extensions/funcplot.inx.h:2
-msgid "Draw Axes"
-msgstr "Rysuj osie"
+#: ../src/widgets/toolbox.cpp:1330
+msgid "Make selected nodes corner"
+msgstr "Zamień zaznaczone węzły w narożniki"
 
-#: ../share/extensions/funcplot.inx.h:3
-msgid "End X value"
-msgstr "Wartość końcowa X"
+#: ../src/widgets/toolbox.cpp:1339
+msgid "Node Smooth"
+msgstr "Wygładź węzły"
 
-#: ../share/extensions/funcplot.inx.h:4
-msgid "First derivative"
-msgstr "Pierwsza pochodna"
+#: ../src/widgets/toolbox.cpp:1340
+msgid "Make selected nodes smooth"
+msgstr "Zamień zaznaczone węzły w gładkie zaokrąglenia"
 
-#: ../share/extensions/funcplot.inx.h:5
-msgid "Function"
-msgstr "Funkcja"
+#: ../src/widgets/toolbox.cpp:1349
+msgid "Node Symmetric"
+msgstr "Symetria"
 
-#: ../share/extensions/funcplot.inx.h:6
-msgid "Function Plotter"
-msgstr "Ploter funkcji"
+#: ../src/widgets/toolbox.cpp:1350
+msgid "Make selected nodes symmetric"
+msgstr "Ustaw symetrię zaznaczonych węzłów"
 
-#: ../share/extensions/funcplot.inx.h:7
-msgid "Functions"
-msgstr "Funkcje"
+#: ../src/widgets/toolbox.cpp:1359
+msgid "Node Line"
+msgstr "Linia"
 
-#: ../share/extensions/funcplot.inx.h:8
-msgid "Isotropic scaling (uses smallest of width/xrange or height/yrange)"
-msgstr ""
-"Skalowanie izotropowe (używa najmniejszego zakresu X/szerokość lub Y/"
-"wysokość)"
+#: ../src/widgets/toolbox.cpp:1360
+msgid "Make selected segments lines"
+msgstr "Zamień zaznaczone segmenty na linie"
 
-#: ../share/extensions/funcplot.inx.h:9
-msgid "Multiply X range by 2*pi"
-msgstr "Pomnóż zakres X przez 2*pi"
+#: ../src/widgets/toolbox.cpp:1369
+msgid "Node Curve"
+msgstr "Krzywa"
 
-#: ../share/extensions/funcplot.inx.h:10
-msgid "Range and sampling"
-msgstr "Zakres i próbkowanie"
+#: ../src/widgets/toolbox.cpp:1370
+msgid "Make selected segments curves"
+msgstr "Zamień zaznaczone segmenty na krzywe"
 
-#: ../share/extensions/funcplot.inx.h:11
-msgid "Remove rectangle"
-msgstr "Usuń prostokąt"
+#: ../src/widgets/toolbox.cpp:1379
+msgid "Show Handles"
+msgstr "Pokaż uchwyty"
 
-#: ../share/extensions/funcplot.inx.h:13
-msgid "Samples"
-msgstr "Próbki"
+#: ../src/widgets/toolbox.cpp:1380
+msgid "Show the Bezier handles of selected nodes"
+msgstr "Pokaż uchwyty kontrolne krzywej Beziera zaznaczonych węzłów"
 
-#: ../share/extensions/funcplot.inx.h:14
-msgid ""
-"Select a rectangle before calling the extension, it will determine X and Y "
-"scales. With polar coordinates: Start and end X values define the angle "
-"range in radians. X scale is set so that left and right edges of rectangle "
-"are at +/-1. Isotropic scaling is disabled. First derivative is always "
-"determined numerically."
-msgstr ""
-"Przed wywołaniem efektu zaznacz prostokąt. Prostokąt określają parametry X "
-"iYy. Ze spolaryzowanymi współrzędnymi: Początkowe i końcowe wartości X "
-"definiują zakres kąta w radianach. Skala X jest określona, zatem lewa i "
-"prawa krawędź prostokąta są +/-1. Skalowanie izotropowe jest wyłączone. "
-"Pierwsza pochodna jest zawsze określona numerycznie. "
+#: ../src/widgets/toolbox.cpp:1390
+msgid "Show Outline"
+msgstr "Pokaż obramowanie"
 
-#: ../share/extensions/funcplot.inx.h:15
-msgid ""
-"Standard Python math functions are available: ceil(x); fabs(x); floor(x); "
-"fmod(x,y); frexp(x); ldexp(x,i); modf(x); exp(x); log(x [, base]); log10(x); "
-"pow(x,y); sqrt(x); acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); cos"
-"(x); sin(x); tan(x); degrees(x); radians(x); cosh(x); sinh(x); tanh(x). The "
-"constants pi and e are also available."
-msgstr ""
-"Dostępne są standardowe funkcje matematyczne języka Python: ceil(x); fabs"
-"(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); modf(x); exp(x); log(x [, "
-"podstawa]); log10(x); pow(x,y); sqrt(x); acos(x); asin(x); atan(x); atan2(y,"
-"x); hypot(x,y); cos(x); sin(x); tan(x); degrees(x); radians(x); cosh(x); sinh"
-"(x); tanh(x). Są także dostępne stałe \"pi\" i \"e\"."
+#: ../src/widgets/toolbox.cpp:1391
+msgid "Show the outline of the path"
+msgstr "Pokaż obramowanie ścieżki"
 
-#: ../share/extensions/funcplot.inx.h:16
-msgid "Start X value"
-msgstr "Wartość początkowa X"
+#: ../src/widgets/toolbox.cpp:1401
+msgid "Next path effect parameter"
+msgstr "Następny parametr efektu ścieżki"
 
-#: ../share/extensions/funcplot.inx.h:17
-msgid "Use"
-msgstr "Użyj"
+#: ../src/widgets/toolbox.cpp:1402
+msgid "Show next path effect parameter for editing"
+msgstr "Wyświetl do edycji następny parametr efektu ścieżki"
 
-#: ../share/extensions/funcplot.inx.h:18
-msgid "Use polar coordinates"
-msgstr "Użyj współrzędne biegunowe"
+#: ../src/widgets/toolbox.cpp:1413
+msgid "Edit the clipping path of the object"
+msgstr "Eytuj ścieżkę przycinania obiektu"
 
-#: ../share/extensions/funcplot.inx.h:19
-msgid "Y value of rectangle's bottom"
-msgstr "Wartość Y dołu prostokąta"
+#: ../src/widgets/toolbox.cpp:1423
+msgid "Edit mask path"
+msgstr "Eytuj ścieżkę maski"
 
-#: ../share/extensions/funcplot.inx.h:20
-msgid "Y value of rectangle's top"
-msgstr "Wartość Y góry prostokąta"
+#: ../src/widgets/toolbox.cpp:1424
+msgid "Edit the mask of the object"
+msgstr "Edytuj maskę obiektu"
 
-# Circular pitch is the arc distance along a specified pitch circle or pitch line between corresponding profiles of adjacent teeth.
-#: ../share/extensions/gears.inx.h:1
-msgid "Circular pitch, px"
-msgstr "Podziałka zęba (px)"
+#: ../src/widgets/toolbox.cpp:1438
+msgid "X coordinate of selected node(s)"
+msgstr "Współrzędna X zaznaczonego węzła(ów)"
 
-# http://pl.wikipedia.org/wiki/Ko%C5%82o_z%C4%99bate
-#: ../share/extensions/gears.inx.h:2
-msgid "Gear"
-msgstr "Koło zębate"
+#: ../src/widgets/toolbox.cpp:1438
+msgid "X coordinate:"
+msgstr "Współrzędna X:"
 
-#: ../share/extensions/gears.inx.h:3
-msgid "Number of teeth"
-msgstr "Liczba zębów"
+#: ../src/widgets/toolbox.cpp:1456
+msgid "Y coordinate of selected node(s)"
+msgstr "Współrzędna Y zaznaczonego węzła(ów)"
 
-# The complement of the angle between the direction that the teeth exert force on each other, and the line joining the centers of the two gears. For involute gears, the teeth always exert force along the line of action, which, for involute gears, is a straight line; and thus, for involute gears, the pressure angle is constant.
-#: ../share/extensions/gears.inx.h:4
-msgid "Pressure angle"
-msgstr "Kąt przyporu"
+#: ../src/widgets/toolbox.cpp:1456
+msgid "Y coordinate:"
+msgstr "Współrzędna Y:"
 
-#: ../share/extensions/gimp_xcf.inx.h:1
-msgid "GIMP XCF"
-msgstr "GIMP XCF"
+#: ../src/widgets/toolbox.cpp:1900
+msgid "Star: Change number of corners"
+msgstr "Gwiazda: Zmień liczbę narożników"
 
-#: ../share/extensions/gimp_xcf.inx.h:2
-msgid "GIMP XCF maintaining layers (*.XCF)"
-msgstr "GIMP XCF z zachowaniem warstw (*.XCF)"
+#: ../src/widgets/toolbox.cpp:1943
+msgid "Star: Change spoke ratio"
+msgstr "Gwiazda: Zmień proporcje ramion"
 
-#: ../share/extensions/gimp_xcf.inx.h:3
-msgid "Save Grid:"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:1986
+msgid "Make polygon"
+msgstr "Utwórz wielokąt"
 
-#: ../share/extensions/gimp_xcf.inx.h:4
-msgid "Save Guides:"
-msgstr "Zapis prowadnic:"
+#: ../src/widgets/toolbox.cpp:1986
+msgid "Make star"
+msgstr "Utwórz gwiazdę"
 
-#: ../share/extensions/grid_cartesian.inx.h:1
-msgid "Border Thickness / px"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2022
+msgid "Star: Change rounding"
+msgstr "Gwiazda: Zmień zaokrąglenia"
 
-#: ../share/extensions/grid_cartesian.inx.h:2
-msgid "Cartesian Grid"
-msgstr "Siatka kartezjańska"
+#: ../src/widgets/toolbox.cpp:2057
+msgid "Star: Change randomization"
+msgstr "Gwiazda: Zmień losowość"
 
-#: ../share/extensions/grid_cartesian.inx.h:3
-msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only)"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2248
+msgid "Regular polygon (with one handle) instead of a star"
+msgstr "Wielokąt foremny zamiast gwiazdy (z jednym uchwytem)"
 
-#: ../share/extensions/grid_cartesian.inx.h:4
-msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only)"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2255
+msgid "Star instead of a regular polygon (with one handle)"
+msgstr "Gwiazda zamiast wielokąta foremnego (z jednym uchwytem)"
 
-#: ../share/extensions/grid_cartesian.inx.h:5
-msgid "Logarithmic X Subdiv. (Base given by entry above)"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2276
+msgid "hexagon/six-pointed star"
+msgstr "hexagon/gwiazda sześcioramienna"
 
-#: ../share/extensions/grid_cartesian.inx.h:6
-msgid "Logarithmic Y Subdiv. (Base given by entry above)"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2276
+msgid "pentagon/five-pointed star"
+msgstr "pentagon/gwiazda pięcioramienna"
 
-#: ../share/extensions/grid_cartesian.inx.h:7
-msgid "Major X Division Thickness / px"
-msgstr "Grubość głównego podziału X (px)"
+#: ../src/widgets/toolbox.cpp:2276
+msgid "square/quad-star"
+msgstr "kwadrat/gwiazda czteroramienna"
 
-#: ../share/extensions/grid_cartesian.inx.h:8
-msgid "Major X Divisions"
-msgstr "Podział główny X"
+#: ../src/widgets/toolbox.cpp:2276
+msgid "triangle/tri-star"
+msgstr "trójkąt/gwiazda trójramienna"
 
-#: ../share/extensions/grid_cartesian.inx.h:9
-msgid "Major X Divsion Spacing / px"
-msgstr "Odstepy głównego podziału X (px)"
+#: ../src/widgets/toolbox.cpp:2279
+msgid "Corners"
+msgstr "Narożniki"
 
-#: ../share/extensions/grid_cartesian.inx.h:10
-msgid "Major Y Division Spacing"
-msgstr "Odstępy podziału głównego Y"
+#: ../src/widgets/toolbox.cpp:2279
+msgid "Corners:"
+msgstr "Narożniki:"
 
-#: ../share/extensions/grid_cartesian.inx.h:11
-msgid "Major Y Division Thickness / px"
-msgstr "Grubość głównego podziału Y (px)"
+#: ../src/widgets/toolbox.cpp:2279
+msgid "Number of corners of a polygon or star"
+msgstr "Liczba narożników wielokąta lub gwiazdy"
 
-#: ../share/extensions/grid_cartesian.inx.h:12
-msgid "Major Y Divisions"
-msgstr "Podział główny Y"
+#: ../src/widgets/toolbox.cpp:2292
+msgid "heptagram"
+msgstr "heptagram"
 
-#: ../share/extensions/grid_cartesian.inx.h:13
-msgid "Minor X Division Thickness / px"
-msgstr "Grubość drugorzędnego podziału X (px)"
+#: ../src/widgets/toolbox.cpp:2292
+msgid "hexagram"
+msgstr "heksagram"
 
-#: ../share/extensions/grid_cartesian.inx.h:14
-msgid "Minor Y Division Thickness / px"
-msgstr "Grubość drugorzędnego podziału Y (px)"
+#: ../src/widgets/toolbox.cpp:2292
+msgid "octagram"
+msgstr "oktagram"
 
-#: ../share/extensions/grid_cartesian.inx.h:16
-msgid "Subdivisions per Major X Division"
-msgstr "Ponowne podziały przez główny podział X"
+#: ../src/widgets/toolbox.cpp:2292
+msgid "pentagram"
+msgstr "pentagram"
 
-#: ../share/extensions/grid_cartesian.inx.h:17
-msgid "Subdivisions per Major Y Division"
-msgstr "Ponowne podziały przez główny podział Y"
+#: ../src/widgets/toolbox.cpp:2292
+msgid "regular polygon"
+msgstr "wielokąt foremny"
 
-#: ../share/extensions/grid_cartesian.inx.h:18
-msgid "Subminor X Division Thickness / px"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2292
+msgid "thin-ray star"
+msgstr "gwiazda o cienkich ramionach"
 
-#: ../share/extensions/grid_cartesian.inx.h:19
-msgid "Subminor Y Division Thickness / px"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2295
+msgid "Spoke ratio"
+msgstr "Proporcje ramion"
 
-#: ../share/extensions/grid_cartesian.inx.h:20
-msgid "Subsubdivs. per X Subdiv."
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2295
+msgid "Spoke ratio:"
+msgstr "Proporcje ramion:"
 
-#: ../share/extensions/grid_cartesian.inx.h:21
-msgid "Subsubdivs. per Y Subdivision"
-msgstr ""
+#. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle.
+#. Base radius is the same for the closest handle.
+#: ../src/widgets/toolbox.cpp:2298
+msgid "Base radius to tip radius ratio"
+msgstr "Stosunek promienia podstawy do promienia wierzchołków ramion"
 
-#: ../share/extensions/grid_polar.inx.h:1
-msgid "Angle Divisions"
-msgstr "Podział kąta"
+#: ../src/widgets/toolbox.cpp:2316
+msgid "NOT rounded"
+msgstr "niezaokrąglony"
 
-#: ../share/extensions/grid_polar.inx.h:2
-msgid "Angle Divisions at Centre"
-msgstr "Podziały kąta w środku"
+#: ../src/widgets/toolbox.cpp:2316
+msgid "amply rounded"
+msgstr "bardzo zaokrąglony"
 
-#: ../share/extensions/grid_polar.inx.h:3
-msgid "Centre Dot Diameter / px"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2316
+#: ../src/widgets/toolbox.cpp:2331
+msgid "blown up"
+msgstr "nadmuchany"
 
-#: ../share/extensions/grid_polar.inx.h:4
-msgid "Circumferential Label Outset / px"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2316
+msgid "slightly pinched"
+msgstr "odchudzony"
 
-#: ../share/extensions/grid_polar.inx.h:5
-msgid "Circumferential Label Size / px"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2316
+msgid "slightly rounded"
+msgstr "nieznacznie zaokrąglony"
 
-#: ../share/extensions/grid_polar.inx.h:6
-msgid "Circumferential Labels"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2316
+msgid "stretched"
+msgstr "rozciągnięty"
 
-#: ../share/extensions/grid_polar.inx.h:8
-msgid "Logarithmic Subdiv. (Base given by entry above)"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2316
+msgid "twisted"
+msgstr "zwichrowany"
 
-#: ../share/extensions/grid_polar.inx.h:9
-msgid "Major Angular Division Thickness / px"
-msgstr "Grubość głównego podziału kątowego (px)"
+#: ../src/widgets/toolbox.cpp:2316
+msgid "visibly rounded"
+msgstr "wyraźnie zaokrąglony"
 
-#: ../share/extensions/grid_polar.inx.h:10
-msgid "Major Circular Division Thickness / px"
-msgstr "Grubość głównego podziału kołowego (px)"
+#: ../src/widgets/toolbox.cpp:2316
+msgid "well rounded"
+msgstr "dobrze zaokrąglony"
 
-#: ../share/extensions/grid_polar.inx.h:11
-msgid "Major Circular Divisions"
-msgstr "Główne podziały kołowe"
+#: ../src/widgets/toolbox.cpp:2319
+msgid "How much rounded are the corners (0 for sharp)"
+msgstr "Wartość zaokrąglenia narożników (0 dla ostrych)"
 
-#: ../share/extensions/grid_polar.inx.h:12
-msgid "Major Circular Divsion Spacing / px"
-msgstr "Odstępy głównych podziałów kołowych (px)"
+#: ../src/widgets/toolbox.cpp:2319
+msgid "Rounded"
+msgstr "Zaokrąglone"
 
-#: ../share/extensions/grid_polar.inx.h:13
-msgid "Minor Angle Division End 'n' Divs. Before Centre"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2319
+msgid "Rounded:"
+msgstr "Zaokrąglenie:"
 
-#: ../share/extensions/grid_polar.inx.h:14
-msgid "Minor Angular Division Thickness / px"
-msgstr "Grubość drugorzędnego podziału kątowego (px)"
+#: ../src/widgets/toolbox.cpp:2331
+msgid "NOT randomized"
+msgstr "bez losowości"
 
-#: ../share/extensions/grid_polar.inx.h:15
-msgid "Minor Circular Division Thickness / px"
-msgstr "Grubość drugorzędnego podziału kołowego (px)"
+#: ../src/widgets/toolbox.cpp:2331
+msgid "slightly irregular"
+msgstr "nierównomierny"
 
-#: ../share/extensions/grid_polar.inx.h:17
-msgid "Polar Grid"
-msgstr "Siatka biegunowa"
+#: ../src/widgets/toolbox.cpp:2331
+msgid "strongly randomized"
+msgstr "silnie zdeformowany"
 
-#: ../share/extensions/grid_polar.inx.h:19
-msgid "Subdivisions per Major Angular Division"
-msgstr "Dalsze podziały przez główny podział kątowy"
+#: ../src/widgets/toolbox.cpp:2331
+msgid "visibly randomized"
+msgstr "widocznie zdeformowany"
 
-#: ../share/extensions/grid_polar.inx.h:20
-msgid "Subdivisions per Major Circular Division"
-msgstr "Dalsze podziały przez główny podział kołowy"
+#: ../src/widgets/toolbox.cpp:2334
+msgid "Randomized"
+msgstr "Deformacja losowa"
 
-#: ../share/extensions/handles.inx.h:1
-msgid "Draw Handles"
-msgstr "Rysuj uchwyty"
+#: ../src/widgets/toolbox.cpp:2334
+msgid "Randomized:"
+msgstr "Deformacja losowa:"
 
-#: ../share/extensions/hpgl_output.inx.h:1
-msgid "Export to an HP Graphics Language file"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:2334
+msgid "Scatter randomly the corners and angles"
+msgstr "Losowe zniekształcenie narożników i kątów"
 
-#: ../share/extensions/hpgl_output.inx.h:2
-#, fuzzy
-msgid "HP Graphics Language file (*.hpgl)"
-msgstr "Plik graficzny XFIG (*.fig)"
+#: ../src/widgets/toolbox.cpp:2349
+#: ../src/widgets/toolbox.cpp:3288
+#: ../src/widgets/toolbox.cpp:3561
+#: ../src/widgets/toolbox.cpp:6761
+msgid "Defaults"
+msgstr "Domyślne"
 
-#: ../share/extensions/hpgl_output.inx.h:3
-#, fuzzy
-msgid "HPGL Output"
-msgstr "Zapis w formacie SVG"
+#: ../src/widgets/toolbox.cpp:2350
+#: ../src/widgets/toolbox.cpp:3289
+msgid "Reset shape parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
+msgstr "Przywróć domyślne ustawienia dla kształtu. Aby zmienić domyślne wartości przejdź do Ustawienia Inkscape » Narzędzia."
 
-#: ../share/extensions/inkscape_help_askaquestion.inx.h:1
-msgid "Ask Us a Question"
-msgstr "Zadaj pytanie"
+#: ../src/widgets/toolbox.cpp:2423
+msgid "Change rectangle"
+msgstr "Zmień prostokąt"
 
-#: ../share/extensions/inkscape_help_commandline.inx.h:1
-msgid "Command Line Options"
-msgstr "Opcje wiersza poleceń"
+#: ../src/widgets/toolbox.cpp:2616
+msgid "W:"
+msgstr "Szer.:"
 
-#: ../share/extensions/inkscape_help_faq.inx.h:1
-msgid "FAQ"
-msgstr "FAQ"
+#: ../src/widgets/toolbox.cpp:2616
+msgid "Width of rectangle"
+msgstr "Szerokość prostokąta"
 
-#: ../share/extensions/inkscape_help_keys.inx.h:1
-msgid "Keys and Mouse Reference"
-msgstr "Używanie klawiatury i myszy"
+#: ../src/widgets/toolbox.cpp:2633
+msgid "H:"
+msgstr "Wys.:"
 
-#: ../share/extensions/inkscape_help_manual.inx.h:1
-msgid "Inkscape Manual"
-msgstr "Podręcznik programu Inkscape"
+#: ../src/widgets/toolbox.cpp:2633
+msgid "Height of rectangle"
+msgstr "Wysokość prostokąta"
 
-#: ../share/extensions/inkscape_help_relnotes.inx.h:1
-msgid "New in This Version"
-msgstr "Nowości w tej wersji"
+#: ../src/widgets/toolbox.cpp:2647
+#: ../src/widgets/toolbox.cpp:2662
+msgid "not rounded"
+msgstr "niezaokrąglony"
 
-#: ../share/extensions/inkscape_help_reportabug.inx.h:1
-msgid "Report a Bug"
-msgstr "Zgłaszanie błędów"
+#: ../src/widgets/toolbox.cpp:2650
+msgid "Horizontal radius"
+msgstr "Promień poziomy"
 
-#: ../share/extensions/inkscape_help_svgspec.inx.h:1
-msgid "SVG 1.1 Specification"
-msgstr "Specyfikacja SVG 1.1"
+#: ../src/widgets/toolbox.cpp:2650
+msgid "Horizontal radius of rounded corners"
+msgstr "Poziomy promień zaokrąglonych narożników"
 
-#: ../share/extensions/interp.inx.h:1
-msgid "Duplicate endpaths"
-msgstr "Powiel ścieżki końcowe"
+#: ../src/widgets/toolbox.cpp:2650
+msgid "Rx:"
+msgstr "Rx:"
 
-#: ../share/extensions/interp.inx.h:4
-msgid "Interpolate"
-msgstr "Interpolacja"
+#: ../src/widgets/toolbox.cpp:2665
+msgid "Ry:"
+msgstr "Ry:"
 
-#: ../share/extensions/interp.inx.h:5
-#, fuzzy
-msgid "Interpolate style"
-msgstr "Interpolacja"
+#: ../src/widgets/toolbox.cpp:2665
+msgid "Vertical radius"
+msgstr "Promień pionowy"
 
-#: ../share/extensions/interp.inx.h:6
-msgid "Interpolation method"
-msgstr "Metoda interpolacji"
+#: ../src/widgets/toolbox.cpp:2665
+msgid "Vertical radius of rounded corners"
+msgstr "Pionowy promień zaokrąglonych narożników"
 
-#: ../share/extensions/interp.inx.h:7
-msgid "Interpolation steps"
-msgstr "Kroki interpolacji"
+#: ../src/widgets/toolbox.cpp:2684
+msgid "Not rounded"
+msgstr "Bez zaokrąglenia"
 
-#: ../share/extensions/lindenmayer.inx.h:1
-msgid "Axiom"
-msgstr "Aksjomat"
+#: ../src/widgets/toolbox.cpp:2685
+msgid "Make corners sharp"
+msgstr "Utwórz ostre narożniki"
 
-#: ../share/extensions/lindenmayer.inx.h:2
-msgid "Axiom and rules"
-msgstr "Pewniki i reguły"
+#. TODO: use the correct axis here, too
+#: ../src/widgets/toolbox.cpp:2873
+msgid "3D Box: Change perspective (angle of infinite axis)"
+msgstr "Obiekt 3D: Zmienia perspektywę (kąt osi nieskończonej)"
 
-#: ../share/extensions/lindenmayer.inx.h:4
-msgid "L-system"
-msgstr "L-system"
+#: ../src/widgets/toolbox.cpp:2943
+msgid "Angle in X direction"
+msgstr "Kąt w orientacji X"
 
-#: ../share/extensions/lindenmayer.inx.h:5
-msgid "Left angle"
-msgstr "Lewy kąt"
+#. Translators: PL is short for 'perspective line'
+#: ../src/widgets/toolbox.cpp:2945
+msgid "Angle of PLs in X direction"
+msgstr "Kąt linii perspektywy w orientacji X"
 
-#: ../share/extensions/lindenmayer.inx.h:8
-#, no-c-format
-msgid "Randomize angle (%)"
-msgstr "Zmiana losowa kąta (%)"
+#. Translators: VP is short for 'vanishing point'
+#: ../src/widgets/toolbox.cpp:2967
+msgid "State of VP in X direction"
+msgstr "Stan punktu zbiegu w orientacji X"
 
-#: ../share/extensions/lindenmayer.inx.h:10
-#, no-c-format
-msgid "Randomize step (%)"
-msgstr "Zmiana losowa kroku (%)"
+#: ../src/widgets/toolbox.cpp:2968
+msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)"
+msgstr "Przełącza punkt zbiegu w orientacji X pomiędzy \"skończony\" i \"nieskończony\" (=równoległy)"
 
-#: ../share/extensions/lindenmayer.inx.h:12
-msgid "Right angle"
-msgstr "Prawy kąt"
+#: ../src/widgets/toolbox.cpp:2983
+msgid "Angle Y:"
+msgstr "Kąt Y:"
 
-#: ../share/extensions/lindenmayer.inx.h:13
-msgid "Rules"
-msgstr "Formuła"
+#: ../src/widgets/toolbox.cpp:2983
+msgid "Angle in Y direction"
+msgstr "Kąt w orientacji Y"
+
+#. Translators: PL is short for 'perspective line'
+#: ../src/widgets/toolbox.cpp:2985
+msgid "Angle of PLs in Y direction"
+msgstr "Kąt linii perspektywy w orientacji Y"
 
-#: ../share/extensions/lindenmayer.inx.h:14
-msgid "Step length (px)"
-msgstr "Długość kroku (px)"
+#. Translators: VP is short for 'vanishing point'
+#: ../src/widgets/toolbox.cpp:3006
+msgid "State of VP in Y direction"
+msgstr "Stan punktu zbiegu w orientacji Y"
 
-#: ../share/extensions/lindenmayer.inx.h:15
-msgid ""
-"The path is generated by applying the substitutions of Rules to the Axiom, "
-"Order times. The following commands are recognized in Axiom and Rules: Any "
-"of A,B,C,D,E,F: draw forward Any of G,H,I,J,K,L: move forward +: turn left "
-"-: turn right |: turn 180 degrees [: remember poing ]: return to remembered "
-"point"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3007
+msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)"
+msgstr "Przełącza punkt zbiegu w orientacji Y pomiędzy \"skończony\" i \"nieskończony\" (=równoległy)"
 
-#: ../share/extensions/lorem_ipsum.inx.h:1
-msgid "Lorem ipsum"
-msgstr "Lorem ipsum"
+#: ../src/widgets/toolbox.cpp:3022
+msgid "Angle in Z direction"
+msgstr "Kąt w orientacji Z"
 
-#: ../share/extensions/lorem_ipsum.inx.h:2
-msgid "Number of paragraphs"
-msgstr "Liczba akapitów"
+#. Translators: PL is short for 'perspective line'
+#: ../src/widgets/toolbox.cpp:3024
+msgid "Angle of PLs in Z direction"
+msgstr "Kąt linii perspektywy w orientacji Z"
 
-#: ../share/extensions/lorem_ipsum.inx.h:3
-msgid "Paragraph length fluctuation (sentences)"
-msgstr "Fluktuacja długości akapitu (zdania)"
+#. Translators: VP is short for 'vanishing point'
+#: ../src/widgets/toolbox.cpp:3045
+msgid "State of VP in Z direction"
+msgstr "Stan punktu zbiegu w orientacji Z"
 
-#: ../share/extensions/lorem_ipsum.inx.h:4
-msgid "Sentences per paragraph"
-msgstr "Liczba zdań w akapicie"
+#: ../src/widgets/toolbox.cpp:3046
+msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)"
+msgstr "Przełącza punkt zbiegu w orientacji Z pomiędzy \"skończony\" i \"nieskończony\" (=równoległy)"
 
-#: ../share/extensions/lorem_ipsum.inx.h:6
-msgid ""
-"This effect creates the standard \"Lorem Ipsum\" pseudolatin placeholder "
-"text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a "
-"new flowed text object, the size of the page, is created in a new layer."
-msgstr ""
-"Ten efekt tworzy standardowy, pseudo łaciński tekst \"Lorem Ipsum\". Jeśli "
-"tekst wpisany jest zaznaczony, Lorem Ipsum jest dodawany do niego. W innym "
-"przypadku nowy obiekt tekstu wpisanego i rozmiar strony jest tworzony na "
-"nowej warstwie."
+#: ../src/widgets/toolbox.cpp:3104
+msgid "Change spiral"
+msgstr "Zmień spiralę"
 
-#: ../share/extensions/markers_strokepaint.inx.h:1
-msgid "Color Markers to Match Stroke"
-msgstr "Kolor znaczników jak konturu"
+#: ../src/widgets/toolbox.cpp:3245
+msgid "just a curve"
+msgstr "tylko krzywa"
 
-#: ../share/extensions/measure.inx.h:1
-msgid "Font size [px]"
-msgstr "Rozmiar czcionki (px)"
+#: ../src/widgets/toolbox.cpp:3245
+msgid "one full revolution"
+msgstr "jeden pełny obrót"
 
-#. <param name="unit" type="string" _gui-text="Unit {km|m|cm|mm|in|px|pt}">mm</param>
-#: ../share/extensions/measure.inx.h:4
-msgid "Length Unit: "
-msgstr "Jednostka długości:"
+#: ../src/widgets/toolbox.cpp:3248
+msgid "Number of revolutions"
+msgstr "Liczba obrotów"
 
-#: ../share/extensions/measure.inx.h:5
-msgid "Measure"
-msgstr "Pomiary"
+#: ../src/widgets/toolbox.cpp:3248
+msgid "Number of turns"
+msgstr "Liczba obrotów"
 
-#: ../share/extensions/measure.inx.h:6
-msgid "Measure Path"
-msgstr "Zmierz ścieżkę"
+#: ../src/widgets/toolbox.cpp:3248
+msgid "Turns:"
+msgstr "Obroty:"
 
-#: ../share/extensions/measure.inx.h:7
-msgid "Offset [px]"
-msgstr "Przesunięcie (px)"
+#: ../src/widgets/toolbox.cpp:3259
+msgid "center is denser"
+msgstr "środek jest skupiony"
 
-#: ../share/extensions/measure.inx.h:8
-msgid "Precision"
-msgstr "Precyzja"
+#: ../src/widgets/toolbox.cpp:3259
+msgid "center is much denser"
+msgstr "środek jest bardzo skupiony"
 
-#: ../share/extensions/measure.inx.h:9
-msgid "Scale Factor (Drawing:Real Length) = 1:"
-msgstr "Współczynnik skalowania (Rysowanie: rzeczywista długość) = 1:"
+#: ../src/widgets/toolbox.cpp:3259
+msgid "circle"
+msgstr "okrąg"
 
-#: ../share/extensions/measure.inx.h:10
-msgid ""
-"This effect measures the length of the selected path and adds it as a text-"
-"on-path object with the selected unit. The number of significant digits can "
-"be controlled by the Precision field. The Offset field controls the distance "
-"from the text to the path. The Scale factor can be used to make measurements "
-"in scaled drawings. For example, if 1 cm in the drawing equals 2.5 m in the "
-"real world, Scale must be set to 250."
-msgstr ""
-"Ten efekt wykonuje pomiar długości zaznaczonej ścieżki i dodaje go jako "
-"obiekt tekstowy na ścieżce z zaznaczonymi jednostkami. Istotną ilość cyfr "
-"można kontrolować poprzez pole \"Precyzja\". W polu \"Przesuniecie\" można "
-"kontrolować odległość tekstu od ścieżki. Współczynnik skalowania może być "
-"używany do wykonania pomiarów w skalowanym rysunku. Na przykład, jeśli 1 cm "
-"na rysunku odpowiada 2,5 m w rzeczywistości, współczynnik skalowania należy "
-"ustawić na wartość 250."
+#: ../src/widgets/toolbox.cpp:3259
+msgid "edge is denser"
+msgstr "krawędź jest skupiona"
 
-#: ../share/extensions/motion.inx.h:2
-msgid "Extrude"
-msgstr "Wyciągnij"
+#: ../src/widgets/toolbox.cpp:3259
+msgid "edge is much denser"
+msgstr "krawędź jest bardzo skupiona"
 
-#: ../share/extensions/motion.inx.h:4
-msgid "Magnitude"
-msgstr "Wielkość"
+#: ../src/widgets/toolbox.cpp:3259
+msgid "even"
+msgstr "równy"
 
-#: ../share/extensions/outline2svg.inx.h:1
-msgid "ASCII Text with outline markup"
-msgstr "Tekst ASCII ze znacznikiem obramowania"
+#: ../src/widgets/toolbox.cpp:3262
+msgid "Divergence"
+msgstr "Zbieżność"
 
-#: ../share/extensions/outline2svg.inx.h:2
-msgid "Text Outline File (*.outline)"
-msgstr "Text Outline File (*.outline)"
+#: ../src/widgets/toolbox.cpp:3262
+msgid "Divergence:"
+msgstr "Zbieżność:"
 
-#: ../share/extensions/outline2svg.inx.h:3
-msgid "Text Outline Input"
-msgstr "Plik obramowania tekstu"
+#: ../src/widgets/toolbox.cpp:3262
+msgid "How much denser/sparser are outer revolutions; 1 = uniform"
+msgstr "Jak bardzo są skupione/rozrzucone obroty; 1 = równomiernie"
 
-#: ../share/extensions/pathalongpath.inx.h:1
-msgid "Copies of the pattern:"
-msgstr "Kopie desenia:"
+#: ../src/widgets/toolbox.cpp:3273
+msgid "starts from center"
+msgstr "rozpocznij od środka"
 
-#: ../share/extensions/pathalongpath.inx.h:2
-msgid "Deformation type:"
-msgstr "Rodzaj deformacji:"
+#: ../src/widgets/toolbox.cpp:3273
+msgid "starts mid-way"
+msgstr "rozpocznij w połowie drogi"
 
-#: ../share/extensions/pathalongpath.inx.h:3
-#: ../share/extensions/pathscatter.inx.h:3
-msgid "Duplicate the pattern before deformation"
-msgstr "Powiel deseń przed deformacją"
+#: ../src/widgets/toolbox.cpp:3273
+msgid "starts near edge"
+msgstr "rozpocznij w pobliżu krawędzi"
 
-#: ../share/extensions/pathalongpath.inx.h:6
-msgid "Pattern along Path"
-msgstr "Deseń na ścieżce"
+#: ../src/widgets/toolbox.cpp:3276
+msgid "Inner radius"
+msgstr "Wewnętrzny promień"
 
-#: ../share/extensions/pathalongpath.inx.h:10
-#, fuzzy
-msgid "Ribbon"
-msgstr "Taśma elastyczna"
+#: ../src/widgets/toolbox.cpp:3276
+msgid "Inner radius:"
+msgstr "Wewnętrzny promień:"
 
-#: ../share/extensions/pathalongpath.inx.h:13
-msgid "Snake"
-msgstr "Pochylenie"
+#: ../src/widgets/toolbox.cpp:3276
+msgid "Radius of the innermost revolution (relative to the spiral size)"
+msgstr "Promień położonego najbliżej środka obrotu (względem wielkości spirali)"
 
-#: ../share/extensions/pathalongpath.inx.h:14
-#: ../share/extensions/pathscatter.inx.h:11
-msgid "Space between copies:"
-msgstr "Odstęp pomiędzy kopiami:"
+#: ../src/widgets/toolbox.cpp:3349
+msgid "Bezier"
+msgstr ""
 
-#: ../share/extensions/pathalongpath.inx.h:16
-msgid ""
-"This effect bends a pattern object along arbitrary \"skeleton\" paths. The "
-"pattern is the top most object in the selection. (groups of paths/shapes/"
-"clones... allowed)"
+#: ../src/widgets/toolbox.cpp:3350
+msgid "Create regular Bezier path"
 msgstr ""
-"Ten efekt wykonuje zagięcie desenia obiektu wzdłuż dowolnych \"szkieletowych"
-"\" ścieżek. Deseń jest najważniejszym  obiektem w zaznaczeniu. Dozwolone są "
-"grupy ścieżek, kształtów, klonów."
 
-#: ../share/extensions/pathscatter.inx.h:1
-msgid "Cloned"
-msgstr "Sklonowano"
+#: ../src/widgets/toolbox.cpp:3356
+msgid "Spiro"
+msgstr ""
 
-#: ../share/extensions/pathscatter.inx.h:2
-msgid "Copied"
-msgstr "Skopiowano"
+#: ../src/widgets/toolbox.cpp:3357
+msgid "Create Spiro path"
+msgstr ""
 
-#: ../share/extensions/pathscatter.inx.h:4
-msgid "Follow path orientation."
-msgstr "Podążaj za kierunkiem ścieżki."
+#: ../src/widgets/toolbox.cpp:3364
+msgid "Zigzag"
+msgstr "Zygzak"
 
-#: ../share/extensions/pathscatter.inx.h:6
-msgid "Moved"
-msgstr "Przesunięto"
+#: ../src/widgets/toolbox.cpp:3365
+msgid "Create a sequence of straight line segments"
+msgstr "Tworzy sekwencje prostych odcinków"
 
-#: ../share/extensions/pathscatter.inx.h:8
-msgid "Original pattern will be:"
-msgstr "Oryginałem wzorca będzie:"
+#: ../src/widgets/toolbox.cpp:3371
+msgid "Paraxial"
+msgstr ""
 
-# a może dać Rozrzucanie
-#: ../share/extensions/pathscatter.inx.h:10
-msgid "Scatter"
-msgstr "Rozpraszanie "
+#: ../src/widgets/toolbox.cpp:3372
+msgid "Create a sequence of paraxial line segments"
+msgstr ""
 
-#: ../share/extensions/pathscatter.inx.h:12
-msgid "Stretch spaces to fit skeleton length"
-msgstr "Rozciąga odstępy, aby wypełnić długość szkieletu"
+#: ../src/widgets/toolbox.cpp:3409
+msgid "Triangle in"
+msgstr ""
 
-#: ../share/extensions/pathscatter.inx.h:14
-msgid ""
-"This effect scatters a pattern along arbitrary \"skeleton\" paths. The "
-"pattern is the top most object in the selection. (groups of paths/shapes/"
-"clones... allowed)"
+#: ../src/widgets/toolbox.cpp:3410
+msgid "Triangle out"
 msgstr ""
-"Ten efekt rozprasza wzorzec wzdłuż dowolnych ścieżek \"szkieletowych\". "
-"Wzorcem jest najwyżej położony obiekt w zaznaczeniu. Dozwolone są grupy "
-"ścieżek, kształtów, klonów itp."
 
-#: ../share/extensions/perfectboundcover.inx.h:1
-msgid "Bleed (in)"
-msgstr "Wystawanie poza margines (w calach):"
+#: ../src/widgets/toolbox.cpp:3412
+msgid "From clipboard"
+msgstr "Ze schowka"
 
-#: ../share/extensions/perfectboundcover.inx.h:2
-msgid "Bond Weight #"
-msgstr "Gramatura ryzy (US)"
+#: ../src/widgets/toolbox.cpp:3437
+#: ../src/widgets/toolbox.cpp:3438
+msgid "Shape:"
+msgstr "Kształt:"
 
-#: ../share/extensions/perfectboundcover.inx.h:3
-msgid "Book Height (inches)"
-msgstr "Wysokość książki (w calach):"
+#: ../src/widgets/toolbox.cpp:3532
+#: ../src/widgets/toolbox.cpp:3655
+#: ../src/widgets/toolbox.cpp:3672
+#: ../src/widgets/toolbox.cpp:3875
+#: ../src/widgets/toolbox.cpp:4254
+#: ../src/widgets/toolbox.cpp:4287
+#: ../src/widgets/toolbox.cpp:5273
+msgid "(default)"
+msgstr "(domyślny)"
 
-#: ../share/extensions/perfectboundcover.inx.h:4
-msgid "Book Properties"
-msgstr "Właściwości książki"
+#: ../src/widgets/toolbox.cpp:3532
+msgid "(few nodes, smooth)"
+msgstr ""
 
-#: ../share/extensions/perfectboundcover.inx.h:5
-msgid "Book Width (inches)"
-msgstr "Szerokość książki (w calach):"
+#: ../src/widgets/toolbox.cpp:3532
+msgid "(many nodes, rough)"
+msgstr ""
 
-#: ../share/extensions/perfectboundcover.inx.h:6
-msgid "Caliper (inches)"
-msgstr "Caliper (w calach)"
+#: ../src/widgets/toolbox.cpp:3535
+msgid "Smoothing:"
+msgstr "Wygładzanie:"
 
-#: ../share/extensions/perfectboundcover.inx.h:7
-msgid "Cover"
-msgstr "Oprawa"
+#: ../src/widgets/toolbox.cpp:3535
+msgid "Smoothing: "
+msgstr "Wygładzanie:"
 
-#: ../share/extensions/perfectboundcover.inx.h:8
-msgid "Cover Thickness Measurement"
-msgstr "Sposób pomiaru grubości oprawy:"
+#: ../src/widgets/toolbox.cpp:3536
+msgid "How much smoothing (simplifying) is applied to the line"
+msgstr ""
 
-#: ../share/extensions/perfectboundcover.inx.h:9
-msgid "Generate Template"
-msgstr "Utwórz szablon okładki"
+#: ../src/widgets/toolbox.cpp:3562
+#, fuzzy
+msgid "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
+msgstr "Przywróć domyślne ustawienia dla kształtu. Aby zmienić domyślne wartości przejdź do Ustawienia Inkscape » Narzędzia."
 
-#: ../share/extensions/perfectboundcover.inx.h:10
-msgid "Interior Pages"
-msgstr "Wkład książki"
+#: ../src/widgets/toolbox.cpp:3655
+msgid "(broad tweak)"
+msgstr "(udoskonalanie szerokie)"
 
-#: ../share/extensions/perfectboundcover.inx.h:11
-msgid "Note: Bond Weight # calculations are a best-guess estimate."
-msgstr ""
-"Uwaga: Obliczenia oparte na gramaturze ryzy będą jedynie dużym przybliżeniem"
+#. Width
+#: ../src/widgets/toolbox.cpp:3655
+msgid "(pinch tweak)"
+msgstr "(udoskonalanie wąskie)"
 
-#: ../share/extensions/perfectboundcover.inx.h:12
-msgid "Number of Pages"
-msgstr "Liczba stron:"
+#: ../src/widgets/toolbox.cpp:3658
+msgid "The width of the tweak area (relative to the visible canvas area)"
+msgstr "Szerokość zmienianego obszaru (względem widocznego obszaru pracy)"
 
-#: ../share/extensions/perfectboundcover.inx.h:13
-msgid "Pages Per Inch (PPI)"
-msgstr "Strony na cal (PPI)"
+#: ../src/widgets/toolbox.cpp:3672
+msgid "(maximum force)"
+msgstr "(maksymalna siła)"
 
-#: ../share/extensions/perfectboundcover.inx.h:14
-msgid "Paper Thickness Measurement"
-msgstr "Sposób pomiaru grubości papieru:"
+#. Force
+#: ../src/widgets/toolbox.cpp:3672
+msgid "(minimum force)"
+msgstr "(minimalna siła)"
 
-#: ../share/extensions/perfectboundcover.inx.h:15
-msgid "Perfect-Bound Cover"
-msgstr "Oprawa klejona książki"
+#: ../src/widgets/toolbox.cpp:3675
+msgid "Force"
+msgstr "Siła"
 
-#: ../share/extensions/perfectboundcover.inx.h:17
-msgid "Remove existing guides"
-msgstr "Usuń istniejące prowadnice"
+#: ../src/widgets/toolbox.cpp:3675
+msgid "Force:"
+msgstr "Siła:"
 
-#: ../share/extensions/perfectboundcover.inx.h:18
-msgid "Specify Width"
-msgstr "Szerokość określona poniżej"
+#: ../src/widgets/toolbox.cpp:3675
+msgid "The force of the tweak action"
+msgstr "Siła działania udoskonalania"
 
-#: ../share/extensions/perspective.inx.h:2
-msgid "Perspective"
-msgstr "Perspektywa"
+#: ../src/widgets/toolbox.cpp:3693
+#, fuzzy
+msgid "Move mode"
+msgstr "Przesuń węzły"
 
-#: ../share/extensions/polyhedron_3d.inx.h:1
+#: ../src/widgets/toolbox.cpp:3694
 #, fuzzy
-msgid "3D Polyhedron"
-msgstr "Wielokąt"
+msgid "Move objects in any direction"
+msgstr "Przesunięcie w orientacji Y"
 
-#: ../share/extensions/polyhedron_3d.inx.h:2
+#: ../src/widgets/toolbox.cpp:3700
 #, fuzzy
-msgid "Clockwise Wound Object"
-msgstr "Odblokuj obiekt"
+msgid "Move in/out mode"
+msgstr "Przesuń węzły"
 
-#: ../share/extensions/polyhedron_3d.inx.h:3
-msgid "Cube"
+#: ../src/widgets/toolbox.cpp:3701
+msgid "Move objects towards cursor; with Shift from cursor"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:4
-msgid "Cuboctohedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3707
+#, fuzzy
+msgid "Move jitter mode"
+msgstr "Tryb desynchronizacji koloru"
 
-#: ../share/extensions/polyhedron_3d.inx.h:5
-msgid "Dodecahedron"
+#: ../src/widgets/toolbox.cpp:3708
+msgid "Move objects in random directions"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:6
-msgid "Draw Back-Facing Polygons"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3714
+msgid "Scale mode"
+msgstr "Tryb skalowania"
 
-#: ../share/extensions/polyhedron_3d.inx.h:7
-msgid "Edge-Specified"
+#: ../src/widgets/toolbox.cpp:3715
+msgid "Scale objects, with Shift scale up"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:8
+#: ../src/widgets/toolbox.cpp:3721
+msgid "Rotate mode"
+msgstr "Tryb obracania"
+
+#: ../src/widgets/toolbox.cpp:3722
 #, fuzzy
-msgid "Edges"
-msgstr "Krawędź"
+msgid "Rotate objects, with Shift counterclockwise"
+msgstr "Obróć zaznaczone obiekty o 90&#176; w lewo"
 
-#: ../share/extensions/polyhedron_3d.inx.h:9
-msgid "Face-Specified"
+#: ../src/widgets/toolbox.cpp:3728
+#, fuzzy
+msgid "Duplicate/delete mode"
+msgstr "Powiel węzeł"
+
+#: ../src/widgets/toolbox.cpp:3729
+msgid "Duplicate objects, with Shift delete"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:10
+#: ../src/widgets/toolbox.cpp:3735
+msgid "Push mode"
+msgstr "Tryb nacisku"
+
+#: ../src/widgets/toolbox.cpp:3736
+msgid "Push parts of paths in any direction"
+msgstr "Popychaj części ścieżek w jakimkolwiek kierunku"
+
+#: ../src/widgets/toolbox.cpp:3742
 #, fuzzy
-msgid "Faces"
-msgstr "Redukcja krzywizny"
+msgid "Shrink/grow mode"
+msgstr "Tryb zmniejszania"
 
-#: ../share/extensions/polyhedron_3d.inx.h:11
+#: ../src/widgets/toolbox.cpp:3743
 #, fuzzy
-msgid "Filename:"
-msgstr "Nazwa profilu:"
+msgid "Shrink (inset) parts of paths; with Shift grow (outset)"
+msgstr "Zmniejsz części ścieżki (efekt wklęśnięcia)"
 
-#: ../share/extensions/polyhedron_3d.inx.h:12
-msgid "Fill Colour (Blue)"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3749
+#, fuzzy
+msgid "Attract/repel mode"
+msgstr "Tryb przyciągania"
 
-#: ../share/extensions/polyhedron_3d.inx.h:13
-msgid "Fill Colour (Green)"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3750
+#, fuzzy
+msgid "Attract parts of paths towards cursor; with Shift from cursor"
+msgstr "Przyciągaj części ścieżek do kursora"
 
-#: ../share/extensions/polyhedron_3d.inx.h:14
-msgid "Fill Colour (Red)"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3756
+msgid "Roughen mode"
+msgstr "Tryb chropowatości"
 
-#: ../share/extensions/polyhedron_3d.inx.h:16
-#, fuzzy, no-c-format
-msgid "Fill Opacity/ %"
-msgstr "Krycie, %"
+#: ../src/widgets/toolbox.cpp:3757
+msgid "Roughen parts of paths"
+msgstr "Twórz chropowatość ścieżek"
 
-#: ../share/extensions/polyhedron_3d.inx.h:17
-msgid "Great Dodecahedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3763
+msgid "Color paint mode"
+msgstr "Tryb malowania"
 
-#: ../share/extensions/polyhedron_3d.inx.h:18
-msgid "Great Stellated Dodecahedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3764
+msgid "Paint the tool's color upon selected objects"
+msgstr "Maluj kolorem narzędzia na zaznaczonych obiektach"
 
-#: ../share/extensions/polyhedron_3d.inx.h:19
-msgid "Icosahedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3770
+msgid "Color jitter mode"
+msgstr "Tryb desynchronizacji koloru"
 
-#: ../share/extensions/polyhedron_3d.inx.h:20
-#, fuzzy
-msgid "Light x-Position"
-msgstr "Lokalizacja"
+#: ../src/widgets/toolbox.cpp:3771
+msgid "Jitter the colors of selected objects"
+msgstr "Desynchronizuj kolory zaznaczonych obiektów"
 
-#: ../share/extensions/polyhedron_3d.inx.h:21
+#: ../src/widgets/toolbox.cpp:3777
 #, fuzzy
-msgid "Light y-Position"
-msgstr "Lokalizacja"
+msgid "Blur mode"
+msgstr "Tryb _przenikania:"
 
-#: ../share/extensions/polyhedron_3d.inx.h:22
+#: ../src/widgets/toolbox.cpp:3778
 #, fuzzy
-msgid "Light z-Position"
-msgstr "Lokalizacja"
+msgid "Blur selected objects more; with Shift, blur less"
+msgstr "Odbij zaznaczone obiekty poziomo"
 
-#: ../share/extensions/polyhedron_3d.inx.h:23
-#, fuzzy
-msgid "Line Thickness / px"
-msgstr "Grubość głównego podziału X (px)"
+#: ../src/widgets/toolbox.cpp:3805
+msgid "Channels:"
+msgstr "Kanały:"
 
-#: ../share/extensions/polyhedron_3d.inx.h:24
-msgid "Load From File"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3816
+msgid "In color mode, act on objects' hue"
+msgstr "W trybie koloru oddziałuje na barwę obiektu"
 
-#: ../share/extensions/polyhedron_3d.inx.h:25
-#, fuzzy
-msgid "Maximum"
-msgstr "Średni"
+#. TRANSLATORS:  "H" here stands for hue
+#: ../src/widgets/toolbox.cpp:3820
+msgid "H"
+msgstr "B"
 
-#: ../share/extensions/polyhedron_3d.inx.h:26
-#, fuzzy
-msgid "Mean"
-msgstr "Metal"
+#: ../src/widgets/toolbox.cpp:3831
+msgid "In color mode, act on objects' saturation"
+msgstr "W trybie koloru oddziałuje na nasycenie kolorów obiektu"
 
-#: ../share/extensions/polyhedron_3d.inx.h:27
-#, fuzzy
-msgid "Minimum"
-msgstr "Rozmiar minimalny"
+#. TRANSLATORS: "S" here stands for Saturation
+#: ../src/widgets/toolbox.cpp:3835
+msgid "S"
+msgstr "N"
 
-#: ../share/extensions/polyhedron_3d.inx.h:28
-#, fuzzy
-msgid "Model File"
-msgstr "Wszystkie pliki"
+#: ../src/widgets/toolbox.cpp:3846
+msgid "In color mode, act on objects' lightness"
+msgstr "W trybie koloru oddziałuje na jasność obiektu"
 
-#: ../share/extensions/polyhedron_3d.inx.h:29
-#, fuzzy
-msgid "Object Type"
-msgstr "Obiekt"
+#. TRANSLATORS: "L" here stands for Lightness
+#: ../src/widgets/toolbox.cpp:3850
+msgid "L"
+msgstr "J"
 
-#: ../share/extensions/polyhedron_3d.inx.h:30
-#, fuzzy
-msgid "Object:"
-msgstr "Obiekt"
+#: ../src/widgets/toolbox.cpp:3861
+msgid "In color mode, act on objects' opacity"
+msgstr "W trybie koloru oddziałuje na krycie obiektu"
 
-#: ../share/extensions/polyhedron_3d.inx.h:31
-#, fuzzy
-msgid "Octahedron"
-msgstr "Inne"
+#. TRANSLATORS: "O" here stands for Opacity
+#: ../src/widgets/toolbox.cpp:3865
+msgid "O"
+msgstr "K"
 
-#: ../share/extensions/polyhedron_3d.inx.h:33
-#, fuzzy
-msgid "Report Normal Vector Information"
-msgstr "Informacja o użyciu pamięci"
+#: ../src/widgets/toolbox.cpp:3875
+msgid "(fine, but many nodes)"
+msgstr "(dokładnie, ale wiele węzłów)"
 
-#: ../share/extensions/polyhedron_3d.inx.h:34
-#, fuzzy
-msgid "Rotate Around:"
-msgstr "Obróć węzły"
+#. Fidelity
+#: ../src/widgets/toolbox.cpp:3875
+msgid "(rough, simplified)"
+msgstr "(niewygładzony, uproszczony)"
 
-#: ../share/extensions/polyhedron_3d.inx.h:35
-#, fuzzy
-msgid "Rotation / Degrees"
-msgstr "Obrót (&#176;)"
+#: ../src/widgets/toolbox.cpp:3878
+msgid "Fidelity"
+msgstr "Dokładność"
 
-#: ../share/extensions/polyhedron_3d.inx.h:36
-#, fuzzy
-msgid "Scaling Factor"
-msgstr "Wskaźnik pochylenia"
+#: ../src/widgets/toolbox.cpp:3878
+msgid "Fidelity:"
+msgstr "Dokładność:"
 
-#: ../share/extensions/polyhedron_3d.inx.h:37
-#, fuzzy
-msgid "Shading"
-msgstr "Odstępy"
+#: ../src/widgets/toolbox.cpp:3879
+msgid "Low fidelity simplifies paths; high fidelity preserves path features but may generate a lot of new nodes"
+msgstr "Mała dokładność upraszcza ścieżki, duża zachowuje cechy ścieżki, ale może generować dodatkowe węzły"
 
-#: ../share/extensions/polyhedron_3d.inx.h:39
-msgid "Small Triambic Icosahedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3896
+#: ../src/widgets/toolbox.cpp:4405
+msgid "Pressure"
+msgstr "Siła nacisku"
 
-#: ../share/extensions/polyhedron_3d.inx.h:40
-msgid "Snub Cube"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:3897
+msgid "Use the pressure of the input device to alter the force of tweak action"
+msgstr "Zastosuj siłę nacisku urządzenia wejściowego do zmiany szerokości kreski"
 
-#: ../share/extensions/polyhedron_3d.inx.h:41
-msgid "Snub Dodecahedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:4080
+msgid "No preset"
+msgstr "Brak ustawień"
 
-#: ../share/extensions/polyhedron_3d.inx.h:43
-#, fuzzy, no-c-format
-msgid "Stroke Opacity/ %"
-msgstr "_Kontur"
+#: ../src/widgets/toolbox.cpp:4099
+msgid "Save..."
+msgstr "Zapisz..."
 
-#: ../share/extensions/polyhedron_3d.inx.h:45
-msgid "Tetrahedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:4254
+#: ../src/widgets/toolbox.cpp:5273
+msgid "(broad stroke)"
+msgstr "(szeroki kontur)"
+
+#. Width
+#: ../src/widgets/toolbox.cpp:4254
+#: ../src/widgets/toolbox.cpp:5273
+msgid "(hairline)"
+msgstr "(włosowy)"
+
+#: ../src/widgets/toolbox.cpp:4257
+#: ../src/widgets/toolbox.cpp:5276
+msgid "Pen Width"
+msgstr "Szerokość linii kaligraficznych"
+
+#: ../src/widgets/toolbox.cpp:4258
+msgid "The width of the calligraphic pen (relative to the visible canvas area)"
+msgstr "Szerokość pisma kaligraficznego (względem widocznego obszaru roboczego)"
+
+#: ../src/widgets/toolbox.cpp:4271
+msgid "(constant width)"
+msgstr "(stała szerokość)"
+
+#: ../src/widgets/toolbox.cpp:4271
+msgid "(slight thinning, default)"
+msgstr "(niewielkie pocienienie, domyślna)"
+
+#: ../src/widgets/toolbox.cpp:4271
+msgid "(slight widening)"
+msgstr "(niewielkie poszerzenie)"
+
+#. Thinning
+#: ../src/widgets/toolbox.cpp:4271
+msgid "(speed blows up stroke)"
+msgstr "(szybkość powiększa kontur)"
+
+#: ../src/widgets/toolbox.cpp:4271
+msgid "(speed deflates stroke)"
+msgstr "(szybkość znacznie zmniejsza kontur)"
+
+#: ../src/widgets/toolbox.cpp:4274
+msgid "Stroke Thinning"
+msgstr "Pocienienie konturu"
+
+#: ../src/widgets/toolbox.cpp:4274
+msgid "Thinning:"
+msgstr "Pocienienie:"
+
+#: ../src/widgets/toolbox.cpp:4275
+msgid "How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 makes them broader, 0 makes width independent of velocity)"
+msgstr "W jakim stopniu szybkość pociągnięcia wpływa na szerokość konturu (> 0 pocienia szybkie pociągnięcia, < 0 poszerza je, 0 uniezależnia szerokość od szybkości)"
+
+#: ../src/widgets/toolbox.cpp:4287
+msgid "(horizontal)"
+msgstr "(poziomo)"
+
+#. Angle
+#: ../src/widgets/toolbox.cpp:4287
+msgid "(left edge up)"
+msgstr "(lewa górna krawędź)"
+
+#: ../src/widgets/toolbox.cpp:4287
+msgid "(right edge up)"
+msgstr "(prawa górna krawędź)"
+
+#: ../src/widgets/toolbox.cpp:4290
+msgid "Angle:"
+msgstr "Kąt:"
+
+#: ../src/widgets/toolbox.cpp:4290
+msgid "Pen Angle"
+msgstr "Kąt linii kaligraficznych"
 
-#: ../share/extensions/polyhedron_3d.inx.h:46
-#, fuzzy
-msgid "Then Rotate Around:"
-msgstr "niezaokrąglony"
+#: ../src/widgets/toolbox.cpp:4291
+msgid "The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if fixation = 0)"
+msgstr "Kąt stalówki pióra (w stopniach; 0 = poziomo; nie daje efektu jeśli wartość = 0)"
 
-#: ../share/extensions/polyhedron_3d.inx.h:47
-msgid "Truncated Cube"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:4305
+msgid "(almost fixed, default)"
+msgstr "(prawie stały, domyślny)"
 
-#: ../share/extensions/polyhedron_3d.inx.h:48
-msgid "Truncated Dodecahedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:4305
+msgid "(fixed by Angle, \"pen\")"
+msgstr "(określony przez kąt, \"pióro\")"
 
-#: ../share/extensions/polyhedron_3d.inx.h:49
-msgid "Truncated Icosahedron"
-msgstr ""
+#. Fixation
+#: ../src/widgets/toolbox.cpp:4305
+msgid "(perpendicular to stroke, \"brush\")"
+msgstr "(prostopadle do konturu, \"pędzel\")"
 
-#: ../share/extensions/polyhedron_3d.inx.h:50
-msgid "Truncated Octahedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:4308
+msgid "Fixation"
+msgstr "Ułożenie"
 
-#: ../share/extensions/polyhedron_3d.inx.h:51
-msgid "Truncated Tetrahedron"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:4308
+msgid "Fixation:"
+msgstr "Ułożenie:"
 
-#: ../share/extensions/polyhedron_3d.inx.h:52
+#: ../src/widgets/toolbox.cpp:4309
 #, fuzzy
-msgid "Vertices"
-msgstr "Pi_onowe"
+msgid "Angle behavior (0 = nib always perpendicular to stroke direction, 100 = fixed angle)"
+msgstr "Zachowanie kąta stalówki (0 = zawsze prostopadle do kierunku linii, 1 = zachowanie wybranego kąta)"
 
-#: ../share/extensions/polyhedron_3d.inx.h:53
-#, fuzzy
-msgid "View"
-msgstr "_Widok"
+#: ../src/widgets/toolbox.cpp:4321
+msgid "(approximately round)"
+msgstr "(nieznacznie zaokrąglone)"
 
-#: ../share/extensions/polyhedron_3d.inx.h:54
-msgid "X-Axis"
-msgstr ""
+#. Cap Rounding
+#: ../src/widgets/toolbox.cpp:4321
+msgid "(blunt caps, default)"
+msgstr "(tępo zakończone, wartość domyślna)"
 
-#: ../share/extensions/polyhedron_3d.inx.h:55
-msgid "Y-Axis"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:4321
+msgid "(long protruding caps)"
+msgstr "długie uwypuklenie"
 
-#: ../share/extensions/polyhedron_3d.inx.h:56
-msgid "Z-Axis"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:4321
+msgid "(slightly bulging)"
+msgstr "(nieznacznie wybrzuszone)"
 
-#: ../share/extensions/polyhedron_3d.inx.h:57
-msgid "Z-Sort Faces By:"
-msgstr ""
+#: ../src/widgets/toolbox.cpp:4325
+msgid "Cap rounding"
+msgstr "Zaokrąglenia końcówek"
 
-#: ../share/extensions/ps_input.inx.h:1
-msgid "Postscript"
-msgstr "Postscript"
+#: ../src/widgets/toolbox.cpp:4325
+msgid "Caps:"
+msgstr "Zakończenia:"
 
-#: ../share/extensions/ps_input.inx.h:2
-msgid "Postscript (*.ps)"
-msgstr "Postscript (*.ps)"
+#: ../src/widgets/toolbox.cpp:4326
+msgid "Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = round caps)"
+msgstr "Zwiększ wartość, aby zakończenia pociągnięć były bardziej wypukłe (0 = bez zakończeń, 1 = zakończenia zaokrąglone)"
 
-#: ../share/extensions/ps_input.inx.h:3
-msgid "Postscript Input"
-msgstr "Źródło Postscriptu"
+#: ../src/widgets/toolbox.cpp:4338
+msgid "(maximum tremor)"
+msgstr "(maksymalne drżenie)"
 
-#: ../share/extensions/radiusrand.inx.h:1
-msgid "Jitter nodes"
-msgstr "Desynchronizuj węzły"
+#: ../src/widgets/toolbox.cpp:4338
+msgid "(noticeable tremor)"
+msgstr "(widoczne drżenie)"
 
-#: ../share/extensions/radiusrand.inx.h:2
-msgid "Maximum displacement in X, px"
-msgstr "Maksymalne przemieszczenie X (px)"
+#: ../src/widgets/toolbox.cpp:4338
+msgid "(slight tremor)"
+msgstr "(niewielkie drżenie)"
 
-#: ../share/extensions/radiusrand.inx.h:3
-msgid "Maximum displacement in Y, px"
-msgstr "Maksymalne przemieszczenie Y (px)"
+#. Tremor
+#: ../src/widgets/toolbox.cpp:4338
+msgid "(smooth line)"
+msgstr "(gładka linia)"
 
-#: ../share/extensions/radiusrand.inx.h:5
-msgid "Shift node handles"
-msgstr "Przesuń uchwyty węzłów"
+#: ../src/widgets/toolbox.cpp:4341
+msgid "Stroke Tremor"
+msgstr "Drżenie konturu"
 
-#: ../share/extensions/radiusrand.inx.h:6
-msgid "Shift nodes"
-msgstr "Przesuń węzły"
+#: ../src/widgets/toolbox.cpp:4341
+msgid "Tremor:"
+msgstr "Drżenie:"
 
-#: ../share/extensions/radiusrand.inx.h:7
-msgid ""
-"This effect randomly shifts the nodes (and optionally node handles) of the "
-"selected path."
-msgstr ""
-"Ten efekt losowo przesuwa węzły i opcjonalnie uchwyty węzłów zaznaczonej "
-"ścieżki"
+#: ../src/widgets/toolbox.cpp:4342
+msgid "Increase to make strokes rugged and trembling"
+msgstr "Zwiększ wartość, aby pociągnięcia były nierówne i roztrzęsione"
 
-#: ../share/extensions/radiusrand.inx.h:8
-msgid "Use normal distribution"
-msgstr "Zastosuj równomierne rozproszenie"
+#. Wiggle
+#: ../src/widgets/toolbox.cpp:4356
+msgid "(no wiggle)"
+msgstr "(nie ma ruchu)"
 
-#: ../share/extensions/render_alphabetsoup.inx.h:1
-msgid "Alphabet Soup"
-msgstr "Alphabet Soup"
+#: ../src/widgets/toolbox.cpp:4356
+msgid "(slight deviation)"
+msgstr "(niewielkie odchylenie)"
 
-#: ../share/extensions/render_alphabetsoup.inx.h:2
-#, fuzzy
-msgid "Random Seed"
-msgstr "Losowe drzewko"
+#: ../src/widgets/toolbox.cpp:4356
+msgid "(wild waves and curls)"
+msgstr "(szalone fale i wiry)"
 
-#: ../share/extensions/render_barcode.inx.h:1
-msgid "Bar Height:"
-msgstr "Wysokość kodu kreskowego:"
+#: ../src/widgets/toolbox.cpp:4359
+msgid "Pen Wiggle"
+msgstr "Drżenie ołówka"
 
-#: ../share/extensions/render_barcode.inx.h:2
-msgid "Barcode"
-msgstr "Kod kreskowy"
+#: ../src/widgets/toolbox.cpp:4359
+msgid "Wiggle:"
+msgstr "Poruszenie:"
 
-#: ../share/extensions/render_barcode.inx.h:3
-msgid "Barcode Data:"
-msgstr "Informacja:"
+#: ../src/widgets/toolbox.cpp:4360
+msgid "Increase to make the pen waver and wiggle"
+msgstr "Zwiększ wartość, aby pióro było bardziej chwiejne i drżące"
 
-#: ../share/extensions/render_barcode.inx.h:4
-msgid "Barcode Type:"
-msgstr "Rodzaj kodu:"
+#: ../src/widgets/toolbox.cpp:4373
+msgid "(maximum inertia)"
+msgstr "(maksymalna inercja)"
 
-#: ../share/extensions/restack.inx.h:2
-msgid "Arbitrary Angle:"
-msgstr "Kąt dowolny:"
+#. Mass
+#: ../src/widgets/toolbox.cpp:4373
+msgid "(no inertia)"
+msgstr "(brak inercji)"
 
-#: ../share/extensions/restack.inx.h:4
-#, fuzzy
-msgid "Bottom"
-msgstr "Na spód"
+#: ../src/widgets/toolbox.cpp:4373
+msgid "(noticeable lagging)"
+msgstr "(widoczne opóźnienie)"
 
-#: ../share/extensions/restack.inx.h:5
-msgid "Bottom to Top (90)"
-msgstr "Z dołu na górę (90)"
+#: ../src/widgets/toolbox.cpp:4373
+msgid "(slight smoothing, default)"
+msgstr "(niewielkie wygładzanie, domyślna)"
 
-#: ../share/extensions/restack.inx.h:6
-#, fuzzy
-msgid "Horizontal Point:"
-msgstr "Poziomy układ tekstu"
+#: ../src/widgets/toolbox.cpp:4376
+msgid "Mass:"
+msgstr "Masa:"
 
-#: ../share/extensions/restack.inx.h:7
-msgid "Left"
-msgstr "Lewa"
+#: ../src/widgets/toolbox.cpp:4376
+msgid "Pen Mass"
+msgstr "Masa pióra"
 
-#: ../share/extensions/restack.inx.h:8
-msgid "Left to Right (0)"
-msgstr "Od lewej do prawej (0)"
+#: ../src/widgets/toolbox.cpp:4377
+msgid "Increase to make the pen drag behind, as if slowed by inertia"
+msgstr "Zwiększ wartość, aby ciągnięcie piórem pozostawało w tyle, jak gdyby było spowalniane przez inercję"
 
-#: ../share/extensions/restack.inx.h:9
-msgid "Middle"
-msgstr "Środek"
+#: ../src/widgets/toolbox.cpp:4392
+msgid "Trace Background"
+msgstr "Śledzenie tła"
 
-#: ../share/extensions/restack.inx.h:10
-#, fuzzy
-msgid "Radial Inward"
-msgstr "Gradient radialny"
+#: ../src/widgets/toolbox.cpp:4393
+msgid "Trace the lightness of the background by the width of the pen (white - minimum width, black - maximum width)"
+msgstr "Śledzenie jasności tła poprzez szerokość pióra (biały - minimalna szerokość, czarny - maksymalna szerokość)"
 
-#: ../share/extensions/restack.inx.h:11
+#: ../src/widgets/toolbox.cpp:4406
+msgid "Use the pressure of the input device to alter the width of the pen"
+msgstr "Zastosuj siłę nacisku urządzenia wejściowego do zmiany szerokości kreski"
+
+#: ../src/widgets/toolbox.cpp:4418
+msgid "Tilt"
+msgstr "Nachylenie"
+
+#: ../src/widgets/toolbox.cpp:4419
+msgid "Use the tilt of the input device to alter the angle of the pen's nib"
+msgstr "Zastosuj nachylenie urządzenia wejściowego do zmiany kąta ustawienia stalówki"
+
+#: ../src/widgets/toolbox.cpp:4432
 #, fuzzy
-msgid "Radial Outward"
-msgstr "Gradient radialny"
+msgid "Choose a preset"
+msgstr "Brak ustawień"
 
-#: ../share/extensions/restack.inx.h:12
-msgid "Restack"
-msgstr "Utwórz ponownie stos"
+#: ../src/widgets/toolbox.cpp:4520
+msgid "Arc: Change start/end"
+msgstr "Łuk: Zmień początek/koniec"
 
-#: ../share/extensions/restack.inx.h:13
-msgid "Restack Direction:"
-msgstr "Kierunek stosu:"
+#: ../src/widgets/toolbox.cpp:4584
+msgid "Arc: Change open/closed"
+msgstr "Łuk: Zmień otwarcie/zamknięcie"
 
-#: ../share/extensions/restack.inx.h:14
-msgid "Right"
-msgstr "Prawa"
+#: ../src/widgets/toolbox.cpp:4710
+msgid "Start:"
+msgstr "Początek:"
 
-#: ../share/extensions/restack.inx.h:15
-msgid "Right to Left (180)"
-msgstr "Od prawej do lewej (180)"
+#: ../src/widgets/toolbox.cpp:4711
+msgid "The angle (in degrees) from the horizontal to the arc's start point"
+msgstr "Kąt (w stopniach) od poziomu do punktu początkowego łuku"
 
-#: ../share/extensions/restack.inx.h:17
-msgid "Top to Bottom (270)"
-msgstr "Z góry na dół (270)"
+#: ../src/widgets/toolbox.cpp:4723
+msgid "End:"
+msgstr "Koniec:"
 
-#: ../share/extensions/restack.inx.h:18
-msgid "Vertical Point:"
-msgstr "Punkt pionowy:"
+#: ../src/widgets/toolbox.cpp:4724
+msgid "The angle (in degrees) from the horizontal to the arc's end point"
+msgstr "Kąt (w stopniach) od poziomu do punktu końcowego łuku"
 
-#: ../share/extensions/rtree.inx.h:1
-msgid "Initial size"
-msgstr "Rozmiar początkowy"
+#: ../src/widgets/toolbox.cpp:4740
+msgid "Closed arc"
+msgstr "Łuk zamknięty"
 
-#: ../share/extensions/rtree.inx.h:2
-msgid "Minimum size"
-msgstr "Rozmiar minimalny"
+#: ../src/widgets/toolbox.cpp:4741
+msgid "Switch to segment (closed shape with two radii)"
+msgstr "Przełącz do odcinka (zamknięty kształt z dwoma promieniami)"
 
-#: ../share/extensions/rtree.inx.h:3
-msgid "Random Tree"
-msgstr "Losowe drzewko"
+#: ../src/widgets/toolbox.cpp:4747
+msgid "Open Arc"
+msgstr "Łuk otwarty"
 
-#: ../share/extensions/rubberstretch.inx.h:2
-#, no-c-format
-msgid "Curve (%):"
-msgstr "Krzywa (%):"
+#: ../src/widgets/toolbox.cpp:4748
+msgid "Switch to arc (unclosed shape)"
+msgstr "Przełącz do łuku (kształt otwarty)"
 
-#: ../share/extensions/rubberstretch.inx.h:4
-msgid "Rubber Stretch"
-msgstr "Zaznaczenie elastyczne"
+#: ../src/widgets/toolbox.cpp:4771
+msgid "Make whole"
+msgstr "Pełny kształt"
 
-#: ../share/extensions/rubberstretch.inx.h:6
-#, no-c-format
-msgid "Strength (%):"
-msgstr "Siła (%):"
+#: ../src/widgets/toolbox.cpp:4772
+msgid "Make the shape a whole ellipse, not arc or segment"
+msgstr "Zamień na pełną elipsę, zamiast łuku lub wycinka elipsy"
+
+#: ../src/widgets/toolbox.cpp:4841
+msgid "Opacity:"
+msgstr "Krycie:"
+
+#: ../src/widgets/toolbox.cpp:4848
+msgid "Pick opacity"
+msgstr "Wybierz krycie"
 
-#: ../share/extensions/sk1_input.inx.h:1
-msgid "Open files saved in sK1 vector graphics editor"
-msgstr "Otwiera pliki zapisane w edytorze grafiki wektorowej sK1"
+#: ../src/widgets/toolbox.cpp:4849
+msgid "Pick both the color and the alpha (transparency) under cursor; otherwise, pick only the visible color premultiplied by alpha"
+msgstr "Wybiera zarówno kolor jak i krycie (przezroczystość) obiektów wskazanych przez kursor myszy. W pozostałych przypadkach wskazuje tylko widziany kolor zwielokrotniony przez kanał alfa."
 
-#: ../share/extensions/sk1_input.inx.h:2
-msgid "sK1 vector graphics files (.sk1)"
-msgstr "Pliki grafiki wektorowej sK1 (.sk1)"
+#: ../src/widgets/toolbox.cpp:4852
+msgid "Pick"
+msgstr ""
 
-#: ../share/extensions/sk1_input.inx.h:3
-msgid "sK1 vector graphics files input"
-msgstr "Źródło plików grafiki wektorowej sK1"
+#: ../src/widgets/toolbox.cpp:4861
+msgid "Assign opacity"
+msgstr "Określ krycie"
 
-#: ../share/extensions/sk_input.inx.h:1
-msgid "A diagram created with the program Sketch"
-msgstr "Diagram utworzony w programie Sketch"
+#: ../src/widgets/toolbox.cpp:4862
+msgid "If alpha was picked, assign it to selection as fill or stroke transparency"
+msgstr "Jeśli zostało wybrane krycie, to zostaje ono przydzielone do zaznaczenia jako przezroczystość wypełnienia lub konturu"
 
-#: ../share/extensions/sk_input.inx.h:2
-msgid "Sketch Diagram (*.sk)"
-msgstr "Diagram Sketch (*.sk)"
+#: ../src/widgets/toolbox.cpp:4865
+msgid "Assign"
+msgstr "Przydziel"
 
-#: ../share/extensions/sk_input.inx.h:3
-msgid "Sketch Input"
-msgstr "Źródło Sketch"
+#: ../src/widgets/toolbox.cpp:5116
+msgid "All inactive"
+msgstr ""
 
-#: ../share/extensions/spirograph.inx.h:1
-msgid "Gear Placement"
-msgstr "Położenie trybów:"
+#: ../src/widgets/toolbox.cpp:5117
+msgid "No geometric tool is active"
+msgstr ""
 
-#: ../share/extensions/spirograph.inx.h:2
-msgid "Inside (Hypotrochoid)"
-msgstr "wewnątrz (hipotrochoida)"
+#: ../src/widgets/toolbox.cpp:5118
+msgid "all_inactive"
+msgstr ""
 
-#: ../share/extensions/spirograph.inx.h:3
-msgid "Outside (Epitrochoid)"
-msgstr "na zewnątrz (epitrochoida)"
+#: ../src/widgets/toolbox.cpp:5150
+#, fuzzy
+msgid "Show limiting bounding box"
+msgstr "Geometryczne obramowanie obiektu"
 
-#: ../share/extensions/spirograph.inx.h:4
-msgid "Quality (Default = 16)"
-msgstr "Jakość (wartość domyślna = 16)"
+#: ../src/widgets/toolbox.cpp:5151
+msgid "Show bounding box (used to cut infinite lines)"
+msgstr ""
 
-#: ../share/extensions/spirograph.inx.h:5
-msgid "R - Ring Radius (px)"
-msgstr "R - promień pierścienia (px)"
+#: ../src/widgets/toolbox.cpp:5162
+#, fuzzy
+msgid "Get limiting bounding box from selection"
+msgstr "Usuwa z zaznaczenia ścieżkę przycinającą"
 
-#: ../share/extensions/spirograph.inx.h:7
-msgid "Rotation (deg)"
-msgstr "Obrót (&#176;)"
+#: ../src/widgets/toolbox.cpp:5163
+msgid "Set limiting bounding box (used to cut infinite lines) to the bounding box of current selection"
+msgstr ""
 
-#: ../share/extensions/spirograph.inx.h:8
-msgid "Spirograph"
-msgstr "Spirograf"
+#: ../src/widgets/toolbox.cpp:5175
+#, fuzzy
+msgid "Choose a line segment type"
+msgstr "Zmień typ odcinka"
 
-#: ../share/extensions/spirograph.inx.h:9
-msgid "d - Pen Radius (px)"
-msgstr "d - promień pióra (px)"
+#: ../src/widgets/toolbox.cpp:5191
+msgid "Display measuring info"
+msgstr "Wyświetl informacje o pomiarach"
 
-#: ../share/extensions/spirograph.inx.h:10
-msgid "r - Gear Radius (px)"
-msgstr "r - promień trybu (px)"
+#: ../src/widgets/toolbox.cpp:5192
+msgid "Display measuring info for selected items"
+msgstr ""
 
-#: ../share/extensions/straightseg.inx.h:1
-msgid "Behavior"
-msgstr "Zachowanie"
+#: ../src/widgets/toolbox.cpp:5212
+msgid "Open LPE dialog"
+msgstr ""
 
-#: ../share/extensions/straightseg.inx.h:4
-msgid "Straighten Segments"
-msgstr "Wyprostuj odcinki"
+#: ../src/widgets/toolbox.cpp:5213
+msgid "Open LPE dialog (to adapt parameters numerically)"
+msgstr ""
 
-#: ../share/extensions/summersnight.inx.h:1
-msgid "Envelope"
-msgstr "Obwiednia"
+#: ../src/widgets/toolbox.cpp:5277
+msgid "The width of the eraser pen (relative to the visible canvas area)"
+msgstr "Szerokość gumki (relatywna do widocznego obszaru pracy)"
 
-#: ../share/extensions/svg2xaml.inx.h:1 ../share/extensions/xaml2svg.inx.h:1
-msgid "Microsoft XAML (*.xaml)"
-msgstr "Microsoft XAML (*.xaml)"
+#: ../src/widgets/toolbox.cpp:5295
+msgid "Delete objects touched by the eraser"
+msgstr ""
 
-#: ../share/extensions/svg2xaml.inx.h:2 ../share/extensions/xaml2svg.inx.h:2
-msgid "Microsoft's GUI definition format"
-msgstr "Format opisu GUI firmy Microsoft"
+#: ../src/widgets/toolbox.cpp:5301
+msgid "Cut"
+msgstr "Wytnij"
 
-#: ../share/extensions/svg2xaml.inx.h:3
-msgid "XAML Output"
-msgstr "Zapis w XAML"
+#: ../src/widgets/toolbox.cpp:5302
+msgid "Cut out from objects"
+msgstr "Wycinanie z obiektów"
 
-#: ../share/extensions/svg_and_media_zip_output.inx.h:1
-msgid "Compressed Inkscape SVG with media (*.zip)"
-msgstr "Skompresowany plik Inkscape SVG z mediami (*.zip)"
+#: ../src/widgets/toolbox.cpp:5647
+msgid "Text: Change font family"
+msgstr "Tekst: Zmień czcionkę"
 
-#: ../share/extensions/svg_and_media_zip_output.inx.h:2
-msgid ""
-"Inkscape's native file format compressed with Zip and including all media "
-"files"
-msgstr ""
-"Natywny plik Inkscape skompresowany razem ze wszystkimi mediami metodą Zip"
+#: ../src/widgets/toolbox.cpp:5735
+msgid "Text: Change alignment"
+msgstr "Tekst: Zmień wyrównanie"
 
-#: ../share/extensions/svg_and_media_zip_output.inx.h:3
-msgid "ZIP Output"
-msgstr "Zapis ZIP"
+#: ../src/widgets/toolbox.cpp:5813
+msgid "Text: Change font style"
+msgstr "Tekst: Zmień styl czcionki"
 
-#: ../share/extensions/text_braille.inx.h:1
-msgid "Convert to Braille"
-msgstr "Konwertuj na alfabet Braille'a"
+#: ../src/widgets/toolbox.cpp:5860
+msgid "Text: Change orientation"
+msgstr "Tekst: Zmień orientację"
 
-#: ../share/extensions/text_flipcase.inx.h:2
-msgid "fLIP cASE"
-msgstr "oDWRÓĆ wIELKOŚĆ lITER"
+#: ../src/widgets/toolbox.cpp:5962
+msgid "Text: Change font size"
+msgstr "Tekst: Zmień rozmiar czcionki"
 
-#: ../share/extensions/text_lowercase.inx.h:2
-msgid "lowercase"
-msgstr "małe litery"
+#: ../src/widgets/toolbox.cpp:6197
+msgid "This font is currently not installed on your system. Inkscape will use the default font instead."
+msgstr "Ta czcionka nie jest aktualnie zainstalowana systemie. Inkscape będzie używał zamiast niej czcionkę domyślną."
 
-#: ../share/extensions/text_randomcase.inx.h:2
-msgid "rANdOm CasE"
-msgstr "LosoWa wIelKość litER"
+#: ../src/widgets/toolbox.cpp:6233
+msgid "Align left"
+msgstr "Wyrównaj do lewej"
 
-#: ../share/extensions/text_replace.inx.h:1
-msgid "By:"
-msgstr "Nowy tekst:"
+#: ../src/widgets/toolbox.cpp:6244
+msgid "Center"
+msgstr "Wyśrodkuj"
 
-#: ../share/extensions/text_replace.inx.h:2
-msgid "Replace text"
-msgstr "Zamień tekst"
+#: ../src/widgets/toolbox.cpp:6255
+msgid "Align right"
+msgstr "Wyrównaj do prawej"
 
-#: ../share/extensions/text_replace.inx.h:3
-msgid "Replace:"
-msgstr "Tekst:"
+#: ../src/widgets/toolbox.cpp:6266
+msgid "Justify"
+msgstr "Wyjustuj"
 
-#: ../share/extensions/text_sentencecase.inx.h:1
-msgid "Sentence case"
-msgstr "Styl zdania"
+#: ../src/widgets/toolbox.cpp:6281
+msgid "Bold"
+msgstr "Pogrubienie"
 
-#: ../share/extensions/text_titlecase.inx.h:2
-msgid "Title Case"
-msgstr "Styl Tytułu"
+#: ../src/widgets/toolbox.cpp:6292
+msgid "Italic"
+msgstr "Kursywa"
 
-#: ../share/extensions/text_uppercase.inx.h:2
-msgid "UPPERCASE"
-msgstr "WIELKIE LITERY"
+#: ../src/widgets/toolbox.cpp:6425
+msgid "Change connector spacing"
+msgstr "Zmień odstęp łącznika"
 
-#: ../share/extensions/triangle.inx.h:1
-msgid "Angle a / deg"
-msgstr "Kąt a  / stopnie"
+#: ../src/widgets/toolbox.cpp:6508
+msgid "Avoid"
+msgstr "Pomiń"
 
-#: ../share/extensions/triangle.inx.h:2
-msgid "Angle b / deg"
-msgstr "Kąt b  / stopnie"
+#: ../src/widgets/toolbox.cpp:6518
+msgid "Ignore"
+msgstr "Ignoruj"
 
-#: ../share/extensions/triangle.inx.h:3
-msgid "Angle c / deg"
-msgstr "Kąt c  / stopnie"
+#: ../src/widgets/toolbox.cpp:6530
+msgid "Connector Spacing"
+msgstr "Odstępy łączników"
 
-#: ../share/extensions/triangle.inx.h:4
-msgid "From Side a and Angles a, b"
-msgstr "Ze strony a i kątów a, b"
+#: ../src/widgets/toolbox.cpp:6530
+msgid "Spacing:"
+msgstr "Odstępy:"
 
-#: ../share/extensions/triangle.inx.h:5
-msgid "From Side c and Angles a, b"
-msgstr "Ze strony c i kątów a, b"
+#: ../src/widgets/toolbox.cpp:6531
+msgid "The amount of space left around objects by auto-routing connectors"
+msgstr "Odstęp wokół obiektów automatycznie wyznaczony przez łączniki"
 
-#: ../share/extensions/triangle.inx.h:6
-msgid "From Sides a, b and Angle a"
-msgstr "Ze stron a, b i kąta a"
+#: ../src/widgets/toolbox.cpp:6542
+msgid "Graph"
+msgstr "Wykres"
 
-#: ../share/extensions/triangle.inx.h:7
-msgid "From Sides a, b and Angle c"
-msgstr "Ze stron a, b i kąta c"
+#: ../src/widgets/toolbox.cpp:6552
+msgid "Connector Length"
+msgstr "Długość łącznika"
 
-#: ../share/extensions/triangle.inx.h:8
-msgid "From Three Sides"
-msgstr "Z trzech stron"
+#: ../src/widgets/toolbox.cpp:6552
+msgid "Length:"
+msgstr "Długość:"
 
-#: ../share/extensions/triangle.inx.h:11
-msgid "Side Length a / px"
-msgstr "Długość boku (px)"
+#: ../src/widgets/toolbox.cpp:6553
+msgid "Ideal length for connectors when layout is applied"
+msgstr "Odpowiednia długość dla łączników podczas stosowania rozmieszczenia"
 
-#: ../share/extensions/triangle.inx.h:12
-msgid "Side Length b / px"
-msgstr "Długość boku (px)"
+#: ../src/widgets/toolbox.cpp:6565
+msgid "Downwards"
+msgstr "Do dołu"
 
-#: ../share/extensions/triangle.inx.h:13
-msgid "Side Length c / px"
-msgstr "Długość boku (px)"
+#: ../src/widgets/toolbox.cpp:6566
+msgid "Make connectors with end-markers (arrows) point downwards"
+msgstr "Utwórz łączniki ze strzałkami skierowanymi w dół"
 
-#: ../share/extensions/triangle.inx.h:14
-msgid "Triangle"
-msgstr "Trójkąt"
+#: ../src/widgets/toolbox.cpp:6581
+msgid "Do not allow overlapping shapes"
+msgstr "Nie pozwalaj na nakładanie się kształtów"
 
-#: ../share/extensions/txt2svg.inx.h:1
-msgid "ASCII Text"
-msgstr "Tekst ASCII"
+#: ../src/widgets/toolbox.cpp:6684
+msgid "Fill by"
+msgstr "Wypełnij"
 
-#: ../share/extensions/txt2svg.inx.h:2
-msgid "Text File (*.txt)"
-msgstr "Plik tekstowy (*.txt)"
+#: ../src/widgets/toolbox.cpp:6685
+msgid "Fill by:"
+msgstr "Wypełnij:"
 
-#: ../share/extensions/txt2svg.inx.h:3
-msgid "Text Input"
-msgstr "Źródło tekstowe"
+#: ../src/widgets/toolbox.cpp:6697
+msgid "Fill Threshold"
+msgstr "Próg wypełniania"
 
-#: ../share/extensions/whirl.inx.h:1
-msgid "Amount of whirl"
-msgstr "Stopień skręcenia"
+#: ../src/widgets/toolbox.cpp:6698
+msgid "The maximum allowed difference between the clicked pixel and the neighboring pixels to be counted in the fill"
+msgstr "Maksymalna dozwolona różnica pomiędzy klikniętym pikselem, a sąsiednimi pikselami branymi pod uwagę podczas wypełniania"
 
-#: ../share/extensions/whirl.inx.h:3
-msgid "Rotation is clockwise"
-msgstr "Skręcenie w prawo"
+#: ../src/widgets/toolbox.cpp:6723
+msgid "Grow/shrink by"
+msgstr "Powiększ/pomniejsz o"
 
-#: ../share/extensions/whirl.inx.h:4
-msgid "Whirl"
-msgstr "Wir"
+#: ../src/widgets/toolbox.cpp:6723
+msgid "Grow/shrink by:"
+msgstr "Powiększ/pomniejsz o:"
 
-#: ../share/extensions/wmf_input.inx.h:1
-msgid "A popular graphics file format for clipart"
-msgstr "Popularny format graficzny dla klipartów"
+#: ../src/widgets/toolbox.cpp:6724
+msgid "The amount to grow (positive) or shrink (negative) the created fill path"
+msgstr "Wartość zwiększenia (wartości dodatnie) lub zmniejszenia (wartości ujemne) utworzonej ścieżki wypełnienia"
 
-#: ../share/extensions/wmf_input.inx.h:2
-msgid "Windows Metafile (*.wmf)"
-msgstr "Windows Metafile (*.wmf)"
+#: ../src/widgets/toolbox.cpp:6749
+msgid "Close gaps"
+msgstr "Zamyknie przerw"
 
-#: ../share/extensions/wmf_input.inx.h:3
-msgid "Windows Metafile Input"
-msgstr "Źródło Metaplik Windows"
+#: ../src/widgets/toolbox.cpp:6750
+msgid "Close gaps:"
+msgstr "Zamknij przerwy:"
 
-#: ../share/extensions/xaml2svg.inx.h:3
-msgid "XAML Input"
-msgstr "Źródło XAML"
+#: ../src/widgets/toolbox.cpp:6762
+msgid "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
+msgstr "Przywraca domyślne ustawienia wypełniania. Aby zmienić domyślne wartości przejdź do Ustawienia Inkscape » Narzędzia."
index d5c4718620e0209370dc9e20e92cff4f8d2471e1..74a16232a59358e632f660a2df09d26a93819ed9 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -12,8 +12,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: inkscape\n"
 "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2008-09-20 01:31+0400\n"
-"PO-Revision-Date: 2008-09-22 04:07+0300\n"
+"POT-Creation-Date: 2008-10-26 02:38+0400\n"
+"PO-Revision-Date: 2008-10-26 02:48+0300\n"
 "Last-Translator: Alexandre Prokoudine <alexandre.prokoudine@gmail.com>\n"
 "Language-Team: Russian <gnome-cyr@lists.gnome.org>\n"
 "MIME-Version: 1.0\n"
@@ -31,44 +31,44 @@ msgstr "Создание и редактирование масштабируе
 msgid "Inkscape Vector Graphics Editor"
 msgstr "Редактор векторной графики Inkscape"
 
-#: ../src/arc-context.cpp:340
+#: ../src/arc-context.cpp:341
 msgid "<b>Ctrl</b>: make circle or integer-ratio ellipse, snap arc/segment angle"
 msgstr "<b>Ctrl</b>: создать круг или эллипс с целым отношением сторон, ограничить угол дуги/сегмента"
 
-#: ../src/arc-context.cpp:341
-#: ../src/rect-context.cpp:384
+#: ../src/arc-context.cpp:342
+#: ../src/rect-context.cpp:383
 msgid "<b>Shift</b>: draw around the starting point"
 msgstr "<b>Shift</b>: рисовать вокруг начальной точки"
 
-#: ../src/arc-context.cpp:487
+#: ../src/arc-context.cpp:488
 #, c-format
 msgid "<b>Ellipse</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> to draw around the starting point"
 msgstr "<b>Эллипс</b>: %s &#215; %s; (с соотношением сторон %d:%d); с <b>Shift</b> рисует вокруг начальной точки"
 
-#: ../src/arc-context.cpp:489
+#: ../src/arc-context.cpp:490
 #, c-format
 msgid "<b>Ellipse</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-ratio ellipse; with <b>Shift</b> to draw around the starting point"
 msgstr "<b>Эллипс</b>: %s &#215; %s; с <b>Ctrl</b> рисует круг или эллипс с целым отношением сторон; с <b>Shift</b> рисует вокруг начальной точки"
 
-#: ../src/arc-context.cpp:508
+#: ../src/arc-context.cpp:509
 msgid "Create ellipse"
 msgstr "Создание эллипса"
 
-#: ../src/box3d-context.cpp:449
-#: ../src/box3d-context.cpp:456
-#: ../src/box3d-context.cpp:463
-#: ../src/box3d-context.cpp:470
-#: ../src/box3d-context.cpp:477
-#: ../src/box3d-context.cpp:484
+#: ../src/box3d-context.cpp:451
+#: ../src/box3d-context.cpp:458
+#: ../src/box3d-context.cpp:465
+#: ../src/box3d-context.cpp:472
+#: ../src/box3d-context.cpp:479
+#: ../src/box3d-context.cpp:486
 msgid "Change perspective (angle of PLs)"
 msgstr "Менять перспективу (угол параллельных линий)"
 
 #. status text
-#: ../src/box3d-context.cpp:639
+#: ../src/box3d-context.cpp:641
 msgid "<b>3D Box</b>; with <b>Shift</b> to extrude along the Z axis"
 msgstr "<b>Параллелепипед</b>; с <b>Shift</b> — для выдавливания вдоль оси Z"
 
-#: ../src/box3d-context.cpp:663
+#: ../src/box3d-context.cpp:665
 msgid "Create 3D box"
 msgstr "Создание паралеллепипеда"
 
@@ -76,46 +76,46 @@ msgstr "Создание паралеллепипеда"
 msgid "<b>3D Box</b>"
 msgstr "<b>Параллелепипед</b>"
 
-#: ../src/connector-context.cpp:519
+#: ../src/connector-context.cpp:520
 msgid "Creating new connector"
 msgstr "Создается новая соединительная линия"
 
-#: ../src/connector-context.cpp:751
+#: ../src/connector-context.cpp:752
 msgid "Connector endpoint drag cancelled."
 msgstr "Перемещение конечных точек соединительной линии отменено."
 
-#: ../src/connector-context.cpp:799
+#: ../src/connector-context.cpp:800
 msgid "Reroute connector"
 msgstr "Объекты пересоединены"
 
 #. Flush pending updates
-#: ../src/connector-context.cpp:963
+#: ../src/connector-context.cpp:964
 msgid "Create connector"
 msgstr "Создание соединительной линии"
 
-#: ../src/connector-context.cpp:987
+#: ../src/connector-context.cpp:988
 msgid "Finishing connector"
 msgstr "Соединительная линия закрывается"
 
-#: ../src/connector-context.cpp:1130
+#: ../src/connector-context.cpp:1131
 msgid "<b>Connection point</b>: click or drag to create a new connector"
 msgstr "<b>Точка соединения</b>: щелкните мышкой или перетащите для создания новой соединительной линии"
 
-#: ../src/connector-context.cpp:1203
+#: ../src/connector-context.cpp:1204
 msgid "<b>Connector endpoint</b>: drag to reroute or connect to new shapes"
 msgstr "<b>Конечная соединительная точка</b>: перетащите для пересоединения или соединения с новыми фигурами"
 
-#: ../src/connector-context.cpp:1314
+#: ../src/connector-context.cpp:1316
 msgid "Select <b>at least one non-connector object</b>."
 msgstr "Выделите <b>как минимум один объект (не соединительную линию)</b>."
 
-#: ../src/connector-context.cpp:1319
-#: ../src/widgets/toolbox.cpp:6497
+#: ../src/connector-context.cpp:1321
+#: ../src/widgets/toolbox.cpp:6485
 msgid "Make connectors avoid selected objects"
 msgstr "Линии обходят выделенные объекты"
 
-#: ../src/connector-context.cpp:1320
-#: ../src/widgets/toolbox.cpp:6507
+#: ../src/connector-context.cpp:1322
+#: ../src/widgets/toolbox.cpp:6495
 msgid "Make connectors ignore selected objects"
 msgstr "Линии игнорируют выделенные объекты"
 
@@ -129,29 +129,29 @@ msgstr "<b>Текущий слой скрыт</b>. Включите его по
 msgid "<b>Current layer is locked</b>. Unlock it to be able to draw on it."
 msgstr "<b>Текущий слой заперт</b>. Отоприте его, чтобы иметь возможность снова рисовать на нём."
 
-#: ../src/desktop.cpp:816
+#: ../src/desktop.cpp:820
 msgid "No previous zoom."
 msgstr "Нет предыдущего масштаба."
 
-#: ../src/desktop.cpp:841
+#: ../src/desktop.cpp:845
 msgid "No next zoom."
 msgstr "Нет следующего масштаба."
 
-#: ../src/desktop-events.cpp:175
+#: ../src/desktop-events.cpp:176
 msgid "Create guide"
 msgstr "Создание направляющей"
 
-#: ../src/desktop-events.cpp:221
-#: ../src/desktop-events.cpp:275
+#: ../src/desktop-events.cpp:222
+#: ../src/desktop-events.cpp:276
 #: ../src/dialogs/guidelinedialog.cpp:127
 msgid "Delete guide"
 msgstr "Удаление направляющей"
 
-#: ../src/desktop-events.cpp:269
+#: ../src/desktop-events.cpp:270
 msgid "Move guide"
 msgstr "Перемещение направляющей"
 
-#: ../src/desktop-events.cpp:290
+#: ../src/desktop-events.cpp:291
 #, c-format
 msgid "<b>Guideline</b>: %s"
 msgstr "<b>Направляющая</b>: %s"
@@ -190,7 +190,7 @@ msgid "Delete tiled clones"
 msgstr "Удаление узора из клонов"
 
 #: ../src/dialogs/clonetiler.cpp:1111
-#: ../src/selection-chemistry.cpp:1835
+#: ../src/selection-chemistry.cpp:1845
 msgid "Select an <b>object</b> to clone."
 msgstr "Выделите <b>объект</b> для клонирования."
 
@@ -202,23 +202,23 @@ msgstr "Для клонирования нескольких объектов <b
 msgid "<small>Creating tiled clones...</small>"
 msgstr "<small>Создается узор из клонов...</small>"
 
-#: ../src/dialogs/clonetiler.cpp:1531
+#: ../src/dialogs/clonetiler.cpp:1529
 msgid "Create tiled clones"
 msgstr "Создание узора из клонов"
 
-#: ../src/dialogs/clonetiler.cpp:1722
+#: ../src/dialogs/clonetiler.cpp:1720
 msgid "<small>Per row:</small>"
 msgstr "<small>На строку:</small>"
 
-#: ../src/dialogs/clonetiler.cpp:1735
+#: ../src/dialogs/clonetiler.cpp:1733
 msgid "<small>Per column:</small>"
 msgstr "<small>На столбец:</small>"
 
-#: ../src/dialogs/clonetiler.cpp:1743
+#: ../src/dialogs/clonetiler.cpp:1741
 msgid "<small>Randomize:</small>"
 msgstr "<small>Случайно:</small>"
 
-#: ../src/dialogs/clonetiler.cpp:1904
+#: ../src/dialogs/clonetiler.cpp:1902
 msgid "_Symmetry"
 msgstr "С_имметрия"
 
@@ -227,483 +227,483 @@ msgstr "С_имметрия"
 #. * http://www.clarku.edu/~djoyce/wallpaper/seventeen.html (English vocabulary); or
 #. * http://membres.lycos.fr/villemingerard/Geometri/Sym1D.htm (French vocabulary).
 #.
-#: ../src/dialogs/clonetiler.cpp:1912
+#: ../src/dialogs/clonetiler.cpp:1910
 msgid "Select one of the 17 symmetry groups for the tiling"
 msgstr "Выберите одну из 17 групп симметрии для узора"
 
 #. TRANSLATORS: "translation" means "shift" / "displacement" here.
-#: ../src/dialogs/clonetiler.cpp:1923
+#: ../src/dialogs/clonetiler.cpp:1921
 msgid "<b>P1</b>: simple translation"
 msgstr "<b>P1</b>: простое смещение"
 
-#: ../src/dialogs/clonetiler.cpp:1924
+#: ../src/dialogs/clonetiler.cpp:1922
 msgid "<b>P2</b>: 180&#176; rotation"
 msgstr "<b>P2</b>: поворот на 180&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1925
+#: ../src/dialogs/clonetiler.cpp:1923
 msgid "<b>PM</b>: reflection"
 msgstr "<b>PM</b>: отражение"
 
 #. TRANSLATORS: "glide reflection" is a reflection and a translation combined.
 #. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html
-#: ../src/dialogs/clonetiler.cpp:1928
+#: ../src/dialogs/clonetiler.cpp:1926
 msgid "<b>PG</b>: glide reflection"
 msgstr "<b>PG</b>: отражение со сдвигом"
 
-#: ../src/dialogs/clonetiler.cpp:1929
+#: ../src/dialogs/clonetiler.cpp:1927
 msgid "<b>CM</b>: reflection + glide reflection"
 msgstr "<b>CM</b>: отражение + отражение со сдвигом"
 
-#: ../src/dialogs/clonetiler.cpp:1930
+#: ../src/dialogs/clonetiler.cpp:1928
 msgid "<b>PMM</b>: reflection + reflection"
 msgstr "<b>PMM</b>: отражение + отражение"
 
-#: ../src/dialogs/clonetiler.cpp:1931
+#: ../src/dialogs/clonetiler.cpp:1929
 msgid "<b>PMG</b>: reflection + 180&#176; rotation"
 msgstr "<b>PMG</b>: отражение + поворот на 180&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1932
+#: ../src/dialogs/clonetiler.cpp:1930
 msgid "<b>PGG</b>: glide reflection + 180&#176; rotation"
 msgstr "<b>PGG</b>: отражение со сдвигом + поворот на 180&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1933
+#: ../src/dialogs/clonetiler.cpp:1931
 msgid "<b>CMM</b>: reflection + reflection + 180&#176; rotation"
 msgstr "<b>CMM</b>: отражение + отражение + поворот на 180&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1934
+#: ../src/dialogs/clonetiler.cpp:1932
 msgid "<b>P4</b>: 90&#176; rotation"
 msgstr "<b>P4</b>: поворот на 90&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1935
+#: ../src/dialogs/clonetiler.cpp:1933
 msgid "<b>P4M</b>: 90&#176; rotation + 45&#176; reflection"
 msgstr "<b>P4M</b>: поворот на 90&#176; + отражение на 45&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1936
+#: ../src/dialogs/clonetiler.cpp:1934
 msgid "<b>P4G</b>: 90&#176; rotation + 90&#176; reflection"
 msgstr "<b>P4G</b>: поворот на 90&#176; + отражение на 90&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1937
+#: ../src/dialogs/clonetiler.cpp:1935
 msgid "<b>P3</b>: 120&#176; rotation"
 msgstr "<b>P3</b>: поворот на 120&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1938
+#: ../src/dialogs/clonetiler.cpp:1936
 msgid "<b>P31M</b>: reflection + 120&#176; rotation, dense"
 msgstr "<b>P31M</b>: отражение + поворот на 120&#176;, плотно"
 
-#: ../src/dialogs/clonetiler.cpp:1939
+#: ../src/dialogs/clonetiler.cpp:1937
 msgid "<b>P3M1</b>: reflection + 120&#176; rotation, sparse"
 msgstr "<b>P3M1</b>: отражение + поворот на 120&#176;, редко"
 
-#: ../src/dialogs/clonetiler.cpp:1940
+#: ../src/dialogs/clonetiler.cpp:1938
 msgid "<b>P6</b>: 60&#176; rotation"
 msgstr "<b>P6</b>: поворот на 60&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1941
+#: ../src/dialogs/clonetiler.cpp:1939
 msgid "<b>P6M</b>: reflection + 60&#176; rotation"
 msgstr "<b>P6M</b>: отражение + поворот на 60&#176;"
 
-#: ../src/dialogs/clonetiler.cpp:1969
+#: ../src/dialogs/clonetiler.cpp:1967
 msgid "S_hift"
 msgstr "Сме_щение"
 
 #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount
-#: ../src/dialogs/clonetiler.cpp:1979
+#: ../src/dialogs/clonetiler.cpp:1977
 #, no-c-format
 msgid "<b>Shift X:</b>"
 msgstr "<b>Смещение по X:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:1987
+#: ../src/dialogs/clonetiler.cpp:1985
 #, no-c-format
 msgid "Horizontal shift per row (in % of tile width)"
 msgstr ""
 "Смещение по горизонтали на каждую строку\n"
 "(в процентах от ширины элемента узора)"
 
-#: ../src/dialogs/clonetiler.cpp:1995
+#: ../src/dialogs/clonetiler.cpp:1993
 #, no-c-format
 msgid "Horizontal shift per column (in % of tile width)"
 msgstr ""
 "Смещение по горизонтали на каждый столбец\n"
 "(в процентах от ширины элемента узора)"
 
-#: ../src/dialogs/clonetiler.cpp:2002
+#: ../src/dialogs/clonetiler.cpp:2000
 msgid "Randomize the horizontal shift by this percentage"
 msgstr ""
 "Случайно менять смещение по горизонтали\n"
 "на этот процент"
 
 #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount
-#: ../src/dialogs/clonetiler.cpp:2012
+#: ../src/dialogs/clonetiler.cpp:2010
 #, no-c-format
 msgid "<b>Shift Y:</b>"
 msgstr "<b>Смещение по Y:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2020
+#: ../src/dialogs/clonetiler.cpp:2018
 #, no-c-format
 msgid "Vertical shift per row (in % of tile height)"
 msgstr ""
 "Смещение по вертикали на каждую строку\n"
 "(в процентах от высоты элемента узора)"
 
-#: ../src/dialogs/clonetiler.cpp:2028
+#: ../src/dialogs/clonetiler.cpp:2026
 #, no-c-format
 msgid "Vertical shift per column (in % of tile height)"
 msgstr ""
 "Смещение по вертикали на каждый столбец\n"
 "(в процентах от высоты элемента узора)"
 
-#: ../src/dialogs/clonetiler.cpp:2035
+#: ../src/dialogs/clonetiler.cpp:2033
 msgid "Randomize the vertical shift by this percentage"
 msgstr ""
 "Случайно менять смещение по вертикали\n"
 "на этот процент"
 
-#: ../src/dialogs/clonetiler.cpp:2043
-#: ../src/dialogs/clonetiler.cpp:2191
+#: ../src/dialogs/clonetiler.cpp:2041
+#: ../src/dialogs/clonetiler.cpp:2189
 msgid "<b>Exponent:</b>"
 msgstr "<b>Экспонента:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2050
+#: ../src/dialogs/clonetiler.cpp:2048
 msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)"
 msgstr "Располагать ли строки на одинаковом расстоянии (1), постепенно сдвигая (<1) или раздвигая (>1)"
 
-#: ../src/dialogs/clonetiler.cpp:2057
+#: ../src/dialogs/clonetiler.cpp:2055
 msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)"
 msgstr "Располагать ли столбцы на одинаковом расстоянии (1), постепенно сдвигая (<1) или раздвигая (>1)"
 
 #. TRANSLATORS: "Alternate" is a verb here
-#: ../src/dialogs/clonetiler.cpp:2065
-#: ../src/dialogs/clonetiler.cpp:2235
-#: ../src/dialogs/clonetiler.cpp:2312
-#: ../src/dialogs/clonetiler.cpp:2388
-#: ../src/dialogs/clonetiler.cpp:2437
-#: ../src/dialogs/clonetiler.cpp:2568
+#: ../src/dialogs/clonetiler.cpp:2063
+#: ../src/dialogs/clonetiler.cpp:2233
+#: ../src/dialogs/clonetiler.cpp:2310
+#: ../src/dialogs/clonetiler.cpp:2386
+#: ../src/dialogs/clonetiler.cpp:2435
+#: ../src/dialogs/clonetiler.cpp:2566
 msgid "<small>Alternate:</small>"
 msgstr "<small>Чередовать:</small>"
 
-#: ../src/dialogs/clonetiler.cpp:2071
+#: ../src/dialogs/clonetiler.cpp:2069
 msgid "Alternate the sign of shifts for each row"
 msgstr "Чередовать знак смещения для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2076
+#: ../src/dialogs/clonetiler.cpp:2074
 msgid "Alternate the sign of shifts for each column"
 msgstr "Чередовать знак смещения для каждого столбца"
 
 #. TRANSLATORS: "Cumulate" is a verb here
-#: ../src/dialogs/clonetiler.cpp:2083
-#: ../src/dialogs/clonetiler.cpp:2253
-#: ../src/dialogs/clonetiler.cpp:2330
+#: ../src/dialogs/clonetiler.cpp:2081
+#: ../src/dialogs/clonetiler.cpp:2251
+#: ../src/dialogs/clonetiler.cpp:2328
 msgid "<small>Cumulate:</small>"
 msgstr "<small>Накапливать:</small>"
 
-#: ../src/dialogs/clonetiler.cpp:2089
+#: ../src/dialogs/clonetiler.cpp:2087
 msgid "Cumulate the shifts for each row"
 msgstr "Накапливать смещение для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2094
+#: ../src/dialogs/clonetiler.cpp:2092
 msgid "Cumulate the shifts for each column"
 msgstr "Накапливать смещение для каждого столбца"
 
 #. TRANSLATORS: "Cumulate" is a verb here
-#: ../src/dialogs/clonetiler.cpp:2101
+#: ../src/dialogs/clonetiler.cpp:2099
 msgid "<small>Exclude tile:</small>"
 msgstr "<small>Исключить элемент:</small>"
 
-#: ../src/dialogs/clonetiler.cpp:2107
+#: ../src/dialogs/clonetiler.cpp:2105
 msgid "Exclude tile height in shift"
 msgstr "Исключить высоту элемента при смещении"
 
-#: ../src/dialogs/clonetiler.cpp:2112
+#: ../src/dialogs/clonetiler.cpp:2110
 msgid "Exclude tile width in shift"
 msgstr "Исключить ширину элемента при смещении"
 
-#: ../src/dialogs/clonetiler.cpp:2121
+#: ../src/dialogs/clonetiler.cpp:2119
 msgid "Sc_ale"
 msgstr "_Масштаб"
 
-#: ../src/dialogs/clonetiler.cpp:2129
+#: ../src/dialogs/clonetiler.cpp:2127
 msgid "<b>Scale X:</b>"
 msgstr "<b>Масштаб по X:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2137
+#: ../src/dialogs/clonetiler.cpp:2135
 #, no-c-format
 msgid "Horizontal scale per row (in % of tile width)"
 msgstr ""
 "Масштабировать по горизонтали на каждую строку\n"
 "(в процентах от ширины элемента узора)"
 
-#: ../src/dialogs/clonetiler.cpp:2145
+#: ../src/dialogs/clonetiler.cpp:2143
 #, no-c-format
 msgid "Horizontal scale per column (in % of tile width)"
 msgstr ""
 "Масштабировать по горизонтали на каждый столбец\n"
 "(в процентах от ширины элемента узора)"
 
-#: ../src/dialogs/clonetiler.cpp:2152
+#: ../src/dialogs/clonetiler.cpp:2150
 msgid "Randomize the horizontal scale by this percentage"
 msgstr ""
 "Случайным образом масштабировать \n"
 "по горизонтали на этот процент"
 
-#: ../src/dialogs/clonetiler.cpp:2160
+#: ../src/dialogs/clonetiler.cpp:2158
 msgid "<b>Scale Y:</b>"
 msgstr "<b>Масштаб по Y:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2168
+#: ../src/dialogs/clonetiler.cpp:2166
 #, no-c-format
 msgid "Vertical scale per row (in % of tile height)"
 msgstr ""
 "Масштабировать по вертикали на каждую строку\n"
 "(в процентах от высоты элемента узора)"
 
-#: ../src/dialogs/clonetiler.cpp:2176
+#: ../src/dialogs/clonetiler.cpp:2174
 #, no-c-format
 msgid "Vertical scale per column (in % of tile height)"
 msgstr ""
 "Масштабировать по вертикали на каждый столбец\n"
 "(в процентах от высоты элемента узора)"
 
-#: ../src/dialogs/clonetiler.cpp:2183
+#: ../src/dialogs/clonetiler.cpp:2181
 msgid "Randomize the vertical scale by this percentage"
 msgstr ""
 "Случайным образом масштабировать\n"
 "по вертикали на этот процент"
 
-#: ../src/dialogs/clonetiler.cpp:2198
+#: ../src/dialogs/clonetiler.cpp:2196
 msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)"
 msgstr "Располагать ли строки на одинаковом расстоянии (1), постепенно сдвигая (<1) или раздвигая (>1)"
 
-#: ../src/dialogs/clonetiler.cpp:2205
+#: ../src/dialogs/clonetiler.cpp:2203
 msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)"
 msgstr "Располагать ли столбцы на одинаковом расстоянии (1), постепенно сдвигая (<1) или раздвигая (>1)"
 
-#: ../src/dialogs/clonetiler.cpp:2213
+#: ../src/dialogs/clonetiler.cpp:2211
 msgid "<b>Base:</b>"
 msgstr "<b>Основа</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2220
-#: ../src/dialogs/clonetiler.cpp:2227
+#: ../src/dialogs/clonetiler.cpp:2218
+#: ../src/dialogs/clonetiler.cpp:2225
 msgid "Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"
 msgstr "Основа логарифмической спирали: не используется (0), сходящаяся спираль (<1), расходящаяся спираль (>1)"
 
-#: ../src/dialogs/clonetiler.cpp:2241
+#: ../src/dialogs/clonetiler.cpp:2239
 msgid "Alternate the sign of scales for each row"
 msgstr "Чередовать знак масштаба для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2246
+#: ../src/dialogs/clonetiler.cpp:2244
 msgid "Alternate the sign of scales for each column"
 msgstr "Чередовать знак масштаба для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2259
+#: ../src/dialogs/clonetiler.cpp:2257
 msgid "Cumulate the scales for each row"
 msgstr "Накапливать масштаб для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2264
+#: ../src/dialogs/clonetiler.cpp:2262
 msgid "Cumulate the scales for each column"
 msgstr "Накапливать масштаб для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2273
+#: ../src/dialogs/clonetiler.cpp:2271
 msgid "_Rotation"
 msgstr "_Поворот"
 
-#: ../src/dialogs/clonetiler.cpp:2281
+#: ../src/dialogs/clonetiler.cpp:2279
 msgid "<b>Angle:</b>"
 msgstr "<b>Угол:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2289
+#: ../src/dialogs/clonetiler.cpp:2287
 #, no-c-format
 msgid "Rotate tiles by this angle for each row"
 msgstr "Поворачивать элементы узора на этот угол в каждой строке"
 
-#: ../src/dialogs/clonetiler.cpp:2297
+#: ../src/dialogs/clonetiler.cpp:2295
 #, no-c-format
 msgid "Rotate tiles by this angle for each column"
 msgstr "Поворачивать элементы узора на этот угол в каждом столбце"
 
-#: ../src/dialogs/clonetiler.cpp:2304
+#: ../src/dialogs/clonetiler.cpp:2302
 msgid "Randomize the rotation angle by this percentage"
 msgstr ""
 "Случайным образом менять \n"
 "угол поворота на этот процент"
 
-#: ../src/dialogs/clonetiler.cpp:2318
+#: ../src/dialogs/clonetiler.cpp:2316
 msgid "Alternate the rotation direction for each row"
 msgstr "Чередовать направление поворота для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2323
+#: ../src/dialogs/clonetiler.cpp:2321
 msgid "Alternate the rotation direction for each column"
 msgstr "Чередовать направление поворота для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2336
+#: ../src/dialogs/clonetiler.cpp:2334
 msgid "Cumulate the rotation for each row"
 msgstr "Накапливать поворот для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2341
+#: ../src/dialogs/clonetiler.cpp:2339
 msgid "Cumulate the rotation for each column"
 msgstr "Накапливать поворот для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2350
+#: ../src/dialogs/clonetiler.cpp:2348
 msgid "_Blur & opacity"
 msgstr "_Размывание и непрозрачность"
 
-#: ../src/dialogs/clonetiler.cpp:2359
+#: ../src/dialogs/clonetiler.cpp:2357
 msgid "<b>Blur:</b>"
 msgstr "<b>Размывание:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2366
+#: ../src/dialogs/clonetiler.cpp:2364
 msgid "Blur tiles by this percentage for each row"
 msgstr "Размыть элементы узора на этот процент для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2373
+#: ../src/dialogs/clonetiler.cpp:2371
 msgid "Blur tiles by this percentage for each column"
 msgstr "Размыть элементы узора на этот процент для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2380
+#: ../src/dialogs/clonetiler.cpp:2378
 msgid "Randomize the tile blur by this percentage"
 msgstr "Случайно менять размывание на этот процент"
 
-#: ../src/dialogs/clonetiler.cpp:2394
+#: ../src/dialogs/clonetiler.cpp:2392
 msgid "Alternate the sign of blur change for each row"
 msgstr "Чередовать знак изменения размывания для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2399
+#: ../src/dialogs/clonetiler.cpp:2397
 msgid "Alternate the sign of blur change for each column"
 msgstr "Чередовать знак изменения размывания для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2408
+#: ../src/dialogs/clonetiler.cpp:2406
 msgid "<b>Fade out:</b>"
 msgstr "<b>Прозрачнее на:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2415
+#: ../src/dialogs/clonetiler.cpp:2413
 msgid "Decrease tile opacity by this percentage for each row"
 msgstr ""
 "Увеличить прозрачность элементов узора\n"
 "на этот процент для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2422
+#: ../src/dialogs/clonetiler.cpp:2420
 msgid "Decrease tile opacity by this percentage for each column"
 msgstr ""
 "Увеличить прозрачность элементов узора\n"
 "на этот процент для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2429
+#: ../src/dialogs/clonetiler.cpp:2427
 msgid "Randomize the tile opacity by this percentage"
 msgstr "Случайно менять прозрачность, максимум на данный процент"
 
-#: ../src/dialogs/clonetiler.cpp:2443
+#: ../src/dialogs/clonetiler.cpp:2441
 msgid "Alternate the sign of opacity change for each row"
 msgstr ""
 "Чередовать знак изменения прозрачности\n"
 "для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2448
+#: ../src/dialogs/clonetiler.cpp:2446
 msgid "Alternate the sign of opacity change for each column"
 msgstr ""
 "Чередовать знак изменения прозрачности\n"
 "для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2456
+#: ../src/dialogs/clonetiler.cpp:2454
 msgid "Co_lor"
 msgstr "Цвет"
 
-#: ../src/dialogs/clonetiler.cpp:2461
+#: ../src/dialogs/clonetiler.cpp:2459
 msgid "Initial color: "
 msgstr "Исходный цвет:"
 
-#: ../src/dialogs/clonetiler.cpp:2465
+#: ../src/dialogs/clonetiler.cpp:2463
 msgid "Initial color of tiled clones"
 msgstr "Исходный цвет элементов узора"
 
-#: ../src/dialogs/clonetiler.cpp:2465
+#: ../src/dialogs/clonetiler.cpp:2463
 msgid "Initial color for clones (works only if the original has unset fill or stroke)"
 msgstr "Исходный цвет клонов (у оригинала должен быть сброшен цвет заливки или обводки)"
 
-#: ../src/dialogs/clonetiler.cpp:2480
+#: ../src/dialogs/clonetiler.cpp:2478
 msgid "<b>H:</b>"
 msgstr "<b>H:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2487
+#: ../src/dialogs/clonetiler.cpp:2485
 msgid "Change the tile hue by this percentage for each row"
 msgstr ""
 "Менять цветовой тон элементов узора\n"
 "на этот процент для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2494
+#: ../src/dialogs/clonetiler.cpp:2492
 msgid "Change the tile hue by this percentage for each column"
 msgstr ""
 "Менять цветовой тон элементов узора\n"
 "на этот процент для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2501
+#: ../src/dialogs/clonetiler.cpp:2499
 msgid "Randomize the tile hue by this percentage"
 msgstr "Случайно менять цветовой тон, максимум на этот процент"
 
-#: ../src/dialogs/clonetiler.cpp:2510
+#: ../src/dialogs/clonetiler.cpp:2508
 msgid "<b>S:</b>"
 msgstr "<b>S:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2517
+#: ../src/dialogs/clonetiler.cpp:2515
 msgid "Change the color saturation by this percentage for each row"
 msgstr ""
 "Менять насыщенность цвета элементов узора\n"
 "на этот процент для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2524
+#: ../src/dialogs/clonetiler.cpp:2522
 msgid "Change the color saturation by this percentage for each column"
 msgstr ""
 "Менять насыщенность цвета элементов узора\n"
 "на этот процент для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2531
+#: ../src/dialogs/clonetiler.cpp:2529
 msgid "Randomize the color saturation by this percentage"
 msgstr "Случайно менять насыщенность цвета, максимум на этот процент"
 
-#: ../src/dialogs/clonetiler.cpp:2539
+#: ../src/dialogs/clonetiler.cpp:2537
 msgid "<b>L:</b>"
 msgstr "<b>L:</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2546
+#: ../src/dialogs/clonetiler.cpp:2544
 msgid "Change the color lightness by this percentage for each row"
 msgstr "Менять яркость цвета на этот процент для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2553
+#: ../src/dialogs/clonetiler.cpp:2551
 msgid "Change the color lightness by this percentage for each column"
 msgstr "Менять яркость цвета на этот процент для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2560
+#: ../src/dialogs/clonetiler.cpp:2558
 msgid "Randomize the color lightness by this percentage"
 msgstr "Случайно менять яркость цвета, максимум на данный процент"
 
-#: ../src/dialogs/clonetiler.cpp:2574
+#: ../src/dialogs/clonetiler.cpp:2572
 msgid "Alternate the sign of color changes for each row"
 msgstr ""
 "Чередовать знак изменения цвета\n"
 "для каждой строки"
 
-#: ../src/dialogs/clonetiler.cpp:2579
+#: ../src/dialogs/clonetiler.cpp:2577
 msgid "Alternate the sign of color changes for each column"
 msgstr ""
 "Чередовать знак изменения цвета\n"
 "для каждого столбца"
 
-#: ../src/dialogs/clonetiler.cpp:2587
+#: ../src/dialogs/clonetiler.cpp:2585
 msgid "_Trace"
 msgstr "_Обводка"
 
-#: ../src/dialogs/clonetiler.cpp:2594
+#: ../src/dialogs/clonetiler.cpp:2592
 msgid "Trace the drawing under the tiles"
 msgstr "Обвести узором рисунок под ним"
 
-#: ../src/dialogs/clonetiler.cpp:2598
+#: ../src/dialogs/clonetiler.cpp:2596
 msgid "For each clone, pick a value from the drawing in that clone's location and apply it to the clone"
 msgstr "Для каждого клона в узоре взять значение под клоном и применить его к клону"
 
-#: ../src/dialogs/clonetiler.cpp:2612
+#: ../src/dialogs/clonetiler.cpp:2610
 msgid "1. Pick from the drawing:"
 msgstr "1. Взять значение:"
 
-#: ../src/dialogs/clonetiler.cpp:2623
-#: ../src/dialogs/clonetiler.cpp:2770
+#: ../src/dialogs/clonetiler.cpp:2621
+#: ../src/dialogs/clonetiler.cpp:2768
 #: ../src/extension/internal/bitmap/colorize.cpp:51
 #: ../share/extensions/color_brighter.inx.h:2
 #: ../share/extensions/color_custom.inx.h:2
@@ -726,171 +726,171 @@ msgstr "1. Взять значение:"
 msgid "Color"
 msgstr "Цвет"
 
-#: ../src/dialogs/clonetiler.cpp:2624
+#: ../src/dialogs/clonetiler.cpp:2622
 msgid "Pick the visible color and opacity"
 msgstr "Взять видимый цвет (без прозрачности) в каждой точке"
 
-#: ../src/dialogs/clonetiler.cpp:2631
-#: ../src/dialogs/clonetiler.cpp:2780
+#: ../src/dialogs/clonetiler.cpp:2629
+#: ../src/dialogs/clonetiler.cpp:2778
 #: ../src/extension/internal/bitmap/opacity.cpp:37
 #: ../src/extension/internal/bitmap/opacity.cpp:39
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2245
-#: ../src/widgets/toolbox.cpp:3854
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2246
+#: ../src/widgets/toolbox.cpp:3845
 msgid "Opacity"
 msgstr "Непрозрачность"
 
-#: ../src/dialogs/clonetiler.cpp:2632
+#: ../src/dialogs/clonetiler.cpp:2630
 msgid "Pick the total accumulated opacity"
 msgstr "Взять суммарную непрозрачность в каждой точке"
 
-#: ../src/dialogs/clonetiler.cpp:2639
+#: ../src/dialogs/clonetiler.cpp:2637
 msgid "R"
 msgstr "R"
 
-#: ../src/dialogs/clonetiler.cpp:2640
+#: ../src/dialogs/clonetiler.cpp:2638
 msgid "Pick the Red component of the color"
 msgstr "Взять значение красного канала цвета"
 
-#: ../src/dialogs/clonetiler.cpp:2647
+#: ../src/dialogs/clonetiler.cpp:2645
 msgid "G"
 msgstr "G"
 
-#: ../src/dialogs/clonetiler.cpp:2648
+#: ../src/dialogs/clonetiler.cpp:2646
 msgid "Pick the Green component of the color"
 msgstr "Взять значение зеленого канала цвета"
 
-#: ../src/dialogs/clonetiler.cpp:2655
+#: ../src/dialogs/clonetiler.cpp:2653
 msgid "B"
 msgstr "B"
 
-#: ../src/dialogs/clonetiler.cpp:2656
+#: ../src/dialogs/clonetiler.cpp:2654
 msgid "Pick the Blue component of the color"
 msgstr "Взять значение синего канала цвета"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/dialogs/clonetiler.cpp:2665
+#: ../src/dialogs/clonetiler.cpp:2663
 msgid "clonetiler|H"
 msgstr "H"
 
-#: ../src/dialogs/clonetiler.cpp:2666
+#: ../src/dialogs/clonetiler.cpp:2664
 msgid "Pick the hue of the color"
 msgstr "Взять цветовой тон"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/dialogs/clonetiler.cpp:2675
+#: ../src/dialogs/clonetiler.cpp:2673
 msgid "clonetiler|S"
 msgstr "S"
 
-#: ../src/dialogs/clonetiler.cpp:2676
+#: ../src/dialogs/clonetiler.cpp:2674
 msgid "Pick the saturation of the color"
 msgstr "Взять насыщенность цвета"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/dialogs/clonetiler.cpp:2685
+#: ../src/dialogs/clonetiler.cpp:2683
 msgid "clonetiler|L"
 msgstr "L"
 
-#: ../src/dialogs/clonetiler.cpp:2686
+#: ../src/dialogs/clonetiler.cpp:2684
 msgid "Pick the lightness of the color"
 msgstr "Взять яркость цвета"
 
-#: ../src/dialogs/clonetiler.cpp:2696
+#: ../src/dialogs/clonetiler.cpp:2694
 msgid "2. Tweak the picked value:"
 msgstr "2. Изменить взятое значение:"
 
-#: ../src/dialogs/clonetiler.cpp:2706
+#: ../src/dialogs/clonetiler.cpp:2704
 msgid "Gamma-correct:"
 msgstr "Гамма-коррекция:"
 
-#: ../src/dialogs/clonetiler.cpp:2711
+#: ../src/dialogs/clonetiler.cpp:2709
 msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)"
 msgstr "Сдвинуть середину диапазона снятых значений вверх (>0) или вниз (<0)"
 
-#: ../src/dialogs/clonetiler.cpp:2718
+#: ../src/dialogs/clonetiler.cpp:2716
 msgid "Randomize:"
 msgstr "Случайно:"
 
-#: ../src/dialogs/clonetiler.cpp:2723
+#: ../src/dialogs/clonetiler.cpp:2721
 msgid "Randomize the picked value by this percentage"
 msgstr "Случайно менять взятое значение, максимум на данный процент"
 
-#: ../src/dialogs/clonetiler.cpp:2730
+#: ../src/dialogs/clonetiler.cpp:2728
 msgid "Invert:"
 msgstr "Инвертировать:"
 
-#: ../src/dialogs/clonetiler.cpp:2734
+#: ../src/dialogs/clonetiler.cpp:2732
 msgid "Invert the picked value"
 msgstr "Инвертировать взятое значение"
 
-#: ../src/dialogs/clonetiler.cpp:2740
+#: ../src/dialogs/clonetiler.cpp:2738
 msgid "3. Apply the value to the clones':"
 msgstr "3. Применить это значение к клонам через:"
 
-#: ../src/dialogs/clonetiler.cpp:2750
+#: ../src/dialogs/clonetiler.cpp:2748
 msgid "Presence"
 msgstr "Наличие"
 
-#: ../src/dialogs/clonetiler.cpp:2753
+#: ../src/dialogs/clonetiler.cpp:2751
 msgid "Each clone is created with the probability determined by the picked value in that point"
 msgstr "Вероятность появления каждого клона определяется значением, взятым в данной точке"
 
-#: ../src/dialogs/clonetiler.cpp:2760
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2220
+#: ../src/dialogs/clonetiler.cpp:2758
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2221
 msgid "Size"
 msgstr "Размер"
 
-#: ../src/dialogs/clonetiler.cpp:2763
+#: ../src/dialogs/clonetiler.cpp:2761
 msgid "Each clone's size is determined by the picked value in that point"
 msgstr "Размер каждого клона определяется значением, взятым в данной точке"
 
-#: ../src/dialogs/clonetiler.cpp:2773
+#: ../src/dialogs/clonetiler.cpp:2771
 msgid "Each clone is painted by the picked color (the original must have unset fill or stroke)"
 msgstr "Каждый клон красится взятым в данной точке цветом (у оригинала должен быть сброшен цвет заливки или обводки)"
 
-#: ../src/dialogs/clonetiler.cpp:2783
+#: ../src/dialogs/clonetiler.cpp:2781
 msgid "Each clone's opacity is determined by the picked value in that point"
 msgstr "Прозрачность каждого клона определяется значением, взятым в данной точке"
 
-#: ../src/dialogs/clonetiler.cpp:2810
+#: ../src/dialogs/clonetiler.cpp:2808
 msgid "How many rows in the tiling"
 msgstr "Количество строк в узоре"
 
-#: ../src/dialogs/clonetiler.cpp:2830
+#: ../src/dialogs/clonetiler.cpp:2828
 msgid "How many columns in the tiling"
 msgstr "Количество столбцов в узоре"
 
-#: ../src/dialogs/clonetiler.cpp:2860
+#: ../src/dialogs/clonetiler.cpp:2858
 msgid "Width of the rectangle to be filled"
 msgstr "Ширина заполняемой области"
 
-#: ../src/dialogs/clonetiler.cpp:2885
+#: ../src/dialogs/clonetiler.cpp:2883
 msgid "Height of the rectangle to be filled"
 msgstr "Высота заполняемой области"
 
-#: ../src/dialogs/clonetiler.cpp:2900
+#: ../src/dialogs/clonetiler.cpp:2898
 msgid "Rows, columns: "
 msgstr "Строк, столбцов: "
 
-#: ../src/dialogs/clonetiler.cpp:2901
+#: ../src/dialogs/clonetiler.cpp:2899
 msgid "Create the specified number of rows and columns"
 msgstr "Создать указанное количество строк и столбцов"
 
-#: ../src/dialogs/clonetiler.cpp:2910
+#: ../src/dialogs/clonetiler.cpp:2908
 msgid "Width, height: "
 msgstr "Ширина, высота: "
 
-#: ../src/dialogs/clonetiler.cpp:2911
+#: ../src/dialogs/clonetiler.cpp:2909
 msgid "Fill the specified width and height with the tiling"
 msgstr "Заполнить узором указанную область"
 
-#: ../src/dialogs/clonetiler.cpp:2927
+#: ../src/dialogs/clonetiler.cpp:2925
 msgid "Use saved size and position of the tile"
 msgstr "Использовать запомненный размер и позицию оригинала"
 
-#: ../src/dialogs/clonetiler.cpp:2930
+#: ../src/dialogs/clonetiler.cpp:2928
 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 ""
 "Использовать те же самые размер и позицию элемента узора,\n"
@@ -898,11 +898,11 @@ msgstr ""
 "узор из этого же объекта (если делали),\n"
 "вместо того чтобы использовать его настоящий размер/позицию"
 
-#: ../src/dialogs/clonetiler.cpp:2954
+#: ../src/dialogs/clonetiler.cpp:2952
 msgid " <b>_Create</b> "
 msgstr "<b>_Создать</b>"
 
-#: ../src/dialogs/clonetiler.cpp:2956
+#: ../src/dialogs/clonetiler.cpp:2954
 msgid "Create and tile the clones of the selection"
 msgstr "Создать узор из клонов выделенного объекта"
 
@@ -911,30 +911,30 @@ 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/dialogs/clonetiler.cpp:2971
+#: ../src/dialogs/clonetiler.cpp:2969
 msgid " _Unclump "
 msgstr " _Разровнять"
 
-#: ../src/dialogs/clonetiler.cpp:2972
+#: ../src/dialogs/clonetiler.cpp:2970
 msgid "Spread out clones to reduce clumping; can be applied repeatedly"
 msgstr "Распределить клоны более равномерно, избавиться от комков; можно применять несколько раз подряд"
 
-#: ../src/dialogs/clonetiler.cpp:2978
+#: ../src/dialogs/clonetiler.cpp:2976
 msgid " Re_move "
 msgstr " _Удалить "
 
-#: ../src/dialogs/clonetiler.cpp:2979
+#: ../src/dialogs/clonetiler.cpp:2977
 msgid "Remove existing tiled clones of the selected object (siblings only)"
 msgstr ""
 "Удалить составляющие узор клоны выделенного объекта\n"
 "(только в том же слое/группе)"
 
-#: ../src/dialogs/clonetiler.cpp:2995
+#: ../src/dialogs/clonetiler.cpp:2993
 msgid " R_eset "
 msgstr " С_бросить "
 
 #. TRANSLATORS: "change" is a noun here
-#: ../src/dialogs/clonetiler.cpp:2997
+#: ../src/dialogs/clonetiler.cpp:2995
 msgid "Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero"
 msgstr "Обнулить все введенные значения смещения, масштабирования, поворотов, непрозрачности и цвета"
 
@@ -945,27 +945,27 @@ msgstr "Сообщения"
 #. ## Add a menu for clear()
 #: ../src/dialogs/debugdialog.cpp:141
 #: ../src/menus-skeleton.h:16
-#: ../src/ui/dialog/messages.cpp:54
+#: ../src/ui/dialog/messages.cpp:52
 #: ../src/ui/dialog/scriptdialog.cpp:208
 msgid "_File"
 msgstr "_Файл"
 
 #. TRANSLATORS: "Clear" is a verb here
 #: ../src/dialogs/debugdialog.cpp:142
-#: ../src/dialogs/find.cpp:753
-#: ../src/ui/dialog/find.cpp:85
-#: ../src/ui/dialog/messages.cpp:55
+#: ../src/dialogs/find.cpp:755
+#: ../src/ui/dialog/find.cpp:84
+#: ../src/ui/dialog/messages.cpp:53
 #: ../src/ui/dialog/scriptdialog.cpp:209
 msgid "_Clear"
 msgstr "О_чистить"
 
 #: ../src/dialogs/debugdialog.cpp:144
-#: ../src/ui/dialog/messages.cpp:57
+#: ../src/ui/dialog/messages.cpp:55
 msgid "Capture log messages"
 msgstr "Сохранять отладочные сообщения"
 
 #: ../src/dialogs/debugdialog.cpp:146
-#: ../src/ui/dialog/messages.cpp:59
+#: ../src/ui/dialog/messages.cpp:57
 msgid "Release log messages"
 msgstr "Отключить сохранение отладочных сообщений"
 
@@ -975,17 +975,17 @@ msgid "none"
 msgstr "нет"
 
 #: ../src/dialogs/export.cpp:143
-#: ../src/verbs.cpp:2594
+#: ../src/verbs.cpp:2599
 msgid "_Page"
 msgstr "_Страница"
 
 #: ../src/dialogs/export.cpp:143
-#: ../src/verbs.cpp:2598
+#: ../src/verbs.cpp:2603
 msgid "_Drawing"
 msgstr "_Рисунок"
 
 #: ../src/dialogs/export.cpp:143
-#: ../src/verbs.cpp:2600
+#: ../src/verbs.cpp:2605
 msgid "_Selection"
 msgstr "_Выделение"
 
@@ -1009,14 +1009,12 @@ msgstr "_x0"
 msgid "x_1:"
 msgstr "x_1"
 
-#. Stroke width
 #: ../src/dialogs/export.cpp:320
 #: ../src/dialogs/object-attributes.cpp:60
 #: ../src/dialogs/object-attributes.cpp:68
-#: ../src/dialogs/stroke-style.cpp:1083
-#: ../src/widgets/toolbox.cpp:3660
-#: ../src/widgets/toolbox.cpp:4251
-#: ../src/widgets/toolbox.cpp:5263
+#: ../src/widgets/toolbox.cpp:3643
+#: ../src/widgets/toolbox.cpp:4233
+#: ../src/widgets/toolbox.cpp:5252
 msgid "Width:"
 msgstr "Ширина:"
 
@@ -1054,8 +1052,8 @@ msgid "dp_i"
 msgstr "dp_i"
 
 #: ../src/dialogs/export.cpp:506
-#: ../src/ui/dialog/inkscape-preferences.cpp:689
-#: ../src/ui/dialog/inkscape-preferences.cpp:1051
+#: ../src/ui/dialog/inkscape-preferences.cpp:723
+#: ../src/ui/dialog/inkscape-preferences.cpp:1083
 msgid "dpi"
 msgstr "dpi"
 
@@ -1102,7 +1100,7 @@ msgstr[2] "Пакетный экспорт %d выделенных объект
 
 #: ../src/dialogs/export.cpp:1011
 msgid "Export in progress"
-msgstr "Ð\98деÑ\82 Ñ\8dкÑ\81поÑ\80Ñ\82..."
+msgstr "Ð\92Ñ\8bполнÑ\8fеÑ\82Ñ\81Ñ\8f Ñ\8dкÑ\81поÑ\80Ñ\82"
 
 #: ../src/dialogs/export.cpp:1081
 #, c-format
@@ -1165,13 +1163,13 @@ msgstr "Текстурная заливка"
 #: ../src/ui/widget/selected-style.cpp:193
 #: ../src/ui/widget/selected-style.cpp:251
 #: ../src/ui/widget/selected-style.cpp:493
-#: ../src/ui/widget/style-swatch.cpp:335
+#: ../src/ui/widget/style-swatch.cpp:303
 msgid "Unset fill"
-msgstr "УбÑ\80ать заливку"
+msgstr "СнÑ\8fть заливку"
 
 #. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed
-#: ../src/dialogs/find.cpp:372
-#: ../src/ui/dialog/find.cpp:436
+#: ../src/dialogs/find.cpp:373
+#: ../src/ui/dialog/find.cpp:435
 #, c-format
 msgid "<b>%d</b> object found (out of <b>%d</b>), %s match."
 msgid_plural "<b>%d</b> objects found (out of <b>%d</b>), %s match."
@@ -1179,242 +1177,242 @@ msgstr[0] "Найден <b>%d</b> объект (из <b>%d</b>), %s соотве
 msgstr[1] "Найдено <b>%d</b> объекта (из <b>%d</b>), %s соответствия."
 msgstr[2] "Найдено <b>%d</b> объектов (из <b>%d</b>), %s соответствий."
 
-#: ../src/dialogs/find.cpp:375
-#: ../src/ui/dialog/find.cpp:439
+#: ../src/dialogs/find.cpp:376
+#: ../src/ui/dialog/find.cpp:438
 msgid "exact"
 msgstr "точное"
 
-#: ../src/dialogs/find.cpp:375
-#: ../src/ui/dialog/find.cpp:439
+#: ../src/dialogs/find.cpp:376
+#: ../src/ui/dialog/find.cpp:438
 msgid "partial"
 msgstr "частичное"
 
-#: ../src/dialogs/find.cpp:382
-#: ../src/ui/dialog/find.cpp:446
+#: ../src/dialogs/find.cpp:383
+#: ../src/ui/dialog/find.cpp:445
 msgid "No objects found"
 msgstr "Ничего не найдено"
 
-#: ../src/dialogs/find.cpp:540
+#: ../src/dialogs/find.cpp:541
 msgid "T_ype: "
 msgstr "Ти_п: "
 
-#: ../src/dialogs/find.cpp:547
-#: ../src/ui/dialog/find.cpp:70
+#: ../src/dialogs/find.cpp:548
+#: ../src/ui/dialog/find.cpp:69
 msgid "Search in all object types"
 msgstr "Искать в объектах всех типов"
 
-#: ../src/dialogs/find.cpp:547
-#: ../src/ui/dialog/find.cpp:70
+#: ../src/dialogs/find.cpp:548
+#: ../src/ui/dialog/find.cpp:69
 msgid "All types"
 msgstr "Все типы"
 
-#: ../src/dialogs/find.cpp:558
-#: ../src/ui/dialog/find.cpp:71
+#: ../src/dialogs/find.cpp:559
+#: ../src/ui/dialog/find.cpp:70
 msgid "Search all shapes"
 msgstr "Искать среди всех фигур"
 
-#: ../src/dialogs/find.cpp:558
-#: ../src/ui/dialog/find.cpp:71
+#: ../src/dialogs/find.cpp:559
+#: ../src/ui/dialog/find.cpp:70
 msgid "All shapes"
 msgstr "Все фигуры"
 
-#: ../src/dialogs/find.cpp:575
-#: ../src/ui/dialog/find.cpp:72
+#: ../src/dialogs/find.cpp:576
+#: ../src/ui/dialog/find.cpp:71
 msgid "Search rectangles"
 msgstr "Искать в прямоугольниках"
 
-#: ../src/dialogs/find.cpp:575
-#: ../src/ui/dialog/find.cpp:72
+#: ../src/dialogs/find.cpp:576
+#: ../src/ui/dialog/find.cpp:71
 msgid "Rectangles"
 msgstr "Прямоугольники"
 
-#: ../src/dialogs/find.cpp:580
-#: ../src/ui/dialog/find.cpp:73
+#: ../src/dialogs/find.cpp:581
+#: ../src/ui/dialog/find.cpp:72
 msgid "Search ellipses, arcs, circles"
 msgstr "Искать в эллипсах, секторах, кругах"
 
-#: ../src/dialogs/find.cpp:580
-#: ../src/ui/dialog/find.cpp:73
+#: ../src/dialogs/find.cpp:581
+#: ../src/ui/dialog/find.cpp:72
 msgid "Ellipses"
 msgstr "Эллипсы"
 
-#: ../src/dialogs/find.cpp:585
-#: ../src/ui/dialog/find.cpp:74
+#: ../src/dialogs/find.cpp:586
+#: ../src/ui/dialog/find.cpp:73
 msgid "Search stars and polygons"
 msgstr "Искать в звездах и многоугольниках"
 
-#: ../src/dialogs/find.cpp:585
-#: ../src/ui/dialog/find.cpp:74
+#: ../src/dialogs/find.cpp:586
+#: ../src/ui/dialog/find.cpp:73
 msgid "Stars"
 msgstr "Звезды"
 
-#: ../src/dialogs/find.cpp:590
-#: ../src/ui/dialog/find.cpp:75
+#: ../src/dialogs/find.cpp:591
+#: ../src/ui/dialog/find.cpp:74
 msgid "Search spirals"
 msgstr "Искать в спиралях"
 
-#: ../src/dialogs/find.cpp:590
-#: ../src/ui/dialog/find.cpp:75
+#: ../src/dialogs/find.cpp:591
+#: ../src/ui/dialog/find.cpp:74
 msgid "Spirals"
 msgstr "Спирали"
 
 #. TRANSLATORS: polyline is a set of connected straight line segments
 #. http://www.w3.org/TR/SVG11/shapes.html#PolylineElement
-#: ../src/dialogs/find.cpp:603
-#: ../src/ui/dialog/find.cpp:76
+#: ../src/dialogs/find.cpp:604
+#: ../src/ui/dialog/find.cpp:75
 msgid "Search paths, lines, polylines"
 msgstr "Искать в контурах, линиях, полилиниях"
 
-#: ../src/dialogs/find.cpp:603
-#: ../src/ui/dialog/find.cpp:76
+#: ../src/dialogs/find.cpp:604
+#: ../src/ui/dialog/find.cpp:75
 msgid "Paths"
 msgstr "Контуры"
 
-#: ../src/dialogs/find.cpp:608
-#: ../src/ui/dialog/find.cpp:77
+#: ../src/dialogs/find.cpp:609
+#: ../src/ui/dialog/find.cpp:76
 msgid "Search text objects"
 msgstr "Искать в текстовых объектах"
 
-#: ../src/dialogs/find.cpp:608
-#: ../src/ui/dialog/find.cpp:77
+#: ../src/dialogs/find.cpp:609
+#: ../src/ui/dialog/find.cpp:76
 msgid "Texts"
 msgstr "Тексты"
 
-#: ../src/dialogs/find.cpp:613
-#: ../src/ui/dialog/find.cpp:78
+#: ../src/dialogs/find.cpp:614
+#: ../src/ui/dialog/find.cpp:77
 msgid "Search groups"
 msgstr "Искать в группах"
 
-#: ../src/dialogs/find.cpp:613
-#: ../src/ui/dialog/find.cpp:78
+#: ../src/dialogs/find.cpp:614
+#: ../src/ui/dialog/find.cpp:77
 msgid "Groups"
 msgstr "Группы"
 
-#: ../src/dialogs/find.cpp:618
-#: ../src/ui/dialog/find.cpp:81
+#: ../src/dialogs/find.cpp:619
+#: ../src/ui/dialog/find.cpp:80
 msgid "Search clones"
 msgstr "Искать в клонах"
 
 #. TRANSLATORS: Translate the word "Clones" only. A noun indicating type of object to find
-#: ../src/dialogs/find.cpp:620
-#: ../src/ui/dialog/find.cpp:81
+#: ../src/dialogs/find.cpp:621
+#: ../src/ui/dialog/find.cpp:80
 msgid "find|Clones"
 msgstr "Клоны"
 
-#: ../src/dialogs/find.cpp:625
-#: ../src/ui/dialog/find.cpp:82
+#: ../src/dialogs/find.cpp:626
+#: ../src/ui/dialog/find.cpp:81
 msgid "Search images"
 msgstr "Искать в растрах"
 
-#: ../src/dialogs/find.cpp:625
-#: ../src/ui/dialog/find.cpp:82
+#: ../src/dialogs/find.cpp:626
+#: ../src/ui/dialog/find.cpp:81
 #: ../share/extensions/embedimage.inx.h:3
 #: ../share/extensions/extractimage.inx.h:2
 msgid "Images"
 msgstr "Изображения"
 
-#: ../src/dialogs/find.cpp:630
-#: ../src/ui/dialog/find.cpp:83
+#: ../src/dialogs/find.cpp:631
+#: ../src/ui/dialog/find.cpp:82
 msgid "Search offset objects"
 msgstr "Искать во втяжках"
 
-#: ../src/dialogs/find.cpp:630
-#: ../src/ui/dialog/find.cpp:83
+#: ../src/dialogs/find.cpp:631
+#: ../src/ui/dialog/find.cpp:82
 msgid "Offsets"
 msgstr "Втяжки"
 
-#: ../src/dialogs/find.cpp:694
-#: ../src/ui/dialog/find.cpp:61
+#: ../src/dialogs/find.cpp:696
+#: ../src/ui/dialog/find.cpp:60
 msgid "_Text: "
 msgstr "_Текст: "
 
-#: ../src/dialogs/find.cpp:694
-#: ../src/ui/dialog/find.cpp:61
+#: ../src/dialogs/find.cpp:696
+#: ../src/ui/dialog/find.cpp:60
 msgid "Find objects by their text content (exact or partial match)"
 msgstr "Искать объекты по их текстовому содержанию (полное или частичное соответствие)"
 
-#: ../src/dialogs/find.cpp:695
-#: ../src/ui/dialog/find.cpp:62
+#: ../src/dialogs/find.cpp:697
+#: ../src/ui/dialog/find.cpp:61
 msgid "_ID: "
 msgstr "_ID: "
 
-#: ../src/dialogs/find.cpp:695
-#: ../src/ui/dialog/find.cpp:62
+#: ../src/dialogs/find.cpp:697
+#: ../src/ui/dialog/find.cpp:61
 msgid "Find objects by the value of the id attribute (exact or partial match)"
 msgstr "Искать объекты по идентификатору (полное или частичное соответствие)"
 
-#: ../src/dialogs/find.cpp:696
-#: ../src/ui/dialog/find.cpp:63
+#: ../src/dialogs/find.cpp:698
+#: ../src/ui/dialog/find.cpp:62
 msgid "_Style: "
 msgstr "_Стиль: "
 
-#: ../src/dialogs/find.cpp:696
-#: ../src/ui/dialog/find.cpp:63
+#: ../src/dialogs/find.cpp:698
+#: ../src/ui/dialog/find.cpp:62
 msgid "Find objects by the value of the style attribute (exact or partial match)"
 msgstr "Искать объекты по значению атрибута style (полное или частичное соответствие)"
 
-#: ../src/dialogs/find.cpp:697
-#: ../src/ui/dialog/find.cpp:64
+#: ../src/dialogs/find.cpp:699
+#: ../src/ui/dialog/find.cpp:63
 msgid "_Attribute: "
 msgstr "_Атрибут: "
 
-#: ../src/dialogs/find.cpp:697
-#: ../src/ui/dialog/find.cpp:64
+#: ../src/dialogs/find.cpp:699
+#: ../src/ui/dialog/find.cpp:63
 msgid "Find objects by the name of an attribute (exact or partial match)"
 msgstr "Искать объекты по имени атрибута (полное или частичное соответствие)"
 
-#: ../src/dialogs/find.cpp:711
-#: ../src/ui/dialog/find.cpp:65
+#: ../src/dialogs/find.cpp:713
+#: ../src/ui/dialog/find.cpp:64
 msgid "Search in s_election"
 msgstr "Искать в _выделенном"
 
-#: ../src/dialogs/find.cpp:715
-#: ../src/ui/dialog/find.cpp:65
+#: ../src/dialogs/find.cpp:717
+#: ../src/ui/dialog/find.cpp:64
 msgid "Limit search to the current selection"
 msgstr "Ограничить поиск текущим выделением"
 
-#: ../src/dialogs/find.cpp:720
-#: ../src/ui/dialog/find.cpp:66
+#: ../src/dialogs/find.cpp:722
+#: ../src/ui/dialog/find.cpp:65
 msgid "Search in current _layer"
 msgstr "Искать в т_екущем слое"
 
-#: ../src/dialogs/find.cpp:724
-#: ../src/ui/dialog/find.cpp:66
+#: ../src/dialogs/find.cpp:726
+#: ../src/ui/dialog/find.cpp:65
 msgid "Limit search to the current layer"
 msgstr "Ограничить поиск текущим слоем"
 
-#: ../src/dialogs/find.cpp:729
-#: ../src/ui/dialog/find.cpp:67
+#: ../src/dialogs/find.cpp:731
+#: ../src/ui/dialog/find.cpp:66
 msgid "Include _hidden"
 msgstr "Включая с_крытые"
 
-#: ../src/dialogs/find.cpp:733
-#: ../src/ui/dialog/find.cpp:67
+#: ../src/dialogs/find.cpp:735
+#: ../src/ui/dialog/find.cpp:66
 msgid "Include hidden objects in search"
 msgstr "Искать среди скрытых объектов"
 
-#: ../src/dialogs/find.cpp:738
-#: ../src/ui/dialog/find.cpp:68
+#: ../src/dialogs/find.cpp:740
+#: ../src/ui/dialog/find.cpp:67
 msgid "Include l_ocked"
 msgstr "Включая _запертые"
 
-#: ../src/dialogs/find.cpp:742
-#: ../src/ui/dialog/find.cpp:68
+#: ../src/dialogs/find.cpp:744
+#: ../src/ui/dialog/find.cpp:67
 msgid "Include locked objects in search"
 msgstr "Искать среди запертых объектов"
 
-#: ../src/dialogs/find.cpp:753
-#: ../src/ui/dialog/find.cpp:85
+#: ../src/dialogs/find.cpp:755
+#: ../src/ui/dialog/find.cpp:84
 msgid "Clear values"
 msgstr "Очистить значения"
 
-#: ../src/dialogs/find.cpp:754
-#: ../src/ui/dialog/find.cpp:86
+#: ../src/dialogs/find.cpp:756
+#: ../src/ui/dialog/find.cpp:85
 msgid "_Find"
 msgstr "_Искать"
 
-#: ../src/dialogs/find.cpp:754
-#: ../src/ui/dialog/find.cpp:86
+#: ../src/dialogs/find.cpp:756
+#: ../src/ui/dialog/find.cpp:85
 msgid "Select objects matching all of the fields you filled in"
 msgstr "Выделить объекты, подходящие по всем указанным критериям поиска"
 
@@ -1425,14 +1423,14 @@ msgstr "Единица измерения:"
 #: ../src/dialogs/guidelinedialog.cpp:45
 #: ../src/dialogs/object-attributes.cpp:58
 #: ../src/dialogs/object-attributes.cpp:66
-#: ../src/widgets/toolbox.cpp:1438
+#: ../src/widgets/toolbox.cpp:1437
 msgid "X:"
 msgstr "X:"
 
 #: ../src/dialogs/guidelinedialog.cpp:46
 #: ../src/dialogs/object-attributes.cpp:59
 #: ../src/dialogs/object-attributes.cpp:67
-#: ../src/widgets/toolbox.cpp:1456
+#: ../src/widgets/toolbox.cpp:1455
 msgid "Y:"
 msgstr "Y:"
 
@@ -1466,125 +1464,125 @@ msgstr "ID направляющей: %s"
 msgid "Current: %s"
 msgstr "Сейчас: %s"
 
-#: ../src/dialogs/iconpreview.cpp:139
+#: ../src/dialogs/iconpreview.cpp:132
 #, c-format
 msgid "%d x %d"
 msgstr "%d x %d"
 
-#: ../src/dialogs/iconpreview.cpp:187
-#: ../src/ui/dialog/align-and-distribute.cpp:918
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1371
+#: ../src/dialogs/iconpreview.cpp:180
+#: ../src/ui/dialog/align-and-distribute.cpp:925
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1368
 #: ../src/widgets/desktop-widget.cpp:1552
 msgid "Selection"
 msgstr "Выделение"
 
-#: ../src/dialogs/iconpreview.cpp:189
+#: ../src/dialogs/iconpreview.cpp:182
 msgid "Selection only or whole document"
 msgstr "Либо только выделение, либо весь документ"
 
-#: ../src/dialogs/iconpreview.cpp:197
+#: ../src/dialogs/iconpreview.cpp:190
 msgid "Refresh the icons"
 msgstr "Обновить пиктограммы"
 
 #. Create the label for the object id
-#: ../src/dialogs/item-properties.cpp:120
-#: ../src/dialogs/item-properties.cpp:326
-#: ../src/dialogs/item-properties.cpp:419
-#: ../src/dialogs/item-properties.cpp:426
+#: ../src/dialogs/item-properties.cpp:121
+#: ../src/dialogs/item-properties.cpp:327
+#: ../src/dialogs/item-properties.cpp:420
+#: ../src/dialogs/item-properties.cpp:427
 msgid "_Id"
 msgstr "_ID"
 
-#: ../src/dialogs/item-properties.cpp:129
+#: ../src/dialogs/item-properties.cpp:130
 msgid "The id= attribute (only letters, digits, and the characters .-_: allowed)"
 msgstr "Атрибут id= (разрешены только латинские буквы, цифры и символы .-_:)"
 
 #. Button for setting the object's id, label, title and description.
-#: ../src/dialogs/item-properties.cpp:143
-#: ../src/verbs.cpp:2459
-#: ../src/verbs.cpp:2465
+#: ../src/dialogs/item-properties.cpp:144
+#: ../src/verbs.cpp:2462
+#: ../src/verbs.cpp:2468
 msgid "_Set"
 msgstr "_Установить"
 
 #. Create the label for the object label
-#: ../src/dialogs/item-properties.cpp:152
+#: ../src/dialogs/item-properties.cpp:153
 msgid "_Label"
 msgstr "Метка"
 
-#: ../src/dialogs/item-properties.cpp:161
+#: ../src/dialogs/item-properties.cpp:162
 msgid "A freeform label for the object"
 msgstr "Произвольная метка объекта"
 
 #. Create the label for the object title
-#: ../src/dialogs/item-properties.cpp:173
+#: ../src/dialogs/item-properties.cpp:174
 msgid "_Title"
 msgstr "_Название"
 
 #. Create the frame for the object description
-#: ../src/dialogs/item-properties.cpp:191
+#: ../src/dialogs/item-properties.cpp:192
 msgid "_Description"
 msgstr "О_писание"
 
 #. Hide
-#: ../src/dialogs/item-properties.cpp:222
+#: ../src/dialogs/item-properties.cpp:223
 msgid "_Hide"
 msgstr "Скрыть"
 
-#: ../src/dialogs/item-properties.cpp:223
+#: ../src/dialogs/item-properties.cpp:224
 msgid "Check to make the object invisible"
 msgstr "Сделать этот объект невидимым"
 
 #. Lock
 #. TRANSLATORS: "Lock" is a verb here
-#: ../src/dialogs/item-properties.cpp:232
+#: ../src/dialogs/item-properties.cpp:233
 msgid "L_ock"
 msgstr "Запереть"
 
-#: ../src/dialogs/item-properties.cpp:233
+#: ../src/dialogs/item-properties.cpp:234
 msgid "Check to make the object insensitive (not selectable by mouse)"
 msgstr "Сделать этот объект невыделяемым"
 
-#: ../src/dialogs/item-properties.cpp:309
-#: ../src/dialogs/item-properties.cpp:316
+#: ../src/dialogs/item-properties.cpp:310
+#: ../src/dialogs/item-properties.cpp:317
 msgid "Ref"
 msgstr "Ref"
 
-#: ../src/dialogs/item-properties.cpp:378
+#: ../src/dialogs/item-properties.cpp:379
 msgid "Lock object"
 msgstr "Запирание объекта"
 
-#: ../src/dialogs/item-properties.cpp:378
+#: ../src/dialogs/item-properties.cpp:379
 msgid "Unlock object"
 msgstr "Отпирание объекта"
 
-#: ../src/dialogs/item-properties.cpp:397
+#: ../src/dialogs/item-properties.cpp:398
 msgid "Hide object"
 msgstr "Сокрытие объекта"
 
-#: ../src/dialogs/item-properties.cpp:397
+#: ../src/dialogs/item-properties.cpp:398
 msgid "Unhide object"
 msgstr "Раскрытие объекта"
 
-#: ../src/dialogs/item-properties.cpp:421
+#: ../src/dialogs/item-properties.cpp:422
 msgid "Id invalid! "
 msgstr "ID неверен"
 
-#: ../src/dialogs/item-properties.cpp:423
+#: ../src/dialogs/item-properties.cpp:424
 msgid "Id exists! "
 msgstr "Такой ID уже есть"
 
-#: ../src/dialogs/item-properties.cpp:430
+#: ../src/dialogs/item-properties.cpp:431
 msgid "Set object ID"
 msgstr "Установка ID объекта"
 
-#: ../src/dialogs/item-properties.cpp:445
+#: ../src/dialogs/item-properties.cpp:446
 msgid "Set object label"
 msgstr "Установка метки объекта"
 
-#: ../src/dialogs/item-properties.cpp:453
+#: ../src/dialogs/item-properties.cpp:454
 msgid "Set object title"
 msgstr "Установка заголовка объекта"
 
-#: ../src/dialogs/item-properties.cpp:463
+#: ../src/dialogs/item-properties.cpp:464
 msgid "Set object description"
 msgstr "Установка описания объекта"
 
@@ -1641,52 +1639,52 @@ msgstr "_Добавить"
 msgid "New layer created."
 msgstr "Создание нового слоя."
 
-#: ../src/dialogs/layers-panel.cpp:483
+#: ../src/dialogs/layers-panel.cpp:494
 #: ../src/widgets/layer-selector.cpp:595
 msgid "Unhide layer"
 msgstr "Раскрытие объекта"
 
-#: ../src/dialogs/layers-panel.cpp:483
+#: ../src/dialogs/layers-panel.cpp:494
 #: ../src/widgets/layer-selector.cpp:595
 msgid "Hide layer"
 msgstr "Сокрытие слоя"
 
-#: ../src/dialogs/layers-panel.cpp:494
+#: ../src/dialogs/layers-panel.cpp:505
 #: ../src/widgets/layer-selector.cpp:587
 msgid "Lock layer"
 msgstr "Запирание слоя"
 
-#: ../src/dialogs/layers-panel.cpp:494
+#: ../src/dialogs/layers-panel.cpp:505
 #: ../src/widgets/layer-selector.cpp:587
 msgid "Unlock layer"
 msgstr "Отпирание слоя"
 
-#: ../src/dialogs/layers-panel.cpp:634
+#: ../src/dialogs/layers-panel.cpp:646
 msgid "Layers"
 msgstr "Слои"
 
-#: ../src/dialogs/layers-panel.cpp:643
+#: ../src/dialogs/layers-panel.cpp:655
 msgid "New"
 msgstr "Новый"
 
-#: ../src/dialogs/layers-panel.cpp:648
+#: ../src/dialogs/layers-panel.cpp:660
 #: ../share/extensions/restack.inx.h:16
 msgid "Top"
 msgstr "Верх"
 
-#: ../src/dialogs/layers-panel.cpp:654
+#: ../src/dialogs/layers-panel.cpp:666
 msgid "Up"
 msgstr "Выше"
 
-#: ../src/dialogs/layers-panel.cpp:660
+#: ../src/dialogs/layers-panel.cpp:672
 msgid "Dn"
 msgstr "Ниже"
 
-#: ../src/dialogs/layers-panel.cpp:666
+#: ../src/dialogs/layers-panel.cpp:678
 msgid "Bot"
 msgstr "Низ"
 
-#: ../src/dialogs/layers-panel.cpp:676
+#: ../src/dialogs/layers-panel.cpp:688
 msgid "X"
 msgstr "X"
 
@@ -1720,7 +1718,7 @@ msgid "Title:"
 msgstr "Название:"
 
 #: ../src/dialogs/object-attributes.cpp:50
-#: ../share/extensions/polyhedron_3d.inx.h:38
+#: ../share/extensions/polyhedron_3d.inx.h:37
 msgid "Show:"
 msgstr "Show:"
 
@@ -1801,8 +1799,8 @@ msgstr "Физическое или цифровое представление
 #. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch");
 #: ../src/dialogs/rdf.cpp:248
 #: ../src/extension/internal/bitmap/addNoise.cpp:46
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2198
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2277
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2199
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2278
 msgid "Type"
 msgstr "Тип"
 
@@ -1843,7 +1841,7 @@ msgid "Unique URI to reference this document."
 msgstr "Уникальный URI для ссылки на этот документ."
 
 #: ../src/dialogs/rdf.cpp:265
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1395
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1392
 msgid "Source"
 msgstr "Источник"
 
@@ -1925,64 +1923,68 @@ msgstr "XML-фрагмент RDF-раздела \"Лицензия\"."
 #. TRANSLATORS: "Set" is a verb here
 #: ../src/dialogs/sp-attribute-widget.cpp:166
 #: ../src/dialogs/sp-attribute-widget.cpp:773
-#: ../src/dialogs/xml-tree.cpp:533
+#: ../src/dialogs/xml-tree.cpp:534
 msgid "Set attribute"
 msgstr "Установить атрибут"
 
-#: ../src/dialogs/stroke-style.cpp:292
-#: ../src/dialogs/stroke-style.cpp:351
+#: ../src/dialogs/stroke-style.cpp:293
+#: ../src/dialogs/stroke-style.cpp:352
 msgid "Set stroke color"
 msgstr "Установка цвета обводки"
 
-#: ../src/dialogs/stroke-style.cpp:342
+#: ../src/dialogs/stroke-style.cpp:343
 #: ../src/ui/widget/selected-style.cpp:255
 #: ../src/ui/widget/selected-style.cpp:484
 msgid "Remove stroke"
-msgstr "Удаление Ð¾Ð±Ð²Ð¾Ð´ÐºÐ¸"
+msgstr "УдалиÑ\82Ñ\8c Ð¾Ð±Ð²Ð¾Ð´ÐºÑ\83"
 
-#: ../src/dialogs/stroke-style.cpp:403
+#: ../src/dialogs/stroke-style.cpp:404
 msgid "Set gradient on stroke"
 msgstr "Заливка обводки градиентом"
 
-#: ../src/dialogs/stroke-style.cpp:447
+#: ../src/dialogs/stroke-style.cpp:448
 msgid "Set pattern on stroke"
 msgstr "Заливка обводки текстурой"
 
-#: ../src/dialogs/stroke-style.cpp:468
+#: ../src/dialogs/stroke-style.cpp:469
 #: ../src/ui/widget/selected-style.cpp:193
 #: ../src/ui/widget/selected-style.cpp:251
 #: ../src/ui/widget/selected-style.cpp:509
-#: ../src/ui/widget/style-swatch.cpp:335
+#: ../src/ui/widget/style-swatch.cpp:303
 msgid "Unset stroke"
-msgstr "Снятие обводки"
+msgstr "Снять обводку"
 
-#: ../src/dialogs/stroke-style.cpp:771
+#: ../src/dialogs/stroke-style.cpp:772
 #: ../src/filter-enums.cpp:95
-#: ../src/flood-context.cpp:288
-#: ../src/interface.cpp:826
-#: ../src/live_effects/lpe-ruler.cpp:33
+#: ../src/flood-context.cpp:292
+#: ../src/live_effects/lpe-ruler.cpp:34
 #: ../src/ui/dialog/filter-effects-dialog.cpp:509
-#: ../src/ui/dialog/inkscape-preferences.cpp:219
-#: ../src/ui/dialog/inkscape-preferences.cpp:384
-#: ../src/ui/dialog/inkscape-preferences.cpp:511
-#: ../src/ui/dialog/inkscape-preferences.cpp:1022
-#: ../src/verbs.cpp:2208
-#: ../src/widgets/toolbox.cpp:3410
+#: ../src/ui/dialog/inkscape-preferences.cpp:220
+#: ../src/ui/dialog/inkscape-preferences.cpp:382
+#: ../src/ui/dialog/inkscape-preferences.cpp:509
+#: ../src/ui/dialog/inkscape-preferences.cpp:1054
+#: ../src/verbs.cpp:2211
+#: ../src/widgets/toolbox.cpp:3406
 #: ../share/extensions/grid_polar.inx.h:16
 msgid "None"
 msgstr "Нет"
 
-#: ../src/dialogs/stroke-style.cpp:826
+#: ../src/dialogs/stroke-style.cpp:827
 #: ../src/widgets/gradient-vector.cpp:264
 #: ../src/widgets/paint-selector.cpp:885
 msgid "No document selected"
 msgstr "Документ не выбран"
 
-#: ../src/dialogs/stroke-style.cpp:910
+#: ../src/dialogs/stroke-style.cpp:911
 msgid "Set markers"
 msgstr "Установка маркеров"
 
-#: ../src/dialogs/stroke-style.cpp:1097
+#. Stroke width
+#: ../src/dialogs/stroke-style.cpp:1084
+msgid "StrokeWidth|Width:"
+msgstr "Толщина:"
+
+#: ../src/dialogs/stroke-style.cpp:1098
 #: ../share/extensions/edge3d.inx.h:9
 msgid "Stroke width"
 msgstr "Толщина обводки"
@@ -1990,28 +1992,28 @@ 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/dialogs/stroke-style.cpp:1121
+#: ../src/dialogs/stroke-style.cpp:1122
 msgid "Join:"
 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/dialogs/stroke-style.cpp:1133
+#: ../src/dialogs/stroke-style.cpp:1134
 msgid "Miter join"
 msgstr "Острое"
 
 #. TRANSLATORS: Round join: joining lines with a rounded corner.
 #. For an example, draw a triangle with a large stroke width and modify the
 #. "Join" option (in the Fill and Stroke dialog).
-#: ../src/dialogs/stroke-style.cpp:1141
+#: ../src/dialogs/stroke-style.cpp:1142
 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/dialogs/stroke-style.cpp:1149
+#: ../src/dialogs/stroke-style.cpp:1150
 msgid "Bevel join"
 msgstr "Фаска"
 
@@ -2022,59 +2024,59 @@ msgstr "Фаска"
 #. spike that extends well beyond the connection point. The purpose of the
 #. miter limit is to cut off such spikes (i.e. convert them into bevels)
 #. when they become too long.
-#: ../src/dialogs/stroke-style.cpp:1160
+#: ../src/dialogs/stroke-style.cpp:1161
 msgid "Miter limit:"
 msgstr "Предел острия:"
 
-#: ../src/dialogs/stroke-style.cpp:1168
+#: ../src/dialogs/stroke-style.cpp:1169
 msgid "Maximum length of the miter (in units of stroke width)"
 msgstr "Максимальная длина острия (в единицах толщины обводки)"
 
 #. Cap type
 #. TRANSLATORS: cap type specifies the shape for the ends of lines
-#: ../src/dialogs/stroke-style.cpp:1180
+#: ../src/dialogs/stroke-style.cpp:1181
 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/dialogs/stroke-style.cpp:1191
+#: ../src/dialogs/stroke-style.cpp:1192
 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/dialogs/stroke-style.cpp:1198
+#: ../src/dialogs/stroke-style.cpp:1199
 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/dialogs/stroke-style.cpp:1205
+#: ../src/dialogs/stroke-style.cpp:1206
 msgid "Square cap"
 msgstr "Квадратные"
 
 #. Dash
-#: ../src/dialogs/stroke-style.cpp:1211
+#: ../src/dialogs/stroke-style.cpp:1212
 msgid "Dashes:"
 msgstr "Пунктир:"
 
 #. 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/dialogs/stroke-style.cpp:1228
+#: ../src/dialogs/stroke-style.cpp:1229
 msgid "Start Markers:"
 msgstr "Маркер начала:"
 
-#: ../src/dialogs/stroke-style.cpp:1238
+#: ../src/dialogs/stroke-style.cpp:1239
 msgid "Mid Markers:"
 msgstr "Маркер середины:"
 
-#: ../src/dialogs/stroke-style.cpp:1248
+#: ../src/dialogs/stroke-style.cpp:1249
 msgid "End Markers:"
 msgstr "Маркер конца:"
 
-#: ../src/dialogs/stroke-style.cpp:1572
-#: ../src/dialogs/stroke-style.cpp:1668
+#: ../src/dialogs/stroke-style.cpp:1573
+#: ../src/dialogs/stroke-style.cpp:1669
 msgid "Set stroke style"
 msgstr "Установка стиля обводки"
 
@@ -2110,50 +2112,50 @@ msgstr "Заливка из палитры образцов"
 msgid "Palettes directory (%s) is unavailable."
 msgstr "Каталог с палитрами (%s) недоступен."
 
-#: ../src/dialogs/text-edit.cpp:200
+#: ../src/dialogs/text-edit.cpp:201
 msgid "Font"
 msgstr "Гарнитура"
 
-#: ../src/dialogs/text-edit.cpp:223
+#: ../src/dialogs/text-edit.cpp:224
 msgid "Layout"
 msgstr "Размещение"
 
-#: ../src/dialogs/text-edit.cpp:237
+#: ../src/dialogs/text-edit.cpp:238
 msgid "Align lines left"
 msgstr "Выровнять строки по левому краю"
 
 #. TRANSLATORS: `Center' here is a verb.
-#: ../src/dialogs/text-edit.cpp:252
+#: ../src/dialogs/text-edit.cpp:253
 msgid "Center lines"
 msgstr "Центрировать строки"
 
-#: ../src/dialogs/text-edit.cpp:266
+#: ../src/dialogs/text-edit.cpp:267
 msgid "Align lines right"
 msgstr "Выровнять строки по правому краю"
 
-#: ../src/dialogs/text-edit.cpp:280
+#: ../src/dialogs/text-edit.cpp:281
 msgid "Justify lines"
 msgstr "Выключить строки по ширине"
 
-#: ../src/dialogs/text-edit.cpp:302
-#: ../src/widgets/toolbox.cpp:6301
+#: ../src/dialogs/text-edit.cpp:303
+#: ../src/widgets/toolbox.cpp:6290
 msgid "Horizontal text"
 msgstr "Горизонтальный текст"
 
-#: ../src/dialogs/text-edit.cpp:316
-#: ../src/widgets/toolbox.cpp:6313
+#: ../src/dialogs/text-edit.cpp:317
+#: ../src/widgets/toolbox.cpp:6302
 msgid "Vertical text"
 msgstr "Вертикальный текст"
 
-#: ../src/dialogs/text-edit.cpp:331
+#: ../src/dialogs/text-edit.cpp:332
 msgid "Line spacing:"
 msgstr "Интерлиньяж:"
 
 #. Text
-#: ../src/dialogs/text-edit.cpp:377
+#: ../src/dialogs/text-edit.cpp:378
 #: ../src/selection-describer.cpp:67
-#: ../src/ui/dialog/inkscape-preferences.cpp:479
-#: ../src/verbs.cpp:2495
+#: ../src/ui/dialog/inkscape-preferences.cpp:477
+#: ../src/verbs.cpp:2498
 #: ../share/extensions/lorem_ipsum.inx.h:5
 #: ../share/extensions/render_alphabetsoup.inx.h:4
 #: ../share/extensions/text_braille.inx.h:2
@@ -2167,83 +2169,83 @@ msgstr "Интерлиньяж:"
 msgid "Text"
 msgstr "Текст"
 
-#: ../src/dialogs/text-edit.cpp:424
+#: ../src/dialogs/text-edit.cpp:425
 msgid "Set as default"
 msgstr "Сохранить как умолчание"
 
-#: ../src/dialogs/text-edit.cpp:665
-#: ../src/text-context.cpp:1500
+#: ../src/dialogs/text-edit.cpp:668
+#: ../src/text-context.cpp:1510
 msgid "Set text style"
 msgstr "Смена стиля текста"
 
-#: ../src/dialogs/tiledialog.cpp:352
+#: ../src/dialogs/tiledialog.cpp:349
 msgid "Arrange in a grid"
 msgstr "Расстановка по сетке"
 
-#: ../src/dialogs/tiledialog.cpp:653
+#: ../src/dialogs/tiledialog.cpp:657
 msgid "Rows:"
 msgstr "Строк:"
 
-#: ../src/dialogs/tiledialog.cpp:661
+#: ../src/dialogs/tiledialog.cpp:665
 msgid "Number of rows"
 msgstr "Количество строк"
 
-#: ../src/dialogs/tiledialog.cpp:665
+#: ../src/dialogs/tiledialog.cpp:669
 msgid "Equal height"
 msgstr "Равная высота"
 
-#: ../src/dialogs/tiledialog.cpp:675
+#: ../src/dialogs/tiledialog.cpp:679
 msgid "If not set, each row has the height of the tallest object in it"
 msgstr "Без этой опции каждая строка принимает высоту самого высокого в ней объекта"
 
 #. #### Radio buttons to control vertical alignment ####
 #. #### Radio buttons to control horizontal alignment ####
-#: ../src/dialogs/tiledialog.cpp:681
-#: ../src/dialogs/tiledialog.cpp:751
+#: ../src/dialogs/tiledialog.cpp:685
+#: ../src/dialogs/tiledialog.cpp:755
 msgid "Align:"
 msgstr "Выровнять"
 
 #. #### Number of columns ####
-#: ../src/dialogs/tiledialog.cpp:723
+#: ../src/dialogs/tiledialog.cpp:727
 msgid "Columns:"
 msgstr "Столбцов:"
 
-#: ../src/dialogs/tiledialog.cpp:731
+#: ../src/dialogs/tiledialog.cpp:735
 msgid "Number of columns"
 msgstr "Сколько столбцов в таблице"
 
-#: ../src/dialogs/tiledialog.cpp:735
+#: ../src/dialogs/tiledialog.cpp:739
 msgid "Equal width"
 msgstr "Равная ширина"
 
-#: ../src/dialogs/tiledialog.cpp:744
+#: ../src/dialogs/tiledialog.cpp:748
 msgid "If not set, each column has the width of the widest object in it"
 msgstr "Если выключено, каждый столбец принимает ширину самого широкого в нем объекта"
 
 #. #### Radio buttons to control spacing manually or to fit selection bbox ####
-#: ../src/dialogs/tiledialog.cpp:790
+#: ../src/dialogs/tiledialog.cpp:794
 msgid "Fit into selection box"
 msgstr "Сохранить ширину/высоту выделения"
 
-#: ../src/dialogs/tiledialog.cpp:796
+#: ../src/dialogs/tiledialog.cpp:800
 msgid "Set spacing:"
 msgstr "Установить интервал:"
 
-#: ../src/dialogs/tiledialog.cpp:816
+#: ../src/dialogs/tiledialog.cpp:820
 msgid "Vertical spacing between rows (px units)"
 msgstr "Вертикальный интервал между строк (в пикселах)"
 
-#: ../src/dialogs/tiledialog.cpp:841
+#: ../src/dialogs/tiledialog.cpp:845
 msgid "Horizontal spacing between columns (px units)"
 msgstr "Горизонтальный интервал между столбцами (в пикселах)"
 
 #. ## The OK button
-#: ../src/dialogs/tiledialog.cpp:864
+#: ../src/dialogs/tiledialog.cpp:868
 #: ../share/extensions/restack.inx.h:3
 msgid "Arrange"
 msgstr "Расставить"
 
-#: ../src/dialogs/tiledialog.cpp:865
+#: ../src/dialogs/tiledialog.cpp:869
 msgid "Arrange selected objects"
 msgstr "Расставить выделенные объекты"
 
@@ -2260,356 +2262,356 @@ msgstr "<b>Щелкните мышкой</b> по атрибуту для его
 msgid "Attribute <b>%s</b> selected. Press <b>Ctrl+Enter</b> when done editing to commit changes."
 msgstr "Выбран атрибут <b>%s</b>. Нажмите <b>Ctrl+Enter</b>, когда закончите правку."
 
-#: ../src/dialogs/xml-tree.cpp:284
+#: ../src/dialogs/xml-tree.cpp:285
 msgid "Drag to reorder nodes"
 msgstr "Используйте мышь для перетаскивания ветвей"
 
-#: ../src/dialogs/xml-tree.cpp:304
+#: ../src/dialogs/xml-tree.cpp:305
 msgid "New element node"
 msgstr "Создать ветвь элемента"
 
-#: ../src/dialogs/xml-tree.cpp:326
+#: ../src/dialogs/xml-tree.cpp:327
 msgid "New text node"
 msgstr "Создать ветвь с текстом"
 
-#: ../src/dialogs/xml-tree.cpp:347
-#: ../src/dialogs/xml-tree.cpp:1424
-#: ../src/nodepath.cpp:2157
+#: ../src/dialogs/xml-tree.cpp:348
+#: ../src/dialogs/xml-tree.cpp:1427
+#: ../src/nodepath.cpp:2168
 msgid "Duplicate node"
 msgstr "Дублирование ветви"
 
-#: ../src/dialogs/xml-tree.cpp:368
-#: ../src/dialogs/xml-tree.cpp:1441
-#: ../src/nodepath.cpp:3404
-#: ../src/widgets/toolbox.cpp:1276
+#: ../src/dialogs/xml-tree.cpp:369
+#: ../src/dialogs/xml-tree.cpp:1444
+#: ../src/nodepath.cpp:3415
+#: ../src/widgets/toolbox.cpp:1275
 msgid "Delete node"
 msgstr "Удаление ветви"
 
-#: ../src/dialogs/xml-tree.cpp:384
-#: ../src/dialogs/xml-tree.cpp:1586
+#: ../src/dialogs/xml-tree.cpp:385
+#: ../src/dialogs/xml-tree.cpp:1589
 msgid "Unindent node"
 msgstr "Переместить к корню"
 
-#: ../src/dialogs/xml-tree.cpp:399
-#: ../src/dialogs/xml-tree.cpp:1565
+#: ../src/dialogs/xml-tree.cpp:400
+#: ../src/dialogs/xml-tree.cpp:1568
 msgid "Indent node"
 msgstr "Переместить от корня"
 
-#: ../src/dialogs/xml-tree.cpp:411
-#: ../src/dialogs/xml-tree.cpp:1518
+#: ../src/dialogs/xml-tree.cpp:412
+#: ../src/dialogs/xml-tree.cpp:1521
 msgid "Raise node"
 msgstr "Поднять ветвь"
 
-#: ../src/dialogs/xml-tree.cpp:423
-#: ../src/dialogs/xml-tree.cpp:1535
+#: ../src/dialogs/xml-tree.cpp:424
+#: ../src/dialogs/xml-tree.cpp:1538
 msgid "Lower node"
 msgstr "Опустить ветвь"
 
-#: ../src/dialogs/xml-tree.cpp:468
-#: ../src/dialogs/xml-tree.cpp:1459
+#: ../src/dialogs/xml-tree.cpp:469
+#: ../src/dialogs/xml-tree.cpp:1462
 msgid "Delete attribute"
 msgstr "Удалить атрибут"
 
 #. TRANSLATORS: "Attribute" is a noun here
-#: ../src/dialogs/xml-tree.cpp:513
+#: ../src/dialogs/xml-tree.cpp:514
 msgid "Attribute name"
 msgstr "Имя атрибута"
 
 #. TRANSLATORS: "Set" is a verb here
-#: ../src/dialogs/xml-tree.cpp:535
+#: ../src/dialogs/xml-tree.cpp:536
 msgid "Set"
 msgstr "Установить"
 
 #. TRANSLATORS: "Attribute" is a noun here
-#: ../src/dialogs/xml-tree.cpp:558
+#: ../src/dialogs/xml-tree.cpp:559
 msgid "Attribute value"
 msgstr "Значение атрибута"
 
-#: ../src/dialogs/xml-tree.cpp:891
+#: ../src/dialogs/xml-tree.cpp:892
 msgid "Drag XML subtree"
 msgstr "Перетаскивание поддерева XML"
 
-#: ../src/dialogs/xml-tree.cpp:1327
+#: ../src/dialogs/xml-tree.cpp:1329
 msgid "New element node..."
 msgstr "Создать ветвь элемента..."
 
-#: ../src/dialogs/xml-tree.cpp:1349
-#: ../src/ui/dialog/whiteboard-connect.cpp:116
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:102
+#: ../src/dialogs/xml-tree.cpp:1351
+#: ../src/ui/dialog/whiteboard-connect.cpp:119
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:104
 msgid "Cancel"
 msgstr "Отменить"
 
-#: ../src/dialogs/xml-tree.cpp:1357
+#: ../src/dialogs/xml-tree.cpp:1359
 msgid "Create"
 msgstr "Создать"
 
-#: ../src/dialogs/xml-tree.cpp:1390
+#: ../src/dialogs/xml-tree.cpp:1393
 msgid "Create new element node"
 msgstr "Создание ветви элемента"
 
-#: ../src/dialogs/xml-tree.cpp:1406
+#: ../src/dialogs/xml-tree.cpp:1409
 msgid "Create new text node"
 msgstr "Создание текстовой ветви"
 
-#: ../src/dialogs/xml-tree.cpp:1488
+#: ../src/dialogs/xml-tree.cpp:1491
 msgid "Change attribute"
 msgstr "Смена атрибута"
 
-#: ../src/display/canvas-axonomgrid.cpp:392
-#: ../src/display/canvas-grid.cpp:657
+#: ../src/display/canvas-axonomgrid.cpp:391
+#: ../src/display/canvas-grid.cpp:656
 msgid "Grid _units:"
 msgstr "Е_диницы сетки:"
 
-#: ../src/display/canvas-axonomgrid.cpp:394
-#: ../src/display/canvas-grid.cpp:659
+#: ../src/display/canvas-axonomgrid.cpp:393
+#: ../src/display/canvas-grid.cpp:658
 msgid "_Origin X:"
 msgstr "_Точка отсчёта по X:"
 
-#: ../src/display/canvas-axonomgrid.cpp:394
-#: ../src/display/canvas-grid.cpp:659
-#: ../src/ui/dialog/inkscape-preferences.cpp:888
-#: ../src/ui/dialog/inkscape-preferences.cpp:909
+#: ../src/display/canvas-axonomgrid.cpp:393
+#: ../src/display/canvas-grid.cpp:658
+#: ../src/ui/dialog/inkscape-preferences.cpp:922
+#: ../src/ui/dialog/inkscape-preferences.cpp:943
 msgid "X coordinate of grid origin"
 msgstr "Координата начала отсчёта по оси X"
 
-#: ../src/display/canvas-axonomgrid.cpp:396
-#: ../src/display/canvas-grid.cpp:661
+#: ../src/display/canvas-axonomgrid.cpp:395
+#: ../src/display/canvas-grid.cpp:660
 msgid "O_rigin Y:"
 msgstr "Т_очка отсчёта по Y:"
 
-#: ../src/display/canvas-axonomgrid.cpp:396
-#: ../src/display/canvas-grid.cpp:661
-#: ../src/ui/dialog/inkscape-preferences.cpp:889
-#: ../src/ui/dialog/inkscape-preferences.cpp:910
+#: ../src/display/canvas-axonomgrid.cpp:395
+#: ../src/display/canvas-grid.cpp:660
+#: ../src/ui/dialog/inkscape-preferences.cpp:923
+#: ../src/ui/dialog/inkscape-preferences.cpp:944
 msgid "Y coordinate of grid origin"
 msgstr "Координата начала отсчёта по оси Y"
 
-#: ../src/display/canvas-axonomgrid.cpp:398
-#: ../src/display/canvas-grid.cpp:665
+#: ../src/display/canvas-axonomgrid.cpp:397
+#: ../src/display/canvas-grid.cpp:664
 msgid "Spacing _Y:"
 msgstr "И_нтервал по Y:"
 
-#: ../src/display/canvas-axonomgrid.cpp:398
-#: ../src/ui/dialog/inkscape-preferences.cpp:912
+#: ../src/display/canvas-axonomgrid.cpp:397
+#: ../src/ui/dialog/inkscape-preferences.cpp:946
 msgid "Base length of z-axis"
 msgstr "Основная длина оси Z"
 
-#: ../src/display/canvas-axonomgrid.cpp:400
-#: ../src/ui/dialog/inkscape-preferences.cpp:915
-#: ../src/widgets/toolbox.cpp:2945
+#: ../src/display/canvas-axonomgrid.cpp:399
+#: ../src/ui/dialog/inkscape-preferences.cpp:949
+#: ../src/widgets/toolbox.cpp:2941
 msgid "Angle X:"
 msgstr "Угол X:"
 
-#: ../src/display/canvas-axonomgrid.cpp:400
-#: ../src/ui/dialog/inkscape-preferences.cpp:915
+#: ../src/display/canvas-axonomgrid.cpp:399
+#: ../src/ui/dialog/inkscape-preferences.cpp:949
 msgid "Angle of x-axis"
 msgstr "Угол оси X"
 
-#: ../src/display/canvas-axonomgrid.cpp:402
-#: ../src/ui/dialog/inkscape-preferences.cpp:916
-#: ../src/widgets/toolbox.cpp:3024
+#: ../src/display/canvas-axonomgrid.cpp:401
+#: ../src/ui/dialog/inkscape-preferences.cpp:950
+#: ../src/widgets/toolbox.cpp:3020
 msgid "Angle Z:"
 msgstr "Угол Z:"
 
-#: ../src/display/canvas-axonomgrid.cpp:402
-#: ../src/ui/dialog/inkscape-preferences.cpp:916
+#: ../src/display/canvas-axonomgrid.cpp:401
+#: ../src/ui/dialog/inkscape-preferences.cpp:950
 msgid "Angle of z-axis"
 msgstr "Угол оси Z"
 
-#: ../src/display/canvas-axonomgrid.cpp:406
-#: ../src/display/canvas-grid.cpp:669
+#: ../src/display/canvas-axonomgrid.cpp:405
+#: ../src/display/canvas-grid.cpp:668
 msgid "Grid line _color:"
 msgstr "_Цвет обычных линий сетки:"
 
-#: ../src/display/canvas-axonomgrid.cpp:406
-#: ../src/display/canvas-grid.cpp:669
+#: ../src/display/canvas-axonomgrid.cpp:405
+#: ../src/display/canvas-grid.cpp:668
 msgid "Grid line color"
 msgstr "Цвет обычных линий сетки"
 
-#: ../src/display/canvas-axonomgrid.cpp:406
-#: ../src/display/canvas-grid.cpp:669
+#: ../src/display/canvas-axonomgrid.cpp:405
+#: ../src/display/canvas-grid.cpp:668
 msgid "Color of grid lines"
 msgstr "Цвет обычных линий сетки"
 
-#: ../src/display/canvas-axonomgrid.cpp:411
-#: ../src/display/canvas-grid.cpp:674
+#: ../src/display/canvas-axonomgrid.cpp:410
+#: ../src/display/canvas-grid.cpp:673
 msgid "Ma_jor grid line color:"
 msgstr "Цвет о_сновных линий сетки:"
 
-#: ../src/display/canvas-axonomgrid.cpp:411
-#: ../src/display/canvas-grid.cpp:674
+#: ../src/display/canvas-axonomgrid.cpp:410
+#: ../src/display/canvas-grid.cpp:673
 msgid "Major grid line color"
 msgstr "Цвет основных линий сетки"
 
-#: ../src/display/canvas-axonomgrid.cpp:412
-#: ../src/display/canvas-grid.cpp:675
+#: ../src/display/canvas-axonomgrid.cpp:411
+#: ../src/display/canvas-grid.cpp:674
 msgid "Color of the major (highlighted) grid lines"
 msgstr "Цвет основных линий сетки"
 
-#: ../src/display/canvas-axonomgrid.cpp:416
-#: ../src/display/canvas-grid.cpp:679
+#: ../src/display/canvas-axonomgrid.cpp:415
+#: ../src/display/canvas-grid.cpp:678
 msgid "_Major grid line every:"
 msgstr "Осно_вная линия сетки каждые:"
 
-#: ../src/display/canvas-axonomgrid.cpp:416
-#: ../src/display/canvas-grid.cpp:679
+#: ../src/display/canvas-axonomgrid.cpp:415
+#: ../src/display/canvas-grid.cpp:678
 msgid "lines"
 msgstr "линий"
 
-#: ../src/display/canvas-grid.cpp:40
+#: ../src/display/canvas-grid.cpp:39
 msgid "Rectangular grid"
 msgstr "Прямоугольная сетка"
 
-#: ../src/display/canvas-grid.cpp:41
+#: ../src/display/canvas-grid.cpp:40
 msgid "Axonometric grid"
 msgstr "Аксонометрическая сетка"
 
-#: ../src/display/canvas-grid.cpp:259
+#: ../src/display/canvas-grid.cpp:258
 msgid "Create new grid"
 msgstr "Создание новой сетки"
 
-#: ../src/display/canvas-grid.cpp:325
+#: ../src/display/canvas-grid.cpp:324
 msgid "_Enabled"
 msgstr "_Включена"
 
-#: ../src/display/canvas-grid.cpp:326
+#: ../src/display/canvas-grid.cpp:325
 msgid "Determines whether to snap to this grid or not. Can be 'on' for invisible grids."
 msgstr "Определяет, включено ли прилипание к этой сетке. Прилипание может работать и с невидимыми сетками."
 
-#: ../src/display/canvas-grid.cpp:329
+#: ../src/display/canvas-grid.cpp:328
 msgid "_Visible"
 msgstr "_Видима"
 
-#: ../src/display/canvas-grid.cpp:330
+#: ../src/display/canvas-grid.cpp:329
 msgid "Determines whether the grid is displayed or not. Objects are still snapped to invisible grids."
 msgstr "Определяет, отображается ли сетка. Объекты по-прежнему остаются прилепленными к невидимым сеткам."
 
-#: ../src/display/canvas-grid.cpp:663
+#: ../src/display/canvas-grid.cpp:662
 msgid "Spacing _X:"
 msgstr "_Интервал по X:"
 
-#: ../src/display/canvas-grid.cpp:663
-#: ../src/ui/dialog/inkscape-preferences.cpp:892
+#: ../src/display/canvas-grid.cpp:662
+#: ../src/ui/dialog/inkscape-preferences.cpp:926
 msgid "Distance between vertical grid lines"
 msgstr "Расстояние между вертикальными линиями сетки"
 
-#: ../src/display/canvas-grid.cpp:665
-#: ../src/ui/dialog/inkscape-preferences.cpp:893
+#: ../src/display/canvas-grid.cpp:664
+#: ../src/ui/dialog/inkscape-preferences.cpp:927
 msgid "Distance between horizontal grid lines"
 msgstr "Расстояние между горизонтальными линиями сетки"
 
-#: ../src/display/canvas-grid.cpp:698
+#: ../src/display/canvas-grid.cpp:697
 msgid "_Show dots instead of lines"
 msgstr "Показывать точки в_место линий"
 
-#: ../src/display/canvas-grid.cpp:699
+#: ../src/display/canvas-grid.cpp:698
 msgid "If set, displays dots at gridpoints instead of gridlines"
 msgstr "Отображается ли сетка лишь точками пересечения ее линий"
 
-#: ../src/document.cpp:416
+#: ../src/document.cpp:437
 #, c-format
 msgid "New document %d"
 msgstr "Новый документ %d"
 
-#: ../src/document.cpp:448
+#: ../src/document.cpp:469
 #, c-format
 msgid "Memory document %d"
 msgstr "Документ в памяти %d"
 
-#: ../src/document.cpp:603
+#: ../src/document.cpp:624
 #, c-format
 msgid "Unnamed document %d"
 msgstr "Безымянный документ %d"
 
 #. We hit green anchor, closing Green-Blue-Red
-#: ../src/draw-context.cpp:569
+#: ../src/draw-context.cpp:571
 msgid "Path is closed."
 msgstr "Контур закрыт."
 
 #. We hit bot start and end of single curve, closing paths
-#: ../src/draw-context.cpp:584
+#: ../src/draw-context.cpp:586
 msgid "Closing path."
 msgstr "Закрываем контур"
 
-#: ../src/draw-context.cpp:694
+#: ../src/draw-context.cpp:696
 msgid "Draw path"
 msgstr "Создание контура"
 
-#: ../src/draw-context.cpp:851
+#: ../src/draw-context.cpp:856
 msgid "Creating single dot"
 msgstr "Рисуется точка"
 
-#: ../src/draw-context.cpp:852
+#: ../src/draw-context.cpp:857
 msgid "Create single dot"
 msgstr "Рисование точки"
 
 #. alpha of color under cursor, to show in the statusbar
 #. locale-sensitive printf is OK, since this goes to the UI, not into SVG
-#: ../src/dropper-context.cpp:288
+#: ../src/dropper-context.cpp:291
 #, c-format
 msgid " alpha %.3g"
 msgstr " альфа %.3g"
 
 #. where the color is picked, to show in the statusbar
-#: ../src/dropper-context.cpp:290
+#: ../src/dropper-context.cpp:293
 #, c-format
 msgid ", averaged with radius %d"
 msgstr ", усредненный с радиусом %d"
 
-#: ../src/dropper-context.cpp:290
+#: ../src/dropper-context.cpp:293
 #, c-format
 msgid " under cursor"
 msgstr " под курсором"
 
 #. message, to show in the statusbar
-#: ../src/dropper-context.cpp:292
+#: ../src/dropper-context.cpp:295
 msgid "<b>Release mouse</b> to set color."
 msgstr "<b>Отпустите кнопку мыши</b> для установки цвета."
 
-#: ../src/dropper-context.cpp:292
-#: ../src/tools-switch.cpp:232
+#: ../src/dropper-context.cpp:295
+#: ../src/tools-switch.cpp:208
 msgid "<b>Click</b> to set fill, <b>Shift+click</b> to set stroke; <b>drag</b> to average color in area; with <b>Alt</b> to pick inverse color; <b>Ctrl+C</b> to copy the color under mouse to clipboard"
 msgstr "<b>Щелчок</b> меняет цвет заполнения, <b>Shift+щелчок</b> меняет цвет обводки. <b>Перетаскивание</b> вычисляет средний цвет области. <b>Alt</b> берет обратный цвет. <b>Ctrl+C</b> копирует в буфер цвет под курсором."
 
-#: ../src/dropper-context.cpp:325
+#: ../src/dropper-context.cpp:328
 msgid "Set picked color"
 msgstr "Использование снятого пипеткой цвета"
 
-#: ../src/dyna-draw-context.cpp:619
+#: ../src/dyna-draw-context.cpp:620
 msgid "<b>Guide path selected</b>; start drawing along the guide with <b>Ctrl</b>"
 msgstr "<b>Выбран направляющий контур</b>; начните рисовать вдоль него с нажатой клавишой <b>Ctrl</b>"
 
-#: ../src/dyna-draw-context.cpp:621
+#: ../src/dyna-draw-context.cpp:622
 msgid "<b>Select a guide path</b> to track with <b>Ctrl</b>"
 msgstr "<b>Выберите направляющий контур</b> с нажатой клавишой <b>Ctrl</b>"
 
-#: ../src/dyna-draw-context.cpp:726
+#: ../src/dyna-draw-context.cpp:727
 msgid "Tracking: <b>connection to guide path lost!</b>"
 msgstr "Отслеживание: <b>соединение с направляющим контуром потеряно!</b>"
 
-#: ../src/dyna-draw-context.cpp:726
+#: ../src/dyna-draw-context.cpp:727
 msgid "<b>Tracking</b> a guide path"
 msgstr "<b>Отслеживание</b> направляющего контура"
 
-#: ../src/dyna-draw-context.cpp:729
+#: ../src/dyna-draw-context.cpp:730
 msgid "<b>Drawing</b> a calligraphic stroke"
 msgstr "<b>Рисование</b> каллиграфическим пером"
 
-#: ../src/dyna-draw-context.cpp:1008
+#: ../src/dyna-draw-context.cpp:1009
 msgid "Draw calligraphic stroke"
 msgstr "Рисование каллиграфическим пером"
 
-#: ../src/eraser-context.cpp:527
+#: ../src/eraser-context.cpp:528
 msgid "<b>Drawing</b> an eraser stroke"
 msgstr "<b>Рисуется</b> стирающий штрих ластика"
 
-#: ../src/eraser-context.cpp:828
+#: ../src/eraser-context.cpp:831
 msgid "Draw eraser stroke"
 msgstr "Стирание ластиком"
 
-#: ../src/event-context.cpp:598
+#: ../src/event-context.cpp:608
 msgid "<b>Space+mouse drag</b> to pan canvas"
-msgstr "<b>Ð\9dажмиÑ\82е Ð¿Ñ\80обел Ð¸ Ð¿ÐµÑ\80еÑ\82аÑ\81кивайте курсор мыши</b> для перемещения по холсту"
+msgstr "<b>Ð\9dажмиÑ\82е Ð¿Ñ\80обел Ð¸ Ð¿ÐµÑ\80еÑ\82аÑ\89ите курсор мыши</b> для перемещения по холсту"
 
 #: ../src/event-log.cpp:37
 msgid "[Unchanged]"
@@ -2618,13 +2620,13 @@ msgstr "[Без изменений]"
 #. Edit
 #: ../src/event-log.cpp:264
 #: ../src/event-log.cpp:267
-#: ../src/verbs.cpp:2245
+#: ../src/verbs.cpp:2248
 msgid "_Undo"
 msgstr "_Отменить"
 
 #: ../src/event-log.cpp:274
 #: ../src/event-log.cpp:278
-#: ../src/verbs.cpp:2247
+#: ../src/verbs.cpp:2250
 msgid "_Redo"
 msgstr "_Повторить"
 
@@ -2663,8 +2665,7 @@ msgstr ""
 "\n"
 "Незагруженные сценарии пропущены. Inkscape будет работать нормально, но эти расширения будут недоступны. Подробности можно найти в файле журнала событий, находящегося здесь:"
 
-#. This is some filler text, needs to change before relase
-#: ../src/extension/error-file.cpp:62
+#: ../src/extension/error-file.cpp:63
 msgid "Show dialog on startup"
 msgstr "Показывать диалог при запуске"
 
@@ -2741,7 +2742,7 @@ msgstr "Деактивирован"
 msgid "Currently there is no help available for this Extension.  Please look on the Inkscape website or ask on the mailing lists if you have questions regarding this extension."
 msgstr "В настоящее время для этого расширения нет справочной информации. Поищите ее на сайте Inkscape или задайте вопрос в списке рассылки для пользователей."
 
-#: ../src/extension/implementation/script.cpp:1056
+#: ../src/extension/implementation/script.cpp:1036
 msgid "Inkscape has received additional data from the script executed.  The script did not return an error, but this may indicate the results will not be as expected."
 msgstr "Inkscape получил дополнительные данные от выполненного сценария. Сценарий не возвратил ошибки, но это может означать и то, что результаты будут отличаться от ожидаемых."
 
@@ -2762,13 +2763,13 @@ msgstr "Адаптивная постеризация"
 #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:40
 #: ../src/extension/internal/bitmap/raise.cpp:41
 #: ../src/extension/internal/bitmap/sample.cpp:40
-#: ../src/extension/internal/bluredge.cpp:134
+#: ../src/extension/internal/bluredge.cpp:136
 #: ../src/libgdl/gdl-dock.c:190
 #: ../src/libgdl/gdl-dock-placeholder.c:169
 #: ../src/live_effects/lpe-bendpath.cpp:56
 #: ../src/live_effects/lpe-patternalongpath.cpp:63
-#: ../src/widgets/toolbox.cpp:2616
-#: ../src/widgets/toolbox.cpp:3660
+#: ../src/widgets/toolbox.cpp:2614
+#: ../src/widgets/toolbox.cpp:3643
 msgid "Width"
 msgstr "Ширина"
 
@@ -2777,7 +2778,7 @@ msgstr "Ширина"
 #: ../src/extension/internal/bitmap/sample.cpp:41
 #: ../src/libgdl/gdl-dock.c:198
 #: ../src/libgdl/gdl-dock-placeholder.c:177
-#: ../src/widgets/toolbox.cpp:2633
+#: ../src/widgets/toolbox.cpp:2631
 msgid "Height"
 msgstr "Высота"
 
@@ -2787,7 +2788,7 @@ msgstr "Высота"
 #: ../src/live_effects/effect.cpp:93
 #: ../src/live_effects/lpe-offset.cpp:30
 #: ../src/live_effects/lpe-parallel.cpp:46
-#: ../src/live_effects/lpe-ruler.cpp:48
+#: ../src/live_effects/lpe-ruler.cpp:49
 msgid "Offset"
 msgstr "Смещение"
 
@@ -2877,7 +2878,7 @@ msgstr "Размывание"
 #: ../src/extension/internal/bitmap/oilPaint.cpp:38
 #: ../src/extension/internal/bitmap/sharpen.cpp:39
 #: ../src/extension/internal/bitmap/unsharpmask.cpp:42
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2255
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2256
 msgid "Radius"
 msgstr "Радиус"
 
@@ -3127,24 +3128,24 @@ msgid "Brightness"
 msgstr "Яркость"
 
 #: ../src/extension/internal/bitmap/modulate.cpp:42
-#: ../src/flood-context.cpp:275
-#: ../src/ui/dialog/inkscape-preferences.cpp:751
-#: ../src/widgets/sp-color-icc-selector.cpp:235
+#: ../src/flood-context.cpp:279
+#: ../src/ui/dialog/inkscape-preferences.cpp:785
 #: ../src/widgets/sp-color-icc-selector.cpp:236
+#: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-scales.cpp:427
 #: ../src/widgets/sp-color-scales.cpp:428
-#: ../src/widgets/toolbox.cpp:3824
+#: ../src/widgets/toolbox.cpp:3815
 #: ../share/extensions/color_randomize.inx.h:5
 msgid "Saturation"
 msgstr "Насыщенность"
 
 #: ../src/extension/internal/bitmap/modulate.cpp:43
-#: ../src/flood-context.cpp:274
-#: ../src/widgets/sp-color-icc-selector.cpp:235
+#: ../src/flood-context.cpp:278
 #: ../src/widgets/sp-color-icc-selector.cpp:236
+#: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-scales.cpp:424
 #: ../src/widgets/sp-color-scales.cpp:425
-#: ../src/widgets/toolbox.cpp:3809
+#: ../src/widgets/toolbox.cpp:3800
 #: ../share/extensions/color_randomize.inx.h:2
 msgid "Hue"
 msgstr "Тон"
@@ -3299,23 +3300,23 @@ msgstr "Длина волны"
 msgid "Alter selected bitmap(s) along sine wave."
 msgstr "Изменить выбранные изображения по синусоиде"
 
-#: ../src/extension/internal/bluredge.cpp:132
+#: ../src/extension/internal/bluredge.cpp:134
 msgid "Inset/Outset Halo"
 msgstr "Втяжка/растяжка ореола"
 
-#: ../src/extension/internal/bluredge.cpp:134
+#: ../src/extension/internal/bluredge.cpp:136
 msgid "Width in px of the halo"
 msgstr "Ширина ореола в пикселах"
 
-#: ../src/extension/internal/bluredge.cpp:135
+#: ../src/extension/internal/bluredge.cpp:137
 msgid "Number of steps"
 msgstr "Количество шагов"
 
-#: ../src/extension/internal/bluredge.cpp:135
+#: ../src/extension/internal/bluredge.cpp:137
 msgid "Number of inset/outset copies of the object to make"
 msgstr "Количество копий втяжки/растяжки объекта"
 
-#: ../src/extension/internal/bluredge.cpp:139
+#: ../src/extension/internal/bluredge.cpp:141
 #: ../share/extensions/extrude.inx.h:2
 #: ../share/extensions/interp.inx.h:3
 #: ../share/extensions/motion.inx.h:2
@@ -3329,19 +3330,19 @@ msgid "Cairo PDF Output"
 msgstr "Экспорт в PDF через Cairo"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:240
-#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:217
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:215
 msgid "Restrict to PDF version"
 msgstr "Версия PDF:"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:241
-#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:218
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:216
 msgid "PDF 1.4"
 msgstr "PDF 1.4"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:243
-#: ../src/extension/internal/cairo-ps-out.cpp:347
-#: ../src/extension/internal/cairo-ps-out.cpp:381
-#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:220
+#: ../src/extension/internal/cairo-ps-out.cpp:284
+#: ../src/extension/internal/cairo-ps-out.cpp:321
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:218
 #: ../src/extension/internal/emf-win32-inout.cpp:2435
 #: ../src/extension/internal/eps-out.cpp:92
 #: ../src/extension/internal/ps-out.cpp:84
@@ -3349,30 +3350,32 @@ msgid "Convert texts to paths"
 msgstr "Текст в кривые Безье"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:244
-#: ../src/extension/internal/cairo-ps-out.cpp:348
-#: ../src/extension/internal/cairo-ps-out.cpp:382
+#: ../src/extension/internal/cairo-ps-out.cpp:285
+#: ../src/extension/internal/cairo-ps-out.cpp:322
 msgid "Convert blur effects to bitmaps"
 msgstr "Размытые объекты в растровые"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:245
-#: ../src/extension/internal/cairo-ps-out.cpp:349
-#: ../src/extension/internal/cairo-ps-out.cpp:383
-#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:222
+#: ../src/extension/internal/cairo-ps-out.cpp:286
+#: ../src/extension/internal/cairo-ps-out.cpp:323
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:220
 msgid "Preferred resolution (DPI) of bitmaps"
 msgstr "Разрешение растра (dpi):"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:246
-#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:223
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:221
 msgid "Export drawing, not page"
 msgstr "Экспортировать только рисунок"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:247
-#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:224
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:222
 msgid "Export canvas"
 msgstr "Экспортировать холст"
 
 #: ../src/extension/internal/cairo-pdf-out.cpp:248
-#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:225
+#: ../src/extension/internal/cairo-ps-out.cpp:287
+#: ../src/extension/internal/cairo-ps-out.cpp:324
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:223
 msgid "Limit export to the object with ID"
 msgstr "Только объект с ID"
 
@@ -3384,54 +3387,65 @@ msgstr "PDF через Cairo (*.pdf)"
 msgid "PDF File"
 msgstr "Файл PDF"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:339
+#: ../src/extension/internal/cairo-ps-out.cpp:274
 #: ../share/extensions/ps_input.inx.h:1
 msgid "PostScript"
 msgstr "PostScript"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:341
-#: ../src/extension/internal/cairo-ps-out.cpp:375
+#: ../src/extension/internal/cairo-ps-out.cpp:276
+#: ../src/extension/internal/cairo-ps-out.cpp:313
 msgid "Restrict to PS level"
 msgstr "Версия PS:"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:342
-#: ../src/extension/internal/cairo-ps-out.cpp:376
+#: ../src/extension/internal/cairo-ps-out.cpp:277
+#: ../src/extension/internal/cairo-ps-out.cpp:314
 msgid "PostScript level 3"
 msgstr "PostScript Level 3"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:344
-#: ../src/extension/internal/cairo-ps-out.cpp:378
+#: ../src/extension/internal/cairo-ps-out.cpp:279
+#: ../src/extension/internal/cairo-ps-out.cpp:316
 msgid "PostScript level 2"
 msgstr "PostScript Level 2"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:353
+#: ../src/extension/internal/cairo-ps-out.cpp:282
+#: ../src/extension/internal/cairo-ps-out.cpp:319
+#, fuzzy
+msgid "Export area is whole canvas"
+msgstr "Экспортируемая область включает в себя весь холст"
+
+#: ../src/extension/internal/cairo-ps-out.cpp:283
+#: ../src/extension/internal/cairo-ps-out.cpp:320
+#, fuzzy
+msgid "Export area is the drawing"
+msgstr "Экспортируемая область включает в себя весь холст"
+
+#: ../src/extension/internal/cairo-ps-out.cpp:291
 #: ../share/extensions/ps_input.inx.h:2
 msgid "PostScript (*.ps)"
 msgstr "Файлы Postscript (*.ps)"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:354
+#: ../src/extension/internal/cairo-ps-out.cpp:292
 #: ../src/extension/internal/ps-out.cpp:90
 msgid "PostScript File"
 msgstr "Файл PostScript"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:373
+#: ../src/extension/internal/cairo-ps-out.cpp:311
 #: ../share/extensions/eps_input.inx.h:2
 msgid "Encapsulated PostScript"
 msgstr "Encapsulated Postscript"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:387
+#: ../src/extension/internal/cairo-ps-out.cpp:328
 #: ../share/extensions/eps_input.inx.h:3
 msgid "Encapsulated PostScript (*.eps)"
 msgstr "Файлы Encapsulated Postscript (*.eps)"
 
-#: ../src/extension/internal/cairo-ps-out.cpp:388
+#: ../src/extension/internal/cairo-ps-out.cpp:329
 msgid "Encapsulated PostScript File"
 msgstr "Файл Encapsulated PostScript"
 
-#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:221
-#, fuzzy
+#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:219
 msgid "Convert filter effects to bitmaps"
-msgstr "РазмÑ\8bÑ\82Ñ\8bе Ð¾Ð±Ñ\8aекÑ\82Ñ\8b Ð² Ñ\80аÑ\81Ñ\82Ñ\80овÑ\8bе"
+msgstr "Ð\9eбÑ\8aекÑ\82Ñ\8b Ñ\81 Ñ\84илÑ\8cÑ\82Ñ\80ами SVG Ð² Ñ\80аÑ\81Ñ\82Ñ\80"
 
 #: ../src/extension/internal/emf-win32-inout.cpp:2405
 msgid "EMF Input"
@@ -3568,7 +3582,7 @@ msgid "Vertical offset, px"
 msgstr "Сдвиг по вертикали, px"
 
 #: ../src/extension/internal/filter/drop-shadow.h:44
-#: ../src/extension/internal/filter/filter.cpp:196
+#: ../src/extension/internal/filter/filter.cpp:201
 #: ../src/extension/internal/filter/filter-file.cpp:146
 #: ../src/extension/internal/filter/snow.h:38
 msgid "Filter"
@@ -3786,7 +3800,7 @@ msgstr "Полоски зебры"
 msgid "Paint your object with zebra stripes"
 msgstr "Раскрасить объект под зебру"
 
-#: ../src/extension/internal/gdkpixbuf-input.cpp:114
+#: ../src/extension/internal/gdkpixbuf-input.cpp:113
 #, c-format
 msgid "%s GDK pixbuf Input"
 msgstr "Импорт %s через GDK pixbuf"
@@ -3803,32 +3817,33 @@ msgstr "Градиенты GIMP (*.ggr)"
 msgid "Gradients used in GIMP"
 msgstr "Градиенты, используемые в GIMP"
 
-#: ../src/extension/internal/grid.cpp:191
-#: ../src/ui/widget/panel.cpp:122
+#: ../src/extension/internal/grid.cpp:192
+#: ../src/ui/widget/panel.cpp:112
 msgid "Grid"
 msgstr "Сетка"
 
-#: ../src/extension/internal/grid.cpp:193
+#: ../src/extension/internal/grid.cpp:194
 msgid "Line Width"
 msgstr "Ширина линии"
 
-#: ../src/extension/internal/grid.cpp:194
+#: ../src/extension/internal/grid.cpp:195
 msgid "Horizontal Spacing"
 msgstr "Интервал по горизонтали"
 
-#: ../src/extension/internal/grid.cpp:195
+#: ../src/extension/internal/grid.cpp:196
 msgid "Vertical Spacing"
 msgstr "Интервал по вертикали"
 
-#: ../src/extension/internal/grid.cpp:196
+#: ../src/extension/internal/grid.cpp:197
 msgid "Horizontal Offset"
 msgstr "Сдвиг по горизонтали"
 
-#: ../src/extension/internal/grid.cpp:197
+#: ../src/extension/internal/grid.cpp:198
 msgid "Vertical Offset"
 msgstr "Сдвиг по вертикали"
 
-#: ../src/extension/internal/grid.cpp:201
+#: ../src/extension/internal/grid.cpp:202
+#: ../share/extensions/draw_from_triangle.inx.h:30
 #: ../share/extensions/eqtexsvg.inx.h:3
 #: ../share/extensions/funcplot.inx.h:12
 #: ../share/extensions/gears.inx.h:5
@@ -3844,7 +3859,7 @@ msgstr "Сдвиг по вертикали"
 msgid "Render"
 msgstr "Отрисовка"
 
-#: ../src/extension/internal/grid.cpp:203
+#: ../src/extension/internal/grid.cpp:204
 msgid "Draw a path which is a grid"
 msgstr "Нарисовать контур, являющийся сеткой"
 
@@ -3857,9 +3872,8 @@ msgid "JavaFX (*.fx)"
 msgstr "Файлы JavaFX (*.fx)"
 
 #: ../src/extension/internal/javafx-out.cpp:928
-#, fuzzy
 msgid "JavaFX Raytracer File"
-msgstr "Файл трассировщика лучей POV-Ray"
+msgstr "Файл трассировщика лучей JavaFX"
 
 #: ../src/extension/internal/latex-pstricks.cpp:345
 msgid "LaTeX Print"
@@ -4172,7 +4186,7 @@ msgstr "Сжатые файлы Inkscape SVG (*.svgz)"
 msgid "Scalable Vector Graphics format compressed with GZip"
 msgstr "Масштабируемая векторная графика (SVG), сжатая GZip"
 
-#: ../src/extension/internal/win32.cpp:491
+#: ../src/extension/internal/win32.cpp:485
 msgid "Windows 32-bit Print"
 msgstr "Печать в Windows 32-bit"
 
@@ -4208,42 +4222,42 @@ msgstr "Невозможно определить формат файла. Фа
 #. template. This way you can localize the default pagesize, translate the name of
 #. the default layer, etc. If you wish to localize this file, please create a
 #. localized share/templates/default.xx.svg file, where xx is your language code.
-#: ../src/file.cpp:142
+#: ../src/file.cpp:154
 msgid "default.svg"
 msgstr "default.svg"
 
-#: ../src/file.cpp:228
-#: ../src/file.cpp:1007
+#: ../src/file.cpp:240
+#: ../src/file.cpp:1020
 #, c-format
 msgid "Failed to load the requested file %s"
 msgstr "Не удалось загрузить запрошенный файл %s"
 
-#: ../src/file.cpp:253
+#: ../src/file.cpp:265
 msgid "Document not saved yet.  Cannot revert."
 msgstr "Документ еще не был сохранен. Вернуться к сохраненному невозможно."
 
-#: ../src/file.cpp:259
+#: ../src/file.cpp:271
 #, c-format
 msgid "Changes will be lost!  Are you sure you want to reload document %s?"
 msgstr "Изменения будут потеряны! Вы уверены, что хотите загрузить документ %s заново?"
 
-#: ../src/file.cpp:288
+#: ../src/file.cpp:300
 msgid "Document reverted."
 msgstr "Документ возвращен к последнему сохраненному состоянию."
 
-#: ../src/file.cpp:290
+#: ../src/file.cpp:302
 msgid "Document not reverted."
 msgstr "Документ не возвращен к сохраненному состоянию."
 
-#: ../src/file.cpp:440
+#: ../src/file.cpp:452
 msgid "Select file to open"
 msgstr "Выберите файл"
 
-#: ../src/file.cpp:527
+#: ../src/file.cpp:539
 msgid "Vacuum &lt;defs&gt;"
 msgstr "О_чистить &lt;defs&gt;"
 
-#: ../src/file.cpp:532
+#: ../src/file.cpp:544
 #, c-format
 msgid "Removed <b>%i</b> unused definition in &lt;defs&gt;."
 msgid_plural "Removed <b>%i</b> unused definitions in &lt;defs&gt;."
@@ -4251,90 +4265,90 @@ msgstr[0] "Удалено <b>%i</b> ненужное определение в &
 msgstr[1] "Удалено <b>%i</b> ненужных определения в &lt;defs&gt;."
 msgstr[2] "Удалено <b>%i</b> ненужных определений в &lt;defs&gt;."
 
-#: ../src/file.cpp:537
+#: ../src/file.cpp:549
 msgid "No unused definitions in &lt;defs&gt;."
 msgstr "Нет ненужных элементов в &lt;defs&gt;."
 
-#: ../src/file.cpp:566
+#: ../src/file.cpp:578
 #, c-format
 msgid "No Inkscape extension found to save document (%s).  This may have been caused by an unknown filename extension."
 msgstr "Не найдено расширение Inkscape для сохранения документа (%s). Возможно, задано неизвестное расширение имени файла."
 
-#: ../src/file.cpp:567
-#: ../src/file.cpp:575
+#: ../src/file.cpp:579
+#: ../src/file.cpp:587
 msgid "Document not saved."
 msgstr "Документ не сохранен."
 
-#: ../src/file.cpp:574
+#: ../src/file.cpp:586
 #, c-format
 msgid "File %s could not be saved."
 msgstr "Невозможно сохранить файл %s."
 
-#: ../src/file.cpp:585
+#: ../src/file.cpp:597
 msgid "Document saved."
 msgstr "Документ сохранен."
 
-#: ../src/file.cpp:726
-#: ../src/file.cpp:1134
-#: ../src/file.cpp:1251
+#: ../src/file.cpp:738
+#: ../src/file.cpp:1147
+#: ../src/file.cpp:1266
 #, c-format
 msgid "drawing%s"
 msgstr "рисунок%s"
 
-#: ../src/file.cpp:732
+#: ../src/file.cpp:744
 #, c-format
 msgid "drawing-%d%s"
 msgstr "рисунок-%d%s"
 
-#: ../src/file.cpp:751
+#: ../src/file.cpp:763
 msgid "Select file to save a copy to"
 msgstr "Выберите файл для сохранения копии"
 
-#: ../src/file.cpp:753
+#: ../src/file.cpp:765
 msgid "Select file to save to"
 msgstr "Выберите файл для сохранения"
 
-#: ../src/file.cpp:832
+#: ../src/file.cpp:845
 msgid "No changes need to be saved."
 msgstr "Файл не был изменен. Сохранение не требуется."
 
-#: ../src/file.cpp:849
+#: ../src/file.cpp:862
 msgid "Saving document..."
 msgstr "Выполняется сохранение документа..."
 
-#: ../src/file.cpp:1004
+#: ../src/file.cpp:1017
 msgid "Import"
 msgstr "Импорт"
 
-#: ../src/file.cpp:1036
+#: ../src/file.cpp:1049
 msgid "Select file to import"
 msgstr "Выберите файл для импорта"
 
-#: ../src/file.cpp:1156
-#: ../src/file.cpp:1266
+#: ../src/file.cpp:1169
+#: ../src/file.cpp:1281
 msgid "Select file to export to"
 msgstr "Выберите файл для экспорта"
 
-#: ../src/file.cpp:1293
+#: ../src/file.cpp:1308
 #, c-format
 msgid "Error saving a temporary copy"
 msgstr "Ошибка сохранения временной копии"
 
-#: ../src/file.cpp:1313
+#: ../src/file.cpp:1328
 msgid "Open Clip Art Login"
 msgstr "Вход в Open Clip Art"
 
-#: ../src/file.cpp:1334
+#: ../src/file.cpp:1349
 #, fuzzy, c-format
 msgid "Error exporting the document. Verify if the server name, username and password are correct, if the server has support for webdav and verify if you didn't forget to choose a license."
 msgstr "В ходе экспорта документа произошла ошибка. Проверьте, корректно ли введены имя сервера, имя пользователя и пароль, есть ли у сервера поддержка webdav, не забыли ли вы указать лицензию."
 
-#: ../src/file.cpp:1355
+#: ../src/file.cpp:1370
 msgid "Document exported..."
 msgstr "Документ экспортирован..."
 
-#: ../src/file.cpp:1383
-#: ../src/verbs.cpp:2234
+#: ../src/file.cpp:1398
+#: ../src/verbs.cpp:2237
 msgid "Import From Open Clip Art Library"
 msgstr "Импортировать из Open Clip Art Library"
 
@@ -4459,7 +4473,7 @@ msgstr "Освещенность в альфа"
 
 #. File
 #: ../src/filter-enums.cpp:71
-#: ../src/verbs.cpp:2211
+#: ../src/verbs.cpp:2214
 msgid "Default"
 msgstr "По умолчанию"
 
@@ -4508,7 +4522,7 @@ msgid "Gamma"
 msgstr "Гамма"
 
 #: ../src/filter-enums.cpp:93
-#: ../src/selection-chemistry.cpp:314
+#: ../src/selection-chemistry.cpp:311
 #: ../src/widgets/gradient-selector.cpp:134
 msgid "Duplicate"
 msgstr "Продублировать"
@@ -4518,31 +4532,31 @@ msgid "Wrap"
 msgstr "Крупнее"
 
 #: ../src/filter-enums.cpp:101
-#: ../src/flood-context.cpp:271
-#: ../src/widgets/sp-color-icc-selector.cpp:233
+#: ../src/flood-context.cpp:275
+#: ../src/widgets/sp-color-icc-selector.cpp:234
 #: ../src/widgets/sp-color-scales.cpp:398
 #: ../src/widgets/sp-color-scales.cpp:399
 msgid "Red"
 msgstr "Красный"
 
 #: ../src/filter-enums.cpp:102
-#: ../src/flood-context.cpp:272
-#: ../src/widgets/sp-color-icc-selector.cpp:233
+#: ../src/flood-context.cpp:276
+#: ../src/widgets/sp-color-icc-selector.cpp:234
 #: ../src/widgets/sp-color-scales.cpp:401
 #: ../src/widgets/sp-color-scales.cpp:402
 msgid "Green"
 msgstr "Зеленый"
 
 #: ../src/filter-enums.cpp:103
-#: ../src/flood-context.cpp:273
-#: ../src/widgets/sp-color-icc-selector.cpp:233
+#: ../src/flood-context.cpp:277
+#: ../src/widgets/sp-color-icc-selector.cpp:234
 #: ../src/widgets/sp-color-scales.cpp:404
 #: ../src/widgets/sp-color-scales.cpp:405
 msgid "Blue"
 msgstr "Синий"
 
 #: ../src/filter-enums.cpp:104
-#: ../src/flood-context.cpp:277
+#: ../src/flood-context.cpp:281
 msgid "Alpha"
 msgstr "Альфа-канал"
 
@@ -4570,38 +4584,38 @@ msgstr "Точечный"
 msgid "Spot Light"
 msgstr "Прожектор"
 
-#: ../src/flood-context.cpp:270
+#: ../src/flood-context.cpp:274
 msgid "Visible Colors"
 msgstr "Видимые цвета"
 
-#: ../src/flood-context.cpp:276
-#: ../src/widgets/sp-color-icc-selector.cpp:236
+#: ../src/flood-context.cpp:280
+#: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-scales.cpp:430
 #: ../src/widgets/sp-color-scales.cpp:431
-#: ../src/widgets/toolbox.cpp:3839
+#: ../src/widgets/toolbox.cpp:3830
 #: ../share/extensions/color_randomize.inx.h:3
 msgid "Lightness"
 msgstr "Яркость"
 
-#: ../src/flood-context.cpp:289
-#: ../src/ui/dialog/inkscape-preferences.cpp:961
+#: ../src/flood-context.cpp:293
+#: ../src/ui/dialog/inkscape-preferences.cpp:995
 msgid "Small"
 msgstr "Маленькие"
 
-#: ../src/flood-context.cpp:290
-#: ../src/ui/dialog/inkscape-preferences.cpp:961
+#: ../src/flood-context.cpp:294
+#: ../src/ui/dialog/inkscape-preferences.cpp:995
 msgid "Medium"
 msgstr "Средние"
 
-#: ../src/flood-context.cpp:291
+#: ../src/flood-context.cpp:295
 msgid "Large"
 msgstr "Большие"
 
-#: ../src/flood-context.cpp:491
+#: ../src/flood-context.cpp:497
 msgid "<b>Too much inset</b>, the result is empty."
 msgstr "<b>Слишком сильная втяжка</b>, в результате ничего не осталось."
 
-#: ../src/flood-context.cpp:531
+#: ../src/flood-context.cpp:537
 #, c-format
 msgid "Area filled, path with <b>%d</b> node created and unioned with selection."
 msgid_plural "Area filled, path with <b>%d</b> nodes created and unioned with selection."
@@ -4609,7 +4623,7 @@ msgstr[0] "Область залита, контур с <b>%d</b> узлом с
 msgstr[1] "Область залита, контур с <b>%d</b> узлами создан и объединен с выделением."
 msgstr[2] "Область залита, контур с <b>%d</b> узлами создан и объединен с выделением."
 
-#: ../src/flood-context.cpp:535
+#: ../src/flood-context.cpp:541
 #, c-format
 msgid "Area filled, path with <b>%d</b> node created."
 msgid_plural "Area filled, path with <b>%d</b> nodes created."
@@ -4617,25 +4631,25 @@ msgstr[0] "Область залита, создан контур с <b>%d</b> 
 msgstr[1] "Область залита, создан контур с <b>%d</b> узлами."
 msgstr[2] "Область залита, создан контур с <b>%d</b> узлами."
 
-#: ../src/flood-context.cpp:807
-#: ../src/flood-context.cpp:1120
+#: ../src/flood-context.cpp:813
+#: ../src/flood-context.cpp:1127
 msgid "<b>Area is not bounded</b>, cannot fill."
 msgstr "<b>Область не замкнута</b>, заливка невозможна"
 
-#: ../src/flood-context.cpp:1125
+#: ../src/flood-context.cpp:1132
 msgid "<b>Only the visible part of the bounded area was filled.</b> If you want to fill all of the area, undo, zoom out, and fill again."
 msgstr "<b>Только видимая часть замнутой области была заполнена.</b> Если вы хотите залить цветом всю область, отмените предыдущее действие, уменьшите масштаб отображения и попробуйте снова."
 
-#: ../src/flood-context.cpp:1143
-#: ../src/flood-context.cpp:1303
+#: ../src/flood-context.cpp:1150
+#: ../src/flood-context.cpp:1310
 msgid "Fill bounded area"
 msgstr "Заливка замкнутой области"
 
-#: ../src/flood-context.cpp:1163
+#: ../src/flood-context.cpp:1170
 msgid "Set style on object"
 msgstr "Установка стиля объекта"
 
-#: ../src/flood-context.cpp:1222
+#: ../src/flood-context.cpp:1229
 msgid "<b>Draw over</b> areas to add to fill, hold <b>Alt</b> for touch fill"
 msgstr "<b>Проведите курсором мыши</b> по областям, добавляемым в заливку, нажмите <b>Alt</b> для переключения на касательную заливку"
 
@@ -4734,37 +4748,37 @@ msgstr[0] "<b>Ни одной</b> опорной точки градиента 
 msgstr[1] "<b>Ни одной</b> опорной точки градиента из %d не выбрано в %d выбранных объектах"
 msgstr[2] "<b>Ни одной</b> опорной точки градиента из %d не выбрано в %d выбранных объектах"
 
-#: ../src/gradient-context.cpp:385
-#: ../src/gradient-context.cpp:478
-#: ../src/widgets/gradient-vector.cpp:735
+#: ../src/gradient-context.cpp:386
+#: ../src/gradient-context.cpp:479
+#: ../src/widgets/gradient-vector.cpp:738
 msgid "Add gradient stop"
 msgstr "Добавка опорной точки в градиент"
 
-#: ../src/gradient-context.cpp:453
+#: ../src/gradient-context.cpp:454
 msgid "Simplify gradient"
 msgstr "Упростить градиент"
 
-#: ../src/gradient-context.cpp:529
+#: ../src/gradient-context.cpp:531
 msgid "Create default gradient"
 msgstr "Создание обычного градиента"
 
-#: ../src/gradient-context.cpp:584
+#: ../src/gradient-context.cpp:586
 msgid "<b>Draw around</b> handles to select them"
 msgstr "<b>Обведите курсором мыши</b> рычаги, чтобы выделить их"
 
-#: ../src/gradient-context.cpp:682
+#: ../src/gradient-context.cpp:684
 msgid "<b>Ctrl</b>: snap gradient angle"
 msgstr "<b>Ctrl</b>: ограничить угол"
 
-#: ../src/gradient-context.cpp:683
+#: ../src/gradient-context.cpp:685
 msgid "<b>Shift</b>: draw gradient around the starting point"
 msgstr "<b>Shift</b>: рисовать градиент вокруг начальной точки"
 
-#: ../src/gradient-context.cpp:803
+#: ../src/gradient-context.cpp:805
 msgid "Invert gradient"
 msgstr "Инвертирование градиента"
 
-#: ../src/gradient-context.cpp:919
+#: ../src/gradient-context.cpp:922
 #, c-format
 msgid "<b>Gradient</b> for %d object; with <b>Ctrl</b> to snap angle"
 msgid_plural "<b>Gradient</b> for %d objects; with <b>Ctrl</b> to snap angle"
@@ -4772,7 +4786,7 @@ msgstr[0] "<b>Градиент</b> для %d объекта; <b>Ctrl</b> огр
 msgstr[1] "<b>Градиент</b> для %d объектов; <b>Ctrl</b> ограничивает угол"
 msgstr[2] "<b>Градиент</b> для %d объектов; <b>Ctrl</b> ограничивает угол"
 
-#: ../src/gradient-context.cpp:923
+#: ../src/gradient-context.cpp:926
 msgid "Select <b>objects</b> on which to create gradient."
 msgstr "Выделите <b>объекты</b>, к которым будет применен градиент."
 
@@ -4780,36 +4794,36 @@ msgstr "Выделите <b>объекты</b>, к которым будет п
 msgid "Merge gradient handles"
 msgstr "Объединение рычагов градиента"
 
-#: ../src/gradient-drag.cpp:895
+#: ../src/gradient-drag.cpp:896
 msgid "Move gradient handle"
 msgstr "Смещение рычага градиента"
 
-#: ../src/gradient-drag.cpp:948
-#: ../src/widgets/gradient-vector.cpp:767
+#: ../src/gradient-drag.cpp:949
+#: ../src/widgets/gradient-vector.cpp:770
 msgid "Delete gradient stop"
 msgstr "Удаление опорной точки"
 
-#: ../src/gradient-drag.cpp:1112
+#: ../src/gradient-drag.cpp:1113
 #, c-format
 msgid "%s %d for: %s%s; drag with <b>Ctrl</b> to snap offset; click with <b>Ctrl+Alt</b> to delete stop"
 msgstr "%s %d для: %s%s;  c <b>Ctrl</b> прилипать по 1/10 радиуса, щелчком с <b>Ctrl+Alt</b> удалить опорную точку"
 
-#: ../src/gradient-drag.cpp:1116
-#: ../src/gradient-drag.cpp:1123
+#: ../src/gradient-drag.cpp:1117
+#: ../src/gradient-drag.cpp:1124
 msgid " (stroke)"
 msgstr "(штрих)"
 
-#: ../src/gradient-drag.cpp:1120
+#: ../src/gradient-drag.cpp:1121
 #, c-format
 msgid "%s for: %s%s; drag with <b>Ctrl</b> to snap angle, with <b>Ctrl+Alt</b> to preserve angle, with <b>Ctrl+Shift</b> to scale around center"
 msgstr "%s для: %s%s;  <b>Ctrl</b> ограничивает угол,  <b>Ctrl+Alt</b> фиксирует угол, <b>Ctrl+Shift</b> масштабирует вокруг центра"
 
-#: ../src/gradient-drag.cpp:1128
+#: ../src/gradient-drag.cpp:1129
 #, c-format
 msgid "Radial gradient <b>center</b> and <b>focus</b>; drag with <b>Shift</b> to separate focus"
 msgstr "<b>Центр</b> и <b>фокус</b> радиального градиента; перетаскивание с <b>Shift</b> отделяет фокус"
 
-#: ../src/gradient-drag.cpp:1131
+#: ../src/gradient-drag.cpp:1132
 #, c-format
 msgid "Gradient point shared by <b>%d</b> gradient; drag with <b>Shift</b> to separate"
 msgid_plural "Gradient point shared by <b>%d</b> gradients; drag with <b>Shift</b> to separate"
@@ -4817,15 +4831,15 @@ msgstr[0] "Точка градиента, общая для <b>%d</b> гради
 msgstr[1] "Точка градиента, общая для <b>%d</b> градиентов; перетаскивание с <b>Shift</b> разделяет точки"
 msgstr[2] "Точка градиента, общая для <b>%d</b> градиентов; перетаскивание с <b>Shift</b> разделяет точки"
 
-#: ../src/gradient-drag.cpp:1806
+#: ../src/gradient-drag.cpp:1807
 msgid "Move gradient handle(s)"
 msgstr "Смещение рычага градиента"
 
-#: ../src/gradient-drag.cpp:1842
+#: ../src/gradient-drag.cpp:1843
 msgid "Move gradient mid stop(s)"
 msgstr "Смещение опорной точки градиента"
 
-#: ../src/gradient-drag.cpp:2130
+#: ../src/gradient-drag.cpp:2131
 msgid "Delete gradient stop(s)"
 msgstr "Удалить опорную точку (-и)"
 
@@ -4836,11 +4850,11 @@ msgstr "Единица"
 
 #. Add the units menu.
 #: ../src/helper/units.cpp:37
-#: ../src/widgets/select-toolbar.cpp:491
-#: ../src/widgets/toolbox.cpp:1470
-#: ../src/widgets/toolbox.cpp:2677
-#: ../src/widgets/toolbox.cpp:5196
-#: ../src/widgets/toolbox.cpp:6703
+#: ../src/widgets/select-toolbar.cpp:501
+#: ../src/widgets/toolbox.cpp:1469
+#: ../src/widgets/toolbox.cpp:2675
+#: ../src/widgets/toolbox.cpp:5178
+#: ../src/widgets/toolbox.cpp:6691
 msgid "Units"
 msgstr "Единицы"
 
@@ -4883,9 +4897,9 @@ msgid "Pixel"
 msgstr "Пиксел"
 
 #: ../src/helper/units.cpp:40
-#: ../src/ui/dialog/inkscape-preferences.cpp:206
-#: ../src/ui/dialog/inkscape-preferences.cpp:210
-#: ../src/ui/dialog/inkscape-preferences.cpp:213
+#: ../src/ui/dialog/inkscape-preferences.cpp:207
+#: ../src/ui/dialog/inkscape-preferences.cpp:211
+#: ../src/ui/dialog/inkscape-preferences.cpp:214
 #: ../src/ui/widget/selected-style.cpp:283
 msgid "px"
 msgstr "px"
@@ -4905,7 +4919,7 @@ msgid "Percent"
 msgstr "Процент"
 
 #: ../src/helper/units.cpp:42
-#: ../src/ui/dialog/inkscape-preferences.cpp:226
+#: ../src/ui/dialog/inkscape-preferences.cpp:227
 msgid "%"
 msgstr "%"
 
@@ -5002,121 +5016,125 @@ msgstr "ex"
 msgid "Ex squares"
 msgstr "Ex squares"
 
-#: ../src/inkscape.cpp:334
+#: ../src/inkscape.cpp:329
 msgid "Autosaving documents..."
 msgstr "Выполняется автоматическое сохранение документов..."
 
-#: ../src/inkscape.cpp:402
+#: ../src/inkscape.cpp:400
 msgid "Autosave failed! Could not find inkscape extension to save document."
 msgstr "Автосохранение не сработало! Не удалось найти расширение Inkscape для сохранения документа."
 
-#: ../src/inkscape.cpp:405
-#: ../src/inkscape.cpp:412
+#: ../src/inkscape.cpp:403
+#: ../src/inkscape.cpp:410
 #, c-format
 msgid "Autosave failed! File %s could not be saved."
 msgstr "Не удалось автоматически сохранить файл %s!"
 
-#: ../src/inkscape.cpp:427
+#: ../src/inkscape.cpp:425
 msgid "Autosave complete."
 msgstr "Автосохранение завершено"
 
-#: ../src/inkscape.cpp:654
+#: ../src/inkscape.cpp:647
 msgid "Untitled document"
 msgstr "Без названия"
 
 #. Show nice dialog box
-#: ../src/inkscape.cpp:683
+#: ../src/inkscape.cpp:676
 msgid "Inkscape encountered an internal error and will close now.\n"
 msgstr "Внутренняя ошибка. Inkscape придется закрыть.\n"
 
-#: ../src/inkscape.cpp:684
+#: ../src/inkscape.cpp:677
 msgid "Automatic backups of unsaved documents were done to the following locations:\n"
 msgstr "Выполнено автоматическое резервное копирование несохраненных документов:\n"
 
-#: ../src/inkscape.cpp:685
+#: ../src/inkscape.cpp:678
 msgid "Automatic backup of the following documents failed:\n"
 msgstr "Не получилось сохранить резервную копию следующего документа:\n"
 
 #. sp_ui_menu_append_check_item_from_verb(m, view, _("_Menu"), _("Show or hide the menu bar"), "menu",
 #. checkitem_toggled, checkitem_update, 0);
-#: ../src/interface.cpp:838
+#: ../src/interface.cpp:827
 msgid "Commands Bar"
 msgstr "Панель команд"
 
-#: ../src/interface.cpp:838
+#: ../src/interface.cpp:827
 msgid "Show or hide the Commands bar (under the menu)"
 msgstr "Показать/скрыть панель команд (под меню)"
 
-#: ../src/interface.cpp:840
+#: ../src/interface.cpp:829
 msgid "Tool Controls Bar"
 msgstr "Панель параметров инструментов"
 
-#: ../src/interface.cpp:840
+#: ../src/interface.cpp:829
 msgid "Show or hide the Tool Controls bar"
 msgstr "Показать/скрыть панель с параметрами инструментов"
 
-#: ../src/interface.cpp:842
+#: ../src/interface.cpp:831
 msgid "_Toolbox"
 msgstr "_Панель инструментов"
 
-#: ../src/interface.cpp:842
+#: ../src/interface.cpp:831
 msgid "Show or hide the main toolbox (on the left)"
 msgstr "Показать/скрыть главную панель инструментов (слева)"
 
-#: ../src/interface.cpp:848
+#: ../src/interface.cpp:837
 msgid "_Palette"
 msgstr "О_бразцы цветов"
 
-#: ../src/interface.cpp:848
+#: ../src/interface.cpp:837
 msgid "Show or hide the color palette"
 msgstr "Показать/скрыть панель с палитрой цветов"
 
-#: ../src/interface.cpp:850
+#: ../src/interface.cpp:839
 msgid "_Statusbar"
 msgstr "_Строка состояния"
 
-#: ../src/interface.cpp:850
+#: ../src/interface.cpp:839
 msgid "Show or hide the statusbar (at the bottom of the window)"
 msgstr "Показать/скрыть строку состояния (внизу окна)"
 
-#: ../src/interface.cpp:904
+#: ../src/interface.cpp:893
 #, c-format
 msgid "Verb \"%s\" Unknown"
 msgstr "Глагол \"%s\" неизвестен"
 
+#: ../src/interface.cpp:932
+msgid "Open _Recent"
+msgstr "Открыть н_едавние"
+
 #. TRANSLATORS: #%s is the id of the group e.g. <g id="#g7">, not a number.
-#: ../src/interface.cpp:1023
+#: ../src/interface.cpp:1030
 #, c-format
 msgid "Enter group #%s"
 msgstr "Войти в группу #%s"
 
-#: ../src/interface.cpp:1034
+#: ../src/interface.cpp:1041
 msgid "Go to parent"
 msgstr "На уровень выше"
 
-#: ../src/interface.cpp:1125
-#: ../src/interface.cpp:1210
+#: ../src/interface.cpp:1132
+#: ../src/interface.cpp:1218
 #: ../src/ui/widget/selected-style.cpp:462
 msgid "Drop color"
 msgstr "Перенос цвета"
 
-#: ../src/interface.cpp:1164
+#: ../src/interface.cpp:1171
 msgid "Drop color on gradient"
 msgstr "Перенос цвета на градиент"
 
-#: ../src/interface.cpp:1223
+#: ../src/interface.cpp:1231
 msgid "Could not parse SVG data"
 msgstr "Невозможно разобрать данные SVG"
 
-#: ../src/interface.cpp:1265
+#: ../src/interface.cpp:1274
 msgid "Drop SVG"
 msgstr "Drop SVG"
 
-#: ../src/interface.cpp:1323
+#: ../src/interface.cpp:1332
 msgid "Drop bitmap image"
 msgstr "Импорт растра"
 
-#: ../src/interface.cpp:1415
+#: ../src/interface.cpp:1424
 #, c-format
 msgid ""
 "<span weight=\"bold\" size=\"larger\">A file named \"%s\" already exists. Do you want to replace it?</span>\n"
@@ -5127,55 +5145,55 @@ msgstr ""
 "\n"
 "Этот файл уже есть в каталоге \"%s\". Замена перезапишет его содержание."
 
-#: ../src/interface.cpp:1422
+#: ../src/interface.cpp:1431
 msgid "Replace"
 msgstr "Заменить"
 
-#: ../src/io/sys.cpp:411
-#: ../src/io/sys.cpp:419
+#: ../src/io/sys.cpp:412
+#: ../src/io/sys.cpp:420
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr ""
 
-#: ../src/io/sys.cpp:443
+#: ../src/io/sys.cpp:444
 #, c-format
 msgid "Failed to change to directory '%s' (%s)"
 msgstr "Не удалось изменить каталог на '%s' (%s)"
 
-#: ../src/io/sys.cpp:449
-#: ../src/io/sys.cpp:675
+#: ../src/io/sys.cpp:450
+#: ../src/io/sys.cpp:676
 #, fuzzy, c-format
 msgid "Failed to execute child process (%s)"
 msgstr "Не удалось загрузить запрошенный файл %s"
 
-#: ../src/io/sys.cpp:622
+#: ../src/io/sys.cpp:623
 #, c-format
 msgid "Invalid program name: %s"
 msgstr "Некорректное название программы: %s"
 
-#: ../src/io/sys.cpp:632
-#: ../src/io/sys.cpp:921
+#: ../src/io/sys.cpp:633
+#: ../src/io/sys.cpp:922
 #, c-format
 msgid "Invalid string in argument vector at %d: %s"
 msgstr ""
 
-#: ../src/io/sys.cpp:643
-#: ../src/io/sys.cpp:936
+#: ../src/io/sys.cpp:644
+#: ../src/io/sys.cpp:937
 #, c-format
 msgid "Invalid string in environment: %s"
 msgstr "Некорректная строка в окружении: %s"
 
-#: ../src/io/sys.cpp:704
+#: ../src/io/sys.cpp:705
 #, fuzzy, c-format
 msgid "Failed to create pipe for communicating with child process (%s)"
 msgstr "Не удалось создать временный файл для печати: %s"
 
-#: ../src/io/sys.cpp:917
+#: ../src/io/sys.cpp:918
 #, c-format
 msgid "Invalid working directory: %s"
 msgstr "Некорректный рабочий каталог: %s"
 
-#: ../src/io/sys.cpp:985
+#: ../src/io/sys.cpp:986
 #, c-format
 msgid "Failed to execute helper program (%s)"
 msgstr "Не удалось выполнить вспомогательную программу (%s)"
@@ -5221,7 +5239,7 @@ msgstr "Отклонить приглашение"
 msgid "Inkboard session (%1 to %2)"
 msgstr "Сессия Inkboard (%1 до %2)"
 
-#: ../src/knot.cpp:431
+#: ../src/knot.cpp:432
 msgid "Node or handle drag canceled."
 msgstr "Перемещение отменено."
 
@@ -5263,8 +5281,8 @@ msgid "Dockbar style to show items on it"
 msgstr "Dockbar style to show items on it"
 
 #: ../src/libgdl/gdl-dock.c:175
-#: ../src/ui/dialog/inkscape-preferences.cpp:506
-#: ../src/ui/dialog/inkscape-preferences.cpp:527
+#: ../src/ui/dialog/inkscape-preferences.cpp:504
+#: ../src/ui/dialog/inkscape-preferences.cpp:525
 msgid "Floating"
 msgstr "Свободно перемещаются по экрану"
 
@@ -5457,9 +5475,9 @@ msgid "The new dock controller %p is automatic.  Only manual dock objects should
 msgstr "The new dock controller %p is automatic.  Only manual dock objects should be named controller."
 
 #: ../src/libgdl/gdl-dock-notebook.c:134
-#: ../src/ui/dialog/align-and-distribute.cpp:916
-#: ../src/ui/dialog/document-properties.cpp:134
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1367
+#: ../src/ui/dialog/align-and-distribute.cpp:923
+#: ../src/ui/dialog/document-properties.cpp:133
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1364
 #: ../src/widgets/desktop-widget.cpp:1544
 msgid "Page"
 msgstr "Страница"
@@ -6069,7 +6087,7 @@ msgid "Path along which intermediate steps are created."
 msgstr "Контур, по которому будут выстроены промежуточные фигуры"
 
 #: ../src/live_effects/lpe-interpolate.cpp:31
-#: ../src/ui/dialog/inkscape-preferences.cpp:202
+#: ../src/ui/dialog/inkscape-preferences.cpp:203
 msgid "Steps"
 msgstr "Шаги"
 
@@ -6086,32 +6104,31 @@ msgid "If true, the spacing between intermediates is constant along the length o
 msgstr "Если включено, интервал между промежуточными фигурами не меняется на протяжении всего контура. Если выключено, расстояние меняется в зависимости от положения узлов на контуре траектории."
 
 #. initialise your parameters here:
-#: ../src/live_effects/lpe-knot.cpp:281
+#: ../src/live_effects/lpe-knot.cpp:327
 msgid "Gap width"
 msgstr "Ширина интервала:"
 
-#: ../src/live_effects/lpe-knot.cpp:281
+#: ../src/live_effects/lpe-knot.cpp:327
 msgid "The width of the gap in the path where it self-intersects"
 msgstr "Ширина интервала в участках, где контур сам себя пересекает"
 
-#: ../src/live_effects/lpe-knot.cpp:282
-#, fuzzy
+#: ../src/live_effects/lpe-knot.cpp:328
 msgid "Switcher size"
-msgstr "СÑ\82илÑ\8c Ð¿ÐµÑ\80еклÑ\8eÑ\87аÑ\82елÑ\8f"
+msgstr "РазмеÑ\80 Ð¿ÐµÑ\80еклÑ\8eÑ\87аÑ\82елÑ\8f:"
 
-#: ../src/live_effects/lpe-knot.cpp:282
+#: ../src/live_effects/lpe-knot.cpp:328
 msgid "Orientation indicator/switcher size"
-msgstr ""
+msgstr "Размер индикатора-переключателя направления"
 
-#: ../src/live_effects/lpe-knot.cpp:283
+#: ../src/live_effects/lpe-knot.cpp:329
 msgid "Crossing Signs"
 msgstr ""
 
-#: ../src/live_effects/lpe-knot.cpp:283
+#: ../src/live_effects/lpe-knot.cpp:329
 msgid "Crossings signs"
 msgstr ""
 
-#: ../src/live_effects/lpe-knot.cpp:290
+#: ../src/live_effects/lpe-knot.cpp:336
 msgid "Drag to select a crossing, click to flip it"
 msgstr ""
 
@@ -6181,22 +6198,22 @@ msgid "Control handle 15"
 msgstr "Регулятор 15"
 
 #: ../src/live_effects/lpe-line_segment.cpp:27
-#: ../src/widgets/toolbox.cpp:5045
+#: ../src/widgets/toolbox.cpp:5027
 msgid "Closed"
 msgstr "Закрытый"
 
 #: ../src/live_effects/lpe-line_segment.cpp:28
-#: ../src/widgets/toolbox.cpp:5047
+#: ../src/widgets/toolbox.cpp:5029
 msgid "Open start"
 msgstr "С открытым началом"
 
 #: ../src/live_effects/lpe-line_segment.cpp:29
-#: ../src/widgets/toolbox.cpp:5049
+#: ../src/widgets/toolbox.cpp:5031
 msgid "Open end"
 msgstr "С открытым концом"
 
 #: ../src/live_effects/lpe-line_segment.cpp:30
-#: ../src/widgets/toolbox.cpp:5051
+#: ../src/widgets/toolbox.cpp:5033
 msgid "Open both"
 msgstr "Открыт с обеих сторон"
 
@@ -6250,10 +6267,10 @@ msgstr "Изменить правый конец параллели"
 
 #: ../src/live_effects/lpe-path_length.cpp:25
 #: ../src/live_effects/lpe-sketch.cpp:54
-#: ../src/selection-chemistry.cpp:1468
-#: ../src/seltrans.cpp:455
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2239
-#: ../src/ui/dialog/transformation.cpp:736
+#: ../src/selection-chemistry.cpp:1478
+#: ../src/seltrans.cpp:448
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2240
+#: ../src/ui/dialog/transformation.cpp:738
 msgid "Scale"
 msgstr "Масштабирование"
 
@@ -6409,89 +6426,89 @@ msgstr ""
 msgid "Adjust the origin"
 msgstr "Изменить исходную точку"
 
-#: ../src/live_effects/lpe-ruler.cpp:26
+#: ../src/live_effects/lpe-ruler.cpp:27
 #: ../share/extensions/restack.inx.h:7
 msgid "Left"
 msgstr "Слева"
 
-#: ../src/live_effects/lpe-ruler.cpp:27
+#: ../src/live_effects/lpe-ruler.cpp:28
 #: ../share/extensions/restack.inx.h:14
 msgid "Right"
 msgstr "Справа"
 
-#: ../src/live_effects/lpe-ruler.cpp:28
-#: ../src/live_effects/lpe-ruler.cpp:36
+#: ../src/live_effects/lpe-ruler.cpp:29
+#: ../src/live_effects/lpe-ruler.cpp:37
 msgid "Both"
 msgstr "Оба"
 
-#: ../src/live_effects/lpe-ruler.cpp:34
-#: ../src/widgets/toolbox.cpp:4704
+#: ../src/live_effects/lpe-ruler.cpp:35
+#: ../src/widgets/toolbox.cpp:4686
 msgid "Start"
 msgstr "Начало"
 
-#: ../src/live_effects/lpe-ruler.cpp:35
-#: ../src/widgets/toolbox.cpp:4717
+#: ../src/live_effects/lpe-ruler.cpp:36
+#: ../src/widgets/toolbox.cpp:4699
 msgid "End"
 msgstr "Конец"
 
-#: ../src/live_effects/lpe-ruler.cpp:42
+#: ../src/live_effects/lpe-ruler.cpp:43
 msgid "Mark distance"
 msgstr "Расстояние между метками:"
 
-#: ../src/live_effects/lpe-ruler.cpp:42
+#: ../src/live_effects/lpe-ruler.cpp:43
 msgid "Distance between successive ruler marks"
 msgstr "Расстояние между соседними метками линейки"
 
-#: ../src/live_effects/lpe-ruler.cpp:43
+#: ../src/live_effects/lpe-ruler.cpp:44
 msgid "Major length"
 msgstr "Основные метки:"
 
-#: ../src/live_effects/lpe-ruler.cpp:43
+#: ../src/live_effects/lpe-ruler.cpp:44
 msgid "Length of major ruler marks"
 msgstr "Длина основных меток линейки"
 
-#: ../src/live_effects/lpe-ruler.cpp:44
+#: ../src/live_effects/lpe-ruler.cpp:45
 msgid "Minor length"
 msgstr "Вспомогательные метки:"
 
-#: ../src/live_effects/lpe-ruler.cpp:44
+#: ../src/live_effects/lpe-ruler.cpp:45
 msgid "Length of minor ruler marks"
 msgstr "Длина вспомогательных меток линейки"
 
-#: ../src/live_effects/lpe-ruler.cpp:45
+#: ../src/live_effects/lpe-ruler.cpp:46
 msgid "Major steps"
 msgstr ""
 
-#: ../src/live_effects/lpe-ruler.cpp:45
+#: ../src/live_effects/lpe-ruler.cpp:46
 msgid "Draw a major mark every ... steps"
 msgstr ""
 
-#: ../src/live_effects/lpe-ruler.cpp:46
+#: ../src/live_effects/lpe-ruler.cpp:47
 msgid "Shift marks by"
 msgstr "Смещать метки на:"
 
-#: ../src/live_effects/lpe-ruler.cpp:46
+#: ../src/live_effects/lpe-ruler.cpp:47
 msgid "Shift marks by this many steps"
 msgstr ""
 
-#: ../src/live_effects/lpe-ruler.cpp:47
+#: ../src/live_effects/lpe-ruler.cpp:48
 msgid "Mark direction"
 msgstr "Направление меток:"
 
-#: ../src/live_effects/lpe-ruler.cpp:47
+#: ../src/live_effects/lpe-ruler.cpp:48
 msgid "Direction of marks (when viewing along the path from start to end)"
 msgstr ""
 
-#: ../src/live_effects/lpe-ruler.cpp:48
+#: ../src/live_effects/lpe-ruler.cpp:49
 msgid "Offset of first mark"
 msgstr ""
 
-#: ../src/live_effects/lpe-ruler.cpp:49
+#: ../src/live_effects/lpe-ruler.cpp:50
 #, fuzzy
 msgid "Border marks"
 msgstr "Цвет _каймы:"
 
-#: ../src/live_effects/lpe-ruler.cpp:49
+#: ../src/live_effects/lpe-ruler.cpp:50
 msgid "Choose whether to draw marks at the beginning and end of the path"
 msgstr ""
 
@@ -6609,11 +6626,6 @@ msgstr "Вариативность длины:"
 msgid "Random variation of the length of construction lines"
 msgstr "Случайно варьирование длины карандашных штрихов"
 
-#: ../src/live_effects/lpe-spiro.cpp:227
-#, fuzzy
-msgid "An exception occurred during execution of the Spiro Path Effect."
-msgstr "Прерывание при выполнении контурного эффекта"
-
 #: ../src/live_effects/lpe-tangent_to_curve.cpp:56
 #: ../share/extensions/motion.inx.h:1
 #: ../share/extensions/restack.inx.h:1
@@ -6661,6 +6673,11 @@ msgstr "Шаг складывания в стопку"
 msgid "point param"
 msgstr "пентаграмма"
 
+#: ../src/live_effects/lpe-test-doEffect-stack.cpp:24
+#, fuzzy
+msgid "path param"
+msgstr "пентаграмма"
+
 #: ../src/live_effects/lpe-text_label.cpp:22
 msgid "Label"
 msgstr "Метка:"
@@ -6669,59 +6686,56 @@ msgstr "Метка:"
 msgid "Text label attached to the path"
 msgstr "Текстовая метка, привязанная к контуру"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:42
-msgid "Bounding box"
-msgstr "Площадка (BB)"
-
-#: ../src/live_effects/lpe-vonkoch.cpp:43
-msgid "Last gen. segment"
-msgstr "Последний созданный сегмент"
-
-#: ../src/live_effects/lpe-vonkoch.cpp:49
-msgid "Nb of generations"
-msgstr "Количество поколений"
+#: ../src/live_effects/lpe-vonkoch.cpp:47
+#, fuzzy
+msgid "Reference segment"
+msgstr "Удаление сегмента"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:49
-msgid "Depth of the recursion --- keep low!!"
-msgstr "Глубина рекурсии — должна быть небольшой!"
+#: ../src/live_effects/lpe-vonkoch.cpp:47
+msgid "The reference segment. Defaults to bbox diameter."
+msgstr ""
 
+#. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this),
+#. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this),
 #: ../src/live_effects/lpe-vonkoch.cpp:50
 msgid "Generating path"
 msgstr "Порождающий контур"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:50
-msgid "Path whos segments define the fractal"
+#, fuzzy
+msgid "Path whose segments define the iterated transforms"
 msgstr "Контур, чьи сегменты определяют фрактал"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:51
-msgid "Use uniform scale/rotation only"
+msgid "Use uniform transforms only"
 msgstr ""
 
 #: ../src/live_effects/lpe-vonkoch.cpp:51
-msgid "If off, 2segments component of generating path can be used to define a general rtansform. If on, they only affect the orientation preserving/reversing of the transform."
+msgid "2 consecutive segments are used to reverse/preserve orientation only (otherwise, they define a general transform)."
 msgstr ""
 
 #: ../src/live_effects/lpe-vonkoch.cpp:52
-msgid "Draw all generations"
-msgstr "РиÑ\81оваÑ\82Ñ\8c Ð²Ñ\81е Ð¿Ð¾ÐºÐ¾Ð»ÐµÐ½Ð¸Ñ\8f"
+msgid "Nb of generations"
+msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во Ð¿Ð¾ÐºÐ¾Ð»ÐµÐ½Ð¸Ð¹"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:52
-msgid "If unchecked, draw only the last generation"
-msgstr "Ð\95Ñ\81ли Ð¾Ñ\82клÑ\8eÑ\87ено, Ñ\80иÑ\81оваÑ\82Ñ\8c Ñ\82олÑ\8cко Ð¿Ð¾Ñ\81леднее Ð¿Ð¾ÐºÐ¾Ð»ÐµÐ½Ð¸Ðµ"
+msgid "Depth of the recursion --- keep low!!"
+msgstr "Ð\93лÑ\83бина Ñ\80екÑ\83Ñ\80Ñ\81ии â\80\94 Ð´Ð¾Ð»Ð¶Ð½Ð° Ð±Ñ\8bÑ\82Ñ\8c Ð½ÐµÐ±Ð¾Ð»Ñ\8cÑ\88ой!"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:53
-msgid "Reference"
-msgstr "Ð\9eÑ\80иенÑ\82иÑ\80:"
+msgid "Draw all generations"
+msgstr "РиÑ\81оваÑ\82Ñ\8c Ð²Ñ\81е Ð¿Ð¾ÐºÐ¾Ð»ÐµÐ½Ð¸Ñ\8f"
 
 #: ../src/live_effects/lpe-vonkoch.cpp:53
-msgid "Generating path segments define transforms in reference to bbox or last segment"
-msgstr ""
+msgid "If unchecked, draw only the last generation"
+msgstr "Если отключено, рисовать только последнее поколение"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:54
+#. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug.
+#: ../src/live_effects/lpe-vonkoch.cpp:55
 msgid "Max complexity"
 msgstr "Макс. сложность"
 
-#: ../src/live_effects/lpe-vonkoch.cpp:54
+#: ../src/live_effects/lpe-vonkoch.cpp:55
 msgid "Disable effect if the output is too complex"
 msgstr "Отключить эффект, если вывод слишком сложен"
 
@@ -6767,7 +6781,7 @@ msgstr "Вставить параметр контура"
 msgid "Change point parameter"
 msgstr "Смена точечного параметра"
 
-#: ../src/live_effects/parameter/pointparam-knotholder.cpp:133
+#: ../src/live_effects/parameter/pointparam-knotholder.cpp:134
 #, fuzzy
 msgid "Change LPE point parameter"
 msgstr "Смена точечного параметра"
@@ -6785,7 +6799,7 @@ msgstr "Смена текстового параметра"
 msgid "Change unit parameter"
 msgstr "Смена точечного параметра"
 
-#: ../src/lpe-tool-context.cpp:269
+#: ../src/lpe-tool-context.cpp:271
 #, fuzzy
 msgid "Choose a construction tool from the toolbar."
 msgstr "Выберите режим инструмента из его контекстной панели"
@@ -6800,216 +6814,208 @@ msgstr "Не удалось найти ID команды '%s', указанны
 msgid "Unable to find node ID: '%s'\n"
 msgstr "Невозможно найти ID узла: '%s'\n"
 
-#: ../src/main.cpp:262
+#: ../src/main.cpp:256
 msgid "Print the Inkscape version number"
 msgstr "Напечатать версию Inkscape"
 
-#: ../src/main.cpp:267
+#: ../src/main.cpp:261
 msgid "Do not use X server (only process files from console)"
 msgstr "Не использовать X сервер (допустимы только консольные операции)"
 
-#: ../src/main.cpp:272
+#: ../src/main.cpp:266
 msgid "Try to use X server (even if $DISPLAY is not set)"
 msgstr "Пытаться использовать X сервер (даже если переменная $DISPLAY не установлена)"
 
-#: ../src/main.cpp:277
+#: ../src/main.cpp:271
 msgid "Open specified document(s) (option string may be excluded)"
 msgstr "Открыть указанные документы (строка параметра может быть исключена)"
 
-#: ../src/main.cpp:278
-#: ../src/main.cpp:283
-#: ../src/main.cpp:288
-#: ../src/main.cpp:355
-#: ../src/main.cpp:360
-#: ../src/main.cpp:365
+#: ../src/main.cpp:272
+#: ../src/main.cpp:277
+#: ../src/main.cpp:282
+#: ../src/main.cpp:349
+#: ../src/main.cpp:354
+#: ../src/main.cpp:359
+#: ../src/main.cpp:364
 #: ../src/main.cpp:370
-#: ../src/main.cpp:376
 msgid "FILENAME"
 msgstr "FILENAME"
 
-#: ../src/main.cpp:282
+#: ../src/main.cpp:276
 msgid "Print document(s) to specified output file (use '| program' for pipe)"
 msgstr "Напечатать документ(ы) в указанный файл (используйте '| program' для передачи программе)"
 
-#: ../src/main.cpp:287
+#: ../src/main.cpp:281
 msgid "Export document to a PNG file"
 msgstr "Экспортировать документ в файл PNG"
 
-#: ../src/main.cpp:292
+#: ../src/main.cpp:286
 msgid "The resolution used for exporting SVG into bitmap (default 90)"
 msgstr "Разрешение, используемое для экспорта SVG в растр (по умолчанию 90)"
 
-#: ../src/main.cpp:293
+#: ../src/main.cpp:287
 #: ../src/ui/widget/rendering-options.cpp:43
 msgid "DPI"
 msgstr "DPI"
 
-#: ../src/main.cpp:297
+#: ../src/main.cpp:291
 msgid "Exported area in SVG user units (default is the canvas; 0,0 is lower-left corner)"
 msgstr "Экспортируемая область в SVG пользовательских единицах измерения (по умолчанию - вся канва; 0,0 - левый нижний угол)"
 
-#: ../src/main.cpp:298
+#: ../src/main.cpp:292
 msgid "x0:y0:x1:y1"
 msgstr "x0:y0:x1:y1"
 
-#: ../src/main.cpp:302
+#: ../src/main.cpp:296
 msgid "Exported area is the entire drawing (not canvas)"
 msgstr "Экспортируемая область включает в себя весь рисунок (а не страницу)"
 
-#: ../src/main.cpp:307
+#: ../src/main.cpp:301
 msgid "Exported area is the entire canvas"
 msgstr "Экспортируемая область включает в себя весь холст"
 
-#: ../src/main.cpp:312
+#: ../src/main.cpp:306
 msgid "Snap the bitmap export area outwards to the nearest integer values (in SVG user units)"
 msgstr "Расширить область экспортируемого растра до ближайших целых значений (в SVG единицах)"
 
-#: ../src/main.cpp:317
+#: ../src/main.cpp:311
 msgid "The width of exported bitmap in pixels (overrides export-dpi)"
 msgstr "Ширина экспортируемого растра в точках (отменяет export-dpi)"
 
-#: ../src/main.cpp:318
+#: ../src/main.cpp:312
 msgid "WIDTH"
 msgstr "WIDTH"
 
-#: ../src/main.cpp:322
+#: ../src/main.cpp:316
 msgid "The height of exported bitmap in pixels (overrides export-dpi)"
 msgstr "Высота экспортируемого растра в точках (отменяет export-dpi)"
 
-#: ../src/main.cpp:323
+#: ../src/main.cpp:317
 msgid "HEIGHT"
 msgstr "HEIGHT"
 
-#: ../src/main.cpp:327
+#: ../src/main.cpp:321
 msgid "The ID of the object to export"
 msgstr "Идентификатор экспортируемого объекта"
 
-#: ../src/main.cpp:328
-#: ../src/main.cpp:426
+#: ../src/main.cpp:322
+#: ../src/main.cpp:410
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this means: "Only export the object whose id is given in --export-id".
 #. See "man inkscape" for details.
-#: ../src/main.cpp:334
+#: ../src/main.cpp:328
 msgid "Export just the object with export-id, hide all others (only with export-id)"
 msgstr "Экспортировать только объект с заданным export-id, скрыв все прочие объекты (только с опцией export-id)"
 
-#: ../src/main.cpp:339
+#: ../src/main.cpp:333
 msgid "Use stored filename and DPI hints when exporting (only with export-id)"
 msgstr "Использовать сохраненное имя файла и разрешение при экспорте (только с опцией export-id)"
 
-#: ../src/main.cpp:344
+#: ../src/main.cpp:338
 msgid "Background color of exported bitmap (any SVG-supported color string)"
 msgstr "Фоновый цвет для экспорта растра (любая поддерживаемая в SVG цветовая строка)"
 
-#: ../src/main.cpp:345
+#: ../src/main.cpp:339
 msgid "COLOR"
 msgstr "COLOR"
 
-#: ../src/main.cpp:349
+#: ../src/main.cpp:343
 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:350
+#: ../src/main.cpp:344
 msgid "VALUE"
 msgstr "VALUE"
 
-#: ../src/main.cpp:354
+#: ../src/main.cpp:348
 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)"
 msgstr "Экспортировать документ в формат чистый SVG (без пространств имен sodipodi: или inkscape:)"
 
-#: ../src/main.cpp:359
+#: ../src/main.cpp:353
 msgid "Export document to a PS file"
 msgstr "Экспортировать документ в файл PS"
 
-#: ../src/main.cpp:364
+#: ../src/main.cpp:358
 msgid "Export document to an EPS file"
 msgstr "Экспортировать документ в файл EPS"
 
-#: ../src/main.cpp:369
+#: ../src/main.cpp:363
 msgid "Export document to a PDF file"
 msgstr "Экспортировать документ в файл PDF"
 
-#: ../src/main.cpp:375
+#: ../src/main.cpp:369
 msgid "Export document to an Enhanced Metafile (EMF) File"
 msgstr "Экспортировать документ в файл Enhanced Metafile (EMF)"
 
-#: ../src/main.cpp:381
+#: ../src/main.cpp:375
 msgid "Convert text object to paths on export (EPS)"
 msgstr "Перевести текст в контуры при экспорте (EPS)"
 
-#: ../src/main.cpp:386
-msgid "Embed fonts on export (Type 1 only) (EPS)"
-msgstr "Встроить шрифтовый файл (только Type 1) при экспорте (EPS)"
-
-#: ../src/main.cpp:391
-msgid "Export files with the bounding box set to the page size (EPS)"
-msgstr "При экспорте установить значение BoundingBox равным размеру страницы, а не рисунка (EPS)"
-
 #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:397
+#: ../src/main.cpp:381
 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:403
+#: ../src/main.cpp:387
 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:409
+#: ../src/main.cpp:393
 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:415
+#: ../src/main.cpp:399
 msgid "Query the height of the drawing or, if specified, of the object with --query-id"
 msgstr "Запросить высоту рисунка или, если задано, объекта с --query-id"
 
-#: ../src/main.cpp:420
+#: ../src/main.cpp:404
 msgid "List id,x,y,w,h for all objects"
 msgstr "Перечислить id,x,y,w,h для всех объектов"
 
-#: ../src/main.cpp:425
+#: ../src/main.cpp:409
 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:431
+#: ../src/main.cpp:415
 msgid "Print out the extension directory and exit"
 msgstr "Вывести на экран каталог расширения и выйти"
 
-#: ../src/main.cpp:436
+#: ../src/main.cpp:420
 msgid "Remove unused definitions from the defs section(s) of the document"
 msgstr "Убрать лишние определения из раздела &lt;defs&gt; документа"
 
-#: ../src/main.cpp:441
+#: ../src/main.cpp:425
 msgid "List the IDs of all the verbs in Inkscape"
 msgstr "Вывести список ID всех действий Inkscape"
 
-#: ../src/main.cpp:446
+#: ../src/main.cpp:430
 msgid "Verb to call when Inkscape opens."
 msgstr "Вызываемое действие при открытии Inkscape."
 
-#: ../src/main.cpp:447
+#: ../src/main.cpp:431
 msgid "VERB-ID"
 msgstr "ДЕЙСТВИЕ-ID"
 
-#: ../src/main.cpp:451
+#: ../src/main.cpp:435
 msgid "Object ID to select when Inkscape opens."
 msgstr "ID объекта, выделяемого при открытии документа в Inkscape."
 
-#: ../src/main.cpp:452
+#: ../src/main.cpp:436
 msgid "OBJECT-ID"
 msgstr "ОБЪЕКТ-ID"
 
-#: ../src/main.cpp:456
+#: ../src/main.cpp:440
 msgid "Start Inkscape in interative shell mode."
 msgstr "Запустить Inkscape в интерактивном командном режиме"
 
-#: ../src/main.cpp:737
-#: ../src/main.cpp:972
+#: ../src/main.cpp:721
+#: ../src/main.cpp:957
 msgid ""
 "[OPTIONS...] [FILE...]\n"
 "\n"
@@ -7023,41 +7029,39 @@ msgstr ""
 msgid "_New"
 msgstr "_Создать"
 
-#: ../src/menus-skeleton.h:22
-msgid "Open _Recent"
-msgstr "Открыть н_едавние"
-
-#: ../src/menus-skeleton.h:50
-#: ../src/verbs.cpp:2461
-#: ../src/verbs.cpp:2467
+#: ../src/menus-skeleton.h:48
+#: ../src/verbs.cpp:2464
+#: ../src/verbs.cpp:2470
 msgid "_Edit"
 msgstr "_Правка"
 
-#: ../src/menus-skeleton.h:60
-#: ../src/verbs.cpp:2257
+#: ../src/menus-skeleton.h:58
+#: ../src/verbs.cpp:2260
 msgid "Paste Si_ze"
 msgstr "Вставить _размер"
 
-#: ../src/menus-skeleton.h:72
+#: ../src/menus-skeleton.h:70
 msgid "Clo_ne"
 msgstr "Клон_ы"
 
-#: ../src/menus-skeleton.h:92
+#: ../src/menus-skeleton.h:90
 msgid "_View"
 msgstr "_Вид"
 
-#: ../src/menus-skeleton.h:93
+#: ../src/menus-skeleton.h:91
 msgid "_Zoom"
 msgstr "_Масштаб"
 
-#: ../src/menus-skeleton.h:109
+#: ../src/menus-skeleton.h:107
 msgid "_Display mode"
 msgstr "Отобр_ажение"
 
-#: ../src/menus-skeleton.h:121
+#: ../src/menus-skeleton.h:119
 msgid "Show/Hide"
 msgstr "Показать или спрятать"
 
+#. Not quite ready to be in the menus.
+#. "       <verb verb-id=\"FocusToggle\" />\n"
 #: ../src/menus-skeleton.h:138
 msgid "_Layer"
 msgstr "С_лой"
@@ -7118,182 +7122,182 @@ msgstr "<b>Shift</b>: выделить/развыделить узел, откл
 msgid "<b>Alt</b>: lock handle length; <b>Ctrl+Alt</b>: move along handles"
 msgstr "<b>Alt</b>: зафиксировать длину рычага; <b>Ctrl+Alt</b>: двигать вдоль рычагов"
 
-#: ../src/nodepath.cpp:739
-#: ../src/seltrans.cpp:548
+#: ../src/nodepath.cpp:749
+#: ../src/seltrans.cpp:541
 msgid "Stamp"
 msgstr "Штамповка"
 
-#: ../src/nodepath.cpp:1591
-#: ../src/nodepath.cpp:1617
+#: ../src/nodepath.cpp:1602
+#: ../src/nodepath.cpp:1628
 msgid "Move nodes vertically"
 msgstr "Смещение узлов по вертикали"
 
-#: ../src/nodepath.cpp:1593
-#: ../src/nodepath.cpp:1619
+#: ../src/nodepath.cpp:1604
+#: ../src/nodepath.cpp:1630
 msgid "Move nodes horizontally"
 msgstr "Смещение узлов по горизонтали"
 
-#: ../src/nodepath.cpp:1595
-#: ../src/nodepath.cpp:1621
-#: ../src/nodepath.cpp:1636
-#: ../src/nodepath.cpp:3490
+#: ../src/nodepath.cpp:1606
+#: ../src/nodepath.cpp:1632
+#: ../src/nodepath.cpp:1647
+#: ../src/nodepath.cpp:3501
 msgid "Move nodes"
 msgstr "Смещение узлов"
 
-#: ../src/nodepath.cpp:1674
+#: ../src/nodepath.cpp:1685
 msgid "<b>Node handle</b>: drag to shape the curve; with <b>Ctrl</b> to snap angle; with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both handles"
 msgstr "<b>Рычаг узла</b>: перетаскивание с <b>Ctrl</b> ограничивает угол; с <b>Alt</b> фиксирует длину; с <b>Shift</b> синхронно вращает противоположный рычаг"
 
-#: ../src/nodepath.cpp:1844
+#: ../src/nodepath.cpp:1855
 msgid "Align nodes"
 msgstr "Выровнять узлы"
 
-#: ../src/nodepath.cpp:1906
+#: ../src/nodepath.cpp:1917
 msgid "Distribute nodes"
 msgstr "Расстановка узлов"
 
-#: ../src/nodepath.cpp:1944
+#: ../src/nodepath.cpp:1955
 msgid "Add nodes"
 msgstr "Добавление узлов"
 
-#: ../src/nodepath.cpp:1946
-#: ../src/nodepath.cpp:2045
+#: ../src/nodepath.cpp:1957
+#: ../src/nodepath.cpp:2056
 msgid "Add node"
 msgstr "Добавление узла"
 
-#: ../src/nodepath.cpp:2128
+#: ../src/nodepath.cpp:2139
 msgid "Break path"
 msgstr "Разбитие контура"
 
-#: ../src/nodepath.cpp:2184
+#: ../src/nodepath.cpp:2195
 msgid "Close subpath"
 msgstr "Закрытие подконтура"
 
-#: ../src/nodepath.cpp:2245
+#: ../src/nodepath.cpp:2256
 msgid "Join nodes"
 msgstr "Соединение узлов"
 
-#: ../src/nodepath.cpp:2272
+#: ../src/nodepath.cpp:2283
 msgid "Close subpath by segment"
 msgstr "Закрытие подконтура сегментом"
 
-#: ../src/nodepath.cpp:2326
+#: ../src/nodepath.cpp:2337
 msgid "Join nodes by segment"
 msgstr "Соединение узлов сегментом"
 
-#: ../src/nodepath.cpp:2339
-#: ../src/nodepath.cpp:2354
+#: ../src/nodepath.cpp:2350
+#: ../src/nodepath.cpp:2365
 msgid "To join, you must have <b>two endnodes</b> selected."
 msgstr "Для соединения выделите <b>два оконечных узла</b>."
 
-#: ../src/nodepath.cpp:2511
-#: ../src/nodepath.cpp:2547
-#: ../src/nodepath.cpp:2551
+#: ../src/nodepath.cpp:2522
+#: ../src/nodepath.cpp:2558
+#: ../src/nodepath.cpp:2562
 msgid "Delete nodes"
 msgstr "Удаление узлов"
 
-#: ../src/nodepath.cpp:2513
+#: ../src/nodepath.cpp:2524
 msgid "Delete nodes preserving shape"
 msgstr "Удаление узлов без смены формы"
 
-#: ../src/nodepath.cpp:2570
-#: ../src/nodepath.cpp:2584
+#: ../src/nodepath.cpp:2581
+#: ../src/nodepath.cpp:2595
 msgid "Select <b>two non-endpoint nodes</b> on a path between which to delete segments."
 msgstr "Выделите <b>два неоконечных узла</b> контура, чтобы удалить сегменты между ними"
 
-#: ../src/nodepath.cpp:2680
+#: ../src/nodepath.cpp:2691
 msgid "Cannot find path between nodes."
 msgstr "Невозможно найти контур между узлами."
 
-#: ../src/nodepath.cpp:2712
-#: ../src/widgets/toolbox.cpp:1319
+#: ../src/nodepath.cpp:2723
+#: ../src/widgets/toolbox.cpp:1318
 msgid "Delete segment"
 msgstr "Удаление сегмента"
 
-#: ../src/nodepath.cpp:2733
+#: ../src/nodepath.cpp:2744
 msgid "Change segment type"
 msgstr "Смена типа сегмента"
 
-#: ../src/nodepath.cpp:2750
-#: ../src/nodepath.cpp:3448
+#: ../src/nodepath.cpp:2761
+#: ../src/nodepath.cpp:3459
 msgid "Change node type"
 msgstr "Смена типа узла"
 
-#: ../src/nodepath.cpp:3736
+#: ../src/nodepath.cpp:3747
 msgid "Retract handle"
 msgstr "Втяжка узла"
 
-#: ../src/nodepath.cpp:3785
+#: ../src/nodepath.cpp:3796
 msgid "Move node handle"
 msgstr "Смещение рычага узла"
 
-#: ../src/nodepath.cpp:3970
+#: ../src/nodepath.cpp:3982
 #, c-format
 msgid "<b>Node handle</b>: angle %0.2f&#176;, length %s; with <b>Ctrl</b> to snap angle; with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both handles"
 msgstr "<b>Рычаг узла</b> под углом %0.2f&#176;, длина %s; перетаскивание с <b>Ctrl</b> ограничивает угол; с <b>Alt</b> фиксирует длину; с <b>Shift</b> синхронно вращает противоположный рычаг"
 
-#: ../src/nodepath.cpp:4164
+#: ../src/nodepath.cpp:4176
 msgid "Rotate nodes"
 msgstr "Вращение узлов"
 
-#: ../src/nodepath.cpp:4295
+#: ../src/nodepath.cpp:4307
 msgid "Scale nodes"
 msgstr "Масштабирование узлов"
 
-#: ../src/nodepath.cpp:4339
+#: ../src/nodepath.cpp:4351
 msgid "Flip nodes"
 msgstr "Зеркалирование узлов"
 
-#: ../src/nodepath.cpp:4508
+#: ../src/nodepath.cpp:4520
 msgid "<b>Node</b>: drag to edit the path; with <b>Ctrl</b> to snap to horizontal/vertical; with <b>Ctrl+Alt</b> to snap to handles' directions"
 msgstr "<b>Узел</b>: перетаскивание при нажатой клавише <b>Ctrl</b> — с прилипанием по горизонтали/вертикали; с <b>Ctrl+Alt</b> — вдоль рычагов"
 
 #. TRANSLATORS: "end" is an adjective here (NOT a verb)
-#: ../src/nodepath.cpp:4742
+#: ../src/nodepath.cpp:4754
 msgid "end node"
 msgstr "оконечный узел"
 
 #. TRANSLATORS: "cusp" means "sharp" (cusp node); see also the Advanced Tutorial
-#: ../src/nodepath.cpp:4747
+#: ../src/nodepath.cpp:4759
 msgid "cusp"
 msgstr "острый"
 
 #. TRANSLATORS: "smooth" is an adjective here
-#: ../src/nodepath.cpp:4750
+#: ../src/nodepath.cpp:4762
 msgid "smooth"
 msgstr "гладкий"
 
-#: ../src/nodepath.cpp:4752
+#: ../src/nodepath.cpp:4764
 msgid "symmetric"
 msgstr "симметричный"
 
 #. TRANSLATORS: "end" is an adjective here (NOT a verb)
-#: ../src/nodepath.cpp:4758
+#: ../src/nodepath.cpp:4770
 msgid "end node, handle retracted (drag with <b>Shift</b> to extend)"
 msgstr "оконечный узел, рычаг втянут (вытаскивается с <b>Shift</b>)"
 
-#: ../src/nodepath.cpp:4760
+#: ../src/nodepath.cpp:4772
 msgid "one handle retracted (drag with <b>Shift</b> to extend)"
 msgstr "один рычаг втянут (вытаскивается с <b>Shift</b>)"
 
-#: ../src/nodepath.cpp:4763
+#: ../src/nodepath.cpp:4775
 msgid "both handles retracted (drag with <b>Shift</b> to extend)"
 msgstr "оба рычага втянуты (вытаскиваются с <b>Shift</b>)"
 
-#: ../src/nodepath.cpp:4775
+#: ../src/nodepath.cpp:4787
 msgid "<b>Drag</b> nodes or node handles; <b>Alt+drag</b> nodes to sculpt; <b>arrow</b> keys to move nodes, <b>&lt; &gt;</b> to scale, <b>[ ]</b> to rotate"
 msgstr "<b>Перетаскивайте</b> узлы или рычаги; <b>Alt+перетаскивание</b> узлов для лепки; клавиши <b>со стрелками</b> для смещения узлов, <b>&lt; &gt;</b> для масштабирования, <b>[ ]</b> для вращения"
 
-#: ../src/nodepath.cpp:4776
+#: ../src/nodepath.cpp:4788
 msgid "<b>Drag</b> the node or its handles; <b>arrow</b> keys to move the node"
 msgstr "Перетаскивайте узел или его рычаги; клавиши-стрелки двигают узел"
 
-#: ../src/nodepath.cpp:4802
 #: ../src/nodepath.cpp:4814
+#: ../src/nodepath.cpp:4826
 msgid "Select a single object to edit its nodes or handles."
 msgstr "Выберите один объект для изменения его узлов или рычагов."
 
-#: ../src/nodepath.cpp:4806
+#: ../src/nodepath.cpp:4818
 #, c-format
 msgid "<b>0</b> out of <b>%i</b> node selected. <b>Click</b>, <b>Shift+click</b>, or <b>drag around</b> nodes to select."
 msgid_plural "<b>0</b> out of <b>%i</b> nodes selected. <b>Click</b>, <b>Shift+click</b>, or <b>drag around</b> nodes to select."
@@ -7301,11 +7305,11 @@ msgstr[0] "Выделен <b>0</b> из <b>%i</b> узлов. Для выдел
 msgstr[1] "Выделено <b>0</b> из <b>%i</b> узлов.  Для выделения узлов используйте щелчок, Shift+щелчок, либо обведение рамкой."
 msgstr[2] "Выделено <b>0</b> из <b>%i</b> узлов.  Для выделения узлов используйте щелчок, Shift+щелчок, либо обведение рамкой."
 
-#: ../src/nodepath.cpp:4812
+#: ../src/nodepath.cpp:4824
 msgid "Drag the handles of the object to modify it."
 msgstr "Двигайте ручки фигуры, чтобы изменить ее."
 
-#: ../src/nodepath.cpp:4820
+#: ../src/nodepath.cpp:4832
 #, c-format
 msgid "<b>%i</b> of <b>%i</b> node selected; %s. %s."
 msgid_plural "<b>%i</b> of <b>%i</b> nodes selected; %s. %s."
@@ -7313,7 +7317,7 @@ msgstr[0] "<b>%i</b> из <b>%i</b> узла выделен; %s. %s."
 msgstr[1] "<b>%i</b> из <b>%i</b> узлов выделено; %s. %s."
 msgstr[2] "<b>%i</b> из <b>%i</b> узлов выделено; %s. %s."
 
-#: ../src/nodepath.cpp:4827
+#: ../src/nodepath.cpp:4839
 #, c-format
 msgid "<b>%i</b> of <b>%i</b> node selected in <b>%i</b> of <b>%i</b> subpaths. %s."
 msgid_plural "<b>%i</b> of <b>%i</b> nodes selected in <b>%i</b> of <b>%i</b> subpaths. %s."
@@ -7321,7 +7325,7 @@ msgstr[0] "<b>%i</b> из <b>%i</b> узла выделен в <b>%i</b> из <b
 msgstr[1] "<b>%i</b> из <b>%i</b> узлов выделено в <b>%i</b> из <b>%i</b> субконтуров. %s."
 msgstr[2] "<b>%i</b> из <b>%i</b> узлов выделено в <b>%i</b> из <b>%i</b> субконтуров. %s."
 
-#: ../src/nodepath.cpp:4833
+#: ../src/nodepath.cpp:4845
 #, c-format
 msgid "<b>%i</b> of <b>%i</b> node selected. %s."
 msgid_plural "<b>%i</b> of <b>%i</b> nodes selected. %s."
@@ -7361,44 +7365,44 @@ msgstr "Изменить размер вдоль оси Z; с <b>Shift</b> — 
 msgid "Move the box in perspective"
 msgstr "Перемещение параллелепипеда в перспективе"
 
-#: ../src/object-edit.cpp:894
+#: ../src/object-edit.cpp:896
 msgid "Adjust ellipse <b>width</b>, with <b>Ctrl</b> to make circle"
 msgstr "Менять <b>большую ось</b> эллипса. <b>Ctrl</b> дает круг."
 
-#: ../src/object-edit.cpp:897
+#: ../src/object-edit.cpp:899
 msgid "Adjust ellipse <b>height</b>, with <b>Ctrl</b> to make circle"
 msgstr "Менять <b>малую ось</b> эллипса. <b>Ctrl</b> дает круг."
 
-#: ../src/object-edit.cpp:900
+#: ../src/object-edit.cpp:902
 #, fuzzy
 msgid "Position the <b>start point</b> of the arc or segment; with <b>Ctrl</b>to snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for segment"
 msgstr "<b>Начальная точка</b> сектора или дуги. <b>Ctrl</b> ограничивает угол. Перетаскивание <b>внутри</b> дает дугу, <b>снаружи</b> — сектор."
 
-#: ../src/object-edit.cpp:904
+#: ../src/object-edit.cpp:906
 msgid "Position the <b>end point</b> of the arc or segment; with <b>Ctrl</b> to snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for segment"
 msgstr "<b>Конечная точка</b> сектора или дуги. <b>Ctrl</b> ограничивает угол. Перетаскивание <b>внутри</b> дает дугу, <b>снаружи</b> — сектор."
 
-#: ../src/object-edit.cpp:1043
+#: ../src/object-edit.cpp:1045
 msgid "Adjust the <b>tip radius</b> of the star or polygon; with <b>Shift</b> to round; with <b>Alt</b> to randomize"
 msgstr "Менять <b>большой радиус</b> звезды или многоугольника. <b>Shift</b> закругляет, <b>Alt</b> искажает."
 
-#: ../src/object-edit.cpp:1050
+#: ../src/object-edit.cpp:1052
 msgid "Adjust the <b>base radius</b> of the star; with <b>Ctrl</b> to keep star rays radial (no skew); with <b>Shift</b> to round; with <b>Alt</b> to randomize"
 msgstr "Менять <b>малый радиус</b> звезды или многоугольника. <b>Ctrl</b> сохраняет радиус, <b>Shift</b> закругляет, <b>Alt</b> делает случайным."
 
-#: ../src/object-edit.cpp:1231
+#: ../src/object-edit.cpp:1235
 msgid "Roll/unroll the spiral from <b>inside</b>; with <b>Ctrl</b> to snap angle; with <b>Alt</b> to converge/diverge"
 msgstr "Удлинять или укорачивать спираль изнутри. <b>Ctrl</b> ограничивает угол. <b>Alt</b> меняет нелинейность."
 
-#: ../src/object-edit.cpp:1234
+#: ../src/object-edit.cpp:1238
 msgid "Roll/unroll the spiral from <b>outside</b>; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to scale/rotate"
 msgstr "Удлинять или укорачивать спираль снаружи. <b>Ctrl</b> ограничивает угол. <b>Shift</b> растягивает/вращает как целое."
 
-#: ../src/object-edit.cpp:1278
+#: ../src/object-edit.cpp:1282
 msgid "Adjust the <b>offset distance</b>"
 msgstr "Менять <b>расстояние втяжки</b>"
 
-#: ../src/object-edit.cpp:1314
+#: ../src/object-edit.cpp:1318
 msgid "Drag to resize the <b>flowed text frame</b>"
 msgstr "Изменять размер <b>текстового блока</b>"
 
@@ -7466,77 +7470,77 @@ msgstr "Развернуть контур"
 msgid "<b>No paths</b> to reverse in the selection."
 msgstr "В выделении <b>нет контуров</b> для разворота."
 
-#: ../src/pencil-context.cpp:250
-#: ../src/pen-context.cpp:483
+#: ../src/pencil-context.cpp:251
+#: ../src/pen-context.cpp:486
 msgid "Continuing selected path"
 msgstr "Продолжение выделенного контура"
 
-#: ../src/pencil-context.cpp:259
-#: ../src/pen-context.cpp:493
+#: ../src/pencil-context.cpp:260
+#: ../src/pen-context.cpp:496
 msgid "Creating new path"
 msgstr "Создание нового контура"
 
-#: ../src/pencil-context.cpp:264
-#: ../src/pen-context.cpp:495
+#: ../src/pencil-context.cpp:265
+#: ../src/pen-context.cpp:498
 msgid "Appending to selected path"
 msgstr "Добавление к выделенному контуру"
 
-#: ../src/pencil-context.cpp:362
+#: ../src/pencil-context.cpp:363
 msgid "<b>Release</b> here to close and finish the path."
 msgstr "<b>Отпустите</b> здесь для закрытия и завершения контура."
 
-#: ../src/pencil-context.cpp:368
+#: ../src/pencil-context.cpp:369
 msgid "Drawing a freehand path"
 msgstr "Рисуется произвольный контур"
 
-#: ../src/pencil-context.cpp:373
+#: ../src/pencil-context.cpp:374
 msgid "<b>Drag</b> to continue the path from this point."
 msgstr "<b>Перетащите</b> для продолжения контура из этой точки."
 
 #. Write curves to object
-#: ../src/pencil-context.cpp:435
+#: ../src/pencil-context.cpp:436
 msgid "Finishing freehand"
 msgstr "Завершается произвольный контур"
 
-#: ../src/pencil-context.cpp:486
-#: ../src/pen-context.cpp:252
+#: ../src/pencil-context.cpp:487
+#: ../src/pen-context.cpp:254
 msgid "Drawing cancelled"
 msgstr "Отмена рисования"
 
-#: ../src/pen-context.cpp:655
+#: ../src/pen-context.cpp:658
 msgid "<b>Click</b> or <b>click and drag</b> to close and finish the path."
 msgstr "<b>Щелчок</b> или <b>щелчок + перетаскивание</b> закрывают этот контур."
 
-#: ../src/pen-context.cpp:665
+#: ../src/pen-context.cpp:668
 msgid "<b>Click</b> or <b>click and drag</b> to continue the path from this point."
 msgstr "<b>Щелчок</b> или <b>щелчок + перетаскивание</b> продолжает контур из этой точки."
 
-#: ../src/pen-context.cpp:1256
+#: ../src/pen-context.cpp:1261
 #, c-format
 msgid "<b>Curve segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to snap angle, <b>Enter</b> to finish the path"
 msgstr "<b>Сегмент кривой</b>: угол %3.2f&#176;, расстояние %s; <b>Ctrl</b> ограничивает угол, <b>Enter</b> завершает контур"
 
-#: ../src/pen-context.cpp:1257
+#: ../src/pen-context.cpp:1262
 #, c-format
 msgid "<b>Line segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to snap angle, <b>Enter</b> to finish the path"
 msgstr "<b>Сегмент линии</b>: угол %3.2f&#176;, расстояние %s; <b>Ctrl</b> ограничивает угол, <b>Enter</b> завершает контур"
 
-#: ../src/pen-context.cpp:1275
+#: ../src/pen-context.cpp:1280
 #, c-format
 msgid "<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle"
 msgstr "<b>Ус узла кривой</b>: угол %3.2f&#176;, длина %s; <b>Ctrl</b> ограничивает угол"
 
-#: ../src/pen-context.cpp:1297
+#: ../src/pen-context.cpp:1302
 #, fuzzy, c-format
 msgid "<b>Curve handle, symmetric</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle, with <b>Shift</b> to move this handle only"
 msgstr "<b>%s</b>: угол %3.2f°, длина %s; перетаскивание с <b>Ctrl</b> ограничивает угол; с <b>Shift</b> синхронно вращает противоположный ус"
 
-#: ../src/pen-context.cpp:1298
+#: ../src/pen-context.cpp:1303
 #, fuzzy, c-format
 msgid "<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle, with <b>Shift</b> to move this handle only"
 msgstr "<b>%s</b>: угол %3.2f°, длина %s; перетаскивание с <b>Ctrl</b> ограничивает угол; с <b>Shift</b> синхронно вращает противоположный ус"
 
-#: ../src/pen-context.cpp:1345
+#: ../src/pen-context.cpp:1350
 msgid "Drawing finished"
 msgstr "Рисование закончено"
 
@@ -7548,7 +7552,7 @@ msgstr "Переключение точек схода"
 msgid "Toggle multiple vanishing points"
 msgstr "Переключение нескольких точек схода"
 
-#: ../src/preferences.cpp:74
+#: ../src/preferences.cpp:106
 #, fuzzy
 msgid "Inkscape will run with default settings, and new settings will not be saved. "
 msgstr ""
@@ -7558,7 +7562,7 @@ msgstr ""
 #. the creation failed
 #. _errorDialog(Glib::ustring::compose(_("Cannot create profile directory %1."),
 #. Glib::filename_to_utf8(_prefs_dir)), not_saved);
-#: ../src/preferences.cpp:89
+#: ../src/preferences.cpp:121
 #, fuzzy, c-format
 msgid "Cannot create profile directory %s."
 msgstr ""
@@ -7568,7 +7572,7 @@ msgstr ""
 #. The profile dir is not actually a directory
 #. _errorDialog(Glib::ustring::compose(_("%1 is not a valid directory."),
 #. Glib::filename_to_utf8(_prefs_dir)), not_saved);
-#: ../src/preferences.cpp:107
+#: ../src/preferences.cpp:139
 #, c-format
 msgid "%s is not a valid directory."
 msgstr "%s в действительности не является каталогом."
@@ -7576,14 +7580,14 @@ msgstr "%s в действительности не является катал
 #. The write failed.
 #. _errorDialog(Glib::ustring::compose(_("Failed to create the preferences file %1."),
 #. Glib::filename_to_utf8(_prefs_filename)), not_saved);
-#: ../src/preferences.cpp:118
+#: ../src/preferences.cpp:150
 #, c-format
 msgid "Failed to create the preferences file %s."
 msgstr "Не удалось загрузить файл параметров %s."
 
 #. _errorDialog(Glib::ustring::compose(_("The preferences file %1 is not a regular file."),
 #. Glib::filename_to_utf8(_prefs_filename)), not_saved);
-#: ../src/preferences.cpp:136
+#: ../src/preferences.cpp:168
 #, fuzzy, c-format
 msgid "The preferences file %s is not a regular file."
 msgstr ""
@@ -7592,443 +7596,443 @@ msgstr ""
 
 #. _errorDialog(Glib::ustring::compose(_("The preferences file %1 could not be read."),
 #. Glib::filename_to_utf8(_prefs_filename)), not_saved);
-#: ../src/preferences.cpp:148
+#: ../src/preferences.cpp:180
 #, fuzzy, c-format
 msgid "The preferences file %s could not be read."
 msgstr "Невозможно сохранить файл %s."
 
 #. _errorDialog(Glib::ustring::compose(_("The preferences file %1 is not a valid XML document."),
 #. Glib::filename_to_utf8(_prefs_filename)), not_saved);
-#: ../src/preferences.cpp:160
+#: ../src/preferences.cpp:192
 #, c-format
 msgid "The preferences file %s is not a valid XML document."
 msgstr ""
 
 #. _errorDialog(Glib::ustring::compose(_("The file %1 is not a valid Inkscape preferences file."),
 #. Glib::filename_to_utf8(_prefs_filename)), not_saved);
-#: ../src/preferences.cpp:170
+#: ../src/preferences.cpp:202
 #, fuzzy, c-format
 msgid "The file %s is not a valid Inkscape preferences file."
 msgstr ""
 "%s не является корректным файлом настроек.\n"
 "%s"
 
-#: ../src/rect-context.cpp:383
+#: ../src/rect-context.cpp:382
 msgid "<b>Ctrl</b>: make square or integer-ratio rect, lock a rounded corner circular"
 msgstr "<b>Ctrl</b>: квадрат или прямоугольник с целым соотношением сторон, закругленные углы"
 
-#: ../src/rect-context.cpp:524
+#: ../src/rect-context.cpp:523
 #, c-format
 msgid "<b>Rectangle</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> to draw around the starting point"
 msgstr "<b>Прямоугольник</b>: %s &#215; %s; (с соотношением сторон %d:%d); с <b>Shift</b> рисует вокруг начальной точки"
 
-#: ../src/rect-context.cpp:527
+#: ../src/rect-context.cpp:526
 #, c-format
 msgid "<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1.618 : 1); with <b>Shift</b> to draw around the starting point"
 msgstr "<b>Прямоугольник</b>: %s &#215; %s; (с «золотым» соотношением сторон 1.618 : 1); с <b>Shift</b> рисует вокруг начальной точки"
 
-#: ../src/rect-context.cpp:529
+#: ../src/rect-context.cpp:528
 #, c-format
 msgid "<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1 : 1.618); with <b>Shift</b> to draw around the starting point"
 msgstr "<b>Прямоугольник</b>: %s &#215; %s; (с «золотым» соотношением сторон 1 : 1.618); с <b>Shift</b> рисует вокруг начальной точки"
 
-#: ../src/rect-context.cpp:533
+#: ../src/rect-context.cpp:532
 #, c-format
 msgid "<b>Rectangle</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-ratio rectangle; with <b>Shift</b> to draw around the starting point"
 msgstr "<b>Прямоугольник</b>: %s x %s; с <b>Ctrl</b>: квадрат или прямоугольник с целым соотношением сторон, с <b>Shift</b> рисовать вокруг начальной точки"
 
-#: ../src/rect-context.cpp:554
+#: ../src/rect-context.cpp:553
 msgid "Create rectangle"
 msgstr "Создание прямоугольника"
 
-#: ../src/select-context.cpp:230
+#: ../src/select-context.cpp:232
 msgid "Move canceled."
 msgstr "Перемещение отменено."
 
-#: ../src/select-context.cpp:238
+#: ../src/select-context.cpp:240
 msgid "Selection canceled."
 msgstr "Выделение отменено."
 
-#: ../src/select-context.cpp:545
+#: ../src/select-context.cpp:550
 msgid "<b>Draw over</b> objects to select them; release <b>Alt</b> to switch to rubberband selection"
 msgstr "<b>Проведите курсором мыши</b> по объектам, чтобы выделить их; отпустите <b>Alt</b>, чтобы переключиться на обычное выделение"
 
-#: ../src/select-context.cpp:547
+#: ../src/select-context.cpp:552
 msgid "<b>Drag around</b> objects to select them; press <b>Alt</b> to switch to touch selection"
 msgstr "<b>Проведите курсором мыши</b> вокруг объектов, чтобы выделить их; нажмите <b>Alt</b> для переключения на касательное выделение"
 
-#: ../src/select-context.cpp:707
+#: ../src/select-context.cpp:712
 msgid "<b>Ctrl</b>: click to select in groups; drag to move hor/vert"
 msgstr "<b>Ctrl</b>: щелчок выделяет в группе; перетаскивание двигает по горизонтали/вертикали"
 
-#: ../src/select-context.cpp:708
+#: ../src/select-context.cpp:713
 msgid "<b>Shift</b>: click to toggle select; drag for rubberband selection"
 msgstr "<b>Shift</b>: выделить/снять выделение; перетаскивание включает выделение «липкой лентой»"
 
-#: ../src/select-context.cpp:709
+#: ../src/select-context.cpp:714
 msgid "<b>Alt</b>: click to select under; drag to move selected or select by touch"
 msgstr "<b>Alt</b>: выделять под выделенным; перетаскиванием двигать выделение"
 
-#: ../src/select-context.cpp:880
+#: ../src/select-context.cpp:885
 msgid "Selected object is not a group. Cannot enter."
 msgstr "Выделенный объект не является группой. В неё нельзя войти."
 
-#: ../src/selection-chemistry.cpp:195
+#: ../src/selection-chemistry.cpp:192
 msgid "Delete text"
 msgstr "Удалить текст"
 
-#: ../src/selection-chemistry.cpp:203
+#: ../src/selection-chemistry.cpp:200
 msgid "<b>Nothing</b> was deleted."
 msgstr "<b>Ничего</b> не удалено."
 
-#: ../src/selection-chemistry.cpp:221
-#: ../src/text-context.cpp:1004
-#: ../src/widgets/toolbox.cpp:1280
-#: ../src/widgets/toolbox.cpp:5281
+#: ../src/selection-chemistry.cpp:218
+#: ../src/text-context.cpp:1014
+#: ../src/widgets/toolbox.cpp:1279
+#: ../src/widgets/toolbox.cpp:5270
 msgid "Delete"
 msgstr "Удаление"
 
-#: ../src/selection-chemistry.cpp:249
+#: ../src/selection-chemistry.cpp:246
 msgid "Select <b>object(s)</b> to duplicate."
 msgstr "Выделите <b>объекты</b> для дублирования."
 
-#: ../src/selection-chemistry.cpp:339
+#: ../src/selection-chemistry.cpp:336
 msgid "Delete all"
 msgstr "Удалить всё"
 
-#: ../src/selection-chemistry.cpp:462
+#: ../src/selection-chemistry.cpp:459
 msgid "Select <b>some objects</b> to group."
 msgstr "Выделите <b>несколько объектов</b> для группировки."
 
-#: ../src/selection-chemistry.cpp:535
+#: ../src/selection-chemistry.cpp:532
 #: ../src/selection-describer.cpp:51
 msgid "Group"
 msgstr "Группа"
 
-#: ../src/selection-chemistry.cpp:549
+#: ../src/selection-chemistry.cpp:546
 msgid "Select a <b>group</b> to ungroup."
 msgstr "Выделите <b>группу</b> для разгруппирования."
 
-#: ../src/selection-chemistry.cpp:590
+#: ../src/selection-chemistry.cpp:587
 msgid "<b>No groups</b> to ungroup in the selection."
 msgstr "В выделении <b>нет групп</b> для разгруппирования."
 
-#: ../src/selection-chemistry.cpp:596
-#: ../src/sp-item-group.cpp:498
+#: ../src/selection-chemistry.cpp:593
+#: ../src/sp-item-group.cpp:497
 msgid "Ungroup"
 msgstr "Разгруппировать"
 
-#: ../src/selection-chemistry.cpp:656
+#: ../src/selection-chemistry.cpp:653
 msgid "Select <b>object(s)</b> to raise."
 msgstr "Выделите <b>объект(ы)</b> для поднятия."
 
-#: ../src/selection-chemistry.cpp:662
-#: ../src/selection-chemistry.cpp:722
-#: ../src/selection-chemistry.cpp:756
-#: ../src/selection-chemistry.cpp:820
+#: ../src/selection-chemistry.cpp:659
+#: ../src/selection-chemistry.cpp:719
+#: ../src/selection-chemistry.cpp:753
+#: ../src/selection-chemistry.cpp:817
 msgid "You cannot raise/lower objects from <b>different groups</b> or <b>layers</b>."
 msgstr "Нельзя поднять или опустить объекты из <b>разных групп</b> или <b>слоев</b>."
 
 #. TRANSLATORS: Only put the word "Raise" in the translation. Means "to raise an object" in the undo history
-#: ../src/selection-chemistry.cpp:702
+#: ../src/selection-chemistry.cpp:699
 msgid "undo_action|Raise"
 msgstr "Поднятие"
 
-#: ../src/selection-chemistry.cpp:714
+#: ../src/selection-chemistry.cpp:711
 msgid "Select <b>object(s)</b> to raise to top."
 msgstr "Выделите <b>объект(ы)</b> для поднятия на самый верх."
 
-#: ../src/selection-chemistry.cpp:737
+#: ../src/selection-chemistry.cpp:734
 msgid "Raise to top"
 msgstr "Поднять на передний план"
 
-#: ../src/selection-chemistry.cpp:750
+#: ../src/selection-chemistry.cpp:747
 msgid "Select <b>object(s)</b> to lower."
 msgstr "Выделите <b>объект(ы)</b> для опускания."
 
-#: ../src/selection-chemistry.cpp:800
+#: ../src/selection-chemistry.cpp:797
 msgid "Lower"
 msgstr "Опустить"
 
-#: ../src/selection-chemistry.cpp:812
+#: ../src/selection-chemistry.cpp:809
 msgid "Select <b>object(s)</b> to lower to bottom."
 msgstr "Выделите <b>объект(ы)</b> для опускания на самый низ."
 
-#: ../src/selection-chemistry.cpp:847
+#: ../src/selection-chemistry.cpp:844
 msgid "Lower to bottom"
 msgstr "Опустить на задний план"
 
-#: ../src/selection-chemistry.cpp:854
+#: ../src/selection-chemistry.cpp:851
 msgid "Nothing to undo."
 msgstr "Нет отменяемых операций."
 
-#: ../src/selection-chemistry.cpp:861
+#: ../src/selection-chemistry.cpp:858
 msgid "Nothing to redo."
 msgstr "Нет повторяемых операций."
 
-#: ../src/selection-chemistry.cpp:921
+#: ../src/selection-chemistry.cpp:918
 msgid "Paste"
 msgstr "Вставка"
 
-#: ../src/selection-chemistry.cpp:928
+#: ../src/selection-chemistry.cpp:925
 msgid "Paste style"
 msgstr "Вставка стиля"
 
-#: ../src/selection-chemistry.cpp:937
+#: ../src/selection-chemistry.cpp:934
 msgid "Paste live path effect"
 msgstr "Вставить динамический контурный эффект"
 
-#: ../src/selection-chemistry.cpp:956
+#: ../src/selection-chemistry.cpp:953
 msgid "Select <b>object(s)</b> to remove live path effects from."
 msgstr "Выделите <b>объект(ы)</b> для удаления динамического контурного эффекта."
 
-#: ../src/selection-chemistry.cpp:968
+#: ../src/selection-chemistry.cpp:965
 msgid "Remove live path effect"
 msgstr "Удаление контурного эффекта"
 
-#: ../src/selection-chemistry.cpp:979
+#: ../src/selection-chemistry.cpp:976
 msgid "Select <b>object(s)</b> to remove filters from."
 msgstr "Выделите <b>объект(ы)</b> для удаления фильтров."
 
-#: ../src/selection-chemistry.cpp:989
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1366
+#: ../src/selection-chemistry.cpp:986
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1367
 msgid "Remove filter"
 msgstr "Удаление фильтра"
 
-#: ../src/selection-chemistry.cpp:998
+#: ../src/selection-chemistry.cpp:995
 msgid "Paste size"
 msgstr "Вставить размер"
 
-#: ../src/selection-chemistry.cpp:1006
+#: ../src/selection-chemistry.cpp:1003
 msgid "Paste size separately"
 msgstr "Вставить размер раздельно"
 
-#: ../src/selection-chemistry.cpp:1015
+#: ../src/selection-chemistry.cpp:1012
 msgid "Select <b>object(s)</b> to move to the layer above."
 msgstr "Выделите <b>объект(ы)</b> для перемещения на слой выше."
 
-#: ../src/selection-chemistry.cpp:1041
+#: ../src/selection-chemistry.cpp:1038
 msgid "Raise to next layer"
 msgstr "Поднятие на следующий слой"
 
-#: ../src/selection-chemistry.cpp:1048
+#: ../src/selection-chemistry.cpp:1045
 msgid "No more layers above."
 msgstr "Выше слоёв нет."
 
-#: ../src/selection-chemistry.cpp:1060
+#: ../src/selection-chemistry.cpp:1057
 msgid "Select <b>object(s)</b> to move to the layer below."
 msgstr "Выделите <b>объект(ы)</b> для перемещения на слой ниже."
 
-#: ../src/selection-chemistry.cpp:1086
+#: ../src/selection-chemistry.cpp:1083
 msgid "Lower to previous layer"
 msgstr "Опускание на предыдущий слой"
 
-#: ../src/selection-chemistry.cpp:1093
+#: ../src/selection-chemistry.cpp:1090
 msgid "No more layers below."
 msgstr "Ниже слоёв нет."
 
-#: ../src/selection-chemistry.cpp:1282
+#: ../src/selection-chemistry.cpp:1277
 msgid "Remove transform"
 msgstr "Убрать трансформацию"
 
-#: ../src/selection-chemistry.cpp:1385
+#: ../src/selection-chemistry.cpp:1380
 msgid "Rotate 90&#176; CCW"
 msgstr "Повернуть на 90° против часовой стрелки"
 
-#: ../src/selection-chemistry.cpp:1385
+#: ../src/selection-chemistry.cpp:1380
 msgid "Rotate 90&#176; CW"
 msgstr "Повернуть на 90° по часовой стрелке"
 
-#: ../src/selection-chemistry.cpp:1406
-#: ../src/seltrans.cpp:458
-#: ../src/ui/dialog/transformation.cpp:757
+#: ../src/selection-chemistry.cpp:1401
+#: ../src/seltrans.cpp:451
+#: ../src/ui/dialog/transformation.cpp:760
 msgid "Rotate"
 msgstr "Вращение"
 
-#: ../src/selection-chemistry.cpp:1438
+#: ../src/selection-chemistry.cpp:1448
 msgid "Rotate by pixels"
 msgstr "Вращение по пикселам"
 
-#: ../src/selection-chemistry.cpp:1493
+#: ../src/selection-chemistry.cpp:1503
 msgid "Scale by whole factor"
 msgstr "Масштабирование по целым числам"
 
-#: ../src/selection-chemistry.cpp:1508
+#: ../src/selection-chemistry.cpp:1518
 msgid "Move vertically"
 msgstr "Смещение по вертикали"
 
-#: ../src/selection-chemistry.cpp:1511
+#: ../src/selection-chemistry.cpp:1521
 msgid "Move horizontally"
 msgstr "Смещение по горизонтали"
 
-#: ../src/selection-chemistry.cpp:1514
-#: ../src/selection-chemistry.cpp:1540
-#: ../src/seltrans.cpp:452
-#: ../src/ui/dialog/transformation.cpp:680
+#: ../src/selection-chemistry.cpp:1524
+#: ../src/selection-chemistry.cpp:1550
+#: ../src/seltrans.cpp:445
+#: ../src/ui/dialog/transformation.cpp:681
 msgid "Move"
 msgstr "Смещение"
 
-#: ../src/selection-chemistry.cpp:1534
+#: ../src/selection-chemistry.cpp:1544
 msgid "Move vertically by pixels"
 msgstr "Попиксельное смещение по вертикали"
 
-#: ../src/selection-chemistry.cpp:1537
+#: ../src/selection-chemistry.cpp:1547
 msgid "Move horizontally by pixels"
 msgstr "Попиксельное смещение по горизонтали"
 
-#: ../src/selection-chemistry.cpp:1665
+#: ../src/selection-chemistry.cpp:1675
 msgid "The selection has no applied path effect."
 msgstr "В выделении нет примененного контурного эффекта."
 
-#: ../src/selection-chemistry.cpp:1712
+#: ../src/selection-chemistry.cpp:1722
 msgid "The selection has no applied clip path."
 msgstr "В выделении нет примененного обтравочного контура."
 
-#: ../src/selection-chemistry.cpp:1714
+#: ../src/selection-chemistry.cpp:1724
 msgid "The selection has no applied mask."
 msgstr "В выделении нет примененной маски."
 
-#: ../src/selection-chemistry.cpp:1871
+#: ../src/selection-chemistry.cpp:1881
 msgid "action|Clone"
 msgstr "Склонировать"
 
-#: ../src/selection-chemistry.cpp:1887
+#: ../src/selection-chemistry.cpp:1897
 #, fuzzy
 msgid "Select <b>clones</b> to relink."
 msgstr "Выделите <b>клон</b> для отсоединения."
 
-#: ../src/selection-chemistry.cpp:1894
+#: ../src/selection-chemistry.cpp:1904
 #, fuzzy
 msgid "Copy an <b>object</b> to clipboard to relink clones to."
 msgstr "Выделите <b>объект</b> для клонирования."
 
-#: ../src/selection-chemistry.cpp:1918
+#: ../src/selection-chemistry.cpp:1928
 msgid "<b>No clones to relink</b> in the selection."
 msgstr "В текущем выделении <b>нет клонов для повторного связывания</b>."
 
-#: ../src/selection-chemistry.cpp:1921
+#: ../src/selection-chemistry.cpp:1931
 #, fuzzy
 msgid "Relink clone"
 msgstr "Отсоединение клона"
 
-#: ../src/selection-chemistry.cpp:1935
+#: ../src/selection-chemistry.cpp:1945
 #, fuzzy
 msgid "Select <b>clones</b> to unlink."
 msgstr "Выделите <b>клон</b> для отсоединения."
 
-#: ../src/selection-chemistry.cpp:1984
+#: ../src/selection-chemistry.cpp:1994
 msgid "<b>No clones to unlink</b> in the selection."
 msgstr "В выделении нет <b>клонов</b>."
 
-#: ../src/selection-chemistry.cpp:1988
+#: ../src/selection-chemistry.cpp:1998
 msgid "Unlink clone"
 msgstr "Отсоединение клона"
 
-#: ../src/selection-chemistry.cpp:2001
+#: ../src/selection-chemistry.cpp:2011
 msgid "Select a <b>clone</b> to go to its original. Select a <b>linked offset</b> to go to its source. Select a <b>text on path</b> to go to the path. Select a <b>flowed text</b> to go to its frame."
 msgstr "Выделите <b>клон</b>, чтобы перейти к его оригиналу. Выделите <b>связанную втяжку</b>, чтобы перейти к исходному контуру. Выделите <b>текст по контуру</b>, чтобы перейти к его контуру. Выделите <b>текст в рамке</b>, чтобы перейти к рамке."
 
-#: ../src/selection-chemistry.cpp:2024
+#: ../src/selection-chemistry.cpp:2034
 msgid "<b>Cannot find</b> the object to select (orphaned clone, offset, textpath, flowed text?)"
 msgstr "<b>Невозможно найти</b> выбираемый объект (orphaned clone, offset, текст по контуру, завёрстанный текст?)"
 
-#: ../src/selection-chemistry.cpp:2030
+#: ../src/selection-chemistry.cpp:2040
 msgid "The object you're trying to select is <b>not visible</b> (it is in &lt;defs&gt;)"
 msgstr "Объект, который вы пытаетесь выделить, <b>невидим</b> (находится в &lt;defs&gt;)"
 
-#: ../src/selection-chemistry.cpp:2076
+#: ../src/selection-chemistry.cpp:2086
 msgid "Select <b>object(s)</b> to convert to marker."
 msgstr "Выделите <b>объект</b> для преобразования в маркер."
 
-#: ../src/selection-chemistry.cpp:2144
+#: ../src/selection-chemistry.cpp:2154
 msgid "Objects to marker"
 msgstr "Объекты в маркер"
 
-#: ../src/selection-chemistry.cpp:2172
+#: ../src/selection-chemistry.cpp:2182
 msgid "Select <b>object(s)</b> to convert to guides."
 msgstr "Выделите <b>объект</b> для преобразования в направляющие."
 
-#: ../src/selection-chemistry.cpp:2184
+#: ../src/selection-chemistry.cpp:2194
 msgid "Objects to guides"
 msgstr "Объекты в направляющие"
 
-#: ../src/selection-chemistry.cpp:2200
+#: ../src/selection-chemistry.cpp:2210
 msgid "Select <b>object(s)</b> to convert to pattern."
 msgstr "Выделите <b>объект(ы)</b> для преобразования в текстуру."
 
-#: ../src/selection-chemistry.cpp:2288
+#: ../src/selection-chemistry.cpp:2298
 msgid "Objects to pattern"
 msgstr "Объекты в текстуру"
 
-#: ../src/selection-chemistry.cpp:2304
+#: ../src/selection-chemistry.cpp:2314
 msgid "Select an <b>object with pattern fill</b> to extract objects from."
 msgstr "Выделите <b>объект с текстурной заливкой</b> для извлечения из него объектов."
 
-#: ../src/selection-chemistry.cpp:2357
+#: ../src/selection-chemistry.cpp:2367
 msgid "<b>No pattern fills</b> in the selection."
 msgstr "В выделении <b>нет текстурной заливки</b>."
 
-#: ../src/selection-chemistry.cpp:2360
+#: ../src/selection-chemistry.cpp:2370
 msgid "Pattern to objects"
 msgstr "Текстура в объекты"
 
-#: ../src/selection-chemistry.cpp:2445
+#: ../src/selection-chemistry.cpp:2455
 msgid "Select <b>object(s)</b> to make a bitmap copy."
 msgstr "Выделите <b>объект(ы)</b> для создания растровой копии."
 
-#: ../src/selection-chemistry.cpp:2449
+#: ../src/selection-chemistry.cpp:2459
 msgid "Rendering bitmap..."
 msgstr "Создается растровая копия..."
 
-#: ../src/selection-chemistry.cpp:2613
+#: ../src/selection-chemistry.cpp:2623
 msgid "Create bitmap"
 msgstr "Создание растровой копии"
 
-#: ../src/selection-chemistry.cpp:2645
+#: ../src/selection-chemistry.cpp:2655
 msgid "Select <b>object(s)</b> to create clippath or mask from."
 msgstr "Выделите <b>объект(ы)</b>, из которых будет создан обтравочный контур или маска."
 
-#: ../src/selection-chemistry.cpp:2648
+#: ../src/selection-chemistry.cpp:2658
 msgid "Select mask object and <b>object(s)</b> to apply clippath or mask to."
 msgstr "Выделите объект-маску и <b>объект(ы)</b>, к которым применить обтравочный контур или маску."
 
-#: ../src/selection-chemistry.cpp:2755
+#: ../src/selection-chemistry.cpp:2765
 msgid "Set clipping path"
 msgstr "Установлен обтравочный контур"
 
-#: ../src/selection-chemistry.cpp:2757
+#: ../src/selection-chemistry.cpp:2767
 msgid "Set mask"
 msgstr "Установлена маска"
 
-#: ../src/selection-chemistry.cpp:2770
+#: ../src/selection-chemistry.cpp:2780
 msgid "Select <b>object(s)</b> to remove clippath or mask from."
 msgstr "Выделите <b>объект(ы)</b>, с которых нужно снять обтравочный контур или маску."
 
-#: ../src/selection-chemistry.cpp:2843
+#: ../src/selection-chemistry.cpp:2853
 msgid "Release clipping path"
 msgstr "Обтравочный контур снят"
 
-#: ../src/selection-chemistry.cpp:2845
+#: ../src/selection-chemistry.cpp:2855
 msgid "Release mask"
 msgstr "Маска снята"
 
-#: ../src/selection-chemistry.cpp:2861
+#: ../src/selection-chemistry.cpp:2871
 msgid "Select <b>object(s)</b> to fit canvas to."
 msgstr "Выделите <b>объект</b>, по  размеру которого подогнать холст."
 
 #. Fit Page
-#: ../src/selection-chemistry.cpp:2881
-#: ../src/verbs.cpp:2690
+#: ../src/selection-chemistry.cpp:2891
+#: ../src/verbs.cpp:2695
 msgid "Fit Page to Selection"
 msgstr "Cтраница до выделения"
 
-#: ../src/selection-chemistry.cpp:2906
-#: ../src/verbs.cpp:2692
+#: ../src/selection-chemistry.cpp:2916
+#: ../src/verbs.cpp:2697
 msgid "Fit Page to Drawing"
 msgstr "Откадрировать холст до рисунка"
 
-#: ../src/selection-chemistry.cpp:2922
-#: ../src/verbs.cpp:2694
+#: ../src/selection-chemistry.cpp:2932
+#: ../src/verbs.cpp:2699
 msgid "Fit Page to Selection or Drawing"
 msgstr "Откадрировать холст до выделения или рисунка"
 
@@ -8044,9 +8048,9 @@ msgstr "Окружность"
 #. ellipse
 #: ../src/selection-describer.cpp:47
 #: ../src/selection-describer.cpp:73
-#: ../src/ui/dialog/inkscape-preferences.cpp:434
-#: ../src/verbs.cpp:2483
-#: ../src/widgets/toolbox.cpp:3413
+#: ../src/ui/dialog/inkscape-preferences.cpp:432
+#: ../src/verbs.cpp:2486
+#: ../src/widgets/toolbox.cpp:3409
 msgid "Ellipse"
 msgstr "Эллипс"
 
@@ -8063,7 +8067,7 @@ msgid "Path"
 msgstr "Контур"
 
 #: ../src/selection-describer.cpp:59
-#: ../src/widgets/toolbox.cpp:2247
+#: ../src/widgets/toolbox.cpp:2245
 msgid "Polygon"
 msgstr "Многоугольник"
 
@@ -8073,15 +8077,15 @@ msgstr "Полилиния"
 
 #. Rectangle
 #: ../src/selection-describer.cpp:63
-#: ../src/ui/dialog/inkscape-preferences.cpp:424
-#: ../src/verbs.cpp:2479
+#: ../src/ui/dialog/inkscape-preferences.cpp:422
+#: ../src/verbs.cpp:2482
 msgid "Rectangle"
 msgstr "Прямоугольник"
 
 #. 3D box
 #: ../src/selection-describer.cpp:65
-#: ../src/ui/dialog/inkscape-preferences.cpp:429
-#: ../src/verbs.cpp:2481
+#: ../src/ui/dialog/inkscape-preferences.cpp:427
+#: ../src/verbs.cpp:2484
 msgid "3D Box"
 msgstr "Паралеллепипед"
 
@@ -8095,58 +8099,58 @@ msgstr "Растянутый контур"
 
 #. spiral
 #: ../src/selection-describer.cpp:77
-#: ../src/ui/dialog/inkscape-preferences.cpp:442
-#: ../src/verbs.cpp:2487
+#: ../src/ui/dialog/inkscape-preferences.cpp:440
+#: ../src/verbs.cpp:2490
 msgid "Spiral"
 msgstr "Спираль"
 
 #. star
 #: ../src/selection-describer.cpp:79
-#: ../src/ui/dialog/inkscape-preferences.cpp:438
-#: ../src/verbs.cpp:2485
-#: ../src/widgets/toolbox.cpp:2254
+#: ../src/ui/dialog/inkscape-preferences.cpp:436
+#: ../src/verbs.cpp:2488
+#: ../src/widgets/toolbox.cpp:2252
 msgid "Star"
 msgstr "Звезда"
 
-#: ../src/selection-describer.cpp:107
+#: ../src/selection-describer.cpp:115
 msgid "Click selection to toggle scale/rotation handles"
 msgstr "Щелчок по объекту переключает стрелки масштабирования/вращения"
 
 #. no items
-#: ../src/selection-describer.cpp:109
+#: ../src/selection-describer.cpp:117
 msgid "No objects selected. Click, Shift+click, or drag around objects to select."
 msgstr "Нет выделенных объектов. Используйте щелчок, Shift+щелчок или обведите рамку вокруг выделяемых объектов."
 
-#: ../src/selection-describer.cpp:118
+#: ../src/selection-describer.cpp:126
 msgid "root"
 msgstr "корневом слое"
 
-#: ../src/selection-describer.cpp:130
+#: ../src/selection-describer.cpp:138
 #, c-format
 msgid "layer <b>%s</b>"
 msgstr "слое <b>%s</b>"
 
-#: ../src/selection-describer.cpp:132
+#: ../src/selection-describer.cpp:140
 #, c-format
 msgid "layer <b><i>%s</i></b>"
 msgstr "слой <b><i>%s</i></b>"
 
-#: ../src/selection-describer.cpp:141
+#: ../src/selection-describer.cpp:149
 #, c-format
 msgid "<i>%s</i>"
 msgstr "<i>%s</i>"
 
-#: ../src/selection-describer.cpp:150
+#: ../src/selection-describer.cpp:158
 #, c-format
 msgid " in %s"
 msgstr " в %s"
 
-#: ../src/selection-describer.cpp:152
+#: ../src/selection-describer.cpp:160
 #, c-format
 msgid " in group %s (%s)"
 msgstr " в группе %s (%s)"
 
-#: ../src/selection-describer.cpp:154
+#: ../src/selection-describer.cpp:162
 #, c-format
 msgid " in <b>%i</b> parents (%s)"
 msgid_plural " in <b>%i</b> parents (%s)"
@@ -8154,7 +8158,7 @@ msgstr[0] " в <b>%i</b> родителе (%s)"
 msgstr[1] " в <b>%i</b> родителях (%s)"
 msgstr[2] " в <b>%i</b> родителях (%s)"
 
-#: ../src/selection-describer.cpp:157
+#: ../src/selection-describer.cpp:165
 #, c-format
 msgid " in <b>%i</b> layers"
 msgid_plural " in <b>%i</b> layers"
@@ -8162,20 +8166,21 @@ msgstr[0] " в <b>%i</b> слое."
 msgstr[1] " в <b>%i</b> слоях."
 msgstr[2] " в <b>%i</b> слоях.."
 
-#: ../src/selection-describer.cpp:167
+#: ../src/selection-describer.cpp:175
 msgid "Use <b>Shift+D</b> to look up original"
 msgstr "<b>Shift+D</b> выделяет оригинал"
 
-#: ../src/selection-describer.cpp:171
+#: ../src/selection-describer.cpp:179
 msgid "Use <b>Shift+D</b> to look up path"
 msgstr "<b>Shift+D</b> выделяет контур"
 
-#: ../src/selection-describer.cpp:175
+#: ../src/selection-describer.cpp:183
 msgid "Use <b>Shift+D</b> to look up frame"
 msgstr "<b>Shift+D</b> выделяет блок"
 
 #. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:190
+#: ../src/selection-describer.cpp:198
+#: ../src/tweak-context.cpp:204
 #, c-format
 msgid "<b>%i</b> object selected"
 msgid_plural "<b>%i</b> objects selected"
@@ -8184,7 +8189,7 @@ msgstr[1] "<b>%i</b> объекта выделено."
 msgstr[2] "<b>%i</b> объектов выделено."
 
 #. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:195
+#: ../src/selection-describer.cpp:203
 #, c-format
 msgid "<b>%i</b> object of type <b>%s</b>"
 msgid_plural "<b>%i</b> objects of type <b>%s</b>"
@@ -8193,7 +8198,7 @@ msgstr[1] "<b>%i</b> объекта типа <b>%s</b>"
 msgstr[2] "<b>%i</b> объектов типа <b>%s</b>"
 
 #. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:200
+#: ../src/selection-describer.cpp:208
 #, c-format
 msgid "<b>%i</b> object of types <b>%s</b>, <b>%s</b>"
 msgid_plural "<b>%i</b> objects of types <b>%s</b>, <b>%s</b>"
@@ -8202,7 +8207,7 @@ msgstr[1] "<b>%i</b> объекта типов <b>%s</b>, <b>%s</b>"
 msgstr[2] "<b>%i</b> объектов типов <b>%s</b>, <b>%s</b>"
 
 #. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:205
+#: ../src/selection-describer.cpp:213
 #, c-format
 msgid "<b>%i</b> object of types <b>%s</b>, <b>%s</b>, <b>%s</b>"
 msgid_plural "<b>%i</b> objects of types <b>%s</b>, <b>%s</b>, <b>%s</b>"
@@ -8211,7 +8216,7 @@ msgstr[1] "Найдено <b>%d</b> объекта типов <b>%s</b>, <b>%s</
 msgstr[2] "Найдено <b>%d</b> объектов типов <b>%s</b>, <b>%s</b>, <b>%s</b>"
 
 #. this is only used with 2 or more objects
-#: ../src/selection-describer.cpp:210
+#: ../src/selection-describer.cpp:218
 #, c-format
 msgid "<b>%i</b> object of <b>%i</b> types"
 msgid_plural "<b>%i</b> objects of <b>%i</b> types"
@@ -8219,75 +8224,75 @@ msgstr[0] "<b>%i</b> объект <b>%i</b> типов"
 msgstr[1] "<b>%i</b> объекта <b>%i</b> типов"
 msgstr[2] "<b>%i</b> объектов <b>%i</b> типов"
 
-#: ../src/selection-describer.cpp:215
+#: ../src/selection-describer.cpp:223
 #, c-format
 msgid "%s%s. %s."
 msgstr "%s%s. %s."
 
-#: ../src/seltrans.cpp:461
-#: ../src/ui/dialog/transformation.cpp:815
+#: ../src/seltrans.cpp:454
+#: ../src/ui/dialog/transformation.cpp:819
 msgid "Skew"
 msgstr "Скос"
 
-#: ../src/seltrans.cpp:473
+#: ../src/seltrans.cpp:466
 msgid "Set center"
 msgstr "Смена центра объекта"
 
-#: ../src/seltrans.cpp:570
+#: ../src/seltrans.cpp:563
 msgid "<b>Center</b> of rotation and skewing: drag to reposition; scaling with Shift also uses this center"
 msgstr "<b>Центр</b> вращения и перекоса: его можно перетащить; изменение размера с Shift также происходит относительно этого центра"
 
-#: ../src/seltrans.cpp:597
+#: ../src/seltrans.cpp:590
 msgid "<b>Squeeze or stretch</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
 msgstr "<b>Сжать или растянуть</b> выделение; с <b>Ctrl</b> — сохранять пропорцию; с <b>Shift</b> — вокруг центра вращения"
 
-#: ../src/seltrans.cpp:598
+#: ../src/seltrans.cpp:591
 msgid "<b>Scale</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
 msgstr "<b>Менять размер</b> выделения; с <b>Ctrl</b>  —сохранять пропорцию; с <b>Shift</b> — вокруг центра вращения"
 
-#: ../src/seltrans.cpp:602
+#: ../src/seltrans.cpp:595
 msgid "<b>Skew</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to skew around the opposite side"
 msgstr "<b>Перекашивать</b> выделение; с <b>Ctrl</b> — ограничивать угол; с <b>Shift</b> — вокруг противоположной стороны"
 
-#: ../src/seltrans.cpp:603
+#: ../src/seltrans.cpp:596
 msgid "<b>Rotate</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to rotate around the opposite corner"
 msgstr "<b>Вращать</b> выделение; с <b>Ctrl</b> — ограничивать угол; с <b>Shift</b> — вокруг противоположного угла"
 
-#: ../src/seltrans.cpp:737
+#: ../src/seltrans.cpp:730
 msgid "Reset center"
 msgstr "Возврат к исходному центру"
 
-#: ../src/seltrans.cpp:985
-#: ../src/seltrans.cpp:1087
+#: ../src/seltrans.cpp:975
+#: ../src/seltrans.cpp:1074
 #, c-format
 msgid "<b>Scale</b>: %0.2f%% x %0.2f%%; with <b>Ctrl</b> to lock ratio"
 msgstr "<b>Изменить размер</b>: %0.2f%% x %0.2f%%; <b>Ctrl</b> сохраняет пропорцию"
 
 #. TRANSLATORS: don't modify the first ";"
 #. (it will NOT be displayed as ";" - only the second one will be)
-#: ../src/seltrans.cpp:1204
+#: ../src/seltrans.cpp:1186
 #, c-format
 msgid "<b>Skew</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
 msgstr "<b>Перекашивание</b>: %0.2f&#176;; <b>Ctrl</b> ограничивает угол"
 
 #. TRANSLATORS: don't modify the first ";"
 #. (it will NOT be displayed as ";" - only the second one will be)
-#: ../src/seltrans.cpp:1263
+#: ../src/seltrans.cpp:1246
 #, c-format
 msgid "<b>Rotate</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
 msgstr "<b>Вращение</b>: %0.2f&#176;; <b>Ctrl</b> ограничивает угол"
 
-#: ../src/seltrans.cpp:1306
+#: ../src/seltrans.cpp:1287
 #, c-format
 msgid "Move <b>center</b> to %s, %s"
 msgstr "Переместить <b>центр</b> в %s, %s"
 
-#: ../src/seltrans.cpp:1467
+#: ../src/seltrans.cpp:1448
 #, c-format
 msgid "<b>Move</b> by %s, %s; with <b>Ctrl</b> to restrict to horizontal/vertical; with <b>Shift</b> to disable snapping"
 msgstr "<b>Перемещение</b> на %s, %s; с <b>Ctrl</b> только по горизонтали/вертикали; с <b>Shift</b> без прилипания"
 
-#: ../src/shape-editor.cpp:474
+#: ../src/shape-editor.cpp:477
 msgid "Drag curve"
 msgstr "Перетаскивание кривой"
 
@@ -8367,25 +8372,25 @@ msgstr "горизонтальная, в позиции %s"
 msgid "at %d degrees, through (%s,%s); <b>Ctrl</b>+click to delete"
 msgstr "под углом %d градусов, через (%s,%s); <b>Ctrl</b>+щелчок удаляет ее"
 
-#: ../src/sp-image.cpp:1100
+#: ../src/sp-image.cpp:1101
 msgid "embedded"
 msgstr "включенное"
 
-#: ../src/sp-image.cpp:1108
+#: ../src/sp-image.cpp:1109
 #, c-format
 msgid "<b>Image with bad reference</b>: %s"
 msgstr "<b>Изображение без ссылки</b>: %s"
 
-#: ../src/sp-image.cpp:1109
+#: ../src/sp-image.cpp:1110
 #, c-format
 msgid "<b>Image</b> %d &#215; %d: %s"
 msgstr "<b>Изображение</b> %d x %d: %s"
 
-#: ../src/spiral-context.cpp:344
+#: ../src/spiral-context.cpp:343
 msgid "<b>Ctrl</b>: snap angle"
 msgstr "<b>Ctrl</b>: ограничить угол"
 
-#: ../src/spiral-context.cpp:346
+#: ../src/spiral-context.cpp:345
 msgid "<b>Alt</b>: lock spiral radius"
 msgstr "<b>Alt</b>: зафиксировать радиус спирали"
 
@@ -8398,26 +8403,26 @@ msgstr "<b>Спираль</b>: радиус %s, угол %5g&#176;; <b>Ctrl</b>
 msgid "Create spiral"
 msgstr "Создание спирали"
 
-#: ../src/sp-item.cpp:1016
+#: ../src/sp-item.cpp:1025
 msgid "Object"
 msgstr "Объект"
 
-#: ../src/sp-item.cpp:1033
+#: ../src/sp-item.cpp:1042
 #, c-format
 msgid "%s; <i>clipped</i>"
 msgstr "%s; <i>под обтравочным контуром</i>"
 
-#: ../src/sp-item.cpp:1038
+#: ../src/sp-item.cpp:1047
 #, c-format
 msgid "%s; <i>masked</i>"
 msgstr "%s; <i>маскирован</i>"
 
-#: ../src/sp-item.cpp:1043
+#: ../src/sp-item.cpp:1052
 #, c-format
 msgid "%s; <i>filtered</i>"
 msgstr "%s; <i>с фильтром</i>"
 
-#: ../src/sp-item-group.cpp:746
+#: ../src/sp-item-group.cpp:745
 #, c-format
 msgid "<b>Group</b> of <b>%d</b> object"
 msgid_plural "<b>Group</b> of <b>%d</b> objects"
@@ -8480,67 +8485,67 @@ msgstr "Оконтуривание обводки"
 msgid "<b>No stroked paths</b> in the selection."
 msgstr "В выделении <b>нет контуров с обводкой</b>."
 
-#: ../src/splivarot.cpp:1033
+#: ../src/splivarot.cpp:1035
 msgid "Selected object is <b>not a path</b>, cannot inset/outset."
 msgstr "Выделенный объект <b>не является контуром</b>, втяжка/растяжка невозможны."
 
-#: ../src/splivarot.cpp:1153
-#: ../src/splivarot.cpp:1222
+#: ../src/splivarot.cpp:1154
+#: ../src/splivarot.cpp:1223
 msgid "Create linked offset"
 msgstr "Создание связанной втяжки"
 
-#: ../src/splivarot.cpp:1154
-#: ../src/splivarot.cpp:1223
+#: ../src/splivarot.cpp:1155
+#: ../src/splivarot.cpp:1224
 msgid "Create dynamic offset"
 msgstr "Создание динамической втяжки"
 
-#: ../src/splivarot.cpp:1248
+#: ../src/splivarot.cpp:1249
 msgid "Select <b>path(s)</b> to inset/outset."
 msgstr "Выделите <b>контур</b> для втяжки/растяжки."
 
-#: ../src/splivarot.cpp:1466
+#: ../src/splivarot.cpp:1467
 msgid "Outset path"
 msgstr "Растяжка контура"
 
-#: ../src/splivarot.cpp:1466
+#: ../src/splivarot.cpp:1467
 msgid "Inset path"
 msgstr "Втяжка контура"
 
-#: ../src/splivarot.cpp:1468
+#: ../src/splivarot.cpp:1469
 msgid "<b>No paths</b> to inset/outset in the selection."
 msgstr "В выделении <b>нет контуров</b> для втяжки/растяжки."
 
-#: ../src/splivarot.cpp:1643
+#: ../src/splivarot.cpp:1644
 msgid "Simplifying paths (separately):"
 msgstr "Упрощение контуров (раздельно):"
 
-#: ../src/splivarot.cpp:1645
+#: ../src/splivarot.cpp:1646
 msgid "Simplifying paths:"
 msgstr "Упрощение контуров:"
 
-#: ../src/splivarot.cpp:1682
+#: ../src/splivarot.cpp:1683
 #, c-format
 msgid "%s <b>%d</b> of <b>%d</b> paths simplified..."
 msgstr "%s: <b>%d</b> из <b>%d</b> контуров упрощено..."
 
-#: ../src/splivarot.cpp:1693
+#: ../src/splivarot.cpp:1695
 #, c-format
 msgid "<b>%d</b> paths simplified."
 msgstr "<b>%d</b> контуров упрощено."
 
-#: ../src/splivarot.cpp:1707
+#: ../src/splivarot.cpp:1709
 msgid "Select <b>path(s)</b> to simplify."
 msgstr "Выделите <b>контур(ы)</b> для упрощения."
 
-#: ../src/splivarot.cpp:1721
+#: ../src/splivarot.cpp:1723
 msgid "Simplify"
 msgstr "Упрощение контура"
 
-#: ../src/splivarot.cpp:1723
+#: ../src/splivarot.cpp:1725
 msgid "<b>No paths</b> to simplify in the selection."
 msgstr "В выделении <b>нет контуров</b> для упрощения."
 
-#: ../src/sp-lpe-item.cpp:335
+#: ../src/sp-lpe-item.cpp:339
 msgid "An exception occurred during execution of the Path Effect."
 msgstr "Прерывание при выполнении контурного эффекта"
 
@@ -8566,7 +8571,7 @@ msgstr "втянута"
 msgid "<b>Dynamic offset</b>, %s by %f pt"
 msgstr "<b>Динамическая втяжка</b>, %s на %f pt"
 
-#: ../src/sp-path.cpp:137
+#: ../src/sp-path.cpp:136
 #, c-format
 msgid "<b>Path</b> (%i node, path effect)"
 msgid_plural "<b>Path</b> (%i nodes, path effect)"
@@ -8574,7 +8579,7 @@ msgstr[0] "<b>Контур</b> (%i узел, контурный эффект)"
 msgstr[1] "<b>Контур</b> (%i узла, контурный эффект)"
 msgstr[2] "<b>Контур</b> (%i узлов, контурный эффект)"
 
-#: ../src/sp-path.cpp:140
+#: ../src/sp-path.cpp:139
 #, c-format
 msgid "<b>Path</b> (%i node)"
 msgid_plural "<b>Path</b> (%i nodes)"
@@ -8626,16 +8631,16 @@ msgstr[1] "<b>Условная группа</b> из <b>%d</b> объектов"
 msgstr[2] "<b>Условная группа</b> из <b>%d</b> объектов"
 
 #. TRANSLATORS: For description of font with no name.
-#: ../src/sp-text.cpp:418
+#: ../src/sp-text.cpp:419
 msgid "&lt;no name found&gt;"
 msgstr "&lt;нет имени&gt;"
 
-#: ../src/sp-text.cpp:424
+#: ../src/sp-text.cpp:425
 #, c-format
 msgid "<b>Text on path</b> (%s, %s)"
 msgstr "<b>Текст по контуру</b> (%s, %s)"
 
-#: ../src/sp-text.cpp:425
+#: ../src/sp-text.cpp:426
 #, c-format
 msgid "<b>Text</b> (%s, %s)"
 msgstr "<b>Текст</b> (%s, %s)"
@@ -8659,20 +8664,20 @@ msgstr "<b>Текстовый блок</b>"
 
 #. TRANSLATORS: Used for statusbar description for long <use> chains:
 #. * "Clone of: Clone of: ... in Layer 1".
-#: ../src/sp-use.cpp:318
+#: ../src/sp-use.cpp:327
 msgid "..."
 msgstr "..."
 
-#: ../src/sp-use.cpp:326
+#: ../src/sp-use.cpp:335
 #, c-format
 msgid "<b>Clone</b> of: %s"
 msgstr "<b>Клон</b>: %s"
 
-#: ../src/sp-use.cpp:330
+#: ../src/sp-use.cpp:339
 msgid "<b>Orphaned clone</b>"
 msgstr "<b>Осиротевший клон</b>"
 
-#: ../src/star-context.cpp:356
+#: ../src/star-context.cpp:355
 msgid "<b>Ctrl</b>: snap angle; keep rays radial"
 msgstr "<b>Ctrl</b>: ограничивать угол; лучи по радиусу без перекоса"
 
@@ -8708,7 +8713,7 @@ msgid "The flowed text(s) must be <b>visible</b> in order to be put on a path."
 msgstr "Заверстанный текст должен быть <b>видимым</b>, чтобы быть размещенным по контуру."
 
 #: ../src/text-chemistry.cpp:192
-#: ../src/verbs.cpp:2337
+#: ../src/verbs.cpp:2340
 msgid "Put text on path"
 msgstr "Разместить текст по контуру"
 
@@ -8721,7 +8726,7 @@ msgid "<b>No texts-on-paths</b> in the selection."
 msgstr "В выделении нет <b>текстов по контуру</b>."
 
 #: ../src/text-chemistry.cpp:229
-#: ../src/verbs.cpp:2339
+#: ../src/verbs.cpp:2342
 msgid "Remove text from path"
 msgstr "Снять текст с контура"
 
@@ -8766,136 +8771,136 @@ msgstr "Завёрстанный текст в обычный"
 msgid "<b>No flowed text(s)</b> to convert in the selection."
 msgstr "В выделении <b>нет завёрстанного текста</b>, преобразуемого в обычный."
 
-#: ../src/text-context.cpp:452
+#: ../src/text-context.cpp:461
 msgid "<b>Click</b> to edit the text, <b>drag</b> to select part of the text."
 msgstr "<b>Щелчок</b> ставит курсор, <b>перетаскивание</b> выделяет текст."
 
-#: ../src/text-context.cpp:454
+#: ../src/text-context.cpp:463
 msgid "<b>Click</b> to edit the flowed text, <b>drag</b> to select part of the text."
 msgstr "<b>Щелчок</b> ставит курсор, <b>перетаскивание</b> выделяет текст."
 
-#: ../src/text-context.cpp:508
+#: ../src/text-context.cpp:517
 msgid "Create text"
 msgstr "Создание текстового объекта"
 
-#: ../src/text-context.cpp:532
+#: ../src/text-context.cpp:541
 msgid "Non-printable character"
 msgstr "Непечатаемый символ"
 
-#: ../src/text-context.cpp:547
+#: ../src/text-context.cpp:556
 msgid "Insert Unicode character"
 msgstr "Вставить юникодный символ"
 
-#: ../src/text-context.cpp:582
+#: ../src/text-context.cpp:591
 #, c-format
 msgid "Unicode (<b>Enter</b> to finish): %s: %s"
 msgstr "Юникод (нажмите <b>Ввод</b> для завершения): %s: %s"
 
-#: ../src/text-context.cpp:584
-#: ../src/text-context.cpp:858
+#: ../src/text-context.cpp:593
+#: ../src/text-context.cpp:868
 msgid "Unicode (<b>Enter</b> to finish): "
 msgstr "Юникод (нажмите <b>Ввод</b> для завершения): "
 
-#: ../src/text-context.cpp:658
+#: ../src/text-context.cpp:668
 #, c-format
 msgid "<b>Flowed text frame</b>: %s &#215; %s"
 msgstr "<b>Рамка для текста</b>: %s &#215; %s"
 
-#: ../src/text-context.cpp:690
-#: ../src/text-context.cpp:1609
+#: ../src/text-context.cpp:700
+#: ../src/text-context.cpp:1619
 msgid "Type text; <b>Enter</b> to start new line."
 msgstr "Вводите текст; <b>Enter</b> начинает новый абзац."
 
-#: ../src/text-context.cpp:703
+#: ../src/text-context.cpp:713
 msgid "Flowed text is created."
 msgstr "Завёрстывание текста в блок"
 
-#: ../src/text-context.cpp:705
+#: ../src/text-context.cpp:715
 msgid "Create flowed text"
 msgstr "Создание текстового блока"
 
-#: ../src/text-context.cpp:707
+#: ../src/text-context.cpp:717
 msgid "The frame is <b>too small</b> for the current font size. Flowed text not created."
 msgstr "Рамка <b>слишком мала</b> для текущего размера шрифта. Невозможно создать текст в рамке."
 
-#: ../src/text-context.cpp:843
+#: ../src/text-context.cpp:853
 msgid "No-break space"
 msgstr "Неразрывный пробел"
 
-#: ../src/text-context.cpp:845
+#: ../src/text-context.cpp:855
 msgid "Insert no-break space"
 msgstr "Вставка неразрывного пробела"
 
-#: ../src/text-context.cpp:882
+#: ../src/text-context.cpp:892
 msgid "Make bold"
 msgstr "Полужирное начертание"
 
-#: ../src/text-context.cpp:900
+#: ../src/text-context.cpp:910
 msgid "Make italic"
 msgstr "Курсивное начертание"
 
-#: ../src/text-context.cpp:939
+#: ../src/text-context.cpp:949
 msgid "New line"
 msgstr "Новая строка"
 
-#: ../src/text-context.cpp:973
+#: ../src/text-context.cpp:983
 msgid "Backspace"
 msgstr "Забой"
 
-#: ../src/text-context.cpp:1021
+#: ../src/text-context.cpp:1031
 msgid "Kern to the left"
 msgstr "Кернинг влево"
 
-#: ../src/text-context.cpp:1046
+#: ../src/text-context.cpp:1056
 msgid "Kern to the right"
 msgstr "Кернинг вправо"
 
-#: ../src/text-context.cpp:1071
+#: ../src/text-context.cpp:1081
 msgid "Kern up"
 msgstr "Кернинг вверх"
 
-#: ../src/text-context.cpp:1097
+#: ../src/text-context.cpp:1107
 msgid "Kern down"
 msgstr "Кернинг вниз"
 
-#: ../src/text-context.cpp:1174
+#: ../src/text-context.cpp:1184
 msgid "Rotate counterclockwise"
 msgstr "Поворот против часовой стрелки"
 
-#: ../src/text-context.cpp:1195
+#: ../src/text-context.cpp:1205
 msgid "Rotate clockwise"
 msgstr "Поворот по часовой стрелке"
 
-#: ../src/text-context.cpp:1212
+#: ../src/text-context.cpp:1222
 msgid "Contract line spacing"
 msgstr "Сокращение межстрочного интервала"
 
-#: ../src/text-context.cpp:1220
+#: ../src/text-context.cpp:1230
 msgid "Contract letter spacing"
 msgstr "Сокращение межбуквенного интервала"
 
-#: ../src/text-context.cpp:1239
+#: ../src/text-context.cpp:1249
 msgid "Expand line spacing"
 msgstr "Увеличение межстрочного интервала"
 
-#: ../src/text-context.cpp:1247
+#: ../src/text-context.cpp:1257
 msgid "Expand letter spacing"
 msgstr "Увеличение межбуквенного интервала"
 
-#: ../src/text-context.cpp:1374
+#: ../src/text-context.cpp:1384
 msgid "Paste text"
 msgstr "Вставка стиля"
 
-#: ../src/text-context.cpp:1607
+#: ../src/text-context.cpp:1617
 msgid "Type flowed text; <b>Enter</b> to start new paragraph."
 msgstr "Набирайте завёрстанный текст; <b>Ввод</b> начинает новый абзац"
 
-#: ../src/text-context.cpp:1617
-#: ../src/tools-switch.cpp:214
+#: ../src/text-context.cpp:1627
+#: ../src/tools-switch.cpp:190
 msgid "<b>Click</b> to select or create text, <b>drag</b> to create flowed text; then type."
 msgstr "<b>Щелчок</b> выделяет или создает текст, <b>перетаскивание</b> создает текст в рамке; после этого можно набирать текст."
 
-#: ../src/text-context.cpp:1726
+#: ../src/text-context.cpp:1737
 msgid "Type text"
 msgstr "Ввод текста"
 
@@ -8903,67 +8908,67 @@ msgstr "Ввод текста"
 msgid "You cannot edit <b>cloned character data</b>."
 msgstr "Вы не можете редактировать <b>склонированный текст</b>."
 
-#: ../src/tools-switch.cpp:154
+#: ../src/tools-switch.cpp:130
 msgid "To edit a path, <b>click</b>, <b>Shift+click</b>, or <b>drag around</b> nodes to select them, then <b>drag</b> nodes and handles. <b>Click</b> on an object to select."
 msgstr "Для правки контура <b>щелчком</b>, <b>Shift+щелчком</b> или <b>обведением рамки</b> выделите узлы, затем <b>перетащите</b> узлы и рычаги. <b>Щелчок</b> по объекту выделяет его."
 
-#: ../src/tools-switch.cpp:160
+#: ../src/tools-switch.cpp:136
 msgid "To tweak a path by pushing, select it and drag over it."
 msgstr "Для коррекции контура толканием, выберите и проведите по нему мышью"
 
-#: ../src/tools-switch.cpp:166
+#: ../src/tools-switch.cpp:142
 msgid "<b>Drag</b> to create a rectangle. <b>Drag controls</b> to round corners and resize. <b>Click</b> to select."
 msgstr "<b>Перетаскивание</b> рисует прямоугольник. <b>Перетаскивание ручек</b> меняет размер и закругляет углы. <b>Щелчок</b> по объекту выделяет его."
 
-#: ../src/tools-switch.cpp:172
+#: ../src/tools-switch.cpp:148
 msgid "<b>Drag</b> to create a 3D box. <b>Drag controls</b> to resize in perspective. <b>Click</b> to select (with <b>Ctrl+Alt</b> for single faces)."
 msgstr "<b>Перетаскивание</b> рисует параллелепипед. <b>Перетаскивание рычагов</b> меняет перспективу. <b>Щелчком</b> выделяются стороны объекта."
 
-#: ../src/tools-switch.cpp:178
+#: ../src/tools-switch.cpp:154
 msgid "<b>Drag</b> to create an ellipse. <b>Drag controls</b> to make an arc or segment. <b>Click</b> to select."
 msgstr "<b>Перетаскивание</b> рисует эллипс. <b>Перетаскивание ручек</b> делает дугу или сегмент. <b>Щелчок</b> по объекту выделяет его."
 
-#: ../src/tools-switch.cpp:184
+#: ../src/tools-switch.cpp:160
 msgid "<b>Drag</b> to create a star. <b>Drag controls</b> to edit the star shape. <b>Click</b> to select."
 msgstr "<b>Перетаскивание</b> рисует звезду. <b>Перетаскивание ручек</b> меняет ее форму. <b>Щелчок</b> по объекту выделяет его."
 
-#: ../src/tools-switch.cpp:190
+#: ../src/tools-switch.cpp:166
 msgid "<b>Drag</b> to create a spiral. <b>Drag controls</b> to edit the spiral shape. <b>Click</b> to select."
 msgstr "<b>Перетаскивание</b> рисует спираль. <b>Перетаскивание ручек</b> меняет ее форму. <b>Щелчок</b> по объекту выделяет его."
 
-#: ../src/tools-switch.cpp:196
+#: ../src/tools-switch.cpp:172
 msgid "<b>Drag</b> to create a freehand line. Start drawing with <b>Shift</b> to append to selected path. <b>Ctrl+click</b> to create single dots."
 msgstr "<b>Перетаскиванием</b> рисуется произвольная линия. С <b>Shift</b> линия присоединяется к выделенному контуру. По <b>Ctrl+щелчок</b> создаются точки."
 
-#: ../src/tools-switch.cpp:202
+#: ../src/tools-switch.cpp:178
 msgid "<b>Click</b> or <b>click and drag</b> to start a path; with <b>Shift</b> to append to selected path. <b>Ctrl+click</b> to create single dots."
 msgstr "<b>Щелчок</b> и <b>щелчок с перетаскиванием</b> начинают контур. С <b>Shift</b> линия добавляется к выделенному контуру. <b>Ctrl+щелчок</b> рисует точку."
 
-#: ../src/tools-switch.cpp:208
+#: ../src/tools-switch.cpp:184
 msgid "<b>Drag</b> to draw a calligraphic stroke; with <b>Ctrl</b> to track a guide path. <b>Arrow keys</b> adjust width (left/right) and angle (up/down)."
 msgstr "<b>Перетаскивание</b> рисует каллиграфический штрих; с <b>Ctrl</b> — отслеживание направляющего контура. <b>Клавиши-стрелки</b> меняют ширину (влево/вправо) и угол (вверх/вниз) пера."
 
-#: ../src/tools-switch.cpp:220
+#: ../src/tools-switch.cpp:196
 msgid "<b>Drag</b> or <b>double click</b> to create a gradient on selected objects, <b>drag handles</b> to adjust gradients."
 msgstr "Новый градиент для выделенного объекта создается <b>перетаскиванием</b> или <b>двойным щелчком</b> и корректируется <b>перетаскиванием за ручки</b>."
 
-#: ../src/tools-switch.cpp:226
+#: ../src/tools-switch.cpp:202
 msgid "<b>Click</b> or <b>drag around an area</b> to zoom in, <b>Shift+click</b> to zoom out."
 msgstr "<b>Щелчок</b> или <b>обведение рамкой</b> приближают, <b>Shift+щелчок</b> отдаляет холст."
 
-#: ../src/tools-switch.cpp:238
+#: ../src/tools-switch.cpp:214
 msgid "<b>Click and drag</b> between shapes to create a connector."
 msgstr "<b>Щелчок с перетаскиванием</b> между фигурами создают линию соединения."
 
-#: ../src/tools-switch.cpp:244
+#: ../src/tools-switch.cpp:220
 msgid "<b>Click</b> to paint a bounded area, <b>Shift+click</b> to union the new fill with the current selection, <b>Ctrl+click</b> to change the clicked object's fill and stroke to the current setting."
 msgstr "<b>Щёлкните</b> для рисования замкнутой области, <b>Shift+щелчок</b> для объединения новой заливки с активным выделением, <b>Ctrl+щелчок</b> для смены заливки и обводки щелкнутого объекта до текущих параметров"
 
-#: ../src/tools-switch.cpp:250
+#: ../src/tools-switch.cpp:226
 msgid "<b>Drag</b> to erase."
 msgstr "Нажмите клавишу и <b>перетащите</b> курсор для стирания"
 
-#: ../src/tools-switch.cpp:256
+#: ../src/tools-switch.cpp:232
 msgid "Choose a subtool from the toolbar"
 msgstr "Выберите режим инструмента из его контекстной панели"
 
@@ -9018,128 +9023,132 @@ msgstr "Векторизация растра"
 msgid "Trace: Done. %ld nodes created"
 msgstr "Векторизация: Готово. Создано узлов: %ld"
 
-#: ../src/tweak-context.cpp:200
-#, c-format
-msgid "<b>%i</b> objects selected"
-msgstr "<b>%i</b> объектов выделено"
-
-#: ../src/tweak-context.cpp:202
+#: ../src/tweak-context.cpp:206
 #, c-format
 msgid "<b>Nothing</b> selected"
 msgstr "<b>Ничего</b> не выделено"
 
-#: ../src/tweak-context.cpp:208
+#: ../src/tweak-context.cpp:212
 #, c-format
 msgid "%s. Drag to <b>move</b>."
 msgstr "%s. Перетащите курсор для их <b>перемещения</b>."
 
-#: ../src/tweak-context.cpp:213
+#: ../src/tweak-context.cpp:217
 #, c-format
 msgid "%s. Drag or click to <b>move in</b>; with Shift to <b>move out</b>."
 msgstr "%s. Перетащите курсор или щелкните для <b>притягивания</b>, с Shift — для <b>отталкивания</b> объектов."
 
-#: ../src/tweak-context.cpp:216
+#: ../src/tweak-context.cpp:220
 #, c-format
 msgid "%s. Drag or click to <b>move randomly</b>."
 msgstr "%s. Перетащите курсор или щелкните для <b>случайного перемещения</b> объектов."
 
-#: ../src/tweak-context.cpp:219
+#: ../src/tweak-context.cpp:223
 #, c-format
 msgid "%s. Drag or click to <b>scale down</b>; with Shift to <b>scale up</b>."
 msgstr "%s. Перетащите курсор или щелкните для <b>уменьшения</b>, с Shift — для <b>увеличения</b> размера объектов."
 
-#: ../src/tweak-context.cpp:222
+#: ../src/tweak-context.cpp:226
 #, c-format
 msgid "%s. Drag or click to <b>rotate clockwise</b>; with Shift, <b>counterclockwise</b>."
 msgstr "%s. Перетащите курсор или щелкните для <b>вращения объектов по часовой стрелке</b>, с Shift — <b>против часовой стрелки</b>."
 
-#: ../src/tweak-context.cpp:225
+#: ../src/tweak-context.cpp:229
 #, c-format
 msgid "%s. Drag or click to <b>duplicate</b>; with Shift, <b>delete</b>."
 msgstr "%s. Перетащите курсор или щелкните для <b>дублирования</b>, с Shift — для <b>удаления</b> объектов."
 
-#: ../src/tweak-context.cpp:228
+#: ../src/tweak-context.cpp:232
 #, c-format
 msgid "%s. Drag to <b>push paths</b>."
 msgstr "%s. Перетащите курсор для <b>выталкивания контуров</b>."
 
-#: ../src/tweak-context.cpp:232
+#: ../src/tweak-context.cpp:236
 #, c-format
 msgid "%s. Drag or click to <b>inset paths</b>; with Shift to <b>outset</b>."
 msgstr "%s. Перетащите курсор или щелкните для <b>втягивания</b>, с Shift — для <b>растягивания</b> контуров."
 
-#: ../src/tweak-context.cpp:240
+#: ../src/tweak-context.cpp:244
 #, c-format
 msgid "%s. Drag or click to <b>attract paths</b>; with Shift to <b>repel</b>."
 msgstr "%s. Перетащите курсор или щелкните для <b>притягивания</b>, с Shift — для <b>отталкивания</b> контуров."
 
-#: ../src/tweak-context.cpp:248
+#: ../src/tweak-context.cpp:252
 #, c-format
 msgid "%s. Drag or click to <b>roughen paths</b>."
 msgstr "%s. Перетащите курсор или щелкните для <b>огрубления контуров</b>."
 
-#: ../src/tweak-context.cpp:252
+#: ../src/tweak-context.cpp:256
 #, c-format
 msgid "%s. Drag or click to <b>paint objects</b> with color."
 msgstr "%s. Перетащите курсор или щелкните для <b>раскрашивания объектов</b>."
 
-#: ../src/tweak-context.cpp:255
+#: ../src/tweak-context.cpp:259
 #, c-format
 msgid "%s. Drag or click to <b>randomize colors</b>."
 msgstr "%s. Перетащите курсор или щелкните для <b>перебора цветов</b> заливки объектов."
 
-#: ../src/tweak-context.cpp:1104
+#: ../src/tweak-context.cpp:263
+#, fuzzy, c-format
+msgid "%s. Drag or click to <b>increase blur</b>; with Shift to <b>decrease</b>."
+msgstr "%s. Перетащите курсор или щелкните для <b>втягивания</b>, с Shift — для <b>растягивания</b> контуров."
+
+#: ../src/tweak-context.cpp:1179
 msgid "<b>Nothing selected!</b> Select objects to tweak."
 msgstr "<b>Ничего не выделено!</b> Выделите объект(ы) для коррекции."
 
-#: ../src/tweak-context.cpp:1140
+#: ../src/tweak-context.cpp:1215
 msgid "Move tweak"
 msgstr "Перемещение корректором"
 
-#: ../src/tweak-context.cpp:1144
+#: ../src/tweak-context.cpp:1219
 msgid "Move in/out tweak"
-msgstr "Притягивание и отталкивание корректором"
+msgstr "Притягивание/отталкивание объектов"
 
-#: ../src/tweak-context.cpp:1148
+#: ../src/tweak-context.cpp:1223
 msgid "Move jitter tweak"
 msgstr "Случайное перемещение корректором"
 
-#: ../src/tweak-context.cpp:1152
+#: ../src/tweak-context.cpp:1227
 msgid "Scale tweak"
 msgstr "Масштабирование корректором"
 
-#: ../src/tweak-context.cpp:1156
+#: ../src/tweak-context.cpp:1231
 msgid "Rotate tweak"
 msgstr "Вращение корректором"
 
-#: ../src/tweak-context.cpp:1160
+#: ../src/tweak-context.cpp:1235
 msgid "Duplicate/delete tweak"
-msgstr "Дубликация и удаление корректором"
+msgstr "Дубликация/удаление корректором"
 
-#: ../src/tweak-context.cpp:1164
+#: ../src/tweak-context.cpp:1239
 msgid "Push path tweak"
 msgstr "Толкание контуров корректором"
 
-#: ../src/tweak-context.cpp:1168
+#: ../src/tweak-context.cpp:1243
 msgid "Shrink/grow path tweak"
-msgstr "СокÑ\80аÑ\89ение Ð¸ Ð½Ð°Ñ\80аÑ\89ивание контуров"
+msgstr "Ð\9aоÑ\80Ñ\80екÑ\86иÑ\8f Ð¾Ð±Ñ\8aема контуров"
 
-#: ../src/tweak-context.cpp:1172
+#: ../src/tweak-context.cpp:1247
 msgid "Attract/repel path tweak"
 msgstr "Притяжение и отталкивание контуров"
 
-#: ../src/tweak-context.cpp:1176
+#: ../src/tweak-context.cpp:1251
 msgid "Roughen path tweak"
 msgstr "Огрубление контуров корректором"
 
-#: ../src/tweak-context.cpp:1180
+#: ../src/tweak-context.cpp:1255
 msgid "Color paint tweak"
 msgstr "Коррекция заливки цветом"
 
-#: ../src/tweak-context.cpp:1184
+#: ../src/tweak-context.cpp:1259
 msgid "Color jitter tweak"
 msgstr "Коррекция перебором цветов"
 
+#: ../src/tweak-context.cpp:1263
+msgid "Blur tweak"
+msgstr "Коррекция размывания"
+
 #. check whether something is selected
 #: ../src/ui/clipboard.cpp:224
 msgid "Nothing was copied."
@@ -9183,56 +9192,76 @@ msgid "Clipboard does not contain a path."
 msgstr "В буфере обмена нет контура"
 
 #. Item dialog
-#: ../src/ui/context-menu.cpp:100
+#: ../src/ui/context-menu.cpp:105
 msgid "Object _Properties"
 msgstr "_Свойства объекта"
 
 #. Select item
-#: ../src/ui/context-menu.cpp:110
+#: ../src/ui/context-menu.cpp:115
 msgid "_Select This"
 msgstr "_Выделить это"
 
 #. Create link
-#: ../src/ui/context-menu.cpp:120
+#: ../src/ui/context-menu.cpp:125
 msgid "_Create Link"
 msgstr "Создать сс_ылку"
 
-#: ../src/ui/context-menu.cpp:177
+#. Set mask
+#: ../src/ui/context-menu.cpp:132
+msgid "Set Mask"
+msgstr "Применить маску"
+
+#. Release mask
+#: ../src/ui/context-menu.cpp:143
+msgid "Release Mask"
+msgstr "Снять маску"
+
+#. Set Clip
+#: ../src/ui/context-menu.cpp:154
+msgid "Set Clip"
+msgstr "Применить обтравочный контур"
+
+#. Release Clip
+#: ../src/ui/context-menu.cpp:165
+msgid "Release Clip"
+msgstr "Снять обтравочный контур"
+
+#: ../src/ui/context-menu.cpp:288
 msgid "Create link"
 msgstr "Создание ссылки"
 
 #. "Ungroup"
-#: ../src/ui/context-menu.cpp:195
-#: ../src/verbs.cpp:2333
+#: ../src/ui/context-menu.cpp:306
+#: ../src/verbs.cpp:2336
 msgid "_Ungroup"
 msgstr "Разгр_уппировать"
 
 #. Link dialog
-#: ../src/ui/context-menu.cpp:235
+#: ../src/ui/context-menu.cpp:346
 msgid "Link _Properties"
 msgstr "_Свойства ссылки"
 
 #. Select item
-#: ../src/ui/context-menu.cpp:241
+#: ../src/ui/context-menu.cpp:352
 msgid "_Follow Link"
 msgstr "Перейти по ссылке"
 
 #. Reset transformations
-#: ../src/ui/context-menu.cpp:246
+#: ../src/ui/context-menu.cpp:357
 msgid "_Remove Link"
 msgstr "_Удалить ссылку"
 
 #. Link dialog
-#: ../src/ui/context-menu.cpp:294
+#: ../src/ui/context-menu.cpp:405
 msgid "Image _Properties"
 msgstr "_Свойства изображения"
 
-#: ../src/ui/context-menu.cpp:300
+#: ../src/ui/context-menu.cpp:411
 msgid "Edit Externally..."
 msgstr "Изменить извне..."
 
 #. Item dialog
-#: ../src/ui/context-menu.cpp:393
+#: ../src/ui/context-menu.cpp:504
 msgid "_Fill and Stroke"
 msgstr "_Заливка и обводка"
 
@@ -9285,417 +9314,425 @@ msgstr ""
 "bulia byak (buliabyak@users.sf.net), 2004.\n"
 "Alexandre Prokoudine (alexandre.prokoudine@gmail.com), 2004-2008."
 
-#: ../src/ui/dialog/align-and-distribute.cpp:246
-#: ../src/ui/dialog/align-and-distribute.cpp:788
+#: ../src/ui/dialog/align-and-distribute.cpp:247
+#: ../src/ui/dialog/align-and-distribute.cpp:794
 msgid "Align"
 msgstr "Выровнять"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:404
-#: ../src/ui/dialog/align-and-distribute.cpp:789
+#: ../src/ui/dialog/align-and-distribute.cpp:406
+#: ../src/ui/dialog/align-and-distribute.cpp:795
 msgid "Distribute"
 msgstr "Расставить"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:473
+#: ../src/ui/dialog/align-and-distribute.cpp:475
 msgid "Minimum horizontal gap (in px units) between bounding boxes"
 msgstr "Минимальный горизонтальный интервал между рамками (в пикселах)"
 
 #. TRANSLATORS: Horizontal gap. Only put "H:" equivalent in the translation
-#: ../src/ui/dialog/align-and-distribute.cpp:475
+#: ../src/ui/dialog/align-and-distribute.cpp:477
 msgid "gap|H:"
 msgstr "Г:"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:483
+#: ../src/ui/dialog/align-and-distribute.cpp:485
 msgid "Minimum vertical gap (in px units) between bounding boxes"
 msgstr "Минимальный вертикальный интервал между рамками (в пикселах)"
 
 #. TRANSLATORS: Vertical gap
-#: ../src/ui/dialog/align-and-distribute.cpp:485
+#: ../src/ui/dialog/align-and-distribute.cpp:487
 msgid "V:"
 msgstr "В:"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:513
-#: ../src/ui/dialog/align-and-distribute.cpp:790
-#: ../src/widgets/toolbox.cpp:6568
+#: ../src/ui/dialog/align-and-distribute.cpp:516
+#: ../src/ui/dialog/align-and-distribute.cpp:796
+#: ../src/widgets/toolbox.cpp:6556
 msgid "Remove overlaps"
 msgstr "Убрать перекрытия"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:543
-#: ../src/widgets/toolbox.cpp:6433
+#: ../src/ui/dialog/align-and-distribute.cpp:547
+#: ../src/widgets/toolbox.cpp:6421
 msgid "Arrange connector network"
 msgstr "Гармоничная расстановка связанных объектов"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:573
+#: ../src/ui/dialog/align-and-distribute.cpp:578
 msgid "Unclump"
 msgstr "Разровнять"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:643
+#: ../src/ui/dialog/align-and-distribute.cpp:649
 msgid "Randomize positions"
 msgstr "Случайное расположение объектов"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:740
+#: ../src/ui/dialog/align-and-distribute.cpp:746
 msgid "Distribute text baselines"
 msgstr "Расстановка линий шрифта текста"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:760
+#: ../src/ui/dialog/align-and-distribute.cpp:766
 msgid "Align text baselines"
 msgstr "Выравнивание линий шрифта текста"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:791
+#: ../src/ui/dialog/align-and-distribute.cpp:797
 msgid "Connector network layout"
 msgstr "Внешний вид блок-схем"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:792
+#: ../src/ui/dialog/align-and-distribute.cpp:798
 msgid "Nodes"
 msgstr "Узлы"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:798
+#: ../src/ui/dialog/align-and-distribute.cpp:804
 msgid "Relative to: "
 msgstr "Ориентир: "
 
-#: ../src/ui/dialog/align-and-distribute.cpp:799
+#: ../src/ui/dialog/align-and-distribute.cpp:805
 msgid "Treat selection as group: "
 msgstr "Считать выделение группой:"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:804
+#: ../src/ui/dialog/align-and-distribute.cpp:811
 msgid "Align right sides of objects to left side of anchor"
 msgstr "Правые края объектов к левому краю якоря"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:807
+#: ../src/ui/dialog/align-and-distribute.cpp:814
 msgid "Align left sides"
 msgstr "Выровнять по левым краям"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:810
+#: ../src/ui/dialog/align-and-distribute.cpp:817
 msgid "Center on vertical axis"
 msgstr "Центрировать на вертикальной оси"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:813
+#: ../src/ui/dialog/align-and-distribute.cpp:820
 msgid "Align right sides"
 msgstr "Выровнять по правым краям"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:816
+#: ../src/ui/dialog/align-and-distribute.cpp:823
 msgid "Align left sides of objects to right side of anchor"
 msgstr "Левые края объектов к правому краю якоря"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:819
+#: ../src/ui/dialog/align-and-distribute.cpp:826
 msgid "Align bottoms of objects to top of anchor"
 msgstr "Нижние края объектов к верхнему краю якоря"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:822
+#: ../src/ui/dialog/align-and-distribute.cpp:829
 msgid "Align tops"
 msgstr "Выровнять по верхним краям"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:825
+#: ../src/ui/dialog/align-and-distribute.cpp:832
 msgid "Center on horizontal axis"
 msgstr "Центрировать на горизонтальной оси"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:828
+#: ../src/ui/dialog/align-and-distribute.cpp:835
 msgid "Align bottoms"
 msgstr "Выровнять по нижним краям"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:831
+#: ../src/ui/dialog/align-and-distribute.cpp:838
 msgid "Align tops of objects to bottom of anchor"
 msgstr "Верхние края объектов к нижнему краю якоря"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:836
+#: ../src/ui/dialog/align-and-distribute.cpp:843
 msgid "Align baseline anchors of texts vertically"
 msgstr "Выровнять текстовые опорные точки по вертикали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:839
+#: ../src/ui/dialog/align-and-distribute.cpp:846
 msgid "Align baseline anchors of texts horizontally"
 msgstr "Выровнять текстовые опорные точки по горизонтали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:844
+#: ../src/ui/dialog/align-and-distribute.cpp:851
 msgid "Make horizontal gaps between objects equal"
 msgstr "Выровнять интервалы между объектами по горизонтали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:848
+#: ../src/ui/dialog/align-and-distribute.cpp:855
 msgid "Distribute left sides equidistantly"
 msgstr "Равноудаленно расставить левые края объектов"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:851
+#: ../src/ui/dialog/align-and-distribute.cpp:858
 msgid "Distribute centers equidistantly horizontally"
 msgstr "Равноудаленно расставить центры объектов по горизонтали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:854
+#: ../src/ui/dialog/align-and-distribute.cpp:861
 msgid "Distribute right sides equidistantly"
 msgstr "Равноудаленно расставить правые края объектов"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:858
+#: ../src/ui/dialog/align-and-distribute.cpp:865
 msgid "Make vertical gaps between objects equal"
 msgstr "Выравнять интервалы между объектами по вертикали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:862
+#: ../src/ui/dialog/align-and-distribute.cpp:869
 msgid "Distribute tops equidistantly"
 msgstr "Равноудаленно расставить верхние края"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:865
+#: ../src/ui/dialog/align-and-distribute.cpp:872
 msgid "Distribute centers equidistantly vertically"
 msgstr "Равноудаленно расставить центры объектов по вертикали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:868
+#: ../src/ui/dialog/align-and-distribute.cpp:875
 msgid "Distribute bottoms equidistantly"
 msgstr "Равноудаленно расставить нижние края объектов"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:873
+#: ../src/ui/dialog/align-and-distribute.cpp:880
 msgid "Distribute baseline anchors of texts horizontally"
 msgstr "Распределить текстовые опорные точки по горизонтали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:876
+#: ../src/ui/dialog/align-and-distribute.cpp:883
 msgid "Distribute baseline anchors of texts vertically"
 msgstr "Распределить текстовые опорные точки по вертикали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:881
+#: ../src/ui/dialog/align-and-distribute.cpp:888
 msgid "Randomize centers in both dimensions"
 msgstr "Случайным образом расставить центры"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:884
+#: ../src/ui/dialog/align-and-distribute.cpp:891
 msgid "Unclump objects: try to equalize edge-to-edge distances"
 msgstr "Попробовать выравнять расстояния между краями объектов"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:889
+#: ../src/ui/dialog/align-and-distribute.cpp:896
 msgid "Move objects as little as possible so that their bounding boxes do not overlap"
 msgstr "Переместить объекты так, чтобы их рамки едва-едва не пересекались"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:893
-#: ../src/widgets/toolbox.cpp:6531
+#: ../src/ui/dialog/align-and-distribute.cpp:900
+#: ../src/widgets/toolbox.cpp:6519
 msgid "Nicely arrange selected connector network"
 msgstr "Гармонично расставить связанные коннектором объекты"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:898
+#: ../src/ui/dialog/align-and-distribute.cpp:905
 msgid "Align selected nodes horizontally"
 msgstr "Выровнять выделенные узлы по горизонтали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:901
+#: ../src/ui/dialog/align-and-distribute.cpp:908
 msgid "Align selected nodes vertically"
 msgstr "Выровнять выделенные узлы по вертикали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:904
+#: ../src/ui/dialog/align-and-distribute.cpp:911
 msgid "Distribute selected nodes horizontally"
 msgstr "Распределить выделенные узлы по горизонтали"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:907
+#: ../src/ui/dialog/align-and-distribute.cpp:914
 msgid "Distribute selected nodes vertically"
 msgstr "Распределить выделенные узлы по вертикали"
 
 #. Rest of the widgetry
-#: ../src/ui/dialog/align-and-distribute.cpp:912
+#: ../src/ui/dialog/align-and-distribute.cpp:919
 msgid "Last selected"
 msgstr "Последний выделенный"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:913
+#: ../src/ui/dialog/align-and-distribute.cpp:920
 msgid "First selected"
 msgstr "Первый выделенный"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:914
+#: ../src/ui/dialog/align-and-distribute.cpp:921
 msgid "Biggest item"
 msgstr "Наибольший объект"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:915
+#: ../src/ui/dialog/align-and-distribute.cpp:922
 msgid "Smallest item"
 msgstr "Наименьший объект"
 
-#: ../src/ui/dialog/align-and-distribute.cpp:917
+#: ../src/ui/dialog/align-and-distribute.cpp:924
 #: ../src/widgets/desktop-widget.cpp:1548
 msgid "Drawing"
 msgstr "Рисунок"
 
-#: ../src/ui/dialog/document-metadata.cpp:79
+#: ../src/ui/dialog/document-metadata.cpp:77
 msgid "Metadata"
 msgstr "Метаданные"
 
-#: ../src/ui/dialog/document-metadata.cpp:80
+#: ../src/ui/dialog/document-metadata.cpp:78
 msgid "License"
 msgstr "Лицензия"
 
-#: ../src/ui/dialog/document-metadata.cpp:160
+#: ../src/ui/dialog/document-metadata.cpp:158
 msgid "<b>Dublin Core Entities</b>"
 msgstr "<b>Сущности Dublin Core</b>"
 
-#: ../src/ui/dialog/document-metadata.cpp:182
+#: ../src/ui/dialog/document-metadata.cpp:180
 msgid "<b>License</b>"
 msgstr "<b>Лицензия</b>"
 
 #. ---------------------------------------------------------------
-#: ../src/ui/dialog/document-properties.cpp:88
+#: ../src/ui/dialog/document-properties.cpp:87
 msgid "Show page _border"
 msgstr "Показывать ка_йму холста"
 
-#: ../src/ui/dialog/document-properties.cpp:88
+#: ../src/ui/dialog/document-properties.cpp:87
 msgid "If set, rectangular page border is shown"
 msgstr "Если включено, отображается прямоугольная кайма холста"
 
-#: ../src/ui/dialog/document-properties.cpp:89
+#: ../src/ui/dialog/document-properties.cpp:88
 msgid "Border on _top of drawing"
 msgstr "Кайма над р_исунком"
 
-#: ../src/ui/dialog/document-properties.cpp:89
+#: ../src/ui/dialog/document-properties.cpp:88
 msgid "If set, border is always on top of the drawing"
 msgstr "Если включено, кайма всегда над холстом"
 
-#: ../src/ui/dialog/document-properties.cpp:90
+#: ../src/ui/dialog/document-properties.cpp:89
 msgid "_Show border shadow"
 msgstr "Показать _тень каймы"
 
-#: ../src/ui/dialog/document-properties.cpp:90
+#: ../src/ui/dialog/document-properties.cpp:89
 msgid "If set, page border shows a shadow on its right and lower side"
 msgstr "Если включено, кайма холста отбрасывает тень вправо и вниз"
 
-#: ../src/ui/dialog/document-properties.cpp:91
+#: ../src/ui/dialog/document-properties.cpp:90
 msgid "Back_ground:"
 msgstr "_Фон:"
 
-#: ../src/ui/dialog/document-properties.cpp:91
+#: ../src/ui/dialog/document-properties.cpp:90
 msgid "Background color"
 msgstr "Цвет фона"
 
-#: ../src/ui/dialog/document-properties.cpp:91
+#: ../src/ui/dialog/document-properties.cpp:90
 msgid "Color and transparency of the page background (also used for bitmap export)"
 msgstr "Цвет и прозрачность фона страницы (важно учитывать при экспорте в растр)"
 
-#: ../src/ui/dialog/document-properties.cpp:92
+#: ../src/ui/dialog/document-properties.cpp:91
 msgid "Border _color:"
 msgstr "Цвет _каймы:"
 
-#: ../src/ui/dialog/document-properties.cpp:92
+#: ../src/ui/dialog/document-properties.cpp:91
 msgid "Page border color"
 msgstr "Цвет каймы холста"
 
-#: ../src/ui/dialog/document-properties.cpp:92
+#: ../src/ui/dialog/document-properties.cpp:91
 msgid "Color of the page border"
 msgstr "Цвет каймы холста"
 
-#: ../src/ui/dialog/document-properties.cpp:93
+#: ../src/ui/dialog/document-properties.cpp:92
 msgid "Default _units:"
 msgstr "_Единица измерения:"
 
 #. ---------------------------------------------------------------
 #. General snap options
-#: ../src/ui/dialog/document-properties.cpp:97
+#: ../src/ui/dialog/document-properties.cpp:96
 msgid "Show _guides"
 msgstr "Показывать н_аправляющие"
 
-#: ../src/ui/dialog/document-properties.cpp:97
+#: ../src/ui/dialog/document-properties.cpp:96
 msgid "Show or hide guides"
 msgstr "Показать или скрыть направляющие"
 
-#: ../src/ui/dialog/document-properties.cpp:98
+#: ../src/ui/dialog/document-properties.cpp:97
 msgid "_Snap guides while dragging"
 msgstr "_Направляющие прилипают при перетаскивании"
 
-#: ../src/ui/dialog/document-properties.cpp:98
+#: ../src/ui/dialog/document-properties.cpp:97
 msgid "While dragging a guide, snap to object nodes or bounding box corners ('Snap to nodes' or 'snap to bounding box corners' must be enabled in the 'Snap' tab; only a small part of the guide near the cursor will snap)"
 msgstr "При перетаскивании направляющая будет прилипать к узлам и площадкам (BB) объектов (для этого должны быть включены параметры «Прилипать к узлам» и «Прилипать к углам площадок», лишь небольшая часть направляющей рядом с курсором будет прилипать)"
 
-#: ../src/ui/dialog/document-properties.cpp:100
+#: ../src/ui/dialog/document-properties.cpp:99
 msgid "Guide co_lor:"
 msgstr "Цв_ет направляющей:"
 
-#: ../src/ui/dialog/document-properties.cpp:100
+#: ../src/ui/dialog/document-properties.cpp:99
 msgid "Guideline color"
 msgstr "Цвет направляющей"
 
-#: ../src/ui/dialog/document-properties.cpp:100
+#: ../src/ui/dialog/document-properties.cpp:99
 msgid "Color of guidelines"
 msgstr "Цвет направляющих линий"
 
-#: ../src/ui/dialog/document-properties.cpp:101
+#: ../src/ui/dialog/document-properties.cpp:100
 msgid "_Highlight color:"
 msgstr "По_дсветка:"
 
-#: ../src/ui/dialog/document-properties.cpp:101
+#: ../src/ui/dialog/document-properties.cpp:100
 msgid "Highlighted guideline color"
 msgstr "Цвет подсвеченной направляющей"
 
-#: ../src/ui/dialog/document-properties.cpp:101
+#: ../src/ui/dialog/document-properties.cpp:100
 msgid "Color of a guideline when it is under mouse"
 msgstr "Цвет направляющей линии в момент её нахождения под курсором"
 
 #. ---------------------------------------------------------------
-#: ../src/ui/dialog/document-properties.cpp:103
+#: ../src/ui/dialog/document-properties.cpp:102
 msgid "_Enable snapping"
 msgstr "_Включить прилипание"
 
-#: ../src/ui/dialog/document-properties.cpp:103
-#: ../src/verbs.cpp:2560
+#: ../src/ui/dialog/document-properties.cpp:102
+#: ../src/verbs.cpp:2563
 msgid "Toggle snapping on or off"
 msgstr "Включить или выключить прилипание"
 
-#: ../src/ui/dialog/document-properties.cpp:104
+#: ../src/ui/dialog/document-properties.cpp:103
 msgid "_Enable snap indicator"
 msgstr "_Показывать индикатор прилипания"
 
-#: ../src/ui/dialog/document-properties.cpp:104
+#: ../src/ui/dialog/document-properties.cpp:103
 msgid "After snapping, a symbol is drawn at the point that has snapped"
 msgstr ""
 
-#: ../src/ui/dialog/document-properties.cpp:105
+#: ../src/ui/dialog/document-properties.cpp:104
 msgid "_Bounding box corners"
 msgstr "У_глы площадки (BB)"
 
-#: ../src/ui/dialog/document-properties.cpp:105
+#: ../src/ui/dialog/document-properties.cpp:104
 msgid "Only available in the selector tool: snap bounding box corners to guides, to grids, and to other bounding boxes (but not to nodes or paths)"
 msgstr "Работает только для Селектора: прилипание площадки к направляющим, сетке и другим площадкам (но не к узлам или контурам)"
 
-#: ../src/ui/dialog/document-properties.cpp:107
+#: ../src/ui/dialog/document-properties.cpp:106
 msgid "_Nodes"
 msgstr "_Узлы"
 
-#: ../src/ui/dialog/document-properties.cpp:107
+#: ../src/ui/dialog/document-properties.cpp:106
 msgid "Snap nodes (e.g. path nodes, special points in shapes, gradient handles, text base points, transformation origins, etc.) to guides, to grids, to paths and to other nodes"
 msgstr "Узлы (т.е. узлы контуров, управляющие ручки фигур, опорные точки градиентов, якорные точки текста и т.д.) прилипают направляющим, к линиям сетки, к контурам и к другим узлам"
 
 #. Options for snapping to objects
-#: ../src/ui/dialog/document-properties.cpp:110
+#: ../src/ui/dialog/document-properties.cpp:109
 msgid "Snap to path_s"
 msgstr "Прилипать к _контурам"
 
-#: ../src/ui/dialog/document-properties.cpp:110
+#: ../src/ui/dialog/document-properties.cpp:109
 msgid "Snap nodes to object paths"
 msgstr "Узлы прилипают к объектам"
 
-#: ../src/ui/dialog/document-properties.cpp:111
+#: ../src/ui/dialog/document-properties.cpp:110
 msgid "Snap to n_odes"
 msgstr "Прилипать к у_злам"
 
-#: ../src/ui/dialog/document-properties.cpp:111
+#: ../src/ui/dialog/document-properties.cpp:110
 msgid "Snap nodes and guides to object nodes"
 msgstr "Узлы и направляющие прилипают к узлам объектов"
 
-#: ../src/ui/dialog/document-properties.cpp:112
+#: ../src/ui/dialog/document-properties.cpp:111
 msgid "Snap to bounding bo_x edges"
 msgstr "Прилипать к краям пло_щадок"
 
-#: ../src/ui/dialog/document-properties.cpp:112
+#: ../src/ui/dialog/document-properties.cpp:111
 msgid "Snap bounding box corners and guides to bounding box edges"
 msgstr "Углы площадок и направляющие прилипают к краям площадок"
 
-#: ../src/ui/dialog/document-properties.cpp:113
+#: ../src/ui/dialog/document-properties.cpp:112
 msgid "Snap to bounding box co_rners"
 msgstr "Прилипать к углам _площадок"
 
-#: ../src/ui/dialog/document-properties.cpp:113
+#: ../src/ui/dialog/document-properties.cpp:112
 msgid "Snap bounding box corners to other bounding box corners"
 msgstr "Углы площадок прилипают к углам других площадок"
 
-#: ../src/ui/dialog/document-properties.cpp:114
+#: ../src/ui/dialog/document-properties.cpp:113
 msgid "Snap to page border"
 msgstr "Прилипать к краю страницы"
 
-#: ../src/ui/dialog/document-properties.cpp:114
+#: ../src/ui/dialog/document-properties.cpp:113
 #, fuzzy
 msgid "Snap bounding box corners and nodes to the page border"
 msgstr "Углы площадок и направляющие прилипают к краям площадок"
 
 #. ---------------------------------------------------------------
 #. Applies to both nodes and guides, but not to bboxes, that's why its located here
-#: ../src/ui/dialog/document-properties.cpp:117
+#: ../src/ui/dialog/document-properties.cpp:116
 msgid "Rotation _center"
 msgstr "_Центр вращения"
 
-#: ../src/ui/dialog/document-properties.cpp:117
+#: ../src/ui/dialog/document-properties.cpp:116
 msgid "Consider the rotation center of an object when snapping"
 msgstr "Прилипать к центру вращения объекта"
 
+#: ../src/ui/dialog/document-properties.cpp:117
+msgid "_Smooth nodes"
+msgstr "_Сглаженные узлы"
+
+#: ../src/ui/dialog/document-properties.cpp:117
+msgid "Snap to smooth nodes too, instead of only snapping to cusp nodes"
+msgstr ""
+
 #: ../src/ui/dialog/document-properties.cpp:118
 msgid "_Grid with guides"
 msgstr "С_етки с направляющими"
@@ -9729,133 +9766,133 @@ msgstr "_Удалить"
 msgid "Remove selected grid."
 msgstr "Удалить выделенную сетку"
 
-#: ../src/ui/dialog/document-properties.cpp:135
+#: ../src/ui/dialog/document-properties.cpp:134
 msgid "Guides"
 msgstr "Направляющие"
 
-#: ../src/ui/dialog/document-properties.cpp:136
-#: ../src/ui/dialog/inkscape-preferences.cpp:924
+#: ../src/ui/dialog/document-properties.cpp:135
+#: ../src/ui/dialog/inkscape-preferences.cpp:958
 msgid "Grids"
 msgstr "Сетки"
 
-#: ../src/ui/dialog/document-properties.cpp:137
-#: ../src/verbs.cpp:2560
+#: ../src/ui/dialog/document-properties.cpp:136
+#: ../src/verbs.cpp:2563
 msgid "Snap"
 msgstr "Прилипание"
 
-#: ../src/ui/dialog/document-properties.cpp:138
+#: ../src/ui/dialog/document-properties.cpp:137
 msgid "Snap points"
 msgstr "Точки"
 
-#: ../src/ui/dialog/document-properties.cpp:233
+#: ../src/ui/dialog/document-properties.cpp:232
 msgid "<b>General</b>"
 msgstr "<b>Общие</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:235
+#: ../src/ui/dialog/document-properties.cpp:234
 msgid "<b>Border</b>"
 msgstr "<b>Кайма</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:237
+#: ../src/ui/dialog/document-properties.cpp:236
 msgid "<b>Format</b>"
 msgstr "<b>Формат</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:265
+#: ../src/ui/dialog/document-properties.cpp:264
 msgid "<b>Guides</b>"
 msgstr "<b>Направляющие</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:284
+#: ../src/ui/dialog/document-properties.cpp:283
 msgid "Snap _distance"
 msgstr "Радиус _прилипания"
 
-#: ../src/ui/dialog/document-properties.cpp:284
+#: ../src/ui/dialog/document-properties.cpp:283
 msgid "Snap only when _closer than:"
 msgstr "Прилипать _только если ближе чем:"
 
-#: ../src/ui/dialog/document-properties.cpp:284
-#: ../src/ui/dialog/document-properties.cpp:290
-#: ../src/ui/dialog/document-properties.cpp:296
+#: ../src/ui/dialog/document-properties.cpp:283
+#: ../src/ui/dialog/document-properties.cpp:289
+#: ../src/ui/dialog/document-properties.cpp:295
 msgid "Always snap"
 msgstr "Всегда прилипать"
 
-#: ../src/ui/dialog/document-properties.cpp:285
+#: ../src/ui/dialog/document-properties.cpp:284
 msgid "Snapping distance, in screen pixels, for snapping to objects"
 msgstr "Зона прилипания к объектам, в экранных пикселах"
 
-#: ../src/ui/dialog/document-properties.cpp:285
+#: ../src/ui/dialog/document-properties.cpp:284
 msgid "Always snap to objects, regardless of their distance"
 msgstr "Всегда прилипать к объектам вне зависимости от расстояния до них"
 
-#: ../src/ui/dialog/document-properties.cpp:286
+#: ../src/ui/dialog/document-properties.cpp:285
 msgid "If set, objects only snap to another object when it's within the range specified below"
 msgstr "Если включено, объекты прилипают к другим объектам только на указанном минимальном расстоянии"
 
 #. Options for snapping to grids
-#: ../src/ui/dialog/document-properties.cpp:290
+#: ../src/ui/dialog/document-properties.cpp:289
 msgid "Snap d_istance"
 msgstr "Радиус _прилипания"
 
-#: ../src/ui/dialog/document-properties.cpp:290
+#: ../src/ui/dialog/document-properties.cpp:289
 msgid "Snap only when c_loser than:"
 msgstr "Прилипать только _если ближе чем:"
 
-#: ../src/ui/dialog/document-properties.cpp:291
+#: ../src/ui/dialog/document-properties.cpp:290
 msgid "Snapping distance, in screen pixels, for snapping to grid"
 msgstr "Зона прилипания к сетке, в экранных точках"
 
-#: ../src/ui/dialog/document-properties.cpp:291
+#: ../src/ui/dialog/document-properties.cpp:290
 msgid "Always snap to grids, regardless of the distance"
 msgstr "Всегда прилипать к сеткам вне зависимости от расстояния до их линий"
 
-#: ../src/ui/dialog/document-properties.cpp:292
+#: ../src/ui/dialog/document-properties.cpp:291
 msgid "If set, objects only snap to a grid line when it's within the range specified below"
 msgstr "Если включено, объекты прилипают к линиям сетки только на указанном минимальном расстоянии"
 
 #. Options for snapping to guides
-#: ../src/ui/dialog/document-properties.cpp:296
+#: ../src/ui/dialog/document-properties.cpp:295
 msgid "Snap dist_ance"
 msgstr "Радиус _прилипания"
 
-#: ../src/ui/dialog/document-properties.cpp:296
+#: ../src/ui/dialog/document-properties.cpp:295
 msgid "Snap only when close_r than:"
 msgstr "Прилипать только если _ближе чем:"
 
-#: ../src/ui/dialog/document-properties.cpp:297
+#: ../src/ui/dialog/document-properties.cpp:296
 msgid "Snapping distance, in screen pixels, for snapping to guides"
 msgstr "Зона прилипания к направляющим, в экранных точках"
 
-#: ../src/ui/dialog/document-properties.cpp:297
+#: ../src/ui/dialog/document-properties.cpp:296
 msgid "Always snap to guides, regardless of the distance"
 msgstr "Всегда прилипать к направляющим вне зависимости от расстояния до них"
 
-#: ../src/ui/dialog/document-properties.cpp:298
+#: ../src/ui/dialog/document-properties.cpp:297
 msgid "If set, objects only snap to a guide when it's within the range specified below"
 msgstr "Если включено, объекты прилипают к направляющим только на указанном минимальном расстоянии"
 
-#: ../src/ui/dialog/document-properties.cpp:321
+#: ../src/ui/dialog/document-properties.cpp:320
 msgid "<b>Snapping</b>"
 msgstr "<b>Прилипание</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:323
+#: ../src/ui/dialog/document-properties.cpp:322
 msgid "<b>What snaps</b>"
 msgstr "<b>Что прилипает</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:325
+#: ../src/ui/dialog/document-properties.cpp:324
 msgid "<b>Snap to objects</b>"
 msgstr "<b>Прилипание к объектам</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:327
+#: ../src/ui/dialog/document-properties.cpp:326
 msgid "<b>Snap to grids</b>"
 msgstr "<b>Прилипание к сеткам</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:329
+#: ../src/ui/dialog/document-properties.cpp:328
 msgid "<b>Snap to guides</b>"
 msgstr "<b>Прилипание к направляющим</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:367
+#: ../src/ui/dialog/document-properties.cpp:366
 msgid "<b>Snapping to intersections of</b>"
 msgstr "<b>Прилипание к пересечениям</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:369
+#: ../src/ui/dialog/document-properties.cpp:368
 msgid "<b>Special points to consider</b>"
 msgstr "<b>Какие спецточки учитывать</b>"
 
@@ -9867,7 +9904,7 @@ msgstr "<b>Создание</b>"
 msgid "<b>Defined grids</b>"
 msgstr "<b>Определённые пользователем сетки</b>"
 
-#: ../src/ui/dialog/document-properties.cpp:656
+#: ../src/ui/dialog/document-properties.cpp:657
 msgid "Remove grid"
 msgstr "Удаление сетки"
 
@@ -9876,6 +9913,7 @@ msgid "Information"
 msgstr "Информация"
 
 #: ../src/ui/dialog/extension-editor.cpp:81
+#: ../share/extensions/draw_from_triangle.inx.h:20
 #: ../share/extensions/lindenmayer.inx.h:3
 #: ../share/extensions/measure.inx.h:2
 msgid "Help"
@@ -9885,11 +9923,11 @@ msgstr "Справка"
 msgid "Parameters"
 msgstr "Параметры"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:382
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:383
 msgid "No preview"
 msgstr "Без предпросмотра"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:488
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:489
 msgid "too large for preview"
 msgstr "Слишком велик для просмотра"
 
@@ -9899,13 +9937,13 @@ msgstr "Включить предпросмотр"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:711
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:712
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:199
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:198
 msgid "All Inkscape Files"
 msgstr "Все файлы Inkscape"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:716
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:717
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:198
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:197
 msgid "All Files"
 msgstr "Все файлы"
 
@@ -9914,54 +9952,51 @@ msgstr "Все файлы"
 msgid "All Images"
 msgstr "Все изображения"
 
-#. ###### Add the file types menu
-#. createFilterMenu();
-#. ###### Do we want the .xxx extension automatically added?
 #. ###### File options
 #. ###### Do we want the .xxx extension automatically added?
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:890
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1432
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:891
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1429
 msgid "Append filename extension automatically"
 msgstr "Автоматически добавить расширение файла"
 
 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1045
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1297
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1293
 msgid "Guess from extension"
 msgstr "Угадать по расширению"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1318
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1314
 msgid "Left edge of source"
 msgstr "Исходный левый край"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1319
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1315
 msgid "Top edge of source"
 msgstr "Исходный правый край"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1320
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1316
 msgid "Right edge of source"
 msgstr "Исходный правый край"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1321
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1317
 msgid "Bottom edge of source"
 msgstr "Исходный нижний край"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1322
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1318
 msgid "Source width"
 msgstr "Исходная ширина"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1323
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1319
 msgid "Source height"
 msgstr "Исходная высота"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1324
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1320
 msgid "Destination width"
 msgstr "Конечная ширина"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1325
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1321
 msgid "Destination height"
 msgstr "Конечная высота"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1326
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1322
 msgid "Resolution (dots per inch)"
 msgstr "Разрешение (в точках на дюйм)"
 
@@ -9969,52 +10004,52 @@ msgstr "Разрешение (в точках на дюйм)"
 #. ## EXTRA WIDGET -- SOURCE SIDE
 #. #########################################
 #. ##### Export options buttons/spinners, etc
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1363
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1360
 msgid "Document"
 msgstr "Документ"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1375
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1372
 #: ../share/extensions/color_custom.inx.h:3
 msgid "Custom"
 msgstr "Другой"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1415
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1412
 msgid "Cairo"
 msgstr "Cairo"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1418
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1415
 msgid "Antialias"
 msgstr "Сглаживать"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1421
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1418
 msgid "Background"
 msgstr "Фон"
 
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1444
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1441
 msgid "Destination"
 msgstr "Назначение"
 
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:200
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:199
 msgid "All Image Files"
 msgstr "Все файлы изображений"
 
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:429
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:428
 msgid "Show Preview"
 msgstr "Предпросмотр"
 
-#: ../src/ui/dialog/filedialogimpl-win32.cpp:565
+#: ../src/ui/dialog/filedialogimpl-win32.cpp:564
 msgid "No file selected"
 msgstr "Ни один файл не выбран"
 
-#: ../src/ui/dialog/fill-and-stroke.cpp:53
+#: ../src/ui/dialog/fill-and-stroke.cpp:50
 msgid "Fill"
 msgstr "Заливка"
 
-#: ../src/ui/dialog/fill-and-stroke.cpp:54
+#: ../src/ui/dialog/fill-and-stroke.cpp:51
 msgid "Stroke _paint"
 msgstr "Об_водка"
 
-#: ../src/ui/dialog/fill-and-stroke.cpp:55
+#: ../src/ui/dialog/fill-and-stroke.cpp:52
 msgid "Stroke st_yle"
 msgstr "_Стиль обводки"
 
@@ -10102,289 +10137,289 @@ msgstr "Угол конуса"
 msgid "This is the angle between the spot light axis (i.e. the axis between the light source and the point to which it is pointing at) and the spot light cone. No light is projected outside this cone."
 msgstr "Угол между осью источника света (т.е. осью, проходящей через источник света и точку, на которую он указывает) и конусом прожектора. За пределы конуса свет не проецируется."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1068
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1069
 msgid "New light source"
 msgstr "Новый источник света"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1109
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1110
 msgid "_Duplicate"
 msgstr "_Продублировать"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1135
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1136
 msgid "_Filter"
 msgstr "_Фильтры"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1149
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1150
 msgid "R_ename"
 msgstr "Пере_именовать"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1243
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1244
 msgid "Rename filter"
 msgstr "Переименовать фильтр"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1279
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1280
 msgid "Apply filter"
 msgstr "Применение фильтра"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1355
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1356
 msgid "Add filter"
 msgstr "Добавление фильтра"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1381
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1382
 msgid "Duplicate filter"
 msgstr "Дублирование фильтра"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1448
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1449
 msgid "_Effect"
 msgstr "Эффе_кт"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1456
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1457
 msgid "Connections"
 msgstr "Cоединения"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1572
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1573
 msgid "Remove filter primitive"
 msgstr "Удаление примитива фильтра"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1944
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1945
 msgid "Remove merge node"
 msgstr "Удалить объединяющий узел"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2060
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2061
 msgid "Reorder filter primitive"
 msgstr "Смена порядка примитивов фильтра"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2094
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2095
 msgid "Add Effect:"
 msgstr "Добавить:"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2095
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2096
 msgid "No effect selected"
 msgstr "Ни один эффект не выбран"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2096
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2097
 msgid "No filter selected"
 msgstr "Ни один фильтр не выбран"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2134
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2135
 msgid "Effect parameters"
 msgstr "Параметры эффекта"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2135
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2136
 msgid "Filter General Settings"
 msgstr "Общие параметры фильтра"
 
 #. default x:
 #. default y:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2191
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2192
 msgid "Coordinates"
 msgstr "Координаты"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2191
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2192
 msgid "X coordinate of the left corners of filter effects region"
 msgstr "Координата X левых углов области действия фильтра эффектов"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2191
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2192
 msgid "Y coordinate of the upper corners of filter effects region"
 msgstr "Координата X верхних углов области действия фильтра эффектов"
 
 #. default width:
 #. default height:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2192
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2193
 #: ../share/extensions/dimension.inx.h:1
 msgid "Dimensions"
 msgstr "Размеры"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2192
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2193
 msgid "Width of filter effects region"
 msgstr "Ширина области действия фильтра эффектов"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2192
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2193
 msgid "Height of filter effects region"
 msgstr "Высота области действия фильтра эффектов"
 
 #. # end multiple scan
 #. ## end mode page
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2195
-#: ../src/ui/dialog/tracedialog.cpp:553
-#: ../src/widgets/toolbox.cpp:3777
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2196
+#: ../src/ui/dialog/tracedialog.cpp:552
+#: ../src/widgets/toolbox.cpp:3768
 #: ../share/extensions/triangle.inx.h:9
 msgid "Mode"
 msgstr "Режим"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2198
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2199
 msgid "Indicates the type of matrix operation. The keyword 'matrix' indicates that a full 5x4 matrix of values will be provided. The other keywords represent convenience shortcuts to allow commonly used color operations to be performed without specifying a complete matrix."
 msgstr "Тип матричной операции. Слово «матрица» означает, что будет предоставлена полная матрица значений размером 5×4. Остальные варианты — это простой способ выполнить наиболее популярные операции, не задавая все значения матрицы вручную."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2199
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2200
 msgid "Value(s)"
 msgstr "Значение(-я)"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2213
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2254
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2214
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2255
 msgid "Operator"
 msgstr "Оператор"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2214
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2215
 msgid "K1"
 msgstr "K1"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2214
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2215
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2216
 #: ../src/ui/dialog/filter-effects-dialog.cpp:2217
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2218
 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 "Если выбран арифметический оператор, каждый получаемый пиксел вычисляется по формуле k1*i1*i2 + k2*i1 + k3*i2 + k4, где i1 и i2 — пикселы первого и второго входов соответственно."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2215
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2216
 msgid "K2"
 msgstr "K2"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2216
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2217
 msgid "K3"
 msgstr "K3"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2217
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2218
 msgid "K4"
 msgstr "K4"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2220
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2221
 msgid "width of the convolve matrix"
 msgstr "Ширина матрицы свёртки"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2220
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2221
 msgid "height of the convolve matrix"
 msgstr "Высота матрицы свёртки"
 
 #. default x:
 #. default y:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2221
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2222
 msgid "Target"
 msgstr "Цель"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2221
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2222
 msgid "X coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point."
 msgstr "Координата X конечной точки матрицы свертки. Свертка применяется к пикселам вокруг этой точки."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2221
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2222
 msgid "Y coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point."
 msgstr "Координата Y конечной точки матрицы свертки. Свертка применяется к пикселам вокруг этой точки."
 
 #. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix)
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2223
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2224
 msgid "Kernel"
 msgstr "Ядро"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2223
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2224
 msgid "This matrix describes the convolve operation that is applied to the input image in order to calculate the pixel colors at the output. Different arrangements of values in this matrix result in various possible visual effects. An identity matrix would lead to a motion blur effect (parallel to the matrix diagonal) while a matrix filled with a constant non-zero value would lead to a common blur effect."
 msgstr "Эта матрица описывает операцию свертки, которая будет применена к входящему изображению для вычисления цветов пикселов на выходе. Различные комбинации значений дают различные визуальные эффекты. Тождественная матрица даст эффект размывания движением, в то время как матрица, заполненная постоянным ненулевым значением даст обычный эффект размывания."
 
 #. TODO: svg spec: The default value is the sum of all values in kernelMatrix, with the exception that if the sum is zero, then the divisor is set to 1.
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2226
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2227
 msgid "Divisor"
 msgstr "Делитель"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2226
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2227
 msgid "After applying the kernelMatrix to the input image to yield a number, that number is divided by divisor to yield the final destination color value. A divisor that is the sum of all the matrix values tends to have an evening effect on the overall color intensity of the result."
 msgstr "После применения kernelMatrix к входящему изображению для получения числа, это число делится на делитель для получения конечного значения цвета. Делитель, являющийся суммой всех значений матрицы, имеет тенденцию приглушать общую интенсивность цветов в конечной картинке."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2227
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2228
 msgid "Bias"
 msgstr "Смещение"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2227
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2228
 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:2228
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2229
 msgid "Edge Mode"
 msgstr "Режим краёв"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2228
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2229
 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:2229
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2230
 msgid "Preserve Alpha"
 msgstr "Сохранять альфа-канал"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2229
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2230
 msgid "If set, the alpha channel won't be altered by this filter primitive."
 msgstr "Если включено, альфа-канал не будет изменен этим примитивом фильтра."
 
 #. default: white
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2232
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2233
 msgid "Diffuse Color"
 msgstr "Цвет диффузии"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2232
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2265
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2233
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2266
 msgid "Defines the color of the light source"
 msgstr "Определяет цвет источника света"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2233
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2266
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2234
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2267
 msgid "Surface Scale"
 msgstr "Коэфф. высоты поверхности"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2233
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2266
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2234
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2267
 msgid "This value amplifies the heights of the bump map defined by the input alpha channel"
 msgstr "На это значение умножается высота карты рельефа, определенная входящим альфа-каналом"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2234
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2267
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2235
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2268
 msgid "Constant"
 msgstr "Константа диффузии"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2234
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2267
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2235
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2268
 msgid "This constant affects the Phong lighting model."
 msgstr "Эта константа касается модели освещения Фонга"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2235
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2269
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2236
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2270
 msgid "Kernel Unit Length"
 msgstr "Длина единицы ядра"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2239
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2240
 msgid "This defines the intensity of the displacement effect."
 msgstr "Определяет интенсивность эффекта смещения"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2240
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2241
 msgid "X displacement"
 msgstr "Смещение по X"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2240
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2241
 msgid "Color component that controls the displacement in the X direction"
 msgstr "Цветовой компонент, контролирующий смещение по оси X"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2241
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2242
 msgid "Y displacement"
 msgstr "Смещение по Y"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2241
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2242
 msgid "Color component that controls the displacement in the Y direction"
 msgstr "Цветовой компонент, контролирующий смещение по оси Y"
 
 #. default: black
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2244
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2245
 msgid "Flood Color"
 msgstr "Цвет заливки"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2244
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2245
 msgid "The whole filter region will be filled with this color."
 msgstr "Вся область действия фильтра будет залита этим цветом"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2248
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2249
 msgid "Standard Deviation"
 msgstr "Стандартное отклонение"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2248
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2249
 msgid "The standard deviation for the blur operation."
 msgstr "Стандартное отклонение при размывании, выражается в процентах"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2254
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2255
 msgid ""
 "Erode: performs \"thinning\" of input image.\n"
 "Dilate: performs \"fattenning\" of input image."
@@ -10392,1356 +10427,1391 @@ msgstr ""
 "Эрозия: «утоньшает» входящее изображение\n"
 "Дилатация: «утолщает» входящее изображение"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2258
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2259
 msgid "Source of Image"
 msgstr "Источник изображения"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2261
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2262
 msgid "Delta X"
 msgstr "Дельта X"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2261
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2262
 msgid "This is how far the input image gets shifted to the right"
 msgstr "Как далеко входящее изображение смещается вправо"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2262
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2263
 msgid "Delta Y"
 msgstr "Дельта Y"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2262
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2263
 msgid "This is how far the input image gets shifted downwards"
 msgstr "Как далеко входящее изображение смещается вниз"
 
 #. default: white
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2265
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2266
 msgid "Specular Color"
 msgstr "Цвет отражения"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2268
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2269
 #: ../share/extensions/interp.inx.h:2
 msgid "Exponent"
 msgstr "Экспонента"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2268
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2269
 msgid "Exponent for specular term, larger is more \"shiny\"."
 msgstr "Экспонента отражения: чем больше значение, тем ярче отражение"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2277
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2278
 msgid "Indicates whether the filter primitive should perform a noise or turbulence function."
 msgstr "Должен ли примитив выполнять функцию создания турбулентности или же шума"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2278
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2279
 msgid "Base Frequency"
 msgstr "Основная частота"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2279
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2280
 msgid "Octaves"
 msgstr "Числа Кейли"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2280
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2281
 msgid "Seed"
 msgstr "Случайное значение"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2280
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2281
 msgid "The starting number for the pseudo random number generator."
 msgstr "Начальное число для генератора псевдослучайных чисел"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2292
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2293
 msgid "Add filter primitive"
 msgstr "Добавление примитива фильтра"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2309
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2310
 msgid "The <b>feBlend</b> filter primitive provides 4 image blending modes: screen, multiply, darken and lighten."
 msgstr "Примитив <b>feBlend</b> дает 4 режима наложения: экран, умножение, затемнение и осветление."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2313
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2314
 msgid "The <b>feColorMatrix</b> filter primitive applies a matrix transformation to colour of each rendered pixel. This allows for effects like turning object to grayscale, modifying colour saturation and changing colour hue."
 msgstr "Примитив <b>feColorMatrix</b> применяет матричное преобразование для раскрашивания каждого пиксела. Таким образом можно обесцвечивать, повышать насыщенность и менять тон."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2317
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2318
 msgid "The <b>feComponentTransfer</b> filter primitive manipulates the input's color components (red, green, blue, and alpha) according to particular transfer functions, allowing operations like brightness and contrast adjustment, color balance, and thresholding."
 msgstr "Примитив <b>feComponentTransfer</b> позволяет манипулировать цветовыми компонентами входящего объекта (красный, зеленый, синий и альфа-каналы) в соответствии с определенными функциями передачи, допуская операции вроде коррекции яркости и контраста, цветового баланса и порога."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2321
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2322
 msgid "The <b>feComposite</b> filter primitive composites two images using one of the Porter-Duff blending modes or the aritmetic mode described in SVG standard. Porter-Duff blending modes are essentially logical operations between the corresponding pixel values of the images."
 msgstr "Примитив <b>feComposite</b> совмещает два изображения, используя один из режимов наложения Портера-Даффа или арифметический оператор из стандарта SVG. Режимы наложения Портера-Даффа — по сути,логические операции между значениями соответствующих пикселов этих изображений."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2325
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2326
 msgid "The <b>feConvolveMatrix</b> lets you specify a Convolution to be applied on the image. Common effects created using convolution matrices are blur, sharpening, embossing and edge detection. Note that while gaussian blur can be created using this filter primitive, the special gaussian blur primitive is faster and resolution-independent."
 msgstr "Примитив <b>feConvolveMatrix</b> позволяет указать свертку, применяемую к изображению. Типичные эффекты, создаваемые при помощи матрицы свертки — размывание, повышение резкости, создание рельефа и определение краев. Хотя гауссово размывание можно выполнить и этим примитивом, специализированный примитив работает быстрее и не зависит от разрешения."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2329
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2330
 msgid "The <b>feDiffuseLighting</b> and feSpecularLighting filter primitives create \"embossed\" shadings.  The input's alpha channel is used to provide depth information: higher opacity areas are raised toward the viewer and lower opacity areas recede away from the viewer."
 msgstr "Примитивы <b>feDiffuseLighting</b> и feSpecularLighting создают рельефные тени.  Входящий альфа-канал используется для предоставления информации о глубине: чем выше непрозрачность, тем выше рельеф и, соответственно, тем ближе к наблюдателю верхняя точка этого рельефа."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2333
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2334
 msgid "The <b>feDisplacementMap</b> filter primitive displaces the pixels in the first input using the second input as a displacement map, that shows from how far the pixel should come from. Classical examples are whirl and pinch effects."
 msgstr "Примитив <b>feDisplacementMap</b> смещает пикселы первого входа, используя пикселы второго в качестве карты смещения, показывающей, как далеко должны отойти пикселы. Типичные эффекты, создаваемые при помощи карты смещения — завихрение и щипок."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2337
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2338
 msgid "The <b>feFlood</b> 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 "Примитив <b>feFlood</b> заливает область заданным цветом и непрозрачностью. Обычно он используется как вход для других фильтров, применяющих цвет."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2341
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2342
 msgid "The <b>feGaussianBlur</b> filter primitive uniformly blurs its input.  It is commonly used together with feOffset to create a drop shadow effect."
 msgstr "Примитив <b>feGaussianBlur</b> равномерно размывает объекты на входе. Фильтр часто используется с feOffset для создания эффекта отбрасываемой тени."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2345
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2346
 msgid "The <b>feImage</b> filter primitive fills the region with an external image or another part of the document."
 msgstr "Примитив <b>feImage</b> заполняет область внешним изображением или другой частью документа."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2349
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2350
 msgid "The <b>feMerge</b> filter primitive composites several temporary images inside the filter primitive to a single image. It uses normal alpha compositing for this. This is equivalent to using several feBlend primitives in 'normal' mode or several feComposite primitives in 'over' mode."
 msgstr "Примитив <b>feMerge</b> сводит несколько временных изображений в одно, используя обычное альфа‑совмещение. Получаемый эффект эквивалентен нескольким примитивам feBlend в режиме «Обычный» или нескольким примитивам feComposite в режиме «Над» (over)."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2353
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2354
 msgid "The <b>feMorphology</b> filter primitive provides erode and dilate effects. For single-colour objects erode makes the object thinner and dilate makes it thicker."
 msgstr "Примитив <b>feMorphology</b> позволяет применить эффект эрозии и дилатации. Объекты с плоской заливкой при эрозии становятся тоньше, а с дилатацией — толще."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2357
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2358
 msgid "The <b>feOffset</b> 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 "Примитив <b>feOffset</b> смещает изображение на заданное расстояние. Он используется, к примеру, для создания эффекта отбрасываемой тени, где тень слегка смещена относительно исходного объекта."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2361
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2362
 msgid "The feDiffuseLighting and <b>feSpecularLighting</b> filter primitives create \"embossed\" shadings.  The input's alpha channel is used to provide depth information: higher opacity areas are raised toward the viewer and lower opacity areas recede away from the viewer."
 msgstr "Примитивы feDiffuseLighting и <b>feSpecularLighting</b> создают рельефные тени.  Входящий альфа-канал используется для предоставления информации о глубине: чем выше непрозрачность, тем выше рельеф и, соответственно, тем ближе к наблюдателю верхняя точка этого рельефа."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2365
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2366
 msgid "The <b>feTile</b> filter primitive tiles a region with its input graphic"
 msgstr "Примитив <b>feTile</b> заполняет область мозаикой из входящего изображения."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2369
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2370
 msgid "The <b>feTurbulence</b> 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 "Примитив <b>feTurbulence</b> создает перлинов шум. Этот тип шума полезен для имитации различных природных явлений вроде облаков, огня и дыма, а также для создания сложных текстур наподобие мрамора или гранита."
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2387
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2388
 msgid "Duplicate filter primitive"
 msgstr "Дубликация примитива фильтра"
 
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2440
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2441
 msgid "Set filter primitive attribute"
 msgstr "Смена атрибута примитива фильтра"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:155
+#: ../src/ui/dialog/inkscape-preferences.cpp:156
 msgid "Mouse"
 msgstr "Мышь"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:157
+#: ../src/ui/dialog/inkscape-preferences.cpp:158
 msgid "Grab sensitivity:"
 msgstr "Радиус захвата:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:157
-#: ../src/ui/dialog/inkscape-preferences.cpp:160
-#: ../src/ui/dialog/inkscape-preferences.cpp:176
-#: ../src/ui/dialog/inkscape-preferences.cpp:180
-#: ../src/ui/dialog/inkscape-preferences.cpp:190
+#: ../src/ui/dialog/inkscape-preferences.cpp:158
+#: ../src/ui/dialog/inkscape-preferences.cpp:161
+#: ../src/ui/dialog/inkscape-preferences.cpp:177
+#: ../src/ui/dialog/inkscape-preferences.cpp:181
+#: ../src/ui/dialog/inkscape-preferences.cpp:191
 msgid "pixels"
 msgstr "пикселов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:158
+#: ../src/ui/dialog/inkscape-preferences.cpp:159
 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:160
+#: ../src/ui/dialog/inkscape-preferences.cpp:161
 msgid "Click/drag threshold:"
 msgstr "Считать щелчком перетаскивание на:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:161
+#: ../src/ui/dialog/inkscape-preferences.cpp:162
 msgid "Maximum mouse drag (in screen pixels) which is considered a click, not a drag"
 msgstr ""
 "Максимальное количество пикселов, перетаскивание на которое\n"
 "воспринимается как щелчок, а не как перетаскивание"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:163
+#: ../src/ui/dialog/inkscape-preferences.cpp:164
 msgid "Use pressure-sensitive tablet (requires restart)"
 msgstr "Использовать графический планшет (требует перезапуска)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:165
+#: ../src/ui/dialog/inkscape-preferences.cpp:166
 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:167
+#: ../src/ui/dialog/inkscape-preferences.cpp:168
 msgid "Switch tool based on tablet device (requires restart)"
 msgstr ""
 "Менять инструмент в зависимости от активного устройства\n"
 "графического планшета (требует перезапуска)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:169
+#: ../src/ui/dialog/inkscape-preferences.cpp:170
 msgid "Change tool as different devices are used on the tablet (pen, eraser, mouse)"
 msgstr "Менять инструмент в зависимости от активного инструмента планшета"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:174
+#: ../src/ui/dialog/inkscape-preferences.cpp:175
 msgid "Scrolling"
 msgstr "Прокрутка"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:176
+#: ../src/ui/dialog/inkscape-preferences.cpp:177
 msgid "Mouse wheel scrolls by:"
 msgstr "Колесико мыши прокручивает на:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:177
+#: ../src/ui/dialog/inkscape-preferences.cpp:178
 msgid "One mouse wheel notch scrolls by this distance in screen pixels (horizontally with Shift)"
 msgstr ""
 "На это расстояние в пикселах изображение сдвигается одним щелчком\n"
 "колесика мыши (с нажатой клавишей Shift - по горизонтали)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:178
+#: ../src/ui/dialog/inkscape-preferences.cpp:179
 msgid "Ctrl+arrows"
 msgstr "Ctrl+стрелки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:180
+#: ../src/ui/dialog/inkscape-preferences.cpp:181
 msgid "Scroll by:"
 msgstr "Шаг прокрутки:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:181
+#: ../src/ui/dialog/inkscape-preferences.cpp:182
 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)"
 msgstr "На это расстояние в пикселах изображение сдвигается при нажатии Ctrl+стрелки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:183
+#: ../src/ui/dialog/inkscape-preferences.cpp:184
 msgid "Acceleration:"
 msgstr "Ускорение:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:184
+#: ../src/ui/dialog/inkscape-preferences.cpp:185
 msgid "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no acceleration)"
 msgstr "Если удерживать нажатыми Ctrl+стрелку, скорость прокрутки будет возрастать (0 отменяет ускорение)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:185
+#: ../src/ui/dialog/inkscape-preferences.cpp:186
 msgid "Autoscrolling"
 msgstr "Автопрокрутка"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:187
+#: ../src/ui/dialog/inkscape-preferences.cpp:188
 msgid "Speed:"
 msgstr "Скорость:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:188
+#: ../src/ui/dialog/inkscape-preferences.cpp:189
 msgid "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn autoscroll off)"
 msgstr "С какой скоростью будет происходить прокрутка при перетаскивании объекта за пределы окна (0 отменяет автопрокрутку)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:190
-#: ../src/ui/dialog/tracedialog.cpp:410
-#: ../src/ui/dialog/tracedialog.cpp:443
-#: ../src/ui/dialog/tracedialog.cpp:586
-#: ../src/widgets/toolbox.cpp:6685
+#: ../src/ui/dialog/inkscape-preferences.cpp:191
+#: ../src/ui/dialog/tracedialog.cpp:409
+#: ../src/ui/dialog/tracedialog.cpp:442
+#: ../src/ui/dialog/tracedialog.cpp:585
+#: ../src/widgets/toolbox.cpp:6673
 msgid "Threshold:"
 msgstr "Порог:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:191
+#: ../src/ui/dialog/inkscape-preferences.cpp:192
 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 ""
 "Насколько далеко (в пикселах) нужно отстоять от края окна, чтобы\n"
 "включилась автопрокрутка; положительные значения - за пределами окна,\n"
 "отрицательные - внутри окна"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:192
+#: ../src/ui/dialog/inkscape-preferences.cpp:193
 msgid "Left mouse button pans when Space is pressed"
 msgstr "Перемещение по окну с нажатым пробелом и левой клавишей мыши"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:194
+#: ../src/ui/dialog/inkscape-preferences.cpp:195
 msgid "When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator). When off, Space temporarily switches to Selector tool (default)."
 msgstr "Если включено, нажатие пробела и перетаскивание левой клавиши мыши приводит к перемещению по холсту (как в Adobe Illustrator). Если выключено, нажатие пробела приводит к временному переключению на Селектор (по умолчанию)."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:195
+#: ../src/ui/dialog/inkscape-preferences.cpp:196
 msgid "Mouse wheel zooms by default"
 msgstr "По умолчанию колесо мыши масштабирует вид"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:197
+#: ../src/ui/dialog/inkscape-preferences.cpp:198
 msgid "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when off, it zooms with Ctrl and scrolls without Ctrl."
 msgstr "Если включено, прокрутка колеса мыши без Ctrl масштабирует вид документа, а с Ctrl — прокручивает холст; если выключено, с Ctrl масштабируется вид документа, а без - прокручивается холст."
 
 #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here
-#: ../src/ui/dialog/inkscape-preferences.cpp:206
+#: ../src/ui/dialog/inkscape-preferences.cpp:207
 msgid "Arrow keys move by:"
 msgstr "Стрелки двигают на:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:207
+#: ../src/ui/dialog/inkscape-preferences.cpp:208
 msgid "Pressing an arrow key moves selected object(s) or node(s) by this distance (in px units)"
 msgstr ""
 "На это расстояние (в SVG пикселах) выделенный объект или\n"
 "узел перемещается по нажатию клавиши со стрелкой"
 
 #. defaultscale is limited to 1000 in select-context.cpp: use the same limit here
-#: ../src/ui/dialog/inkscape-preferences.cpp:210
+#: ../src/ui/dialog/inkscape-preferences.cpp:211
 msgid "> and < scale by:"
 msgstr "Шаг масштабирования по > и <:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:211
+#: ../src/ui/dialog/inkscape-preferences.cpp:212
 msgid "Pressing > or < scales selection up or down by this increment (in px units)"
 msgstr "На эту величину (в SVG пикселах) изменяется размер выделения по нажатию клавиш > и <"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:213
+#: ../src/ui/dialog/inkscape-preferences.cpp:214
 msgid "Inset/Outset by:"
 msgstr "Втяжка или растяжка на:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:214
+#: ../src/ui/dialog/inkscape-preferences.cpp:215
 msgid "Inset and Outset commands displace the path by this distance (in px units)"
 msgstr "На это расстояние (в SVG пикселах) команды втяжки и растяжки смещают контур"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:215
+#: ../src/ui/dialog/inkscape-preferences.cpp:216
 msgid "Compass-like display of angles"
 msgstr "Компасообразное отображение углов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:217
+#: ../src/ui/dialog/inkscape-preferences.cpp:218
 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 "Если включено, угол со значением 0° показывает на север с диапазоном от 0° до 360°, причем значение увеличивается по часовой стрелке. В противном случае 0° показывает на восток, диапазон значений находится между -180° и 180°, приращение угла происходит против часовой стрелки."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:223
+#: ../src/ui/dialog/inkscape-preferences.cpp:224
 msgid "Rotation snaps every:"
 msgstr "Ограничение вращения:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:223
+#: ../src/ui/dialog/inkscape-preferences.cpp:224
 msgid "degrees"
 msgstr "градусов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:224
+#: ../src/ui/dialog/inkscape-preferences.cpp:225
 msgid "Rotating with Ctrl pressed snaps every that much degrees; also, pressing [ or ] rotates by this amount"
 msgstr "Вращение с нажатым Ctrl ограничивает угол значениями, кратными выбранному; нажатие [ или ] поворачивает на выбранный угол"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:226
+#: ../src/ui/dialog/inkscape-preferences.cpp:227
 msgid "Zoom in/out by:"
 msgstr "Шаг масштаба:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:227
+#: ../src/ui/dialog/inkscape-preferences.cpp:228
 msgid "Zoom tool click, +/- keys, and middle click zoom in and out by this multiplier"
 msgstr ""
 "Шаг для щелчка инструментом масштаба,\n"
 "нажатия клавиш +/- и щелчка средней клавишей мыши"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:233
+#: ../src/ui/dialog/inkscape-preferences.cpp:234
 msgid "Show selection cue"
 msgstr "Показывать пометку выделения"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:234
+#: ../src/ui/dialog/inkscape-preferences.cpp:235
 msgid "Whether selected objects display a selection cue (the same as in selector)"
 msgstr "Будет ли отображаться пометка выделения (как и в селекторе)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:240
+#: ../src/ui/dialog/inkscape-preferences.cpp:241
 msgid "Enable gradient editing"
 msgstr "Включить правку градиентов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:241
+#: ../src/ui/dialog/inkscape-preferences.cpp:242
 msgid "Whether selected objects display gradient editing controls"
 msgstr "Будут ли отображаться средства правки градиентов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:246
+#: ../src/ui/dialog/inkscape-preferences.cpp:247
 msgid "Conversion to guides uses edges instead of bounding box"
 msgstr ""
 "При преобразовании в направляющие вместо\n"
 "площадки (BB) используются края"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:247
+#: ../src/ui/dialog/inkscape-preferences.cpp:248
 msgid "Converting an object to guides places these along the object's true edges (imitating the object's shape), not along the bounding box."
 msgstr "При преобразовании объекта в направляющие эти направляющие будут размещены по настоящим краям объекта, а не по его площадке (BB)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:254
+#: ../src/ui/dialog/inkscape-preferences.cpp:255
 msgid "Ctrl+click dot size:"
 msgstr "Размер точки по Ctrl+щелчок в"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:254
+#: ../src/ui/dialog/inkscape-preferences.cpp:255
 msgid "times current stroke width"
 msgstr "раза больше текущей обводки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:255
+#: ../src/ui/dialog/inkscape-preferences.cpp:256
 msgid "Size of dots created with Ctrl+click (relative to current stroke width)"
 msgstr "Размер точек, создаваемых по Ctrl+щелчок (относительно текущей толщины штриха)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:270
+#: ../src/ui/dialog/inkscape-preferences.cpp:271
 msgid "<b>No objects selected</b> to take the style from."
 msgstr "<b>Нет выделенных объектов</b>, откуда можно было бы взять стиль."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:279
+#: ../src/ui/dialog/inkscape-preferences.cpp:280
 msgid "<b>More than one object selected.</b>  Cannot take style from multiple objects."
 msgstr "<b>Выделено больше одного объекта.</b> Невозможно взять стиль от нескольких объектов сразу."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:314
+#: ../src/ui/dialog/inkscape-preferences.cpp:313
 msgid "Create new objects with:"
 msgstr "Создавать новые объекты с:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:316
+#: ../src/ui/dialog/inkscape-preferences.cpp:315
 msgid "Last used style"
 msgstr "Последним использованным стилем"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:318
+#: ../src/ui/dialog/inkscape-preferences.cpp:317
 msgid "Apply the style you last set on an object"
 msgstr "Применить последний использованный стиль"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:323
+#: ../src/ui/dialog/inkscape-preferences.cpp:322
 msgid "This tool's own style:"
 msgstr "Собственным стилем инструмента:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:327
+#: ../src/ui/dialog/inkscape-preferences.cpp:326
 msgid "Each tool may store its own style to apply to the newly created objects. Use the button below to set it."
 msgstr "Каждый инструмент может использовать свой собственный стиль для создаваемых объектов. Кнопка внизу устанавливает этот стиль."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:332
+#. style swatch
+#: ../src/ui/dialog/inkscape-preferences.cpp:330
 msgid "Take from selection"
 msgstr "Взять от выделения"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:336
+#: ../src/ui/dialog/inkscape-preferences.cpp:335
 msgid "This tool's style of new objects"
 msgstr "Стиль новых объектов, создаваемых этим инструментом"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:344
+#: ../src/ui/dialog/inkscape-preferences.cpp:342
 msgid "Remember the style of the (first) selected object as this tool's style"
 msgstr "Запомнить стиль (первого) выделенного объекта как стиль данного инструмента"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:349
+#: ../src/ui/dialog/inkscape-preferences.cpp:347
 msgid "Tools"
 msgstr "Инструменты"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:352
+#: ../src/ui/dialog/inkscape-preferences.cpp:350
 msgid "Bounding box to use:"
 msgstr "Используемая площадка (BB):"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:353
+#: ../src/ui/dialog/inkscape-preferences.cpp:351
 msgid "Visual bounding box"
 msgstr "Видимая площадка (BB)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:355
+#: ../src/ui/dialog/inkscape-preferences.cpp:353
 msgid "This bounding box includes stroke width, markers, filter margins, etc."
 msgstr "Сюда входит толщина обводки, маркеры, поля фильтра и т.д."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:356
+#: ../src/ui/dialog/inkscape-preferences.cpp:354
 msgid "Geometric bounding box"
 msgstr "Геометрическая площадка (BB)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:358
+#: ../src/ui/dialog/inkscape-preferences.cpp:356
 msgid "This bounding box includes only the bare path"
 msgstr "Сюда входит только сам контур"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:360
+#: ../src/ui/dialog/inkscape-preferences.cpp:358
 msgid "Conversion to guides:"
 msgstr "Преобразование в направляющие:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:361
+#: ../src/ui/dialog/inkscape-preferences.cpp:359
 msgid "Keep objects after conversion to guides"
 msgstr "Сохранять объекты после преобразования"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:363
+#: ../src/ui/dialog/inkscape-preferences.cpp:361
 msgid "When converting an object to guides, don't delete the object after the conversion."
 msgstr "После преобразования в направляющие не удалять исходный объект."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:364
+#: ../src/ui/dialog/inkscape-preferences.cpp:362
 msgid "Treat groups as a single object"
 msgstr "Считать группы единым объектом"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:366
+#: ../src/ui/dialog/inkscape-preferences.cpp:364
 msgid "Treat groups as a single object during conversion to guides rather than converting each child separately."
 msgstr "Считать группы одним объектом при преобразовании в направляющие, не преобразовывать каждый элемент группы отдельно"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:368
+#: ../src/ui/dialog/inkscape-preferences.cpp:366
 msgid "Width is in absolute units"
 msgstr "Ширина в абсолютных единицах измерения"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:369
+#: ../src/ui/dialog/inkscape-preferences.cpp:367
 msgid "Select new path"
 msgstr "Выделять новый контур"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:370
+#: ../src/ui/dialog/inkscape-preferences.cpp:368
 msgid "Don't attach connectors to text objects"
 msgstr "Не соединяться линиями с текстовыми объектами"
 
 #. Selector
-#: ../src/ui/dialog/inkscape-preferences.cpp:373
+#: ../src/ui/dialog/inkscape-preferences.cpp:371
 msgid "Selector"
 msgstr "Селектор"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:376
+#: ../src/ui/dialog/inkscape-preferences.cpp:374
 msgid "When transforming, show:"
 msgstr "При трансформации показывать:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:377
+#: ../src/ui/dialog/inkscape-preferences.cpp:375
 msgid "Objects"
 msgstr "Объекты"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:379
+#: ../src/ui/dialog/inkscape-preferences.cpp:377
 msgid "Show the actual objects when moving or transforming"
 msgstr "Показывать объекты полностью при перемещении или трансформации"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:380
+#: ../src/ui/dialog/inkscape-preferences.cpp:378
 msgid "Box outline"
 msgstr "Рамку"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:382
+#: ../src/ui/dialog/inkscape-preferences.cpp:380
 msgid "Show only a box outline of the objects when moving or transforming"
 msgstr "Показывать только прямоугольную рамку объектов при перемещении или трансформации"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:383
+#: ../src/ui/dialog/inkscape-preferences.cpp:381
 msgid "Per-object selection cue:"
 msgstr "Пометка выделенных объектов:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:386
+#: ../src/ui/dialog/inkscape-preferences.cpp:384
 msgid "No per-object selection indication"
 msgstr "Выделенные объекты никак не помечены"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:387
+#: ../src/ui/dialog/inkscape-preferences.cpp:385
 msgid "Mark"
 msgstr "Метка"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:389
+#: ../src/ui/dialog/inkscape-preferences.cpp:387
 msgid "Each selected object has a diamond mark in the top left corner"
 msgstr "Каждый выделенный объект имеет метку в виде ромбика в левом верхнем углу"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:390
+#: ../src/ui/dialog/inkscape-preferences.cpp:388
 msgid "Box"
 msgstr "Рамка"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:392
+#: ../src/ui/dialog/inkscape-preferences.cpp:390
 msgid "Each selected object displays its bounding box"
 msgstr "Каждый выделенный объект помечен пунктирной рамкой"
 
 #. Node
-#: ../src/ui/dialog/inkscape-preferences.cpp:395
+#: ../src/ui/dialog/inkscape-preferences.cpp:393
 msgid "Node"
 msgstr "Узлы"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:398
+#: ../src/ui/dialog/inkscape-preferences.cpp:396
 msgid "Path outline:"
 msgstr "Обводка контура:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:399
-#: ../src/ui/dialog/inkscape-preferences.cpp:400
+#: ../src/ui/dialog/inkscape-preferences.cpp:397
+#: ../src/ui/dialog/inkscape-preferences.cpp:398
 msgid "Path outline color"
 msgstr "Цвет обводки контура"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:400
+#: ../src/ui/dialog/inkscape-preferences.cpp:398
 msgid "Selects the color used for showing the path outline."
 msgstr "Выбор цвета, используемого для отображения скелета контура."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:401
+#: ../src/ui/dialog/inkscape-preferences.cpp:399
 msgid "Path outline flash on mouse-over"
 msgstr "Мерцать контуром при прохождении над ним мыши"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:402
+#: ../src/ui/dialog/inkscape-preferences.cpp:400
 msgid "When hovering over a path, briefly flash its outline."
 msgstr "Мерцать скелетом контура, когда курсор мыши или иного устройства ввода проходит над ним."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:404
+#: ../src/ui/dialog/inkscape-preferences.cpp:402
 msgid "Flash time"
 msgstr "Длительность мерцания"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:404
+#: ../src/ui/dialog/inkscape-preferences.cpp:402
 msgid "Specifies how long the path outline will be visible after a mouse-over (in milliseconds). Specify 0 to have the outline shown until mouse leaves the path."
 msgstr ""
 
 #. Tweak
-#: ../src/ui/dialog/inkscape-preferences.cpp:407
-#: ../src/verbs.cpp:2477
+#: ../src/ui/dialog/inkscape-preferences.cpp:405
+#: ../src/verbs.cpp:2480
 msgid "Tweak"
 msgstr "Корректор"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:408
+#: ../src/ui/dialog/inkscape-preferences.cpp:406
 msgid "Paint objects with:"
 msgstr "Раскрашивать объекты:"
 
 #. Zoom
-#: ../src/ui/dialog/inkscape-preferences.cpp:413
+#: ../src/ui/dialog/inkscape-preferences.cpp:411
 #: ../src/ui/view/edit-widget.cpp:1073
-#: ../src/verbs.cpp:2499
-#: ../src/widgets/desktop-widget.cpp:485
+#: ../src/verbs.cpp:2502
+#: ../src/widgets/desktop-widget.cpp:477
 #: ../share/extensions/render_alphabetsoup.inx.h:5
 msgid "Zoom"
 msgstr "Лупа"
 
 #. Shapes
-#: ../src/ui/dialog/inkscape-preferences.cpp:418
+#: ../src/ui/dialog/inkscape-preferences.cpp:416
 msgid "Shapes"
 msgstr "Фигуры"
 
 #. Pencil
-#: ../src/ui/dialog/inkscape-preferences.cpp:446
-#: ../src/verbs.cpp:2489
+#: ../src/ui/dialog/inkscape-preferences.cpp:444
+#: ../src/verbs.cpp:2492
 msgid "Pencil"
 msgstr "Карандаш"
 
 #. Pen
-#: ../src/ui/dialog/inkscape-preferences.cpp:452
-#: ../src/verbs.cpp:2491
+#: ../src/ui/dialog/inkscape-preferences.cpp:450
+#: ../src/verbs.cpp:2494
 msgid "Pen"
 msgstr "Перо"
 
 #. Calligraphy
-#: ../src/ui/dialog/inkscape-preferences.cpp:458
-#: ../src/verbs.cpp:2493
+#: ../src/ui/dialog/inkscape-preferences.cpp:456
+#: ../src/verbs.cpp:2496
 msgid "Calligraphy"
 msgstr "Каллиграфическое перо"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:462
+#: ../src/ui/dialog/inkscape-preferences.cpp:460
 msgid "If on, pen width is in absolute units (px) independent of zoom; otherwise pen width depends on zoom so that it looks the same at any zoom"
 msgstr "Если включено, толщина линии в абсолютных единицах (px) независима от масштаба; в противном случае толщина линии зависит от масштаба и выглядит одинаково при любом масштабе"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:464
+#: ../src/ui/dialog/inkscape-preferences.cpp:462
 msgid "If on, each newly created object will be selected (deselecting previous selection)"
 msgstr "Если включено, каждый новый объект будет автоматически выделяться (со сбросом предыдущего выделения)"
 
 #. Paint Bucket
-#: ../src/ui/dialog/inkscape-preferences.cpp:466
-#: ../src/verbs.cpp:2505
+#: ../src/ui/dialog/inkscape-preferences.cpp:464
+#: ../src/verbs.cpp:2508
 msgid "Paint Bucket"
 msgstr "Плоская заливка"
 
 #. Eraser
-#: ../src/ui/dialog/inkscape-preferences.cpp:471
-#: ../src/verbs.cpp:2509
+#: ../src/ui/dialog/inkscape-preferences.cpp:469
+#: ../src/verbs.cpp:2512
 msgid "Eraser"
 msgstr "Ластик"
 
 #. LPETool
-#: ../src/ui/dialog/inkscape-preferences.cpp:475
-#: ../src/verbs.cpp:2511
+#: ../src/ui/dialog/inkscape-preferences.cpp:473
+#: ../src/verbs.cpp:2514
 msgid "LPE Tool"
 msgstr "Геометрические конструкции"
 
 #. Gradient
-#: ../src/ui/dialog/inkscape-preferences.cpp:485
-#: ../src/verbs.cpp:2497
+#: ../src/ui/dialog/inkscape-preferences.cpp:483
+#: ../src/verbs.cpp:2500
 msgid "Gradient"
 msgstr "Градиентная заливка"
 
 #. Connector
-#: ../src/ui/dialog/inkscape-preferences.cpp:489
-#: ../src/verbs.cpp:2503
+#: ../src/ui/dialog/inkscape-preferences.cpp:487
+#: ../src/verbs.cpp:2506
 msgid "Connector"
 msgstr "Соединительные линии"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:492
+#: ../src/ui/dialog/inkscape-preferences.cpp:490
 msgid "If on, connector attachment points will not be shown for text objects"
 msgstr "Если включено, точки соединения линиями не показываются на текстовых объектах"
 
 #. Dropper
-#: ../src/ui/dialog/inkscape-preferences.cpp:494
-#: ../src/verbs.cpp:2501
+#: ../src/ui/dialog/inkscape-preferences.cpp:492
+#: ../src/verbs.cpp:2504
 msgid "Dropper"
 msgstr "Пипетка"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:501
+#: ../src/ui/dialog/inkscape-preferences.cpp:499
 msgid "Save and restore window geometry for each document"
 msgstr "Запоминать и использовать геометрию окна для каждого документа"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:502
+#: ../src/ui/dialog/inkscape-preferences.cpp:500
 msgid "Remember and use last window's geometry"
 msgstr "Запоминать и использовать геометрию последнего окна"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:503
+#: ../src/ui/dialog/inkscape-preferences.cpp:501
 msgid "Don't save window geometry"
 msgstr "Не запоминать геометрию окон"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:505
-#: ../src/ui/dialog/inkscape-preferences.cpp:525
+#: ../src/ui/dialog/inkscape-preferences.cpp:503
+#: ../src/ui/dialog/inkscape-preferences.cpp:523
 msgid "Dockable"
 msgstr "Прикрепляются к правому краю окна"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:508
+#: ../src/ui/dialog/inkscape-preferences.cpp:506
 msgid "Dialogs are hidden in taskbar"
 msgstr "Диалоги не видны на панели задач"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:509
+#: ../src/ui/dialog/inkscape-preferences.cpp:507
 msgid "Zoom when window is resized"
 msgstr "Масштабировать рисунок при изменении размеров окна"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:510
+#: ../src/ui/dialog/inkscape-preferences.cpp:508
 msgid "Show close button on dialogs"
 msgstr "Показывать кнопку «Закрыть» во всех диалогах"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:512
-#: ../src/ui/dialog/inkscape-preferences.cpp:961
+#: ../src/ui/dialog/inkscape-preferences.cpp:510
+#: ../src/ui/dialog/inkscape-preferences.cpp:995
 msgid "Normal"
 msgstr "Нормальный"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:513
+#: ../src/ui/dialog/inkscape-preferences.cpp:511
 msgid "Aggressive"
 msgstr "Настойчивый"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:515
+#: ../src/ui/dialog/inkscape-preferences.cpp:513
 msgid "Saving window geometry (size and position):"
 msgstr "Запоминание геометрии окна (размера и положения)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:517
+#: ../src/ui/dialog/inkscape-preferences.cpp:515
 msgid "Let the window manager determine placement of all windows"
 msgstr "Пусть оконный менеджер сам определяет располжение окон"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:519
+#: ../src/ui/dialog/inkscape-preferences.cpp:517
 msgid "Remember and use the last window's geometry (saves geometry to user preferences)"
 msgstr "Запоминать (в параметрах программы) и использовать геометрию последнего окна"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:521
+#: ../src/ui/dialog/inkscape-preferences.cpp:519
 msgid "Save and restore window geometry for each document (saves geometry in the document)"
 msgstr "Запоминать (в параметрах документа) и использовать геометрию окна каждого документа"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:523
+#: ../src/ui/dialog/inkscape-preferences.cpp:521
 msgid "Dialog behavior (requires restart):"
 msgstr "Поведение диалогов (требует перезапуска программы)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:530
+#: ../src/ui/dialog/inkscape-preferences.cpp:528
 msgid "Dialogs on top:"
 msgstr "Способ размещения диалогов поверх окна:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:533
+#: ../src/ui/dialog/inkscape-preferences.cpp:531
 msgid "Dialogs are treated as regular windows"
 msgstr "Диалоги рассматриваются как обычные окна"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:535
+#: ../src/ui/dialog/inkscape-preferences.cpp:533
 msgid "Dialogs stay on top of document windows"
 msgstr "Диалоги остаются поверх окон с документами"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:537
+#: ../src/ui/dialog/inkscape-preferences.cpp:535
 msgid "Same as Normal but may work better with some window managers"
 msgstr "То же, что и «Нормальный», но может лучше работать с некоторыми оконными менеджерами"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:540
+#: ../src/ui/dialog/inkscape-preferences.cpp:539
+msgid "Dialog Transparency:"
+msgstr ""
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:541
+msgid "Opacity when focused:"
+msgstr "Непрозрачность в фокусе:"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:543
+msgid "Opacity when unfocused:"
+msgstr "Непрозрачность вне фокуса:"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:545
+msgid "Time of opacity change animation:"
+msgstr ""
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:548
 msgid "Miscellaneous:"
 msgstr "Прочие параметры:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:543
+#: ../src/ui/dialog/inkscape-preferences.cpp:551
 msgid "Whether dialog windows are to be hidden in the window manager taskbar"
 msgstr "Убирать ли диалоговые окна из панели задач оконного менеджера"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:546
+#: ../src/ui/dialog/inkscape-preferences.cpp:554
 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:548
+#: ../src/ui/dialog/inkscape-preferences.cpp:556
 msgid "Whether dialog windows have a close button (requires restart)"
 msgstr "Отображается ли в диалогах кнопка «Закрыть»"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:549
+#: ../src/ui/dialog/inkscape-preferences.cpp:557
 msgid "Windows"
 msgstr "Окна"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:554
+#: ../src/ui/dialog/inkscape-preferences.cpp:562
 msgid "Move in parallel"
 msgstr "Двигаются параллельно"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:556
+#: ../src/ui/dialog/inkscape-preferences.cpp:564
 msgid "Stay unmoved"
 msgstr "Остаются неподвижными"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:558
+#: ../src/ui/dialog/inkscape-preferences.cpp:566
 msgid "Move according to transform"
 msgstr "Двигаются в соответствии с transform="
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:560
+#: ../src/ui/dialog/inkscape-preferences.cpp:568
 msgid "Are unlinked"
 msgstr "Отсоединяются"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:562
+#: ../src/ui/dialog/inkscape-preferences.cpp:570
 msgid "Are deleted"
 msgstr "Удаляются"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:565
+#: ../src/ui/dialog/inkscape-preferences.cpp:573
 msgid "When the original moves, its clones and linked offsets:"
 msgstr "Когда перемещается оригинал, его клоны и потомки:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:567
+#: ../src/ui/dialog/inkscape-preferences.cpp:575
 msgid "Clones are translated by the same vector as their original."
 msgstr "Каждый клон сдвигается на тот же вектор, что и его оригинал."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:569
+#: ../src/ui/dialog/inkscape-preferences.cpp:577
 msgid "Clones preserve their positions when their original is moved."
 msgstr "Клоны остаются на месте, когда двигаются их оригиналы."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:571
+#: ../src/ui/dialog/inkscape-preferences.cpp:579
 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 "Каждый клон двигается в соответствии со значением его атрибута transform=. Например, повернутый клон будет перемещаться в ином направлении, нежели его оригинал."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:572
+#: ../src/ui/dialog/inkscape-preferences.cpp:580
 msgid "When the original is deleted, its clones:"
 msgstr "Когда оригинал удаляется, его клоны:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:574
+#: ../src/ui/dialog/inkscape-preferences.cpp:582
 msgid "Orphaned clones are converted to regular objects."
 msgstr "Осиротевшие клоны преобразуются в обычные объекты."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:576
+#: ../src/ui/dialog/inkscape-preferences.cpp:584
 msgid "Orphaned clones are deleted along with their original."
 msgstr "Осиротевшие клоны удаляются вместе с их оригиналом."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:578
+#: ../src/ui/dialog/inkscape-preferences.cpp:586
 msgid "When duplicating original+clones:"
 msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:580
+#: ../src/ui/dialog/inkscape-preferences.cpp:588
 #, fuzzy
 msgid "Relink duplicated clones"
 msgstr "Отсоединение клона"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:582
+#: ../src/ui/dialog/inkscape-preferences.cpp:590
 msgid "When duplicating a selection containing both a clone and its original (possibly in groups), relink the duplicated clone to the duplicated original instead of the old original"
 msgstr ""
 
 #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page
-#: ../src/ui/dialog/inkscape-preferences.cpp:585
+#: ../src/ui/dialog/inkscape-preferences.cpp:593
 msgid "Clones"
 msgstr "Клоны"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:590
+#: ../src/ui/dialog/inkscape-preferences.cpp:598
 msgid "When applying, use the topmost selected object as clippath/mask"
 msgstr "Верхний выбранный объект — обтравочный контур или маска"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:592
+#: ../src/ui/dialog/inkscape-preferences.cpp:600
 msgid "Uncheck this to use the bottom selected object as the clipping path or mask"
 msgstr "Отключите эту опцию, если хотите использовать в качестве обтравочного контура или маски самый нижний из выбранных объектов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:593
+#: ../src/ui/dialog/inkscape-preferences.cpp:601
 msgid "Remove clippath/mask object after applying"
 msgstr "Убрать обтравочный контур или маску после применения"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:595
+#: ../src/ui/dialog/inkscape-preferences.cpp:603
 msgid "After applying, remove the object used as the clipping path or mask from the drawing"
 msgstr "По применении удалить из рисунка объект, использованный в качестве обтравочного контура или маски"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:596
+#: ../src/ui/dialog/inkscape-preferences.cpp:604
 msgid "Clippaths and masks"
 msgstr "Обтравочные контуры и маски"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:601
-#: ../src/widgets/select-toolbar.cpp:531
+#: ../src/ui/dialog/inkscape-preferences.cpp:609
+#: ../src/widgets/select-toolbar.cpp:541
 msgid "Scale stroke width"
 msgstr "Менять толщину обводки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:602
+#: ../src/ui/dialog/inkscape-preferences.cpp:610
 msgid "Scale rounded corners in rectangles"
 msgstr "Менять радиус закругленных углов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:603
+#: ../src/ui/dialog/inkscape-preferences.cpp:611
 msgid "Transform gradients"
 msgstr "Трансформировать градиенты"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:604
+#: ../src/ui/dialog/inkscape-preferences.cpp:612
 msgid "Transform patterns"
 msgstr "Трансформировать текстуры"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:605
+#: ../src/ui/dialog/inkscape-preferences.cpp:613
 msgid "Optimized"
 msgstr "С оптимизацией"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:606
+#: ../src/ui/dialog/inkscape-preferences.cpp:614
 msgid "Preserved"
 msgstr "Без оптимизации"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:609
-#: ../src/widgets/select-toolbar.cpp:532
+#: ../src/ui/dialog/inkscape-preferences.cpp:617
+#: ../src/widgets/select-toolbar.cpp:542
 msgid "When scaling objects, scale the stroke width by the same proportion"
 msgstr "При изменении размера объектов менять в той же пропорции и толщину обводки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:611
-#: ../src/widgets/select-toolbar.cpp:543
+#: ../src/ui/dialog/inkscape-preferences.cpp:619
+#: ../src/widgets/select-toolbar.cpp:553
 msgid "When scaling rectangles, scale the radii of rounded corners"
 msgstr "При изменении размера прямоугольников менять в той же пропорции и радиус закруглённых углов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:613
-#: ../src/widgets/select-toolbar.cpp:554
+#: ../src/ui/dialog/inkscape-preferences.cpp:621
+#: ../src/widgets/select-toolbar.cpp:564
 msgid "Move gradients (in fill or stroke) along with the objects"
 msgstr "Трансформировать градиенты (в заливке или обводке) вместе с объектом"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:615
-#: ../src/widgets/select-toolbar.cpp:565
+#: ../src/ui/dialog/inkscape-preferences.cpp:623
+#: ../src/widgets/select-toolbar.cpp:575
 msgid "Move patterns (in fill or stroke) along with the objects"
 msgstr "Трансформировать текстуры (в заливке или обводке) вместе с объектом"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:616
+#: ../src/ui/dialog/inkscape-preferences.cpp:624
 msgid "Store transformation:"
 msgstr "Сохранение трансформации:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:618
+#: ../src/ui/dialog/inkscape-preferences.cpp:626
 msgid "If possible, apply transformation to objects without adding a transform= attribute"
 msgstr "По возможности применять трансформацию к объектам без добавления атрибута transform="
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:620
+#: ../src/ui/dialog/inkscape-preferences.cpp:628
 msgid "Always store transformation as a transform= attribute on objects"
 msgstr "Всегда сохранять трансформацию в виде атрибута transform="
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:622
+#: ../src/ui/dialog/inkscape-preferences.cpp:630
 msgid "Transforms"
 msgstr "Трансформации"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:627
+#. blur quality
+#. filter quality
+#: ../src/ui/dialog/inkscape-preferences.cpp:636
+#: ../src/ui/dialog/inkscape-preferences.cpp:660
 msgid "Best quality (slowest)"
 msgstr "Наилучшее качество (самая медленная отрисовка)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:629
+#: ../src/ui/dialog/inkscape-preferences.cpp:638
+#: ../src/ui/dialog/inkscape-preferences.cpp:662
 msgid "Better quality (slower)"
 msgstr "Хорошее качество (медленная отрисовка)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:631
+#: ../src/ui/dialog/inkscape-preferences.cpp:640
+#: ../src/ui/dialog/inkscape-preferences.cpp:664
 msgid "Average quality"
 msgstr "Среднее качество"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:633
+#: ../src/ui/dialog/inkscape-preferences.cpp:642
+#: ../src/ui/dialog/inkscape-preferences.cpp:666
 msgid "Lower quality (faster)"
 msgstr "Низкое качество (быстрая отрисовка)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:635
+#: ../src/ui/dialog/inkscape-preferences.cpp:644
+#: ../src/ui/dialog/inkscape-preferences.cpp:668
 msgid "Lowest quality (fastest)"
 msgstr "Самое низкое качество (самая быстрая отрисовка)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:638
+#: ../src/ui/dialog/inkscape-preferences.cpp:647
 msgid "Gaussian blur quality for display:"
 msgstr "Качество гауссова размывания при отображении:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:640
+#: ../src/ui/dialog/inkscape-preferences.cpp:649
+#: ../src/ui/dialog/inkscape-preferences.cpp:673
 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:642
+#: ../src/ui/dialog/inkscape-preferences.cpp:651
+#: ../src/ui/dialog/inkscape-preferences.cpp:675
 msgid "Better quality, but slower display"
 msgstr "Хорошее качество, но невысокая скорость"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:644
+#: ../src/ui/dialog/inkscape-preferences.cpp:653
+#: ../src/ui/dialog/inkscape-preferences.cpp:677
 msgid "Average quality, acceptable display speed"
 msgstr "Среднее качество, приемлимая скорость отрисовки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:646
+#: ../src/ui/dialog/inkscape-preferences.cpp:655
+#: ../src/ui/dialog/inkscape-preferences.cpp:679
 msgid "Lower quality (some artifacts), but display is faster"
 msgstr "Низкое качество с видимым артефактами, но быстрая отрисовка"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:648
+#: ../src/ui/dialog/inkscape-preferences.cpp:657
+#: ../src/ui/dialog/inkscape-preferences.cpp:681
 msgid "Lowest quality (considerable artifacts), but display is fastest"
 msgstr "Очень низкое качество с достаточно заметными артефактами, но очень быстрая отрисовка"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:650
+#: ../src/ui/dialog/inkscape-preferences.cpp:671
+#, fuzzy
+msgid "Filter effects quality for display:"
+msgstr "Качество гауссова размывания при отображении:"
+
+#. show infobox
+#: ../src/ui/dialog/inkscape-preferences.cpp:684
 msgid "Show filter primitives infobox"
 msgstr "Показывать справку по примитивам фильтра"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:652
+#: ../src/ui/dialog/inkscape-preferences.cpp:686
 msgid "Show icons and descriptions for the filter primitives available at the filter effects dialog."
 msgstr "Показывать значки и описания для каждого примитива фильтров в диалоге фильтров эффектов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:654
+#: ../src/ui/dialog/inkscape-preferences.cpp:688
 msgid "Filters"
 msgstr "Фильтры"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:660
+#: ../src/ui/dialog/inkscape-preferences.cpp:694
 msgid "Select in all layers"
 msgstr "Работают во всех слоях"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:661
+#: ../src/ui/dialog/inkscape-preferences.cpp:695
 msgid "Select only within current layer"
 msgstr "Работают только в текущем слое"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:662
+#: ../src/ui/dialog/inkscape-preferences.cpp:696
 msgid "Select in current layer and sublayers"
 msgstr "Работают только в текущем слое и субслоях"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:663
+#: ../src/ui/dialog/inkscape-preferences.cpp:697
 msgid "Ignore hidden objects and layers"
 msgstr "Игнорируют скрытые объекты и слои"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:664
+#: ../src/ui/dialog/inkscape-preferences.cpp:698
 msgid "Ignore locked objects and layers"
 msgstr "Игнорируют запертые объекты и слои"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:665
+#: ../src/ui/dialog/inkscape-preferences.cpp:699
 msgid "Deselect upon layer change"
 msgstr "Снять выделение при изменениях в слое"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:667
+#: ../src/ui/dialog/inkscape-preferences.cpp:701
 msgid "Ctrl+A, Tab, Shift+Tab:"
 msgstr "Ctrl+A, Tab, Shift+Tab:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:669
+#: ../src/ui/dialog/inkscape-preferences.cpp:703
 msgid "Make keyboard selection commands work on objects in all layers"
 msgstr "Команды выделения с клавиатуры работают во всех слоях."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:671
+#: ../src/ui/dialog/inkscape-preferences.cpp:705
 msgid "Make keyboard selection commands work on objects in current layer only"
 msgstr "Команды выделения с клавиатуры работают только в текущем слое."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:673
+#: ../src/ui/dialog/inkscape-preferences.cpp:707
 msgid "Make keyboard selection commands work on objects in current layer and all its sublayers"
 msgstr "Команды выделения с клавиатуры работают в текущем слое и всех его субслоях."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:675
+#: ../src/ui/dialog/inkscape-preferences.cpp:709
 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:677
+#: ../src/ui/dialog/inkscape-preferences.cpp:711
 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:680
+#: ../src/ui/dialog/inkscape-preferences.cpp:714
 msgid "Uncheck this to be able to keep the current objects selected when the current layer changes"
 msgstr "Отключите эту опцию, если хотите оставлять объекты выбранными при изменениях в текущем слое."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:682
+#: ../src/ui/dialog/inkscape-preferences.cpp:716
 msgid "Selecting"
 msgstr "Выделение"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:689
+#: ../src/ui/dialog/inkscape-preferences.cpp:723
 msgid "Default export resolution:"
 msgstr "Разрешение для экспорта:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:690
+#: ../src/ui/dialog/inkscape-preferences.cpp:724
 msgid "Default bitmap resolution (in dots per inch) in the Export dialog"
 msgstr "Разрешение растра (в точках на дюйм) в диалоге экспорта по умолчанию"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:692
+#: ../src/ui/dialog/inkscape-preferences.cpp:726
 msgid "Open Clip Art Library Server Name:"
 msgstr "Сервер Open Clip Art Library:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:693
+#: ../src/ui/dialog/inkscape-preferences.cpp:727
 msgid "The server name of the Open Clip Art Library webdav server. It's used by the Import and Export to OCAL function."
 msgstr "Имя webdav-сервера Open Clip Art Library. Используется для функций импорта и экспорта в OCAL."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:695
+#: ../src/ui/dialog/inkscape-preferences.cpp:729
 msgid "Open Clip Art Library Username:"
 msgstr "Пользователь Open Clip Art Library:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:696
+#: ../src/ui/dialog/inkscape-preferences.cpp:730
 msgid "The username used to log into Open Clip Art Library."
 msgstr "Имя пользователя для авторизации на Open Clip Art Library."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:698
+#: ../src/ui/dialog/inkscape-preferences.cpp:732
 msgid "Open Clip Art Library Password:"
 msgstr "Пароль на Open Clip Art Library:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:699
+#: ../src/ui/dialog/inkscape-preferences.cpp:733
 msgid "The password used to log into Open Clip Art Library."
 msgstr "Пароль для авторизации на Open Clip Art Library."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:701
+#: ../src/ui/dialog/inkscape-preferences.cpp:735
 msgid "Import/Export"
 msgstr "Импорт/Экспорт"
 
 #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm
-#: ../src/ui/dialog/inkscape-preferences.cpp:751
+#: ../src/ui/dialog/inkscape-preferences.cpp:785
 msgid "Perceptual"
 msgstr "Воспринимаемая"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:751
+#: ../src/ui/dialog/inkscape-preferences.cpp:785
 msgid "Relative Colorimetric"
 msgstr "Относительная колориметрическая"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:751
+#: ../src/ui/dialog/inkscape-preferences.cpp:785
 msgid "Absolute Colorimetric"
 msgstr "Абсолютная колориметрическая"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:755
+#: ../src/ui/dialog/inkscape-preferences.cpp:789
 msgid "(Note: Color management has been disabled in this build)"
 msgstr "(Примечание: в этой сборке управление цветом отключено)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:759
+#: ../src/ui/dialog/inkscape-preferences.cpp:793
 msgid "Display adjustment"
 msgstr "Коррекция вывода на монитор"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:761
+#: ../src/ui/dialog/inkscape-preferences.cpp:795
 msgid "Display profile:"
 msgstr "Профиль монитора:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:762
+#: ../src/ui/dialog/inkscape-preferences.cpp:796
 msgid "The ICC profile to use to calibrate display output."
 msgstr "ICC-профиль, используемый для коррекции вывода на дисплей."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:764
+#: ../src/ui/dialog/inkscape-preferences.cpp:798
 msgid "Retrieve profile from display"
 msgstr "Получать профиль от видеоподсистемы"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:767
+#: ../src/ui/dialog/inkscape-preferences.cpp:801
 msgid "Retrieve profiles from those attached to displays via XICC."
 msgstr "Использовать профиль, назначенный монитору через xicc."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:769
+#: ../src/ui/dialog/inkscape-preferences.cpp:803
 msgid "Retrieve profiles from those attached to displays."
 msgstr "Использовать профили, используемые видеподсистемой для каждого из мониторов"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:774
+#: ../src/ui/dialog/inkscape-preferences.cpp:808
 msgid "Display rendering intent:"
 msgstr "Цветопередача монитора:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:775
-#: ../src/ui/dialog/inkscape-preferences.cpp:798
+#: ../src/ui/dialog/inkscape-preferences.cpp:809
+#: ../src/ui/dialog/inkscape-preferences.cpp:832
 msgid "The rendering intent to use to calibrate display output."
 msgstr "Цветопередача выводимых на дисплей изображений"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:777
+#: ../src/ui/dialog/inkscape-preferences.cpp:811
 msgid "Proofing"
 msgstr "Цветопроба"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:779
+#: ../src/ui/dialog/inkscape-preferences.cpp:813
 msgid "Simulate output on screen"
 msgstr "Имитировать устройство вывода"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:781
+#: ../src/ui/dialog/inkscape-preferences.cpp:815
 msgid "Simulates output of target device."
 msgstr "Имитировать на экране устройство вывода"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:783
+#: ../src/ui/dialog/inkscape-preferences.cpp:817
 msgid "Mark out of gamut colors"
 msgstr "Помечать цвета вне цветового охвата"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:785
+#: ../src/ui/dialog/inkscape-preferences.cpp:819
 msgid "Highlights colors that are out of gamut for the target device."
 msgstr "Помечать цвета, выходящие за рамки цветового охвата для данного устройства"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:790
+#: ../src/ui/dialog/inkscape-preferences.cpp:824
 msgid "Out of gamut warning color:"
 msgstr "Цвета вне цветового охвата:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:791
+#: ../src/ui/dialog/inkscape-preferences.cpp:825
 msgid "Selects the color used for out of gamut warning."
 msgstr "Выберите цвет предупреждения о выходе за цветовой охват."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:793
+#: ../src/ui/dialog/inkscape-preferences.cpp:827
 msgid "Device profile:"
 msgstr "Профиль устройства вывода:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:794
+#: ../src/ui/dialog/inkscape-preferences.cpp:828
 msgid "The ICC profile to use to simulate device output."
 msgstr "ICC-профиль, используемый для имитации устройства вывода"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:797
+#: ../src/ui/dialog/inkscape-preferences.cpp:831
 msgid "Device rendering intent:"
 msgstr "Цветопередача устройства вывода:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:800
+#: ../src/ui/dialog/inkscape-preferences.cpp:834
 msgid "Black point compensation"
 msgstr "Использовать компенсацию черной точки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:802
+#: ../src/ui/dialog/inkscape-preferences.cpp:836
 msgid "Enables black point compensation."
 msgstr "Включить компенсацию черной точки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:804
+#: ../src/ui/dialog/inkscape-preferences.cpp:838
 msgid "Preserve black"
 msgstr "Сохранять черный цвет"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:809
+#: ../src/ui/dialog/inkscape-preferences.cpp:843
 msgid "(LittleCMS 1.15 or later required)"
 msgstr "(необходима библиотека LittleCMS версии 1.15 или новее)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:811
+#: ../src/ui/dialog/inkscape-preferences.cpp:845
 msgid "Preserve K channel in CMYK -> CMYK transforms"
 msgstr "Сохранять канал K при преобразованиях CMYK → CMYK"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:824
+#: ../src/ui/dialog/inkscape-preferences.cpp:858
 msgid "<none>"
 msgstr "<нет>"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:869
+#: ../src/ui/dialog/inkscape-preferences.cpp:903
 msgid "Color management"
 msgstr "Управление цветом"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:874
+#: ../src/ui/dialog/inkscape-preferences.cpp:908
 msgid "Major grid line emphasizing"
 msgstr "Выделение основной линии сетки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:876
+#: ../src/ui/dialog/inkscape-preferences.cpp:910
 msgid "Don't emphasize gridlines when zoomed out"
 msgstr "Не подчеркивать линии сетки на большом удалении"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:877
+#: ../src/ui/dialog/inkscape-preferences.cpp:911
 msgid "If set and zoomed out, the gridlines will be shown in normal color instead of major grid line color."
 msgstr "При просмотре на большом удалении основные линии сетки будут отображаться обычным цветом."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:879
+#: ../src/ui/dialog/inkscape-preferences.cpp:913
 msgid "Default grid settings"
 msgstr "Параметры сетки по умолчанию"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:885
-#: ../src/ui/dialog/inkscape-preferences.cpp:906
+#: ../src/ui/dialog/inkscape-preferences.cpp:919
+#: ../src/ui/dialog/inkscape-preferences.cpp:940
 msgid "Grid units:"
 msgstr "Единицы сетки:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:888
-#: ../src/ui/dialog/inkscape-preferences.cpp:909
+#: ../src/ui/dialog/inkscape-preferences.cpp:922
+#: ../src/ui/dialog/inkscape-preferences.cpp:943
 msgid "Origin X:"
 msgstr "Точка отсчета по X:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:889
-#: ../src/ui/dialog/inkscape-preferences.cpp:910
+#: ../src/ui/dialog/inkscape-preferences.cpp:923
+#: ../src/ui/dialog/inkscape-preferences.cpp:944
 msgid "Origin Y:"
 msgstr "Точка отсчета по Y:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:892
+#: ../src/ui/dialog/inkscape-preferences.cpp:926
 msgid "Spacing X:"
 msgstr "Интервал по X:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:893
-#: ../src/ui/dialog/inkscape-preferences.cpp:912
+#: ../src/ui/dialog/inkscape-preferences.cpp:927
+#: ../src/ui/dialog/inkscape-preferences.cpp:946
 msgid "Spacing Y:"
 msgstr "Интервал по Y:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:895
-#: ../src/ui/dialog/inkscape-preferences.cpp:896
-#: ../src/ui/dialog/inkscape-preferences.cpp:917
-#: ../src/ui/dialog/inkscape-preferences.cpp:918
+#: ../src/ui/dialog/inkscape-preferences.cpp:929
+#: ../src/ui/dialog/inkscape-preferences.cpp:930
+#: ../src/ui/dialog/inkscape-preferences.cpp:951
+#: ../src/ui/dialog/inkscape-preferences.cpp:952
 msgid "Grid line color:"
 msgstr "Цвет обычных линий сетки:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:896
-#: ../src/ui/dialog/inkscape-preferences.cpp:918
+#: ../src/ui/dialog/inkscape-preferences.cpp:930
+#: ../src/ui/dialog/inkscape-preferences.cpp:952
 msgid "Color used for normal grid lines"
 msgstr "Цвет обычных линий сетки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:897
-#: ../src/ui/dialog/inkscape-preferences.cpp:898
-#: ../src/ui/dialog/inkscape-preferences.cpp:919
-#: ../src/ui/dialog/inkscape-preferences.cpp:920
+#: ../src/ui/dialog/inkscape-preferences.cpp:931
+#: ../src/ui/dialog/inkscape-preferences.cpp:932
+#: ../src/ui/dialog/inkscape-preferences.cpp:953
+#: ../src/ui/dialog/inkscape-preferences.cpp:954
 msgid "Major grid line color:"
 msgstr "Цвет основных линий сетки:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:898
-#: ../src/ui/dialog/inkscape-preferences.cpp:920
+#: ../src/ui/dialog/inkscape-preferences.cpp:932
+#: ../src/ui/dialog/inkscape-preferences.cpp:954
 msgid "Color used for major (highlighted) grid lines"
 msgstr "Цвет основных линий сетки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:900
-#: ../src/ui/dialog/inkscape-preferences.cpp:922
+#: ../src/ui/dialog/inkscape-preferences.cpp:934
+#: ../src/ui/dialog/inkscape-preferences.cpp:956
 msgid "Major grid line every:"
 msgstr "Основная линия сетки каждые:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:901
+#: ../src/ui/dialog/inkscape-preferences.cpp:935
 msgid "Show dots instead of lines"
 msgstr "Показывать точки вместо линий"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:902
+#: ../src/ui/dialog/inkscape-preferences.cpp:936
 msgid "If set, display dots at gridpoints instead of gridlines"
 msgstr "Если включено, сетка отображается лишь точками пересечения ее линий, а не самими линиями"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:929
+#: ../src/ui/dialog/inkscape-preferences.cpp:963
 msgid "Use named colors"
 msgstr "Использовать именованные цвета"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:930
+#: ../src/ui/dialog/inkscape-preferences.cpp:964
 msgid "If set, write the CSS name of the color when available (e.g. 'red' or 'magenta') instead of the numeric value"
 msgstr "Если включено, записывать название цвета по CSS (например, 'red' или 'magenta') вместо числового значения"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:932
+#: ../src/ui/dialog/inkscape-preferences.cpp:966
 msgid "XML formatting"
 msgstr "Форматирование XML"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:934
+#: ../src/ui/dialog/inkscape-preferences.cpp:968
 msgid "Inline attributes"
 msgstr "Внутристрочные атрибуты"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:935
+#: ../src/ui/dialog/inkscape-preferences.cpp:969
 msgid "Put attributes on the same line as the element tag"
 msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:938
+#: ../src/ui/dialog/inkscape-preferences.cpp:972
 msgid "Indent, spaces:"
 msgstr "Отступ, пробелы:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:938
+#: ../src/ui/dialog/inkscape-preferences.cpp:972
 msgid "The number of spaces to use for indenting nested elements; set to 0 for no indentation"
 msgstr "Количество пробелов, используемых для отступов вложенных элементов; ноль выключает отступы"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:940
+#: ../src/ui/dialog/inkscape-preferences.cpp:974
 msgid "Path data"
 msgstr "Данные контуров"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:942
+#: ../src/ui/dialog/inkscape-preferences.cpp:976
 msgid "Allow relative coordinates"
 msgstr "Разрешать относительные координаты"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:943
+#: ../src/ui/dialog/inkscape-preferences.cpp:977
 msgid "If set, relative coordinates may be used in path data"
 msgstr "Если включено, в данных контура могут использоваться относительные координаты"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:945
+#: ../src/ui/dialog/inkscape-preferences.cpp:979
 msgid "Force repeat commands"
 msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:946
+#: ../src/ui/dialog/inkscape-preferences.cpp:980
 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:948
+#: ../src/ui/dialog/inkscape-preferences.cpp:982
 msgid "Numbers"
 msgstr "Числа"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:951
+#: ../src/ui/dialog/inkscape-preferences.cpp:985
 msgid "Numeric precision:"
 msgstr "Точность чисел:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:951
+#: ../src/ui/dialog/inkscape-preferences.cpp:985
 msgid "How many digits to write after the decimal dot"
 msgstr "Сколько цифр писать после десятичного разделителя"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:954
+#: ../src/ui/dialog/inkscape-preferences.cpp:988
 msgid "Minimum exponent:"
 msgstr "Минимальная экспонента:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:954
+#: ../src/ui/dialog/inkscape-preferences.cpp:988
 msgid "The smallest number written to SVG is 10 to the power of this exponent; anything smaller is written as zero."
 msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:956
+#: ../src/ui/dialog/inkscape-preferences.cpp:990
 msgid "SVG output"
 msgstr "Экспорт в SVG"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:965
+#: ../src/ui/dialog/inkscape-preferences.cpp:999
 msgid "Commands bar icon size"
 msgstr "Значки панели команд:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:966
+#: ../src/ui/dialog/inkscape-preferences.cpp:1000
 msgid "Set the size for the commands toolbar to use (requires restart)"
 msgstr "Изменить размер значков в панели команд (требует перезапуска программы)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:969
+#: ../src/ui/dialog/inkscape-preferences.cpp:1003
 msgid "Tool controls bar icon size"
 msgstr "Значки панели параметров:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:970
+#: ../src/ui/dialog/inkscape-preferences.cpp:1004
 msgid "Set the size for the secondary toolbar to use (requires restart)"
 msgstr "Изменить размер значков в панели параметров инструментов (требует перезапуска программы)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:973
+#: ../src/ui/dialog/inkscape-preferences.cpp:1007
 msgid "Main toolbar icon size"
 msgstr "Значки панели инструментов:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:974
+#: ../src/ui/dialog/inkscape-preferences.cpp:1008
 msgid "Set the size for the main tools to use (requires restart)"
 msgstr "Изменить размер значков в панели инструментов (требует перезапуска программы)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:977
+#: ../src/ui/dialog/inkscape-preferences.cpp:1011
 msgid "Maximum documents in Open Recent:"
 msgstr "Недавних документов в меню:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:978
+#: ../src/ui/dialog/inkscape-preferences.cpp:1012
 msgid "The maximum length of the Open Recent list in the File menu"
 msgstr "Сколько недавно открывавшихся документов помнить"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:981
+#: ../src/ui/dialog/inkscape-preferences.cpp:1015
 msgid "Zoom correction factor (in %):"
 msgstr "Коэфф. масштаба видимой страницы (%):"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:982
+#: ../src/ui/dialog/inkscape-preferences.cpp:1016
 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:984
+#: ../src/ui/dialog/inkscape-preferences.cpp:1018
 msgid "Interface"
 msgstr "Интерфейс"
 
 #. Autosave options
-#: ../src/ui/dialog/inkscape-preferences.cpp:991
+#: ../src/ui/dialog/inkscape-preferences.cpp:1025
 msgid "Enable autosave (requires restart)"
 msgstr "Включить автосохранение (требует перезапуска программы)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:992
+#: ../src/ui/dialog/inkscape-preferences.cpp:1026
 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:994
+#: ../src/ui/dialog/inkscape-preferences.cpp:1028
 msgid "Interval (in minutes):"
 msgstr "Интервал (в минутах):"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:994
+#: ../src/ui/dialog/inkscape-preferences.cpp:1028
 msgid "Interval (in minutes) at which document will be autosaved"
 msgstr "Интервал в минутах, через который документ автоматически сохраняется"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:996
+#: ../src/ui/dialog/inkscape-preferences.cpp:1030
 msgid "Path:"
 msgstr "Путь:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:996
+#: ../src/ui/dialog/inkscape-preferences.cpp:1030
 msgid "The directory where autosaves will be written"
 msgstr "Каталог, в который записываются файлы автосохранения"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:998
+#: ../src/ui/dialog/inkscape-preferences.cpp:1032
 msgid "Maximum number of autosaves:"
 msgstr "Максимальное число автосохранений:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:998
+#: ../src/ui/dialog/inkscape-preferences.cpp:1032
 msgid "Maximum number of autosaved files; use this to limit the storage space used"
 msgstr "Максимальное число файлов автосохранения; используйте этот параметр для ограничения используемого дискового пространства"
 
@@ -11750,164 +11820,162 @@ msgstr "Максимальное число файлов автосохране
 #. *
 #. * FIXME!
 #. * the inkscape_autosave_init should be called AFTER the values have been changed
-#. * (which cannot be guaranteed from here)
-#. *
-#. * For now, autosave-settings will not change until restart
+#. * (which cannot be guaranteed from here) - use a PrefObserver somewhere
 #.
 #.
 #. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE );
 #. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE );
 #.
 #. -----------
-#: ../src/ui/dialog/inkscape-preferences.cpp:1016
+#: ../src/ui/dialog/inkscape-preferences.cpp:1048
 msgid "Autosave"
 msgstr "Автосохранение"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1022
+#: ../src/ui/dialog/inkscape-preferences.cpp:1054
 msgid "2x2"
 msgstr "2×2"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1022
+#: ../src/ui/dialog/inkscape-preferences.cpp:1054
 msgid "4x4"
 msgstr "4×4"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1022
+#: ../src/ui/dialog/inkscape-preferences.cpp:1054
 msgid "8x8"
 msgstr "8×8"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1022
+#: ../src/ui/dialog/inkscape-preferences.cpp:1054
 msgid "16x16"
 msgstr "16×16"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1026
+#: ../src/ui/dialog/inkscape-preferences.cpp:1058
 msgid "Oversample bitmaps:"
 msgstr "Усреднять растр по точкам:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1029
+#: ../src/ui/dialog/inkscape-preferences.cpp:1061
 msgid "Automatically reload bitmaps"
 msgstr "Автоматически перезагружать растровые файлы"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1031
+#: ../src/ui/dialog/inkscape-preferences.cpp:1063
 msgid "Automatically reload linked images when file is changed on disk"
 msgstr "Автоматически заново загружать связанные изображения, когда они меняются на диске"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1045
+#: ../src/ui/dialog/inkscape-preferences.cpp:1077
 msgid "Bitmap editor:"
 msgstr "Редактор растровых файлов:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1051
+#: ../src/ui/dialog/inkscape-preferences.cpp:1083
 msgid "Resolution for Create Bitmap Copy:"
 msgstr "Разрешение растровой копии:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1052
+#: ../src/ui/dialog/inkscape-preferences.cpp:1084
 msgid "Resolution used by the Create Bitmap Copy command"
 msgstr "Разрешение растра при создании растровой копии выделения"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1054
+#: ../src/ui/dialog/inkscape-preferences.cpp:1086
 msgid "Bitmaps"
 msgstr "Растр"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1060
+#: ../src/ui/dialog/inkscape-preferences.cpp:1092
 msgid "Add label comments to printing output"
 msgstr "Добавлять метки в виде комментариев при выводе на печать"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1062
+#: ../src/ui/dialog/inkscape-preferences.cpp:1094
 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:1064
+#: ../src/ui/dialog/inkscape-preferences.cpp:1096
 msgid "Prevent sharing of gradient definitions"
 msgstr "Не разделять определения градиентов между объектами"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1066
+#: ../src/ui/dialog/inkscape-preferences.cpp:1098
 msgid "When on, shared gradient definitions are automatically forked on change; uncheck to allow sharing of gradient definitions so that editing one object may affect other objects using the same gradient"
 msgstr "Если параметр включен, разделяемые определения (defs) градиентов при изменении копируются в новые; если выключен, определения разделяются между объектами, так что изменение градиента для одного объекта может сказаться на другом объекте."
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1069
+#: ../src/ui/dialog/inkscape-preferences.cpp:1101
 msgid "Simplification threshold:"
 msgstr "Порог упрощения:"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1070
+#: ../src/ui/dialog/inkscape-preferences.cpp:1102
 msgid "How strong is the 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:1073
+#: ../src/ui/dialog/inkscape-preferences.cpp:1105
 msgid "Latency skew:"
 msgstr ""
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1073
+#: ../src/ui/dialog/inkscape-preferences.cpp:1105
 msgid "(requires restart)"
 msgstr "(требует перезапуска программы)"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1074
+#: ../src/ui/dialog/inkscape-preferences.cpp:1106
 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:1076
+#: ../src/ui/dialog/inkscape-preferences.cpp:1108
 msgid "Pre-render named icons"
 msgstr "Предварительно отрисовывать именованные значки"
 
-#: ../src/ui/dialog/inkscape-preferences.cpp:1078
+#: ../src/ui/dialog/inkscape-preferences.cpp:1110
 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:1080
+#: ../src/ui/dialog/inkscape-preferences.cpp:1112
 msgid "Misc"
 msgstr "Прочее"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:76
+#: ../src/ui/dialog/livepatheffect-editor.cpp:75
 msgid "Apply new effect"
 msgstr "Применить новый эффект"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:77
+#: ../src/ui/dialog/livepatheffect-editor.cpp:76
 msgid "Current effect"
 msgstr "Текущий эффект"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:78
+#: ../src/ui/dialog/livepatheffect-editor.cpp:77
 msgid "Effect list"
 msgstr "Список эффектов"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:266
+#: ../src/ui/dialog/livepatheffect-editor.cpp:265
 msgid "Unknown effect is applied"
 msgstr "Применен неизвестный эффект"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:269
+#: ../src/ui/dialog/livepatheffect-editor.cpp:268
 msgid "No effect applied"
 msgstr "Нет примененных эффектов"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:273
+#: ../src/ui/dialog/livepatheffect-editor.cpp:272
 msgid "Item is not a path or shape"
 msgstr "Объект не является контуром или фигурой"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:277
+#: ../src/ui/dialog/livepatheffect-editor.cpp:276
 msgid "Only one item can be selected"
 msgstr "Можно выбрать только один объект"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:281
+#: ../src/ui/dialog/livepatheffect-editor.cpp:280
 msgid "Empty selection"
 msgstr "Выделение пусто"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:364
+#: ../src/ui/dialog/livepatheffect-editor.cpp:370
 msgid "Create and apply path effect"
 msgstr "Создание контурного эффекта"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:381
+#: ../src/ui/dialog/livepatheffect-editor.cpp:387
 msgid "Remove path effect"
 msgstr "Удаление контурного эффекта"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:397
+#: ../src/ui/dialog/livepatheffect-editor.cpp:403
 msgid "Move path effect up"
 msgstr "Повысить контурный эффект"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:413
+#: ../src/ui/dialog/livepatheffect-editor.cpp:419
 msgid "Move path effect down"
 msgstr "Понизить контурный эффект"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:450
+#: ../src/ui/dialog/livepatheffect-editor.cpp:458
 msgid "Activate path effect"
 msgstr "Активация контурного эффекта"
 
-#: ../src/ui/dialog/livepatheffect-editor.cpp:450
+#: ../src/ui/dialog/livepatheffect-editor.cpp:458
 msgid "Deactivate path effect"
 msgstr "Деактивация контурного эффекта"
 
@@ -11944,11 +12012,11 @@ msgstr "Совокупно"
 msgid "Recalculate"
 msgstr "Пересчитать"
 
-#: ../src/ui/dialog/messages.cpp:75
+#: ../src/ui/dialog/messages.cpp:73
 msgid "Ready."
 msgstr "Готово."
 
-#: ../src/ui/dialog/messages.cpp:76
+#: ../src/ui/dialog/messages.cpp:74
 msgid "Enable log display by setting dialogs.debug 'redirect' attribute to 1 in preferences.xml"
 msgstr ""
 "Включить отображение журнала, \n"
@@ -11996,29 +12064,29 @@ msgstr "Искать"
 msgid "Files found"
 msgstr "Найденные рисунки"
 
-#: ../src/ui/dialog/print.cpp:138
+#: ../src/ui/dialog/print.cpp:141
 msgid "Could not open temporary PNG for bitmap printing"
 msgstr "Не удалось открыть временный файл PNG для растровой печати"
 
-#: ../src/ui/dialog/print.cpp:173
+#: ../src/ui/dialog/print.cpp:176
 msgid "Could not set up Document"
 msgstr "Не удалось подготовить документ"
 
-#: ../src/ui/dialog/print.cpp:177
+#: ../src/ui/dialog/print.cpp:180
 msgid "Failed to set CairoRenderContext"
 msgstr "Не удалось установить CairoRenderContext"
 
 #. set up dialog title, based on document name
-#: ../src/ui/dialog/print.cpp:217
+#: ../src/ui/dialog/print.cpp:220
 msgid "SVG Document"
 msgstr "Документ SVG"
 
-#: ../src/ui/dialog/print.cpp:218
+#: ../src/ui/dialog/print.cpp:221
 msgid "Print"
 msgstr "Напечатать"
 
 #. build custom preferences tab
-#: ../src/ui/dialog/print.cpp:245
+#: ../src/ui/dialog/print.cpp:248
 msgid "Rendering"
 msgstr "Тип печати"
 
@@ -12047,15 +12115,15 @@ msgid "Errors"
 msgstr "Ошибки"
 
 #. Dialog organization
-#: ../src/ui/dialog/session-player.cpp:73
+#: ../src/ui/dialog/session-player.cpp:72
 msgid "Session file"
 msgstr "Файл сессии"
 
-#: ../src/ui/dialog/session-player.cpp:74
+#: ../src/ui/dialog/session-player.cpp:73
 msgid "Playback controls"
 msgstr "Управление воспроизведением"
 
-#: ../src/ui/dialog/session-player.cpp:75
+#: ../src/ui/dialog/session-player.cpp:74
 #, fuzzy
 msgid "Message information"
 msgstr "Информация об используемой памяти"
@@ -12063,95 +12131,120 @@ msgstr "Информация об используемой памяти"
 #. Active session file display
 #. fixme: Does this mean the active file for the session, or the file for the active session?
 #. Please indicate which with a TRANSLATORS comment.
-#: ../src/ui/dialog/session-player.cpp:85
+#: ../src/ui/dialog/session-player.cpp:84
 msgid "Active session file:"
 msgstr "Файл активной сессии:"
 
-#: ../src/ui/dialog/session-player.cpp:86
+#: ../src/ui/dialog/session-player.cpp:85
 msgid "Delay (milliseconds):"
 msgstr "Задержка (мс):"
 
 #. Unload/load buttons
-#: ../src/ui/dialog/session-player.cpp:94
+#: ../src/ui/dialog/session-player.cpp:93
 msgid "Close file"
 msgstr "Закрыть файл"
 
-#: ../src/ui/dialog/session-player.cpp:95
+#: ../src/ui/dialog/session-player.cpp:94
 msgid "Open new file"
 msgstr "Открыть новый файл"
 
-#: ../src/ui/dialog/session-player.cpp:96
+#: ../src/ui/dialog/session-player.cpp:95
 #, fuzzy
 msgid "Set delay"
 msgstr "Установить полупрозрачность"
 
-#: ../src/ui/dialog/session-player.cpp:138
+#: ../src/ui/dialog/session-player.cpp:137
 msgid "Rewind"
 msgstr "Перемотать назад"
 
-#: ../src/ui/dialog/session-player.cpp:139
+#: ../src/ui/dialog/session-player.cpp:138
 msgid "Go back one change"
 msgstr "На изменение вперед"
 
-#: ../src/ui/dialog/session-player.cpp:140
+#: ../src/ui/dialog/session-player.cpp:139
 msgid "Pause"
 msgstr "Пауза"
 
-#: ../src/ui/dialog/session-player.cpp:141
+#: ../src/ui/dialog/session-player.cpp:140
 msgid "Go forward one change"
 msgstr "На изменение назад"
 
-#: ../src/ui/dialog/session-player.cpp:142
+#: ../src/ui/dialog/session-player.cpp:141
 msgid "Play"
 msgstr "Воспроизвести"
 
-#: ../src/ui/dialog/session-player.cpp:177
+#: ../src/ui/dialog/session-player.cpp:176
 msgid "Open session file"
 msgstr "Открыть файл сессии"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:111
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:110
 msgid "Set SVG Font attribute"
 msgstr "Установить атрибут SVG Font"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:261
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:251
+msgid "Family Name:"
+msgstr "Гарнитура:"
+
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:254
+msgid "Style:"
+msgstr "Начертание:"
+
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:255
+#, fuzzy
+msgid "Variant:"
+msgstr "Напечатать"
+
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:256
+msgid "Weight:"
+msgstr "Насыщенность:"
+
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:260
 #, fuzzy
 msgid "Set width:"
 msgstr "Масштаб ширины"
 
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:273
+msgid "Glyph Name:"
+msgstr "Название глифа:"
+
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:274
+msgid "Unicode:"
+msgstr "Значение Unicode:"
+
 #. Kerning Setup:
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:287
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:286
 msgid "Kerning Setup:"
 msgstr "Параметры кернинга:"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:289
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:288
 msgid "1st Glyph:"
 msgstr "Первый глиф:"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:291
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:290
 msgid "2nd Glyph:"
 msgstr "Второй глиф:"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:302
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:301
 msgid "Kerning value:"
 msgstr "Значение кернинга:"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:322
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:321
 msgid "_Font"
 msgstr "_Шрифт"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:330
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:329
 msgid "_Global Settings"
-msgstr "Ð\93_лобалÑ\8cнÑ\8bе параметры"
+msgstr "Ð\9e_бÑ\89ие параметры"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:331
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:330
 msgid "_Glyphs"
 msgstr "_Глифы"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:332
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:331
 msgid "_Kerning"
 msgstr "_Кернинг"
 
-#: ../src/ui/dialog/svg-fonts-dialog.cpp:344
+#: ../src/ui/dialog/svg-fonts-dialog.cpp:343
 msgid "Preview Text:"
 msgstr "Текст:"
 
@@ -12160,33 +12253,33 @@ msgstr "Текст:"
 #. ## begin mode page
 #. # begin single scan
 #. brightness
-#: ../src/ui/dialog/tracedialog.cpp:396
+#: ../src/ui/dialog/tracedialog.cpp:395
 msgid "Brightness cutoff"
 msgstr "Сокращение яркости"
 
-#: ../src/ui/dialog/tracedialog.cpp:400
+#: ../src/ui/dialog/tracedialog.cpp:399
 msgid "Trace by a given brightness level"
 msgstr "Векторизовать по заданному уровню яркости"
 
-#: ../src/ui/dialog/tracedialog.cpp:408
+#: ../src/ui/dialog/tracedialog.cpp:407
 msgid "Brightness cutoff for black/white"
 msgstr "Порог яркости для черно-белого"
 
-#: ../src/ui/dialog/tracedialog.cpp:415
+#: ../src/ui/dialog/tracedialog.cpp:414
 msgid "Single scan: creates a path"
 msgstr "Одиночное сканирование: создаёт контур"
 
 #. canny edge detection
 #. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method
-#: ../src/ui/dialog/tracedialog.cpp:420
+#: ../src/ui/dialog/tracedialog.cpp:419
 msgid "Edge detection"
 msgstr "Определение краёв"
 
-#: ../src/ui/dialog/tracedialog.cpp:424
+#: ../src/ui/dialog/tracedialog.cpp:423
 msgid "Trace with optimal edge detection by J. Canny's algorithm"
 msgstr "Векторизовать с оптимальным определением краев по алгоритму J. Canny"
 
-#: ../src/ui/dialog/tracedialog.cpp:441
+#: ../src/ui/dialog/tracedialog.cpp:440
 msgid "Brightness cutoff for adjacent pixels (determines edge thickness)"
 msgstr "Порог яркости для смежных пикселов (определяет толщину краев)"
 
@@ -12194,312 +12287,312 @@ msgstr "Порог яркости для смежных пикселов (опр
 #. TRANSLATORS: Color Quantization: the process of reducing the number
 #. of colors in an image by selecting an optimized set of representative
 #. colors and then re-applying this reduced set to the original image.
-#: ../src/ui/dialog/tracedialog.cpp:453
+#: ../src/ui/dialog/tracedialog.cpp:452
 msgid "Color quantization"
 msgstr "Квантование цветов"
 
-#: ../src/ui/dialog/tracedialog.cpp:457
+#: ../src/ui/dialog/tracedialog.cpp:456
 msgid "Trace along the boundaries of reduced colors"
 msgstr "Векторизовать вдоль границы сокращенных цветов"
 
-#: ../src/ui/dialog/tracedialog.cpp:465
+#: ../src/ui/dialog/tracedialog.cpp:464
 msgid "The number of reduced colors"
 msgstr "Количество цветов после сокращения"
 
-#: ../src/ui/dialog/tracedialog.cpp:467
+#: ../src/ui/dialog/tracedialog.cpp:466
 msgid "Colors:"
 msgstr "Цветов:"
 
 #. swap black and white
-#: ../src/ui/dialog/tracedialog.cpp:473
+#: ../src/ui/dialog/tracedialog.cpp:472
 msgid "Invert image"
 msgstr "Инвертировать изображение"
 
-#: ../src/ui/dialog/tracedialog.cpp:478
+#: ../src/ui/dialog/tracedialog.cpp:477
 msgid "Invert black and white regions"
 msgstr "Поменять местами чёрные и белые области"
 
 #. # end single scan
 #. # begin multiple scan
-#: ../src/ui/dialog/tracedialog.cpp:487
+#: ../src/ui/dialog/tracedialog.cpp:486
 msgid "Brightness steps"
 msgstr "Шаги яркости"
 
-#: ../src/ui/dialog/tracedialog.cpp:491
+#: ../src/ui/dialog/tracedialog.cpp:490
 msgid "Trace the given number of brightness levels"
 msgstr "Трассировать указанное количество уровней яркости"
 
-#: ../src/ui/dialog/tracedialog.cpp:498
+#: ../src/ui/dialog/tracedialog.cpp:497
 msgid "Scans:"
 msgstr "Сканирований:"
 
-#: ../src/ui/dialog/tracedialog.cpp:501
+#: ../src/ui/dialog/tracedialog.cpp:500
 msgid "The desired number of scans"
 msgstr "Желаемое количество сканирований"
 
-#: ../src/ui/dialog/tracedialog.cpp:505
+#: ../src/ui/dialog/tracedialog.cpp:504
 msgid "Colors"
 msgstr "В цвете"
 
-#: ../src/ui/dialog/tracedialog.cpp:509
+#: ../src/ui/dialog/tracedialog.cpp:508
 msgid "Trace the given number of reduced colors"
 msgstr "Трассировать указанное количество цветов"
 
-#: ../src/ui/dialog/tracedialog.cpp:513
+#: ../src/ui/dialog/tracedialog.cpp:512
 msgid "Grays"
 msgstr "В градациях серого"
 
-#: ../src/ui/dialog/tracedialog.cpp:517
+#: ../src/ui/dialog/tracedialog.cpp:516
 msgid "Same as Colors, but the result is converted to grayscale"
 msgstr ""
 "То же, что и для «В цвете», но конечное\n"
 "изображение будет в градациях серого"
 
 #. TRANSLATORS: "Smooth" is a verb here
-#: ../src/ui/dialog/tracedialog.cpp:522
+#: ../src/ui/dialog/tracedialog.cpp:521
 msgid "Smooth"
 msgstr "Сгладить"
 
-#: ../src/ui/dialog/tracedialog.cpp:526
+#: ../src/ui/dialog/tracedialog.cpp:525
 msgid "Apply Gaussian blur to the bitmap before tracing"
 msgstr "Применить Гауссово размывание растра перед векторизацией"
 
 #. TRANSLATORS: "Stack" is a verb here
-#: ../src/ui/dialog/tracedialog.cpp:529
+#: ../src/ui/dialog/tracedialog.cpp:528
 msgid "Stack scans"
 msgstr "Сложить стопкой"
 
-#: ../src/ui/dialog/tracedialog.cpp:532
+#: ../src/ui/dialog/tracedialog.cpp:531
 msgid "Stack scans on top of one another (no gaps) instead of tiling (usually with gaps)"
 msgstr "Слои выкладываются стопкой один над другим (без щелей), а не встык (обычно со щелями)"
 
-#: ../src/ui/dialog/tracedialog.cpp:535
+#: ../src/ui/dialog/tracedialog.cpp:534
 msgid "Remove background"
 msgstr "Убрать фон"
 
-#: ../src/ui/dialog/tracedialog.cpp:540
+#: ../src/ui/dialog/tracedialog.cpp:539
 msgid "Remove bottom (background) layer when done"
 msgstr "Удалить нижнюю стопку объектов по завершении"
 
-#: ../src/ui/dialog/tracedialog.cpp:544
+#: ../src/ui/dialog/tracedialog.cpp:543
 msgid "Multiple scans: creates a group of paths"
 msgstr "Множественное сканирование: создаёт группу контуров"
 
 #. ## begin option page
 #. # potrace parameters
-#: ../src/ui/dialog/tracedialog.cpp:559
+#: ../src/ui/dialog/tracedialog.cpp:558
 msgid "Suppress speckles"
 msgstr "Убрать пятна"
 
-#: ../src/ui/dialog/tracedialog.cpp:561
+#: ../src/ui/dialog/tracedialog.cpp:560
 msgid "Ignore small spots (speckles) in the bitmap"
 msgstr "Проигнорировать мелкие точки (пятна) на изображении"
 
-#: ../src/ui/dialog/tracedialog.cpp:569
+#: ../src/ui/dialog/tracedialog.cpp:568
 msgid "Speckles of up to this many pixels will be suppressed"
 msgstr "Пятна такого диаметра в пикселах будут подавлены"
 
-#: ../src/ui/dialog/tracedialog.cpp:571
+#: ../src/ui/dialog/tracedialog.cpp:570
 msgid "Size:"
 msgstr "Размер:"
 
-#: ../src/ui/dialog/tracedialog.cpp:574
+#: ../src/ui/dialog/tracedialog.cpp:573
 msgid "Smooth corners"
 msgstr "Сгладить углы"
 
-#: ../src/ui/dialog/tracedialog.cpp:576
+#: ../src/ui/dialog/tracedialog.cpp:575
 msgid "Smooth out sharp corners of the trace"
 msgstr "Сгладить острые углы при векторизации"
 
-#: ../src/ui/dialog/tracedialog.cpp:585
+#: ../src/ui/dialog/tracedialog.cpp:584
 msgid "Increase this to smooth corners more"
 msgstr "Чем больше значение, тем глаже углы"
 
-#: ../src/ui/dialog/tracedialog.cpp:589
+#: ../src/ui/dialog/tracedialog.cpp:588
 msgid "Optimize paths"
 msgstr "Оптимизировать контуры"
 
-#: ../src/ui/dialog/tracedialog.cpp:592
+#: ../src/ui/dialog/tracedialog.cpp:591
 msgid "Try to optimize paths by joining adjacent Bezier curve segments"
 msgstr "Попытаться оптимизировать контуры соединением соседних сегментов кривых Безье"
 
-#: ../src/ui/dialog/tracedialog.cpp:600
+#: ../src/ui/dialog/tracedialog.cpp:599
 msgid "Increase this to reduce the number of nodes in the trace by more aggressive optimization"
 msgstr "Чем больше значение, тем меньше количество узлов"
 
-#: ../src/ui/dialog/tracedialog.cpp:601
+#: ../src/ui/dialog/tracedialog.cpp:600
 msgid "Tolerance:"
 msgstr "Сглаживание:"
 
 #. ## end option page
-#: ../src/ui/dialog/tracedialog.cpp:607
-#: ../src/ui/dialog/tracedialog.cpp:613
+#: ../src/ui/dialog/tracedialog.cpp:606
+#: ../src/ui/dialog/tracedialog.cpp:612
 msgid "Options"
 msgstr "Параметры"
 
 #. ### credits
-#: ../src/ui/dialog/tracedialog.cpp:621
+#: ../src/ui/dialog/tracedialog.cpp:620
 msgid "Thanks to Peter Selinger, http://potrace.sourceforge.net"
 msgstr "Спасибо Питеру Селинджеру, http://potrace.sourceforge.net"
 
-#: ../src/ui/dialog/tracedialog.cpp:623
+#: ../src/ui/dialog/tracedialog.cpp:622
 msgid "Credits"
 msgstr "Благодарности"
 
 #. #### begin right panel
 #. ## SIOX
-#: ../src/ui/dialog/tracedialog.cpp:637
+#: ../src/ui/dialog/tracedialog.cpp:636
 msgid "SIOX foreground selection"
 msgstr "Выделение переднего плана при помощи SIOX"
 
-#: ../src/ui/dialog/tracedialog.cpp:640
+#: ../src/ui/dialog/tracedialog.cpp:639
 msgid "Cover the area you want to select as the foreground"
 msgstr "Обведите область изображения, которая находится на переднем плане"
 
 #. ## preview
-#: ../src/ui/dialog/tracedialog.cpp:645
+#: ../src/ui/dialog/tracedialog.cpp:644
 msgid "Update"
 msgstr "Обновить"
 
-#: ../src/ui/dialog/tracedialog.cpp:651
+#: ../src/ui/dialog/tracedialog.cpp:650
 msgid "Preview the intermediate bitmap with the current settings, without actual tracing"
 msgstr "Просмотреть будущий результат перед собственно векторизацией"
 
-#: ../src/ui/dialog/tracedialog.cpp:655
+#: ../src/ui/dialog/tracedialog.cpp:654
 msgid "Preview"
 msgstr "Предпросмотр"
 
-#: ../src/ui/dialog/tracedialog.cpp:672
+#: ../src/ui/dialog/tracedialog.cpp:671
 msgid "Abort a trace in progress"
 msgstr "Прервать векторизацию"
 
-#: ../src/ui/dialog/tracedialog.cpp:676
+#: ../src/ui/dialog/tracedialog.cpp:675
 msgid "Execute the trace"
 msgstr "Векторизовать"
 
-#: ../src/ui/dialog/transformation.cpp:83
-#: ../src/ui/dialog/transformation.cpp:93
+#: ../src/ui/dialog/transformation.cpp:82
+#: ../src/ui/dialog/transformation.cpp:92
 msgid "_Horizontal"
 msgstr "По _горизонтали"
 
-#: ../src/ui/dialog/transformation.cpp:83
+#: ../src/ui/dialog/transformation.cpp:82
 msgid "Horizontal displacement (relative) or position (absolute)"
 msgstr "Смещение (относительное) или позиционирование (абсолютное) по горизонтали"
 
-#: ../src/ui/dialog/transformation.cpp:85
-#: ../src/ui/dialog/transformation.cpp:95
+#: ../src/ui/dialog/transformation.cpp:84
+#: ../src/ui/dialog/transformation.cpp:94
 msgid "_Vertical"
 msgstr "По _вертикали"
 
-#: ../src/ui/dialog/transformation.cpp:85
+#: ../src/ui/dialog/transformation.cpp:84
 msgid "Vertical displacement (relative) or position (absolute)"
 msgstr "Смещение (относительное) или позиционирование (абсолютное) по вертикали"
 
-#: ../src/ui/dialog/transformation.cpp:87
+#: ../src/ui/dialog/transformation.cpp:86
 msgid "_Width"
 msgstr "_Ширина"
 
-#: ../src/ui/dialog/transformation.cpp:87
+#: ../src/ui/dialog/transformation.cpp:86
 msgid "Horizontal size (absolute or percentage of current)"
 msgstr "Размер по горизонтали (абсолютный или в %)"
 
-#: ../src/ui/dialog/transformation.cpp:89
+#: ../src/ui/dialog/transformation.cpp:88
 msgid "_Height"
 msgstr "_Высота"
 
-#: ../src/ui/dialog/transformation.cpp:89
+#: ../src/ui/dialog/transformation.cpp:88
 msgid "Vertical size (absolute or percentage of current)"
 msgstr "Размер по вертикали (абсолютный или в %)"
 
-#: ../src/ui/dialog/transformation.cpp:91
+#: ../src/ui/dialog/transformation.cpp:90
 msgid "A_ngle"
 msgstr "_Угол:"
 
-#: ../src/ui/dialog/transformation.cpp:91
+#: ../src/ui/dialog/transformation.cpp:90
 msgid "Rotation angle (positive = counterclockwise)"
 msgstr "Угол поворота (больше 0 = против часовой стрелки)"
 
-#: ../src/ui/dialog/transformation.cpp:93
+#: ../src/ui/dialog/transformation.cpp:92
 msgid "Horizontal skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"
 msgstr "Угол скоса по горизонтали (больше 0 = против часовой стрелки), либо абсолютное смещение, либо процентное смещение"
 
-#: ../src/ui/dialog/transformation.cpp:95
+#: ../src/ui/dialog/transformation.cpp:94
 msgid "Vertical skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"
 msgstr "Угол скоса по вертикали (больше 0 = против часовой стрелки), либо абсолютное смещение, либо процентное смещение"
 
-#: ../src/ui/dialog/transformation.cpp:98
+#: ../src/ui/dialog/transformation.cpp:97
 msgid "Transformation matrix element A"
 msgstr "Преобразование элемента матрицы A"
 
-#: ../src/ui/dialog/transformation.cpp:99
+#: ../src/ui/dialog/transformation.cpp:98
 msgid "Transformation matrix element B"
 msgstr "Преобразование элемента матрицы B"
 
-#: ../src/ui/dialog/transformation.cpp:100
+#: ../src/ui/dialog/transformation.cpp:99
 msgid "Transformation matrix element C"
 msgstr "Преобразование элемента матрицы C"
 
-#: ../src/ui/dialog/transformation.cpp:101
+#: ../src/ui/dialog/transformation.cpp:100
 msgid "Transformation matrix element D"
 msgstr "Преобразование элемента матрицы D"
 
-#: ../src/ui/dialog/transformation.cpp:102
+#: ../src/ui/dialog/transformation.cpp:101
 msgid "Transformation matrix element E"
 msgstr "Преобразование элемента матрицы E"
 
-#: ../src/ui/dialog/transformation.cpp:103
+#: ../src/ui/dialog/transformation.cpp:102
 msgid "Transformation matrix element F"
 msgstr "Преобразование элемента матрицы F"
 
-#: ../src/ui/dialog/transformation.cpp:105
+#: ../src/ui/dialog/transformation.cpp:104
 msgid "Rela_tive move"
 msgstr "_Относительное смещение"
 
-#: ../src/ui/dialog/transformation.cpp:105
+#: ../src/ui/dialog/transformation.cpp:104
 msgid "Add the specified relative displacement to the current position; otherwise, edit the current absolute position directly"
 msgstr "Добавить указанное относительное смещение к текущей позиции; в противном случае изменить текущую абсолютную позицию напрямую"
 
-#: ../src/ui/dialog/transformation.cpp:106
+#: ../src/ui/dialog/transformation.cpp:105
 msgid "Scale proportionally"
 msgstr "Пропорциональное масштабирование"
 
-#: ../src/ui/dialog/transformation.cpp:106
+#: ../src/ui/dialog/transformation.cpp:105
 msgid "Preserve the width/height ratio of the scaled objects"
 msgstr "Сохранять соотношение ширины и высоты масштабируемых объектов"
 
-#: ../src/ui/dialog/transformation.cpp:107
+#: ../src/ui/dialog/transformation.cpp:106
 msgid "Apply to each _object separately"
 msgstr "Применить к _каждому объекту отдельно"
 
-#: ../src/ui/dialog/transformation.cpp:107
+#: ../src/ui/dialog/transformation.cpp:106
 msgid "Apply the scale/rotate/skew to each selected object separately; otherwise, transform the selection as a whole"
 msgstr "Применить масштабирование/вращение/скашивание к каждому объекту отдельно; в противном случае выделенное преобразовывается как один объект"
 
-#: ../src/ui/dialog/transformation.cpp:108
+#: ../src/ui/dialog/transformation.cpp:107
 msgid "Edit c_urrent matrix"
 msgstr "Изменить текущую _матрицу"
 
-#: ../src/ui/dialog/transformation.cpp:108
+#: ../src/ui/dialog/transformation.cpp:107
 msgid "Edit the current transform= matrix; otherwise, post-multiply transform= by this matrix"
 msgstr "Изменить текущую матрицу transform=; в противном случае, послеумножить transform= на эту матрицу"
 
-#: ../src/ui/dialog/transformation.cpp:118
+#: ../src/ui/dialog/transformation.cpp:117
 msgid "_Move"
 msgstr "_Смещение"
 
-#: ../src/ui/dialog/transformation.cpp:121
+#: ../src/ui/dialog/transformation.cpp:120
 msgid "_Scale"
 msgstr "_Масштаб"
 
-#: ../src/ui/dialog/transformation.cpp:124
+#: ../src/ui/dialog/transformation.cpp:123
 msgid "_Rotate"
 msgstr "_Вращение"
 
-#: ../src/ui/dialog/transformation.cpp:127
+#: ../src/ui/dialog/transformation.cpp:126
 msgid "Ske_w"
 msgstr "С_кос"
 
-#: ../src/ui/dialog/transformation.cpp:130
+#: ../src/ui/dialog/transformation.cpp:129
 msgid "Matri_x"
 msgstr "М_атрица"
 
@@ -12511,98 +12604,98 @@ msgstr "Сбросить значения в этой вкладке до исх
 msgid "Apply transformation to selection"
 msgstr "Применить эти изменения к выбранному"
 
-#: ../src/ui/dialog/transformation.cpp:842
+#: ../src/ui/dialog/transformation.cpp:846
 msgid "Edit transformation matrix"
 msgstr "Правка матрицы преобразования"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:44
+#: ../src/ui/dialog/whiteboard-connect.cpp:47
 msgid "_Use SSL"
 msgstr "Ис_пользовать SSL"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:44
+#: ../src/ui/dialog/whiteboard-connect.cpp:47
 msgid "_Register"
 msgstr "За_регистрироваться"
 
 #. Construct dialog interface
-#: ../src/ui/dialog/whiteboard-connect.cpp:75
+#: ../src/ui/dialog/whiteboard-connect.cpp:78
 msgid "_Server:"
 msgstr "_Сервер:"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:76
+#: ../src/ui/dialog/whiteboard-connect.cpp:79
 msgid "_Username:"
 msgstr "_Имя пользователя:"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:77
+#: ../src/ui/dialog/whiteboard-connect.cpp:80
 msgid "_Password:"
 msgstr "_Пароль:"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:78
+#: ../src/ui/dialog/whiteboard-connect.cpp:81
 msgid "P_ort:"
 msgstr "П_орт:"
 
 #. Buttons
-#: ../src/ui/dialog/whiteboard-connect.cpp:115
+#: ../src/ui/dialog/whiteboard-connect.cpp:118
 msgid "Connect"
 msgstr "Соединиться"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:146
+#: ../src/ui/dialog/whiteboard-connect.cpp:149
 msgid "Establishing connection to Jabber server <b>%1</b>"
 msgstr "Устанавливается соединение с Jabber-сервером <b>%1</b>"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:173
-#: ../src/ui/dialog/whiteboard-connect.cpp:219
-#: ../src/ui/dialog/whiteboard-connect.cpp:257
+#: ../src/ui/dialog/whiteboard-connect.cpp:176
+#: ../src/ui/dialog/whiteboard-connect.cpp:222
+#: ../src/ui/dialog/whiteboard-connect.cpp:260
 msgid "Failed to establish connection to Jabber server <b>%1</b>"
 msgstr "Не удалось установить соединение с сервером Jabber <b>%1</b>"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:212
+#: ../src/ui/dialog/whiteboard-connect.cpp:215
 msgid "Establishing connection to Jabber server <b>%1</b> as user <b>%2</b>"
 msgstr "Устанавливается соединение с сервером Jabber <b>%1</b> по именем <b>%2</b>"
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:224
+#: ../src/ui/dialog/whiteboard-connect.cpp:227
 msgid "Authentication failed on Jabber server <b>%1</b> as <b>%2</b>"
 msgstr ""
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:229
-#: ../src/ui/dialog/whiteboard-connect.cpp:267
+#: ../src/ui/dialog/whiteboard-connect.cpp:232
+#: ../src/ui/dialog/whiteboard-connect.cpp:270
 msgid "SSL initialization failed when connecting to Jabber server <b>%1</b>"
 msgstr ""
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:235
-#: ../src/ui/dialog/whiteboard-connect.cpp:273
+#: ../src/ui/dialog/whiteboard-connect.cpp:238
+#: ../src/ui/dialog/whiteboard-connect.cpp:276
 msgid "Connected to Jabber server <b>%1</b> as <b>%2</b>"
 msgstr ""
 
-#: ../src/ui/dialog/whiteboard-connect.cpp:262
+#: ../src/ui/dialog/whiteboard-connect.cpp:265
 msgid "Registration failed on Jabber server <b>%1</b> as <b>%2</b>"
 msgstr ""
 
 #. Construct labels
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:74
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:76
 #, fuzzy
 msgid "Chatroom _name:"
 msgstr "Имя слоя:"
 
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:75
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:77
 msgid "Chatroom _server:"
 msgstr ""
 
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:76
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:78
 msgid "Chatroom _password:"
 msgstr ""
 
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:77
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:79
 #, fuzzy
 msgid "Chatroom _handle:"
 msgstr "Смена рычага"
 
 #. Button setup and callback registration
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:101
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:103
 #, fuzzy
 msgid "Connect to chatroom"
 msgstr "Линия соединения"
 
-#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:136
+#: ../src/ui/dialog/whiteboard-sharewithchat.cpp:138
 msgid "Synchronizing with chatroom <b>%1@%2</b> using the handle <b>%3</b>"
 msgstr ""
 
@@ -12875,23 +12968,22 @@ msgid "PLACEHOLDER, do not translate"
 msgstr "PLACEHOLDER, do not translate"
 
 #: ../src/ui/view/edit-widget.cpp:1062
-#: ../src/widgets/desktop-widget.cpp:380
+#: ../src/widgets/desktop-widget.cpp:374
 msgid "Zoom drawing if window size changes"
 msgstr "Изменять масштаб при изменении размеров окна"
 
 #: ../src/ui/view/edit-widget.cpp:1083
-#: ../src/widgets/desktop-widget.cpp:505
+#: ../src/widgets/desktop-widget.cpp:497
 msgid "Cursor coordinates"
 msgstr "Координаты курсора"
 
-#. display the initial welcome message in the statusbar
 #: ../src/ui/view/edit-widget.cpp:1100
-#: ../src/widgets/desktop-widget.cpp:553
-msgid "<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; use selector (arrow) to move or transform them."
+#, fuzzy
+msgid "<b>Welcome to Inkscape!</b> Use shape or drawing tools to create objects; use selector (arrow) to move or transform them."
 msgstr "<b>Добро пожаловать в Inkscape!</b> Используйте инструменты фигур или рисования для создания объектов; используйте селектор (стрелку) для их перемещения и трансформации."
 
 #: ../src/ui/view/edit-widget.cpp:1211
-#: ../src/widgets/desktop-widget.cpp:840
+#: ../src/widgets/desktop-widget.cpp:832
 #, c-format
 msgid ""
 "<span weight=\"bold\" size=\"larger\">Save changes to document \"%s\" before closing?</span>\n"
@@ -12904,13 +12996,13 @@ msgstr ""
 
 #: ../src/ui/view/edit-widget.cpp:1222
 #: ../src/ui/view/edit-widget.cpp:1269
-#: ../src/widgets/desktop-widget.cpp:847
-#: ../src/widgets/desktop-widget.cpp:903
+#: ../src/widgets/desktop-widget.cpp:839
+#: ../src/widgets/desktop-widget.cpp:895
 msgid "Close _without saving"
 msgstr "_Не сохранять"
 
 #: ../src/ui/view/edit-widget.cpp:1257
-#: ../src/widgets/desktop-widget.cpp:895
+#: ../src/widgets/desktop-widget.cpp:887
 #, c-format
 msgid ""
 "<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a format (%s) that may cause data loss!</span>\n"
@@ -12922,7 +13014,7 @@ msgstr ""
 "Сохранить документ в формате Inkscape SVG?"
 
 #: ../src/ui/view/edit-widget.cpp:1272
-#: ../src/widgets/desktop-widget.cpp:906
+#: ../src/widgets/desktop-widget.cpp:898
 msgid "_Save as SVG"
 msgstr "_Сохранить как SVG"
 
@@ -13001,66 +13093,66 @@ msgstr "Изменить размер страницы до размеров т
 msgid "Set page size"
 msgstr "Смена формата страницы"
 
-#: ../src/ui/widget/panel.cpp:121
+#: ../src/ui/widget/panel.cpp:111
 msgid "List"
 msgstr "Список"
 
-#: ../src/ui/widget/panel.cpp:144
+#: ../src/ui/widget/panel.cpp:134
 msgid "swatches|Size"
 msgstr "Размер"
 
-#: ../src/ui/widget/panel.cpp:148
+#: ../src/ui/widget/panel.cpp:138
 msgid "tiny"
 msgstr "Крошечные"
 
-#: ../src/ui/widget/panel.cpp:149
+#: ../src/ui/widget/panel.cpp:139
 msgid "small"
 msgstr "Маленькие"
 
 #. TRANSLATORS: Translate only the word "medium". Indicates size of colour swatches
-#: ../src/ui/widget/panel.cpp:151
+#: ../src/ui/widget/panel.cpp:141
 msgid "swatchesHeight|medium"
 msgstr "Средней высоты"
 
-#: ../src/ui/widget/panel.cpp:152
+#: ../src/ui/widget/panel.cpp:142
 msgid "large"
 msgstr "Большие"
 
-#: ../src/ui/widget/panel.cpp:153
+#: ../src/ui/widget/panel.cpp:143
 msgid "huge"
 msgstr "Огромные"
 
-#: ../src/ui/widget/panel.cpp:175
+#: ../src/ui/widget/panel.cpp:165
 msgid "swatches|Width"
 msgstr "Ширина"
 
-#: ../src/ui/widget/panel.cpp:179
+#: ../src/ui/widget/panel.cpp:169
 msgid "narrower"
 msgstr "Еще уже"
 
-#: ../src/ui/widget/panel.cpp:180
+#: ../src/ui/widget/panel.cpp:170
 msgid "narrow"
 msgstr "Узкие"
 
 #. TRANSLATORS: Translate only the word "medium". Indicates width of colour swatches
-#: ../src/ui/widget/panel.cpp:182
+#: ../src/ui/widget/panel.cpp:172
 msgid "swatchesWidth|medium"
 msgstr "Средней ширины"
 
-#: ../src/ui/widget/panel.cpp:183
+#: ../src/ui/widget/panel.cpp:173
 msgid "wide"
 msgstr "Широкие"
 
-#: ../src/ui/widget/panel.cpp:184
+#: ../src/ui/widget/panel.cpp:174
 msgid "wider"
 msgstr "Еще шире"
 
 #. TRANSLATORS: Translate only the word "Wrap". Indicates how colour swatches are displayed
-#: ../src/ui/widget/panel.cpp:215
+#: ../src/ui/widget/panel.cpp:205
 msgid "swatches|Wrap"
 msgstr "В несколько строк"
 
-#: ../src/ui/widget/preferences-widget.cpp:504
+#: ../src/ui/widget/preferences-widget.cpp:498
 msgid "Reset"
 msgstr "Сбросить "
 
@@ -13097,12 +13189,12 @@ msgid "Render everything as bitmap.  The resulting image is usually larger in fi
 msgstr "Напечатать как растр. Как правило, файл будет большего размера, и полученное изображение нельзя будет произвольно масштабировать без потери качества. Однако все графические элементы будут напечатаны так, как они выглядят на экране."
 
 #: ../src/ui/widget/selected-style.cpp:106
-#: ../src/ui/widget/style-swatch.cpp:110
+#: ../src/ui/widget/style-swatch.cpp:117
 msgid "Fill:"
 msgstr "Заливка:"
 
 #: ../src/ui/widget/selected-style.cpp:107
-#: ../src/ui/widget/style-swatch.cpp:111
+#: ../src/ui/widget/style-swatch.cpp:118
 msgid "Stroke:"
 msgstr "Обводка:"
 
@@ -13121,34 +13213,34 @@ msgid "Nothing selected"
 msgstr "Ничего не выбрано"
 
 #: ../src/ui/widget/selected-style.cpp:155
-#: ../src/ui/widget/style-swatch.cpp:328
+#: ../src/ui/widget/style-swatch.cpp:296
 msgid "<i>None</i>"
 msgstr "<i>Нет</i>"
 
 #: ../src/ui/widget/selected-style.cpp:158
-#: ../src/ui/widget/style-swatch.cpp:330
+#: ../src/ui/widget/style-swatch.cpp:298
 msgid "No fill"
 msgstr "Без заливки"
 
 #: ../src/ui/widget/selected-style.cpp:158
-#: ../src/ui/widget/style-swatch.cpp:330
+#: ../src/ui/widget/style-swatch.cpp:298
 msgid "No stroke"
 msgstr "Без обводки"
 
 #: ../src/ui/widget/selected-style.cpp:160
-#: ../src/ui/widget/style-swatch.cpp:309
+#: ../src/ui/widget/style-swatch.cpp:277
 #: ../src/widgets/paint-selector.cpp:189
 msgid "Pattern"
 msgstr "Текстура"
 
 #: ../src/ui/widget/selected-style.cpp:163
-#: ../src/ui/widget/style-swatch.cpp:311
+#: ../src/ui/widget/style-swatch.cpp:279
 #: ../src/widgets/paint-selector.cpp:997
 msgid "Pattern fill"
 msgstr "Текстурная заливка"
 
 #: ../src/ui/widget/selected-style.cpp:163
-#: ../src/ui/widget/style-swatch.cpp:311
+#: ../src/ui/widget/style-swatch.cpp:279
 msgid "Pattern stroke"
 msgstr "Текстурная обводка"
 
@@ -13157,12 +13249,12 @@ msgid "<b>L</b>"
 msgstr "<b>Л:</b>"
 
 #: ../src/ui/widget/selected-style.cpp:168
-#: ../src/ui/widget/style-swatch.cpp:303
+#: ../src/ui/widget/style-swatch.cpp:271
 msgid "Linear gradient fill"
 msgstr "Линейная градиентная заливка"
 
 #: ../src/ui/widget/selected-style.cpp:168
-#: ../src/ui/widget/style-swatch.cpp:303
+#: ../src/ui/widget/style-swatch.cpp:271
 msgid "Linear gradient stroke"
 msgstr "Линейная градиентная обводка"
 
@@ -13171,12 +13263,12 @@ msgid "<b>R</b>"
 msgstr "<b>Р</b>"
 
 #: ../src/ui/widget/selected-style.cpp:178
-#: ../src/ui/widget/style-swatch.cpp:307
+#: ../src/ui/widget/style-swatch.cpp:275
 msgid "Radial gradient fill"
 msgstr "Радиальная градиентная заливка"
 
 #: ../src/ui/widget/selected-style.cpp:178
-#: ../src/ui/widget/style-swatch.cpp:307
+#: ../src/ui/widget/style-swatch.cpp:275
 msgid "Radial gradient stroke"
 msgstr "Радиальная градиентная обводка"
 
@@ -13193,7 +13285,7 @@ msgid "Different strokes"
 msgstr "Разные обводки"
 
 #: ../src/ui/widget/selected-style.cpp:190
-#: ../src/ui/widget/style-swatch.cpp:333
+#: ../src/ui/widget/style-swatch.cpp:301
 msgid "<b>Unset</b>"
 msgstr "<b>Снята</b>"
 
@@ -13256,7 +13348,7 @@ msgid "White"
 msgstr "Белый"
 
 #: ../src/ui/widget/selected-style.cpp:230
-#: ../src/widgets/sp-color-icc-selector.cpp:237
+#: ../src/widgets/sp-color-icc-selector.cpp:238
 #: ../src/widgets/sp-color-scales.cpp:461
 #: ../src/widgets/sp-color-scales.cpp:462
 msgid "Black"
@@ -13404,40 +13496,40 @@ msgstr ""
 msgid "sliders|Link"
 msgstr "Связь"
 
-#: ../src/ui/widget/style-swatch.cpp:301
+#: ../src/ui/widget/style-swatch.cpp:269
 msgid "L Gradient"
 msgstr "Лин. градиент"
 
-#: ../src/ui/widget/style-swatch.cpp:305
+#: ../src/ui/widget/style-swatch.cpp:273
 msgid "R Gradient"
 msgstr "Рад. градиент"
 
-#: ../src/ui/widget/style-swatch.cpp:321
+#: ../src/ui/widget/style-swatch.cpp:289
 #, c-format
 msgid "Fill: %06x/%.3g"
 msgstr "Заливка: %06x/%.3g"
 
-#: ../src/ui/widget/style-swatch.cpp:323
+#: ../src/ui/widget/style-swatch.cpp:291
 #, c-format
 msgid "Stroke: %06x/%.3g"
 msgstr "Обводка: %06x/%.3g"
 
-#: ../src/ui/widget/style-swatch.cpp:355
+#: ../src/ui/widget/style-swatch.cpp:323
 #, c-format
 msgid "Stroke width: %.5g%s"
 msgstr "Толщина обводки: %.5g%s"
 
-#: ../src/ui/widget/style-swatch.cpp:371
+#: ../src/ui/widget/style-swatch.cpp:339
 #, c-format
 msgid "O:%.3g"
 msgstr "Н:%.3g"
 
-#: ../src/ui/widget/style-swatch.cpp:373
+#: ../src/ui/widget/style-swatch.cpp:341
 #, c-format
 msgid "O:.%d"
 msgstr "Н:.%d"
 
-#: ../src/ui/widget/style-swatch.cpp:378
+#: ../src/ui/widget/style-swatch.cpp:346
 #, c-format
 msgid "Opacity: %.3g"
 msgstr "Непрозрачность: %.3g"
@@ -13480,1679 +13572,1686 @@ msgstr[0] "разделяемых <b>%d</b> параллелепипедом; п
 msgstr[1] "разделяемых <b>%d</b> параллелепипедами; перетаскиванием с <b>Shift</b> разделяются выбранные параллелепипеды"
 msgstr[2] "разделяемых <b>%d</b> параллелепипедами; перетаскиванием с <b>Shift</b> разделяются выбранные параллелепипеды"
 
-#: ../src/verbs.cpp:1138
+#: ../src/verbs.cpp:1137
 msgid "Switch to next layer"
 msgstr "Перейти на следующий слой"
 
-#: ../src/verbs.cpp:1139
+#: ../src/verbs.cpp:1138
 msgid "Switched to next layer."
 msgstr "Переход на следующий слой."
 
-#: ../src/verbs.cpp:1141
+#: ../src/verbs.cpp:1140
 msgid "Cannot go past last layer."
 msgstr "Невозможно перейти за последний слой."
 
-#: ../src/verbs.cpp:1150
+#: ../src/verbs.cpp:1149
 msgid "Switch to previous layer"
 msgstr "Опускание на предыдущий слой"
 
-#: ../src/verbs.cpp:1151
+#: ../src/verbs.cpp:1150
 msgid "Switched to previous layer."
 msgstr "Перемещен на предыдущий слой"
 
-#: ../src/verbs.cpp:1153
+#: ../src/verbs.cpp:1152
 msgid "Cannot go before first layer."
 msgstr "Невозможно перейти за первый слой."
 
-#: ../src/verbs.cpp:1170
-#: ../src/verbs.cpp:1247
-#: ../src/verbs.cpp:1279
-#: ../src/verbs.cpp:1285
+#: ../src/verbs.cpp:1169
+#: ../src/verbs.cpp:1246
+#: ../src/verbs.cpp:1278
+#: ../src/verbs.cpp:1284
 msgid "No current layer."
 msgstr "Нет текущего слоя."
 
-#: ../src/verbs.cpp:1199
-#: ../src/verbs.cpp:1203
+#: ../src/verbs.cpp:1198
+#: ../src/verbs.cpp:1202
 #, c-format
 msgid "Raised layer <b>%s</b>."
 msgstr "Слой <b>%s</b> поднят."
 
-#: ../src/verbs.cpp:1200
+#: ../src/verbs.cpp:1199
 msgid "Layer to top"
 msgstr "Слой на передний план"
 
-#: ../src/verbs.cpp:1204
+#: ../src/verbs.cpp:1203
 msgid "Raise layer"
 msgstr "Повышение слоя"
 
-#: ../src/verbs.cpp:1207
-#: ../src/verbs.cpp:1211
+#: ../src/verbs.cpp:1206
+#: ../src/verbs.cpp:1210
 #, c-format
 msgid "Lowered layer <b>%s</b>."
 msgstr "Слой <b>%s</b> опущен"
 
-#: ../src/verbs.cpp:1208
+#: ../src/verbs.cpp:1207
 msgid "Layer to bottom"
 msgstr "Слой на задний план"
 
-#: ../src/verbs.cpp:1212
+#: ../src/verbs.cpp:1211
 msgid "Lower layer"
 msgstr "Опускание слоя"
 
-#: ../src/verbs.cpp:1221
+#: ../src/verbs.cpp:1220
 msgid "Cannot move layer any further."
 msgstr "Невозможно переместить слой дальше."
 
-#: ../src/verbs.cpp:1230
+#: ../src/verbs.cpp:1229
 #, c-format
 msgid "%s copy"
 msgstr "Копия слоя %s"
 
-#: ../src/verbs.cpp:1242
+#: ../src/verbs.cpp:1241
 msgid "Duplicate layer"
 msgstr "Дубликация слоя"
 
 #. TRANSLATORS: this means "The layer has been duplicated."
-#: ../src/verbs.cpp:1245
+#: ../src/verbs.cpp:1244
 msgid "Duplicated layer."
 msgstr "Слой продублирован."
 
-#: ../src/verbs.cpp:1274
+#: ../src/verbs.cpp:1273
 msgid "Delete layer"
 msgstr "Слой удалён"
 
 #. TRANSLATORS: this means "The layer has been deleted."
-#: ../src/verbs.cpp:1277
+#: ../src/verbs.cpp:1276
 msgid "Deleted layer."
 msgstr "Слой удалён."
 
-#: ../src/verbs.cpp:1288
-#, fuzzy
+#: ../src/verbs.cpp:1287
 msgid "Toggle layer solo"
-msgstr "СкÑ\80Ñ\8bÑ\82Ñ\8c Ð¸Ð»Ð¸ Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\82екÑ\83щий слой"
+msgstr "СолиÑ\80Ñ\83Ñ\8eщий слой"
 
-#: ../src/verbs.cpp:1368
+#: ../src/verbs.cpp:1367
 msgid "Flip horizontally"
 msgstr "Отразить горизонтально"
 
-#: ../src/verbs.cpp:1383
+#: ../src/verbs.cpp:1382
 msgid "Flip vertically"
 msgstr "Отразить вертикально"
 
 #. TRANSLATORS: If you have translated the tutorial-basic.svg file to your language,
 #. then translate this string as "tutorial-basic.LANG.svg" (where LANG is your language
 #. code); otherwise leave as "tutorial-basic.svg".
-#: ../src/verbs.cpp:1881
+#: ../src/verbs.cpp:1884
 msgid "tutorial-basic.svg"
 msgstr "tutorial-basic.ru.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1885
+#: ../src/verbs.cpp:1888
 msgid "tutorial-shapes.svg"
 msgstr "tutorial-shapes.ru.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1889
+#: ../src/verbs.cpp:1892
 msgid "tutorial-advanced.svg"
 msgstr "tutorial-advanced.ru.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1893
+#: ../src/verbs.cpp:1896
 msgid "tutorial-tracing.svg"
 msgstr "tutorial-tracing.ru.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1897
+#: ../src/verbs.cpp:1900
 msgid "tutorial-calligraphy.svg"
 msgstr "tutorial-calligraphy.ru.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1901
+#: ../src/verbs.cpp:1904
 msgid "tutorial-elements.svg"
 msgstr "tutorial-elements.ru.svg"
 
 #. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:1905
+#: ../src/verbs.cpp:1908
 msgid "tutorial-tips.svg"
 msgstr "tutorial-tips.ru.svg"
 
-#: ../src/verbs.cpp:2181
-#: ../src/verbs.cpp:2698
+#: ../src/verbs.cpp:2184
+#: ../src/verbs.cpp:2703
 msgid "Unlock all objects in the current layer"
 msgstr "Отпереть все объекты в текущем слое"
 
-#: ../src/verbs.cpp:2185
-#: ../src/verbs.cpp:2700
+#: ../src/verbs.cpp:2188
+#: ../src/verbs.cpp:2705
 msgid "Unlock all objects in all layers"
 msgstr "Отпереть все объекты во всех слоях"
 
-#: ../src/verbs.cpp:2189
-#: ../src/verbs.cpp:2702
+#: ../src/verbs.cpp:2192
+#: ../src/verbs.cpp:2707
 msgid "Unhide all objects in the current layer"
 msgstr "Раскрыть все объекты в текущем слое"
 
-#: ../src/verbs.cpp:2193
-#: ../src/verbs.cpp:2704
+#: ../src/verbs.cpp:2196
+#: ../src/verbs.cpp:2709
 msgid "Unhide all objects in all layers"
 msgstr "Раскрыть все объекты во всех слоях"
 
-#: ../src/verbs.cpp:2208
+#: ../src/verbs.cpp:2211
 msgid "Does nothing"
 msgstr "Нет действий"
 
-#: ../src/verbs.cpp:2211
+#: ../src/verbs.cpp:2214
 msgid "Create new document from the default template"
 msgstr "Создать новый документ из стандартного шаблона"
 
-#: ../src/verbs.cpp:2213
+#: ../src/verbs.cpp:2216
 msgid "_Open..."
 msgstr "_Открыть..."
 
-#: ../src/verbs.cpp:2214
+#: ../src/verbs.cpp:2217
 msgid "Open an existing document"
 msgstr "Открыть существующий документ"
 
-#: ../src/verbs.cpp:2215
+#: ../src/verbs.cpp:2218
 msgid "Re_vert"
 msgstr "_Восстановить"
 
-#: ../src/verbs.cpp:2216
+#: ../src/verbs.cpp:2219
 msgid "Revert to the last saved version of document (changes will be lost)"
 msgstr "Вернуться к последней сохраненной версии документа (изменения будут потеряны)"
 
-#: ../src/verbs.cpp:2217
+#: ../src/verbs.cpp:2220
 msgid "_Save"
 msgstr "Со_хранить"
 
-#: ../src/verbs.cpp:2217
+#: ../src/verbs.cpp:2220
 msgid "Save document"
 msgstr "Сохранить документ"
 
-#: ../src/verbs.cpp:2219
+#: ../src/verbs.cpp:2222
 msgid "Save _As..."
 msgstr "Сохранить _как..."
 
-#: ../src/verbs.cpp:2220
+#: ../src/verbs.cpp:2223
 msgid "Save document under a new name"
 msgstr "Сохранить документ под другим именем"
 
-#: ../src/verbs.cpp:2221
+#: ../src/verbs.cpp:2224
 msgid "Save a Cop_y..."
 msgstr "Сохр_анить копию..."
 
-#: ../src/verbs.cpp:2222
+#: ../src/verbs.cpp:2225
 msgid "Save a copy of the document under a new name"
 msgstr "Сохранить копию документа под другим именем"
 
-#: ../src/verbs.cpp:2223
+#: ../src/verbs.cpp:2226
 msgid "_Print..."
 msgstr "На_печатать..."
 
-#: ../src/verbs.cpp:2223
+#: ../src/verbs.cpp:2226
 msgid "Print document"
 msgstr "Напечатать документ"
 
 #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions)
-#: ../src/verbs.cpp:2226
+#: ../src/verbs.cpp:2229
 msgid "Vac_uum Defs"
 msgstr "О_чистить defs"
 
-#: ../src/verbs.cpp:2226
+#: ../src/verbs.cpp:2229
 msgid "Remove unused definitions (such as gradients or clipping paths) from the &lt;defs&gt; of the document"
 msgstr "Убрать ненужное (например, градиенты или обтравочные контуры) из &lt;defs&gt; документа"
 
-#: ../src/verbs.cpp:2228
+#: ../src/verbs.cpp:2231
 msgid "Print Previe_w"
 msgstr "П_редпросмотр печати"
 
-#: ../src/verbs.cpp:2229
+#: ../src/verbs.cpp:2232
 msgid "Preview document printout"
 msgstr "Предварительный просмотр печати"
 
-#: ../src/verbs.cpp:2230
+#: ../src/verbs.cpp:2233
 msgid "_Import..."
 msgstr "_Импортировать..."
 
-#: ../src/verbs.cpp:2231
+#: ../src/verbs.cpp:2234
 msgid "Import a bitmap or SVG image into this document"
 msgstr "Импортировать растровое или SVG-изображение в документ"
 
-#: ../src/verbs.cpp:2232
+#: ../src/verbs.cpp:2235
 msgid "_Export Bitmap..."
 msgstr "_Экспортировать в растр..."
 
-#: ../src/verbs.cpp:2233
+#: ../src/verbs.cpp:2236
 msgid "Export this document or a selection as a bitmap image"
 msgstr "Экспортировать документ или выделенное в PNG"
 
-#: ../src/verbs.cpp:2234
+#: ../src/verbs.cpp:2237
 msgid "Import a document from Open Clip Art Library"
 msgstr "Импортировать документ из Open Clip Art Library"
 
-#: ../src/verbs.cpp:2235
+#: ../src/verbs.cpp:2238
 msgid "Export To Open Clip Art Library"
 msgstr "Экспортировать в Open Clip Art Library"
 
-#: ../src/verbs.cpp:2235
+#: ../src/verbs.cpp:2238
 msgid "Export this document to Open Clip Art Library"
 msgstr "Экспортировать документ или выделенное в Open Clip Art Library"
 
-#: ../src/verbs.cpp:2236
+#: ../src/verbs.cpp:2239
 msgid "N_ext Window"
 msgstr "Сл_едующее окно"
 
-#: ../src/verbs.cpp:2237
+#: ../src/verbs.cpp:2240
 msgid "Switch to the next document window"
 msgstr "Переключиться в следующее окно документа"
 
-#: ../src/verbs.cpp:2238
+#: ../src/verbs.cpp:2241
 msgid "P_revious Window"
 msgstr "_Предыдущее окно"
 
-#: ../src/verbs.cpp:2239
+#: ../src/verbs.cpp:2242
 msgid "Switch to the previous document window"
 msgstr "Переключиться в предыдущее окно документа"
 
-#: ../src/verbs.cpp:2240
+#: ../src/verbs.cpp:2243
 msgid "_Close"
 msgstr "_Закрыть"
 
-#: ../src/verbs.cpp:2241
+#: ../src/verbs.cpp:2244
 msgid "Close this document window"
 msgstr "Закрыть это окно документа"
 
-#: ../src/verbs.cpp:2242
+#: ../src/verbs.cpp:2245
 msgid "_Quit"
 msgstr "В_ыйти"
 
-#: ../src/verbs.cpp:2242
+#: ../src/verbs.cpp:2245
 msgid "Quit Inkscape"
 msgstr "Выйти из Inkscape"
 
-#: ../src/verbs.cpp:2245
+#: ../src/verbs.cpp:2248
 msgid "Undo last action"
 msgstr "Отменить последнее действие"
 
-#: ../src/verbs.cpp:2248
+#: ../src/verbs.cpp:2251
 msgid "Do again the last undone action"
 msgstr "Повторить последнее отменённое действие"
 
-#: ../src/verbs.cpp:2249
+#: ../src/verbs.cpp:2252
 msgid "Cu_t"
 msgstr "_Вырезать"
 
-#: ../src/verbs.cpp:2250
+#: ../src/verbs.cpp:2253
 msgid "Cut selection to clipboard"
 msgstr "Вырезать выделение в буфер обмена"
 
-#: ../src/verbs.cpp:2251
+#: ../src/verbs.cpp:2254
 msgid "_Copy"
 msgstr "С_копировать"
 
-#: ../src/verbs.cpp:2252
+#: ../src/verbs.cpp:2255
 msgid "Copy selection to clipboard"
 msgstr "Скопировать выделение в буфер обмена"
 
-#: ../src/verbs.cpp:2253
+#: ../src/verbs.cpp:2256
 msgid "_Paste"
 msgstr "Вст_авить"
 
-#: ../src/verbs.cpp:2254
+#: ../src/verbs.cpp:2257
 msgid "Paste objects from clipboard to mouse point, or paste text"
 msgstr "Вставить объект из буфера обмена под курсор, либо вставить текст"
 
-#: ../src/verbs.cpp:2255
+#: ../src/verbs.cpp:2258
 msgid "Paste _Style"
 msgstr "Вставить _стиль"
 
-#: ../src/verbs.cpp:2256
+#: ../src/verbs.cpp:2259
 msgid "Apply the style of the copied object to selection"
 msgstr "Применить стиль скопированного объекта к выделению"
 
-#: ../src/verbs.cpp:2258
+#: ../src/verbs.cpp:2261
 msgid "Scale selection to match the size of the copied object"
 msgstr "Отмасштабировать выделение до размеров скопированного объекта"
 
-#: ../src/verbs.cpp:2259
+#: ../src/verbs.cpp:2262
 msgid "Paste _Width"
 msgstr "Вставить _ширину"
 
-#: ../src/verbs.cpp:2260
+#: ../src/verbs.cpp:2263
 msgid "Scale selection horizontally to match the width of the copied object"
 msgstr "Отмасштабировать выделение по горизонтали до высоты скопированного объекта"
 
-#: ../src/verbs.cpp:2261
+#: ../src/verbs.cpp:2264
 msgid "Paste _Height"
 msgstr "Вставить _высоту"
 
-#: ../src/verbs.cpp:2262
+#: ../src/verbs.cpp:2265
 msgid "Scale selection vertically to match the height of the copied object"
 msgstr "Отмасштабировать выделение по вертикали до высоты скопированного объекта"
 
-#: ../src/verbs.cpp:2263
+#: ../src/verbs.cpp:2266
 msgid "Paste Size Separately"
 msgstr "Вставить размер раздельно"
 
-#: ../src/verbs.cpp:2264
+#: ../src/verbs.cpp:2267
 msgid "Scale each selected object to match the size of the copied object"
 msgstr "Отмасштабировать каждый выбранный объект до совпадения с размерами скопированного объекта"
 
-#: ../src/verbs.cpp:2265
+#: ../src/verbs.cpp:2268
 msgid "Paste Width Separately"
 msgstr "Вставить ширину раздельно"
 
-#: ../src/verbs.cpp:2266
+#: ../src/verbs.cpp:2269
 msgid "Scale each selected object horizontally to match the width of the copied object"
 msgstr "Отмасштабировать каждый выбранный объект по горизонтали до ширины скопированного объекта"
 
-#: ../src/verbs.cpp:2267
+#: ../src/verbs.cpp:2270
 msgid "Paste Height Separately"
 msgstr "Вставить высоту раздельно"
 
-#: ../src/verbs.cpp:2268
+#: ../src/verbs.cpp:2271
 msgid "Scale each selected object vertically to match the height of the copied object"
 msgstr "Отмасштабировать каждый выбранный объект по вертикали до высоты скопированного объекта"
 
-#: ../src/verbs.cpp:2269
+#: ../src/verbs.cpp:2272
 msgid "Paste _In Place"
 msgstr "Вставить на _место"
 
-#: ../src/verbs.cpp:2270
+#: ../src/verbs.cpp:2273
 msgid "Paste objects from clipboard to the original location"
 msgstr "Вставить объекты из буфера обмена в их исходное местоположение"
 
-#: ../src/verbs.cpp:2271
+#: ../src/verbs.cpp:2274
 msgid "Paste Path _Effect"
 msgstr "_Вставить контурный эффект"
 
-#: ../src/verbs.cpp:2272
+#: ../src/verbs.cpp:2275
 msgid "Apply the path effect of the copied object to selection"
 msgstr "Применить контурный эффект скопированного объекта к выделению"
 
-#: ../src/verbs.cpp:2273
+#: ../src/verbs.cpp:2276
 msgid "Remove Path _Effect"
 msgstr "_Удалить контурный эффект"
 
-#: ../src/verbs.cpp:2274
+#: ../src/verbs.cpp:2277
 msgid "Remove any path effects from selected objects"
 msgstr "Убрать все контурные эффекты из выделения"
 
-#: ../src/verbs.cpp:2275
+#: ../src/verbs.cpp:2278
 msgid "Remove Filter"
 msgstr "Снять фильтр"
 
-#: ../src/verbs.cpp:2276
+#: ../src/verbs.cpp:2279
 msgid "Remove any filters from selected objects"
 msgstr "Снять все фильтры с выделения"
 
-#: ../src/verbs.cpp:2277
+#: ../src/verbs.cpp:2280
 msgid "_Delete"
 msgstr "У_далить"
 
-#: ../src/verbs.cpp:2278
+#: ../src/verbs.cpp:2281
 msgid "Delete selection"
 msgstr "Удалить выделение"
 
-#: ../src/verbs.cpp:2279
+#: ../src/verbs.cpp:2282
 msgid "Duplic_ate"
 msgstr "Проду_блировать"
 
-#: ../src/verbs.cpp:2280
+#: ../src/verbs.cpp:2283
 msgid "Duplicate selected objects"
 msgstr "Продублировать выделенные объекты"
 
-#: ../src/verbs.cpp:2281
+#: ../src/verbs.cpp:2284
 msgid "Create Clo_ne"
 msgstr "Создать _клон"
 
-#: ../src/verbs.cpp:2282
+#: ../src/verbs.cpp:2285
 msgid "Create a clone (a copy linked to the original) of selected object"
 msgstr "Создать клон выделенного объекта (копию, связанную с оригиналом)"
 
-#: ../src/verbs.cpp:2283
+#: ../src/verbs.cpp:2286
 msgid "Unlin_k Clone"
 msgstr "О_тсоединить клон"
 
-#: ../src/verbs.cpp:2284
+#: ../src/verbs.cpp:2287
 #, fuzzy
 msgid "Cut the selected clones' links to the originals, turning them into standalone objects"
 msgstr "Убрать ссылку клона на его оригинал, превратив клон в самостоятельный объект"
 
-#: ../src/verbs.cpp:2285
+#: ../src/verbs.cpp:2288
 msgid "Relink to Copied"
 msgstr ""
 
-#: ../src/verbs.cpp:2286
+#: ../src/verbs.cpp:2289
 msgid "Relink the selected clones to the object currently on the clipboard"
 msgstr ""
 
-#: ../src/verbs.cpp:2287
+#: ../src/verbs.cpp:2290
 msgid "Select _Original"
 msgstr "Выделить _оригинал"
 
-#: ../src/verbs.cpp:2288
+#: ../src/verbs.cpp:2291
 msgid "Select the object to which the selected clone is linked"
 msgstr "Выделить объект, с которым связан клон"
 
 #. TRANSLATORS: Convert selection to a line marker
-#: ../src/verbs.cpp:2290
+#: ../src/verbs.cpp:2293
 msgid "Objects to _Marker"
 msgstr "Объекты в м_аркер"
 
-#: ../src/verbs.cpp:2291
+#: ../src/verbs.cpp:2294
 msgid "Convert selection to a line marker"
 msgstr "Превратить выделение в маркер линий"
 
 #. TRANSLATORS: Convert selection to a collection of guidelines
-#: ../src/verbs.cpp:2293
+#: ../src/verbs.cpp:2296
 msgid "Objects to Gu_ides"
 msgstr "Объ_екты в направляющие"
 
-#: ../src/verbs.cpp:2294
+#: ../src/verbs.cpp:2297
 msgid "Convert selected objects to a collection of guidelines aligned with their edges"
 msgstr "Превратить выбранные объекты в набор направляющих по краям объектов"
 
 #. TRANSLATORS: Convert selection to a rectangle with tiled pattern fill
-#: ../src/verbs.cpp:2296
+#: ../src/verbs.cpp:2299
 msgid "Objects to Patter_n"
 msgstr "_Объект(ы) в текстуру"
 
-#: ../src/verbs.cpp:2297
+#: ../src/verbs.cpp:2300
 msgid "Convert selection to a rectangle with tiled pattern fill"
 msgstr "Преобразовать выделение в прямоугольник, заполненный текстурой"
 
 #. TRANSLATORS: Extract objects from a tiled pattern fill
-#: ../src/verbs.cpp:2299
+#: ../src/verbs.cpp:2302
 msgid "Pattern to _Objects"
 msgstr "_Текстуру в объект(ы)"
 
-#: ../src/verbs.cpp:2300
+#: ../src/verbs.cpp:2303
 msgid "Extract objects from a tiled pattern fill"
 msgstr "Извлечь объекты из текстурной заливки"
 
-#: ../src/verbs.cpp:2301
+#: ../src/verbs.cpp:2304
 msgid "Clea_r All"
 msgstr "О_чистить все"
 
-#: ../src/verbs.cpp:2302
+#: ../src/verbs.cpp:2305
 msgid "Delete all objects from document"
 msgstr "Удалить все объекты из документа"
 
-#: ../src/verbs.cpp:2303
+#: ../src/verbs.cpp:2306
 msgid "Select Al_l"
 msgstr "Выделить _все"
 
-#: ../src/verbs.cpp:2304
+#: ../src/verbs.cpp:2307
 msgid "Select all objects or all nodes"
 msgstr "Выделить все объекты или все узлы"
 
-#: ../src/verbs.cpp:2305
+#: ../src/verbs.cpp:2308
 msgid "Select All in All La_yers"
 msgstr "Выделить все во всех сло_ях"
 
-#: ../src/verbs.cpp:2306
+#: ../src/verbs.cpp:2309
 msgid "Select all objects in all visible and unlocked layers"
 msgstr "Выделить все объекты во всех видимых и незапертых слоях"
 
-#: ../src/verbs.cpp:2307
+#: ../src/verbs.cpp:2310
 msgid "In_vert Selection"
 msgstr "Инвертировать выделение"
 
-#: ../src/verbs.cpp:2308
+#: ../src/verbs.cpp:2311
 msgid "Invert selection (unselect what is selected and select everything else)"
 msgstr "Инвертировать выделение (выделить все кроме выделенного в настоящий момент)"
 
-#: ../src/verbs.cpp:2309
+#: ../src/verbs.cpp:2312
 msgid "Invert in All Layers"
 msgstr "Инвертировать во всех слоях"
 
-#: ../src/verbs.cpp:2310
+#: ../src/verbs.cpp:2313
 msgid "Invert selection in all visible and unlocked layers"
 msgstr "Инвертировать выделение во всех видимых и незапертых слоях"
 
-#: ../src/verbs.cpp:2311
+#: ../src/verbs.cpp:2314
 msgid "Select Next"
 msgstr "Выбрать следующий"
 
-#: ../src/verbs.cpp:2312
+#: ../src/verbs.cpp:2315
 msgid "Select next object or node"
 msgstr "Выбрать следующий объект или узел"
 
-#: ../src/verbs.cpp:2313
+#: ../src/verbs.cpp:2316
 msgid "Select Previous"
 msgstr "Выбрать предыдущий"
 
-#: ../src/verbs.cpp:2314
+#: ../src/verbs.cpp:2317
 msgid "Select previous object or node"
 msgstr "Выбрать предыдущий объект или узел"
 
-#: ../src/verbs.cpp:2315
+#: ../src/verbs.cpp:2318
 msgid "D_eselect"
 msgstr "Сн_ять выделение"
 
-#: ../src/verbs.cpp:2316
+#: ../src/verbs.cpp:2319
 msgid "Deselect any selected objects or nodes"
 msgstr "Снять выделение со всех объектов или узлов"
 
-#: ../src/verbs.cpp:2317
+#: ../src/verbs.cpp:2320
 msgid "_Guides around page"
 msgstr "На_правляющие вокруг страницы"
 
-#: ../src/verbs.cpp:2318
+#: ../src/verbs.cpp:2321
 msgid "Create four guides aligned with the page borders"
 msgstr "Создать четыре направляющие по краям страницы"
 
-#: ../src/verbs.cpp:2319
+#: ../src/verbs.cpp:2322
 msgid "Next Path Effect Parameter"
 msgstr "Следующий эффект динамического контура"
 
-#: ../src/verbs.cpp:2320
+#: ../src/verbs.cpp:2323
 msgid "Show next Path Effect parameter for editing"
 msgstr "Показать следующий редактируемый параметр динамического эффекта"
 
 #. Selection
-#: ../src/verbs.cpp:2323
+#: ../src/verbs.cpp:2326
 msgid "Raise to _Top"
 msgstr "Поднять на _передний план"
 
-#: ../src/verbs.cpp:2324
+#: ../src/verbs.cpp:2327
 msgid "Raise selection to top"
 msgstr "Поднять выделение на передний план"
 
-#: ../src/verbs.cpp:2325
+#: ../src/verbs.cpp:2328
 msgid "Lower to _Bottom"
 msgstr "Опустить на _задний план"
 
-#: ../src/verbs.cpp:2326
+#: ../src/verbs.cpp:2329
 msgid "Lower selection to bottom"
 msgstr "Опустить выделение на задний план"
 
-#: ../src/verbs.cpp:2327
+#: ../src/verbs.cpp:2330
 msgid "_Raise"
 msgstr "П_однять"
 
-#: ../src/verbs.cpp:2328
+#: ../src/verbs.cpp:2331
 msgid "Raise selection one step"
 msgstr "Поднять выделение на один уровень"
 
-#: ../src/verbs.cpp:2329
+#: ../src/verbs.cpp:2332
 msgid "_Lower"
 msgstr "Опу_стить"
 
-#: ../src/verbs.cpp:2330
+#: ../src/verbs.cpp:2333
 msgid "Lower selection one step"
 msgstr "Опустить выделение на один уровень"
 
-#: ../src/verbs.cpp:2331
+#: ../src/verbs.cpp:2334
 msgid "_Group"
 msgstr "С_группировать"
 
-#: ../src/verbs.cpp:2332
+#: ../src/verbs.cpp:2335
 msgid "Group selected objects"
 msgstr "Сгруппировать выделенные объекты"
 
-#: ../src/verbs.cpp:2334
+#: ../src/verbs.cpp:2337
 msgid "Ungroup selected groups"
 msgstr "Разгруппировать выделенные группы"
 
-#: ../src/verbs.cpp:2336
+#: ../src/verbs.cpp:2339
 msgid "_Put on Path"
 msgstr "_Разместить по контуру"
 
-#: ../src/verbs.cpp:2338
+#: ../src/verbs.cpp:2341
 msgid "_Remove from Path"
 msgstr "_Снять с контура"
 
-#: ../src/verbs.cpp:2340
+#: ../src/verbs.cpp:2343
 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:2343
+#: ../src/verbs.cpp:2346
 msgid "Remove all manual kerns and glyph rotations from a text object"
 msgstr "Удалить из текста все вертикальные и горизонтальные керны и вращения"
 
-#: ../src/verbs.cpp:2345
+#: ../src/verbs.cpp:2348
 msgid "_Union"
 msgstr "С_умма"
 
-#: ../src/verbs.cpp:2346
+#: ../src/verbs.cpp:2349
 msgid "Create union of selected paths"
 msgstr "Создать один контур из всех выбранных"
 
-#: ../src/verbs.cpp:2347
+#: ../src/verbs.cpp:2350
 msgid "_Intersection"
 msgstr "_Пересечение"
 
-#: ../src/verbs.cpp:2348
+#: ../src/verbs.cpp:2351
 msgid "Create intersection of selected paths"
 msgstr "Создать пересечение выделенных контуров"
 
-#: ../src/verbs.cpp:2349
+#: ../src/verbs.cpp:2352
 msgid "_Difference"
 msgstr "_Разность"
 
-#: ../src/verbs.cpp:2350
+#: ../src/verbs.cpp:2353
 msgid "Create difference of selected paths (bottom minus top)"
 msgstr "Создать разность выделенных контуров (низ минус верх)"
 
-#: ../src/verbs.cpp:2351
+#: ../src/verbs.cpp:2354
 msgid "E_xclusion"
 msgstr "_Исключающее ИЛИ"
 
-#: ../src/verbs.cpp:2352
+#: ../src/verbs.cpp:2355
 msgid "Create exclusive OR of selected paths (those parts that belong to only one path)"
 msgstr "Создать Исключающее ИЛИ из выбранных контуров (части, принадлежащие только одному контуру)"
 
-#: ../src/verbs.cpp:2353
+#: ../src/verbs.cpp:2356
 msgid "Di_vision"
 msgstr "Р_азделить"
 
-#: ../src/verbs.cpp:2354
+#: ../src/verbs.cpp:2357
 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:2357
+#: ../src/verbs.cpp:2360
 msgid "Cut _Path"
 msgstr "Разр_езать контур"
 
-#: ../src/verbs.cpp:2358
+#: ../src/verbs.cpp:2361
 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:2362
+#: ../src/verbs.cpp:2365
 msgid "Outs_et"
 msgstr "Вы_тянуть"
 
-#: ../src/verbs.cpp:2363
+#: ../src/verbs.cpp:2366
 msgid "Outset selected paths"
 msgstr "Вытянуть выделенный контур"
 
-#: ../src/verbs.cpp:2365
+#: ../src/verbs.cpp:2368
 msgid "O_utset Path by 1 px"
 msgstr "_Вытянуть контур на 1 px"
 
-#: ../src/verbs.cpp:2366
+#: ../src/verbs.cpp:2369
 msgid "Outset selected paths by 1 px"
 msgstr "Вытянуть выделенный контур на 1 px"
 
-#: ../src/verbs.cpp:2368
+#: ../src/verbs.cpp:2371
 msgid "O_utset Path by 10 px"
 msgstr "_Вытянуть контур на 10 px"
 
-#: ../src/verbs.cpp:2369
+#: ../src/verbs.cpp:2372
 msgid "Outset selected paths by 10 px"
 msgstr "Вытянуть выделенный контур на 10 px"
 
 #. TRANSLATORS: "inset": contract a shape by offsetting the object's path,
 #. i.e. by displacing it perpendicular to the path in each point.
 #. See also the Advanced Tutorial for explanation.
-#: ../src/verbs.cpp:2373
+#: ../src/verbs.cpp:2376
 msgid "I_nset"
 msgstr "Втян_уть"
 
-#: ../src/verbs.cpp:2374
+#: ../src/verbs.cpp:2377
 msgid "Inset selected paths"
 msgstr "Втянуть выделенный контур"
 
-#: ../src/verbs.cpp:2376
+#: ../src/verbs.cpp:2379
 msgid "I_nset Path by 1 px"
 msgstr "Втян_уть контур на 1 px"
 
-#: ../src/verbs.cpp:2377
+#: ../src/verbs.cpp:2380
 msgid "Inset selected paths by 1 px"
 msgstr "Втянуть выделенный контур на 1 px"
 
-#: ../src/verbs.cpp:2379
+#: ../src/verbs.cpp:2382
 msgid "I_nset Path by 10 px"
 msgstr "Втян_уть контур на 10 px"
 
-#: ../src/verbs.cpp:2380
+#: ../src/verbs.cpp:2383
 msgid "Inset selected paths by 10 px"
 msgstr "Втянуть выделенный контур на 10 px"
 
-#: ../src/verbs.cpp:2382
+#: ../src/verbs.cpp:2385
 msgid "D_ynamic Offset"
 msgstr "_Динамическая втяжка"
 
-#: ../src/verbs.cpp:2382
+#: ../src/verbs.cpp:2385
 msgid "Create a dynamic offset object"
 msgstr "Создать объект, втяжку/растяжку которого можно менять динамически"
 
-#: ../src/verbs.cpp:2384
+#: ../src/verbs.cpp:2387
 msgid "_Linked Offset"
 msgstr "С_вязанная втяжка"
 
-#: ../src/verbs.cpp:2385
+#: ../src/verbs.cpp:2388
 msgid "Create a dynamic offset object linked to the original path"
 msgstr "Создать втяжку/растяжку, динамически связанную с исходным контуром"
 
-#: ../src/verbs.cpp:2387
+#: ../src/verbs.cpp:2390
 msgid "_Stroke to Path"
 msgstr "Оконтурить _обводку"
 
-#: ../src/verbs.cpp:2388
+#: ../src/verbs.cpp:2391
 msgid "Convert selected object's stroke to paths"
 msgstr "Преобразовать обводки выбранных объектов в контуры"
 
-#: ../src/verbs.cpp:2389
+#: ../src/verbs.cpp:2392
 msgid "Si_mplify"
 msgstr "_Упростить"
 
-#: ../src/verbs.cpp:2390
+#: ../src/verbs.cpp:2393
 msgid "Simplify selected paths (remove extra nodes)"
 msgstr "Упростить выделенные контуры удалением лишних узлов"
 
-#: ../src/verbs.cpp:2391
+#: ../src/verbs.cpp:2394
 msgid "_Reverse"
 msgstr "_Развернуть"
 
-#: ../src/verbs.cpp:2392
+#: ../src/verbs.cpp:2395
 msgid "Reverse the direction of selected paths (useful for flipping markers)"
 msgstr "Развернуть направление выделенных контуров; полезно для отражения маркеров"
 
 #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
-#: ../src/verbs.cpp:2394
+#: ../src/verbs.cpp:2397
 msgid "_Trace Bitmap..."
 msgstr "_Векторизовать растр..."
 
-#: ../src/verbs.cpp:2395
+#: ../src/verbs.cpp:2398
 msgid "Create one or more paths from a bitmap by tracing it"
 msgstr "Создать один или более контуров из растра, векторизовав его"
 
-#: ../src/verbs.cpp:2396
+#: ../src/verbs.cpp:2399
 msgid "_Make a Bitmap Copy"
 msgstr "_Сделать растровую копию"
 
-#: ../src/verbs.cpp:2397
+#: ../src/verbs.cpp:2400
 msgid "Export selection to a bitmap and insert it into document"
 msgstr "Экспортировать выделение в растр и вставить его в документ"
 
-#: ../src/verbs.cpp:2398
+#: ../src/verbs.cpp:2401
 msgid "_Combine"
 msgstr "_Объединить"
 
-#: ../src/verbs.cpp:2399
+#: ../src/verbs.cpp:2402
 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:2402
+#: ../src/verbs.cpp:2405
 msgid "Break _Apart"
 msgstr "_Разбить"
 
-#: ../src/verbs.cpp:2403
+#: ../src/verbs.cpp:2406
 msgid "Break selected paths into subpaths"
 msgstr "Разбить выделенные контуры на части"
 
-#: ../src/verbs.cpp:2404
+#: ../src/verbs.cpp:2407
 msgid "Rows and Columns..."
 msgstr "Расставить по сетке..."
 
-#: ../src/verbs.cpp:2405
+#: ../src/verbs.cpp:2408
 msgid "Arrange selected objects in a table"
 msgstr "Расставить выделенные объекты по сетке"
 
 #. Layer
-#: ../src/verbs.cpp:2407
+#: ../src/verbs.cpp:2410
 msgid "_Add Layer..."
 msgstr "_Новый слой..."
 
-#: ../src/verbs.cpp:2408
+#: ../src/verbs.cpp:2411
 msgid "Create a new layer"
 msgstr "Создать новый слой"
 
-#: ../src/verbs.cpp:2409
+#: ../src/verbs.cpp:2412
 msgid "Re_name Layer..."
 msgstr "_Переименовать слой..."
 
-#: ../src/verbs.cpp:2410
+#: ../src/verbs.cpp:2413
 msgid "Rename the current layer"
 msgstr "Переименовать текущий слой"
 
-#: ../src/verbs.cpp:2411
+#: ../src/verbs.cpp:2414
 msgid "Switch to Layer Abov_e"
 msgstr "Перейти на слой _выше"
 
-#: ../src/verbs.cpp:2412
+#: ../src/verbs.cpp:2415
 msgid "Switch to the layer above the current"
 msgstr "Перейти на слой, находящийся выше текущего"
 
-#: ../src/verbs.cpp:2413
+#: ../src/verbs.cpp:2416
 msgid "Switch to Layer Belo_w"
 msgstr "Перейти на слой _ниже"
 
-#: ../src/verbs.cpp:2414
+#: ../src/verbs.cpp:2417
 msgid "Switch to the layer below the current"
 msgstr "Перейти на слой, находящийся под текущим"
 
-#: ../src/verbs.cpp:2415
+#: ../src/verbs.cpp:2418
 msgid "Move Selection to Layer Abo_ve"
 msgstr "Перенести выделение в слой _выше"
 
-#: ../src/verbs.cpp:2416
+#: ../src/verbs.cpp:2419
 msgid "Move selection to the layer above the current"
 msgstr "Перенести выделение в слой над текущим слоем"
 
-#: ../src/verbs.cpp:2417
+#: ../src/verbs.cpp:2420
 msgid "Move Selection to Layer Bel_ow"
 msgstr "Перенести выделение в слой _ниже"
 
-#: ../src/verbs.cpp:2418
+#: ../src/verbs.cpp:2421
 msgid "Move selection to the layer below the current"
 msgstr "Перенести выделение в слой ниже текущего слоя"
 
-#: ../src/verbs.cpp:2419
+#: ../src/verbs.cpp:2422
 msgid "Layer to _Top"
 msgstr "Поднять до _верха"
 
-#: ../src/verbs.cpp:2420
+#: ../src/verbs.cpp:2423
 msgid "Raise the current layer to the top"
 msgstr "Поднять текущий слой на самый верх"
 
-#: ../src/verbs.cpp:2421
+#: ../src/verbs.cpp:2424
 msgid "Layer to _Bottom"
 msgstr "Опустить до _низа"
 
-#: ../src/verbs.cpp:2422
+#: ../src/verbs.cpp:2425
 msgid "Lower the current layer to the bottom"
 msgstr "Опустить текущий слой на самый низ"
 
-#: ../src/verbs.cpp:2423
+#: ../src/verbs.cpp:2426
 msgid "_Raise Layer"
 msgstr "П_однять слой"
 
-#: ../src/verbs.cpp:2424
+#: ../src/verbs.cpp:2427
 msgid "Raise the current layer"
 msgstr "Поднять текущий слой"
 
-#: ../src/verbs.cpp:2425
+#: ../src/verbs.cpp:2428
 msgid "_Lower Layer"
 msgstr "Опу_стить слой"
 
-#: ../src/verbs.cpp:2426
+#: ../src/verbs.cpp:2429
 msgid "Lower the current layer"
 msgstr "Опустить текущий слой"
 
-#: ../src/verbs.cpp:2427
+#: ../src/verbs.cpp:2430
 msgid "Duplicate Current Layer..."
 msgstr "Продублировать активный слой..."
 
-#: ../src/verbs.cpp:2428
+#: ../src/verbs.cpp:2431
 msgid "Duplicate an existing layer"
 msgstr "Дубликация активного слоя"
 
-#: ../src/verbs.cpp:2429
+#: ../src/verbs.cpp:2432
 msgid "_Delete Current Layer"
 msgstr "_Удалить текущий слой"
 
-#: ../src/verbs.cpp:2430
+#: ../src/verbs.cpp:2433
 msgid "Delete the current layer"
 msgstr "Удалить текущий слой"
 
-#: ../src/verbs.cpp:2431
+#: ../src/verbs.cpp:2434
 msgid "_Show/hide other layers"
 msgstr "_Показать/скрыть остальные слои"
 
-#: ../src/verbs.cpp:2432
+#: ../src/verbs.cpp:2435
 msgid "Solo the current layer"
 msgstr "Отображение только активного слоя"
 
 #. Object
-#: ../src/verbs.cpp:2435
+#: ../src/verbs.cpp:2438
 msgid "Rotate _90&#176; 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:2438
+#: ../src/verbs.cpp:2441
 msgid "Rotate selection 90° clockwise"
 msgstr "Повернуть выделение на 90° по часовой стрелке"
 
-#: ../src/verbs.cpp:2439
+#: ../src/verbs.cpp:2442
 msgid "Rotate 9_0&#176; 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:2442
+#: ../src/verbs.cpp:2445
 msgid "Rotate selection 90° counter-clockwise"
 msgstr "Повернуть выделение на 90° против часовой стрелки"
 
-#: ../src/verbs.cpp:2443
+#: ../src/verbs.cpp:2446
 msgid "Remove _Transformations"
 msgstr "Убрать _трансформацию"
 
-#: ../src/verbs.cpp:2444
+#: ../src/verbs.cpp:2447
 msgid "Remove transformations from object"
 msgstr "Убрать преобразования объекта"
 
-#: ../src/verbs.cpp:2445
+#: ../src/verbs.cpp:2448
 msgid "_Object to Path"
 msgstr "_Оконтурить объект"
 
-#: ../src/verbs.cpp:2446
+#: ../src/verbs.cpp:2449
 msgid "Convert selected object to path"
 msgstr "Преобразовать выбранный объект в контур"
 
-#: ../src/verbs.cpp:2447
+#: ../src/verbs.cpp:2450
 msgid "_Flow into Frame"
 msgstr "_Заверстать в блок"
 
-#: ../src/verbs.cpp:2448
+#: ../src/verbs.cpp:2451
 msgid "Put text into a frame (path or shape), creating a flowed text linked to the frame object"
 msgstr "Заверстать текст в блок (контур или фигуру), создав перетекающий текст, связанный с объектом блока"
 
-#: ../src/verbs.cpp:2449
+#: ../src/verbs.cpp:2452
 msgid "_Unflow"
 msgstr "_Вынуть из блока"
 
-#: ../src/verbs.cpp:2450
+#: ../src/verbs.cpp:2453
 msgid "Remove text from frame (creates a single-line text object)"
 msgstr "Вынуть текст из блока, создав обычный текстовый объект в одну строку"
 
-#: ../src/verbs.cpp:2451
+#: ../src/verbs.cpp:2454
 msgid "_Convert to Text"
 msgstr "_Преобразовать в текст"
 
-#: ../src/verbs.cpp:2452
+#: ../src/verbs.cpp:2455
 msgid "Convert flowed text to regular text object (preserves appearance)"
 msgstr "Преобразовать текст, заверстанный в рамку, в обычный текст, сохранив форматирование"
 
-#: ../src/verbs.cpp:2454
+#: ../src/verbs.cpp:2457
 msgid "Flip _Horizontal"
 msgstr "Отразить _горизонтально"
 
-#: ../src/verbs.cpp:2454
+#: ../src/verbs.cpp:2457
 msgid "Flip selected objects horizontally"
 msgstr "Горизонтально отразить выбранные объекты"
 
-#: ../src/verbs.cpp:2457
+#: ../src/verbs.cpp:2460
 msgid "Flip _Vertical"
 msgstr "Отразить _вертикально"
 
-#: ../src/verbs.cpp:2457
+#: ../src/verbs.cpp:2460
 msgid "Flip selected objects vertically"
 msgstr "Вертикально отразить выбранные объекты"
 
-#: ../src/verbs.cpp:2460
+#: ../src/verbs.cpp:2463
 msgid "Apply mask to selection (using the topmost object as mask)"
 msgstr "Применить самый верхний объект выделения к нему как маску"
 
-#: ../src/verbs.cpp:2462
+#: ../src/verbs.cpp:2465
 msgid "Edit mask"
 msgstr "Изменить маску"
 
-#: ../src/verbs.cpp:2463
-#: ../src/verbs.cpp:2469
+#: ../src/verbs.cpp:2466
+#: ../src/verbs.cpp:2472
 msgid "_Release"
 msgstr "_Снять"
 
-#: ../src/verbs.cpp:2464
+#: ../src/verbs.cpp:2467
 msgid "Remove mask from selection"
 msgstr "Убрать маску из выделения"
 
-#: ../src/verbs.cpp:2466
+#: ../src/verbs.cpp:2469
 msgid "Apply clipping path to selection (using the topmost object as clipping path)"
 msgstr "Применить самый верхний объект выделения к нему как обтравочный контур"
 
-#: ../src/verbs.cpp:2468
-#: ../src/widgets/toolbox.cpp:1412
+#: ../src/verbs.cpp:2471
+#: ../src/widgets/toolbox.cpp:1411
 msgid "Edit clipping path"
 msgstr "Изменить обтравочный контур"
 
-#: ../src/verbs.cpp:2470
+#: ../src/verbs.cpp:2473
 msgid "Remove clipping path from selection"
 msgstr "Убрать обтравочный контур из выделения"
 
 #. Tools
-#: ../src/verbs.cpp:2473
+#: ../src/verbs.cpp:2476
 msgid "Select"
 msgstr "Селектор"
 
-#: ../src/verbs.cpp:2474
+#: ../src/verbs.cpp:2477
 msgid "Select and transform objects"
 msgstr "Выделять и трансформировать объекты"
 
-#: ../src/verbs.cpp:2475
+#: ../src/verbs.cpp:2478
 msgid "Node Edit"
 msgstr "Инструмент узлов"
 
-#: ../src/verbs.cpp:2476
+#: ../src/verbs.cpp:2479
 msgid "Edit paths by nodes"
 msgstr "Редактировать узлы контура или рычаги узлов"
 
-#: ../src/verbs.cpp:2478
+#: ../src/verbs.cpp:2481
 msgid "Tweak objects by sculpting or painting"
 msgstr "Корректировать объекты лепкой или раскрашиванием"
 
-#: ../src/verbs.cpp:2480
+#: ../src/verbs.cpp:2483
 msgid "Create rectangles and squares"
 msgstr "Рисовать прямоугольники и квадраты"
 
-#: ../src/verbs.cpp:2482
+#: ../src/verbs.cpp:2485
 msgid "Create 3D boxes"
 msgstr "Рисовать паралеллепипеды в 3D"
 
-#: ../src/verbs.cpp:2484
+#: ../src/verbs.cpp:2487
 msgid "Create circles, ellipses, and arcs"
 msgstr "Рисовать круги, эллипсы и дуги"
 
-#: ../src/verbs.cpp:2486
+#: ../src/verbs.cpp:2489
 msgid "Create stars and polygons"
 msgstr "Рисовать звезды и многоугольники"
 
-#: ../src/verbs.cpp:2488
+#: ../src/verbs.cpp:2491
 msgid "Create spirals"
 msgstr "Рисовать спирали"
 
-#: ../src/verbs.cpp:2490
+#: ../src/verbs.cpp:2493
 msgid "Draw freehand lines"
 msgstr "Рисовать произвольные контуры"
 
-#: ../src/verbs.cpp:2492
+#: ../src/verbs.cpp:2495
 msgid "Draw Bezier curves and straight lines"
 msgstr "Рисовать кривые Безье и прямые линии"
 
-#: ../src/verbs.cpp:2494
+#: ../src/verbs.cpp:2497
 msgid "Draw calligraphic or brush strokes"
 msgstr "Рисовать каллиграфическим пером"
 
-#: ../src/verbs.cpp:2496
+#: ../src/verbs.cpp:2499
 msgid "Create and edit text objects"
 msgstr "Создавать и править текстовые объекты"
 
-#: ../src/verbs.cpp:2498
+#: ../src/verbs.cpp:2501
 msgid "Create and edit gradients"
 msgstr "Создавать и править градиенты"
 
-#: ../src/verbs.cpp:2500
+#: ../src/verbs.cpp:2503
 msgid "Zoom in or out"
 msgstr "Увеличивать или уменьшать отображение документа"
 
-#: ../src/verbs.cpp:2502
+#: ../src/verbs.cpp:2505
 msgid "Pick colors from image"
 msgstr "Брать усредненные цвета из изображений"
 
-#: ../src/verbs.cpp:2504
+#: ../src/verbs.cpp:2507
 msgid "Create diagram connectors"
 msgstr "Создавать соединительные линии в диаграммах"
 
-#: ../src/verbs.cpp:2506
+#: ../src/verbs.cpp:2509
 msgid "Fill bounded areas"
 msgstr "Заливать замкнутые области"
 
-#: ../src/verbs.cpp:2507
+#: ../src/verbs.cpp:2510
 msgid "LPE Edit"
 msgstr "Геометрические конструкции"
 
-#: ../src/verbs.cpp:2508
+#: ../src/verbs.cpp:2511
 msgid "Edit Live Path Effect parameters"
 msgstr "Менять параметры динамического контурного эффекта"
 
-#: ../src/verbs.cpp:2510
+#: ../src/verbs.cpp:2513
 msgid "Erase existing paths"
 msgstr "Удалять существующие объекты"
 
-#: ../src/verbs.cpp:2512
+#: ../src/verbs.cpp:2515
 msgid "Do geometric constructions"
 msgstr "Создавать геометрические построения"
 
 #. Tool prefs
-#: ../src/verbs.cpp:2514
+#: ../src/verbs.cpp:2517
 msgid "Selector Preferences"
 msgstr "Параметры селектора"
 
-#: ../src/verbs.cpp:2515
+#: ../src/verbs.cpp:2518
 msgid "Open Preferences for the Selector tool"
 msgstr "Открыть окно параметров селектора"
 
-#: ../src/verbs.cpp:2516
+#: ../src/verbs.cpp:2519
 msgid "Node Tool Preferences"
 msgstr "Параметры инструмента правки узлов"
 
-#: ../src/verbs.cpp:2517
+#: ../src/verbs.cpp:2520
 msgid "Open Preferences for the Node tool"
 msgstr "Открыть окно параметров инструмента для правки узлов"
 
-#: ../src/verbs.cpp:2518
+#: ../src/verbs.cpp:2521
 msgid "Tweak Tool Preferences"
 msgstr "Параметры инструмента коррекции"
 
-#: ../src/verbs.cpp:2519
+#: ../src/verbs.cpp:2522
 msgid "Open Preferences for the Tweak tool"
 msgstr "Открыть окно параметров корректора"
 
-#: ../src/verbs.cpp:2520
+#: ../src/verbs.cpp:2523
 msgid "Rectangle Preferences"
 msgstr "Параметры прямоугольника"
 
-#: ../src/verbs.cpp:2521
+#: ../src/verbs.cpp:2524
 msgid "Open Preferences for the Rectangle tool"
 msgstr "Открыть окно параметров инструмента для рисования прямоугольников"
 
-#: ../src/verbs.cpp:2522
+#: ../src/verbs.cpp:2525
 msgid "3D Box Preferences"
 msgstr "Параметры паралеллепипеда"
 
-#: ../src/verbs.cpp:2523
+#: ../src/verbs.cpp:2526
 msgid "Open Preferences for the 3D Box tool"
 msgstr "Открыть окно параметров инструмента для рисования параллелепипедов"
 
-#: ../src/verbs.cpp:2524
+#: ../src/verbs.cpp:2527
 msgid "Ellipse Preferences"
 msgstr "Параметры эллипса"
 
-#: ../src/verbs.cpp:2525
+#: ../src/verbs.cpp:2528
 msgid "Open Preferences for the Ellipse tool"
 msgstr "Открыть окно параметров инструмента для рисования эллипсов"
 
-#: ../src/verbs.cpp:2526
+#: ../src/verbs.cpp:2529
 msgid "Star Preferences"
 msgstr "Параметры звезды"
 
-#: ../src/verbs.cpp:2527
+#: ../src/verbs.cpp:2530
 msgid "Open Preferences for the Star tool"
 msgstr "Открыть окно параметров инструмента для рисования звёзд"
 
-#: ../src/verbs.cpp:2528
+#: ../src/verbs.cpp:2531
 msgid "Spiral Preferences"
 msgstr "Параметры спирали"
 
-#: ../src/verbs.cpp:2529
+#: ../src/verbs.cpp:2532
 msgid "Open Preferences for the Spiral tool"
 msgstr "Открыть окно параметров инструмента для рисования спиралей"
 
-#: ../src/verbs.cpp:2530
+#: ../src/verbs.cpp:2533
 msgid "Pencil Preferences"
 msgstr "Параметры карандаша"
 
-#: ../src/verbs.cpp:2531
+#: ../src/verbs.cpp:2534
 msgid "Open Preferences for the Pencil tool"
 msgstr "Открыть окно параметров карандаша"
 
-#: ../src/verbs.cpp:2532
+#: ../src/verbs.cpp:2535
 msgid "Pen Preferences"
 msgstr "Параметры пера"
 
-#: ../src/verbs.cpp:2533
+#: ../src/verbs.cpp:2536
 msgid "Open Preferences for the Pen tool"
 msgstr "Открыть окно параметров пера"
 
-#: ../src/verbs.cpp:2534
+#: ../src/verbs.cpp:2537
 msgid "Calligraphic Preferences"
 msgstr "Параметры каллиграфического пера"
 
-#: ../src/verbs.cpp:2535
+#: ../src/verbs.cpp:2538
 msgid "Open Preferences for the Calligraphy tool"
 msgstr "Открыть окно параметров каллиграфического пера"
 
-#: ../src/verbs.cpp:2536
+#: ../src/verbs.cpp:2539
 msgid "Text Preferences"
 msgstr "Параметры текста"
 
-#: ../src/verbs.cpp:2537
+#: ../src/verbs.cpp:2540
 msgid "Open Preferences for the Text tool"
 msgstr "Открыть окно параметров инструмента для набора текста"
 
-#: ../src/verbs.cpp:2538
+#: ../src/verbs.cpp:2541
 msgid "Gradient Preferences"
 msgstr "Параметры градиентной заливки"
 
-#: ../src/verbs.cpp:2539
+#: ../src/verbs.cpp:2542
 msgid "Open Preferences for the Gradient tool"
 msgstr "Открыть окно параметров инструмента для градиентной заливки"
 
-#: ../src/verbs.cpp:2540
+#: ../src/verbs.cpp:2543
 msgid "Zoom Preferences"
 msgstr "Параметры лупы"
 
-#: ../src/verbs.cpp:2541
+#: ../src/verbs.cpp:2544
 msgid "Open Preferences for the Zoom tool"
 msgstr "Открыть окно параметров лупы"
 
-#: ../src/verbs.cpp:2542
+#: ../src/verbs.cpp:2545
 msgid "Dropper Preferences"
 msgstr "Параметры пипетки"
 
-#: ../src/verbs.cpp:2543
+#: ../src/verbs.cpp:2546
 msgid "Open Preferences for the Dropper tool"
 msgstr "Открыть окно параметров пипетки"
 
-#: ../src/verbs.cpp:2544
+#: ../src/verbs.cpp:2547
 msgid "Connector Preferences"
 msgstr "Параметры соединительных линий"
 
-#: ../src/verbs.cpp:2545
+#: ../src/verbs.cpp:2548
 msgid "Open Preferences for the Connector tool"
 msgstr "Открыть окно параметров соединительных линий"
 
-#: ../src/verbs.cpp:2546
+#: ../src/verbs.cpp:2549
 msgid "Paint Bucket Preferences"
 msgstr "Параметры инструмента плоской заливки"
 
-#: ../src/verbs.cpp:2547
+#: ../src/verbs.cpp:2550
 msgid "Open Preferences for the Paint Bucket tool"
 msgstr "Открыть окно параметров инструмента для плоской заливки"
 
-#: ../src/verbs.cpp:2548
+#: ../src/verbs.cpp:2551
 msgid "Eraser Preferences"
 msgstr "Параметры ластика"
 
-#: ../src/verbs.cpp:2549
+#: ../src/verbs.cpp:2552
 msgid "Open Preferences for the Eraser tool"
 msgstr "Открыть окно параметров ластика"
 
-#: ../src/verbs.cpp:2550
+#: ../src/verbs.cpp:2553
 msgid "LPE Tool Preferences"
 msgstr "Параметры инструмента для создания геометрических конструкций"
 
-#: ../src/verbs.cpp:2551
+#: ../src/verbs.cpp:2554
 msgid "Open Preferences for the LPETool tool"
 msgstr "Открыть окно параметров Inkscape для инструмента геометрических конструкций"
 
 #. Zoom/View
-#: ../src/verbs.cpp:2554
+#: ../src/verbs.cpp:2557
 msgid "Zoom In"
 msgstr "Увеличить"
 
-#: ../src/verbs.cpp:2554
+#: ../src/verbs.cpp:2557
 msgid "Zoom in"
 msgstr "Увеличить"
 
-#: ../src/verbs.cpp:2555
+#: ../src/verbs.cpp:2558
 msgid "Zoom Out"
 msgstr "Уменьшить"
 
-#: ../src/verbs.cpp:2555
+#: ../src/verbs.cpp:2558
 msgid "Zoom out"
 msgstr "Уменьшить"
 
-#: ../src/verbs.cpp:2556
+#: ../src/verbs.cpp:2559
 msgid "_Rulers"
 msgstr "_Линейки"
 
-#: ../src/verbs.cpp:2556
+#: ../src/verbs.cpp:2559
 msgid "Show or hide the canvas rulers"
 msgstr "Показать/скрыть линейки холста"
 
-#: ../src/verbs.cpp:2557
+#: ../src/verbs.cpp:2560
 msgid "Scroll_bars"
 msgstr "Полосы _прокрутки"
 
-#: ../src/verbs.cpp:2557
+#: ../src/verbs.cpp:2560
 msgid "Show or hide the canvas scrollbars"
 msgstr "Показать или скрыть полосы прокрутки холста"
 
-#: ../src/verbs.cpp:2558
+#: ../src/verbs.cpp:2561
 msgid "_Grid"
 msgstr "_Сетка"
 
-#: ../src/verbs.cpp:2558
+#: ../src/verbs.cpp:2561
 msgid "Show or hide the grid"
 msgstr "Показать или скрыть сетку"
 
-#: ../src/verbs.cpp:2559
+#: ../src/verbs.cpp:2562
 msgid "G_uides"
 msgstr "_Направляющие"
 
-#: ../src/verbs.cpp:2559
+#: ../src/verbs.cpp:2562
 msgid "Show or hide guides (drag from a ruler to create a guide)"
 msgstr "Показать или скрыть направляющие (создаваемые перетаскиванием с линейки)"
 
-#: ../src/verbs.cpp:2561
+#: ../src/verbs.cpp:2564
 msgid "Nex_t Zoom"
 msgstr "С_ледующий масштаб"
 
-#: ../src/verbs.cpp:2561
+#: ../src/verbs.cpp:2564
 msgid "Next zoom (from the history of zooms)"
 msgstr "Следующий масштаб (из истории масштабирования)"
 
-#: ../src/verbs.cpp:2563
+#: ../src/verbs.cpp:2566
 msgid "Pre_vious Zoom"
 msgstr "_Предыдущий масштаб"
 
-#: ../src/verbs.cpp:2563
+#: ../src/verbs.cpp:2566
 msgid "Previous zoom (from the history of zooms)"
 msgstr "Предыдущий масштаб (из истории масштабирования)"
 
-#: ../src/verbs.cpp:2565
+#: ../src/verbs.cpp:2568
 msgid "Zoom 1:_1"
 msgstr "Масштаб 1:_1"
 
-#: ../src/verbs.cpp:2565
+#: ../src/verbs.cpp:2568
 msgid "Zoom to 1:1"
 msgstr "Масштаб 1:1"
 
-#: ../src/verbs.cpp:2567
+#: ../src/verbs.cpp:2570
 msgid "Zoom 1:_2"
 msgstr "Масштаб 1:_2"
 
-#: ../src/verbs.cpp:2567
+#: ../src/verbs.cpp:2570
 msgid "Zoom to 1:2"
 msgstr "Масштаб 1:2"
 
-#: ../src/verbs.cpp:2569
+#: ../src/verbs.cpp:2572
 msgid "_Zoom 2:1"
 msgstr "_Масштаб 2:1"
 
-#: ../src/verbs.cpp:2569
+#: ../src/verbs.cpp:2572
 msgid "Zoom to 2:1"
 msgstr "Масштаб 2:1"
 
-#: ../src/verbs.cpp:2572
+#: ../src/verbs.cpp:2575
 msgid "_Fullscreen"
 msgstr "Во весь _экран"
 
-#: ../src/verbs.cpp:2572
+#: ../src/verbs.cpp:2575
 msgid "Stretch this document window to full screen"
 msgstr "Развернуть окно документа на весь экран"
 
-#: ../src/verbs.cpp:2575
+#: ../src/verbs.cpp:2578
+msgid "Toggle _Focus Mode"
+msgstr ""
+
+#: ../src/verbs.cpp:2578
+msgid "Remove excess toolbars to focus on drawing"
+msgstr ""
+
+#: ../src/verbs.cpp:2580
 msgid "Duplic_ate Window"
 msgstr "Пов_торить окно"
 
-#: ../src/verbs.cpp:2575
+#: ../src/verbs.cpp:2580
 msgid "Open a new window with the same document"
 msgstr "Открыть новое окно с этим же документом"
 
-#: ../src/verbs.cpp:2577
+#: ../src/verbs.cpp:2582
 msgid "_New View Preview"
 msgstr "_Создать предварительный просмотр"
 
-#: ../src/verbs.cpp:2578
+#: ../src/verbs.cpp:2583
 msgid "New View Preview"
 msgstr "Создать новое окно предварительного просмотра"
 
 #. "view_new_preview"
-#: ../src/verbs.cpp:2580
+#: ../src/verbs.cpp:2585
 msgid "_Normal"
 msgstr "Об_ычное"
 
-#: ../src/verbs.cpp:2581
+#: ../src/verbs.cpp:2586
 msgid "Switch to normal display mode"
 msgstr "Переключиться на обычное отображение"
 
-#: ../src/verbs.cpp:2582
+#: ../src/verbs.cpp:2587
 msgid "No _Filters"
 msgstr "Б_ез фильтров"
 
-#: ../src/verbs.cpp:2583
+#: ../src/verbs.cpp:2588
 msgid "Switch to normal display without filters"
 msgstr "Переключиться на обычное отображение без фильтров"
 
-#: ../src/verbs.cpp:2584
+#: ../src/verbs.cpp:2589
 msgid "_Outline"
 msgstr "К_аркас"
 
-#: ../src/verbs.cpp:2585
+#: ../src/verbs.cpp:2590
 msgid "Switch to outline (wireframe) display mode"
 msgstr "Переключиться на отображение каркаса объектов"
 
-#: ../src/verbs.cpp:2586
+#: ../src/verbs.cpp:2591
 msgid "_Toggle"
 msgstr "_Переключиться"
 
-#: ../src/verbs.cpp:2587
+#: ../src/verbs.cpp:2592
 msgid "Toggle between normal and outline display modes"
 msgstr "Переключиться между нормальным и каркасным режимами отображения"
 
-#: ../src/verbs.cpp:2589
+#: ../src/verbs.cpp:2594
 msgid "Color-managed view"
 msgstr "Цветоуправляемое отображение"
 
-#: ../src/verbs.cpp:2590
+#: ../src/verbs.cpp:2595
 msgid "Toggle color-managed display for this document window"
 msgstr "Включить или выключить управление цветом для этого окна с документом"
 
-#: ../src/verbs.cpp:2592
+#: ../src/verbs.cpp:2597
 msgid "Ico_n Preview..."
 msgstr "Просмотреть как _значок"
 
-#: ../src/verbs.cpp:2593
+#: ../src/verbs.cpp:2598
 msgid "Open a window to preview objects at different icon resolutions"
 msgstr "Просмотреть выделение как значок разных размеров"
 
-#: ../src/verbs.cpp:2595
+#: ../src/verbs.cpp:2600
 msgid "Zoom to fit page in window"
 msgstr "Масштабировать так, чтобы целиком уместить страницу в окне"
 
-#: ../src/verbs.cpp:2596
+#: ../src/verbs.cpp:2601
 msgid "Page _Width"
 msgstr "_Ширина страницы"
 
-#: ../src/verbs.cpp:2597
+#: ../src/verbs.cpp:2602
 msgid "Zoom to fit page width in window"
 msgstr "Масштабировать так, чтобы уместить в окне страницу по ширине"
 
-#: ../src/verbs.cpp:2599
+#: ../src/verbs.cpp:2604
 msgid "Zoom to fit drawing in window"
 msgstr "Масштабировать так, чтобы целиком уместить рисунок в окне"
 
-#: ../src/verbs.cpp:2601
+#: ../src/verbs.cpp:2606
 msgid "Zoom to fit selection in window"
 msgstr "Масштабировать так, чтобы уместить в окне выделенную область"
 
 #. Dialogs
-#: ../src/verbs.cpp:2604
+#: ../src/verbs.cpp:2609
 msgid "In_kscape Preferences..."
 msgstr "Нас_троить Inkscape..."
 
-#: ../src/verbs.cpp:2605
+#: ../src/verbs.cpp:2610
 msgid "Edit global Inkscape preferences"
 msgstr "Изменить общие настройки Inkscape"
 
-#: ../src/verbs.cpp:2606
+#: ../src/verbs.cpp:2611
 msgid "_Document Properties..."
 msgstr "Свойства _документа..."
 
-#: ../src/verbs.cpp:2607
+#: ../src/verbs.cpp:2612
 msgid "Edit properties of this document (to be saved with the document)"
 msgstr "Изменить параметры этого документа, сохраняемые вместе с ним"
 
-#: ../src/verbs.cpp:2608
+#: ../src/verbs.cpp:2613
 msgid "Document _Metadata..."
 msgstr "_Метаданные документа..."
 
-#: ../src/verbs.cpp:2609
+#: ../src/verbs.cpp:2614
 msgid "Edit document metadata (to be saved with the document)"
 msgstr "Изменить сведения о документе, сохраняемые вместе с ним"
 
-#: ../src/verbs.cpp:2610
+#: ../src/verbs.cpp:2615
 msgid "_Fill and Stroke..."
 msgstr "_Заливка и обводка..."
 
-#: ../src/verbs.cpp:2611
+#: ../src/verbs.cpp:2616
 msgid "Edit objects' colors, gradients, stroke width, arrowheads, dash patterns..."
 msgstr "Изменить заливку объекта, параметры обводки, маркеры и штриховку стрелок..."
 
 #. TRANSLATORS: "Swatches" means: color samples
-#: ../src/verbs.cpp:2613
+#: ../src/verbs.cpp:2618
 msgid "S_watches..."
 msgstr "Образцы _цветов..."
 
-#: ../src/verbs.cpp:2614
+#: ../src/verbs.cpp:2619
 msgid "Select colors from a swatches palette"
 msgstr "Выбрать цвет из палитры образцов"
 
-#: ../src/verbs.cpp:2615
+#: ../src/verbs.cpp:2620
 msgid "Transfor_m..."
 msgstr "Транс_формировать..."
 
-#: ../src/verbs.cpp:2616
+#: ../src/verbs.cpp:2621
 msgid "Precisely control objects' transformations"
 msgstr "Точно изменить текущий объект"
 
-#: ../src/verbs.cpp:2617
+#: ../src/verbs.cpp:2622
 msgid "_Align and Distribute..."
 msgstr "_Выровнять и расставить..."
 
-#: ../src/verbs.cpp:2618
+#: ../src/verbs.cpp:2623
 msgid "Align and distribute objects"
 msgstr "Выровнять и расставить объекты"
 
-#: ../src/verbs.cpp:2619
+#: ../src/verbs.cpp:2624
 msgid "Undo _History..."
 msgstr "_История действий..."
 
-#: ../src/verbs.cpp:2620
+#: ../src/verbs.cpp:2625
 msgid "Undo History"
 msgstr "История действий"
 
-#: ../src/verbs.cpp:2621
+#: ../src/verbs.cpp:2626
 msgid "_Text and Font..."
 msgstr "_Текст и шрифт..."
 
-#: ../src/verbs.cpp:2622
+#: ../src/verbs.cpp:2627
 msgid "View and select font family, font size and other text properties"
 msgstr "Просмотреть и выбрать гарнитуру, кегль и прочие характеристики текста"
 
-#: ../src/verbs.cpp:2623
+#: ../src/verbs.cpp:2628
 msgid "_XML Editor..."
 msgstr "Редактор _XML..."
 
-#: ../src/verbs.cpp:2624
+#: ../src/verbs.cpp:2629
 msgid "View and edit the XML tree of the document"
 msgstr "Просмотреть и изменить XML-дерево документа"
 
-#: ../src/verbs.cpp:2625
+#: ../src/verbs.cpp:2630
 msgid "_Find..."
 msgstr "_Найти..."
 
-#: ../src/verbs.cpp:2626
+#: ../src/verbs.cpp:2631
 msgid "Find objects in document"
 msgstr "Найти объекты в документе"
 
-#: ../src/verbs.cpp:2627
+#: ../src/verbs.cpp:2632
 msgid "_Messages..."
 msgstr "_Сообщения..."
 
-#: ../src/verbs.cpp:2628
+#: ../src/verbs.cpp:2633
 msgid "View debug messages"
 msgstr "Просмотреть отладочные сообщения"
 
-#: ../src/verbs.cpp:2629
+#: ../src/verbs.cpp:2634
 msgid "S_cripts..."
 msgstr "С_ценарии..."
 
-#: ../src/verbs.cpp:2630
+#: ../src/verbs.cpp:2635
 msgid "Run scripts"
 msgstr "Выполнить сценарии"
 
-#: ../src/verbs.cpp:2631
+#: ../src/verbs.cpp:2636
 msgid "Show/Hide D_ialogs"
 msgstr "Показать/спря_тать диалоги"
 
-#: ../src/verbs.cpp:2632
+#: ../src/verbs.cpp:2637
 msgid "Show or hide all open dialogs"
 msgstr "Показать или скрыть все открытые диалоги"
 
-#: ../src/verbs.cpp:2633
+#: ../src/verbs.cpp:2638
 msgid "Create Tiled Clones..."
 msgstr "_Создать узор из клонов..."
 
-#: ../src/verbs.cpp:2634
+#: ../src/verbs.cpp:2639
 msgid "Create multiple clones of selected object, arranging them into a pattern or scattering"
 msgstr "Создать несколько клонов выделенного объекта, расставив их в текстуру или разбросав"
 
-#: ../src/verbs.cpp:2635
+#: ../src/verbs.cpp:2640
 msgid "_Object Properties..."
 msgstr "_Свойства объекта..."
 
-#: ../src/verbs.cpp:2636
+#: ../src/verbs.cpp:2641
 msgid "Edit the ID, locked and visible status, and other object properties"
 msgstr "Изменить ID, статус запертости и видимости, иные свойства объекта"
 
-#: ../src/verbs.cpp:2639
+#: ../src/verbs.cpp:2644
 msgid "_Instant Messaging..."
 msgstr "_Коллективное рисование..."
 
-#: ../src/verbs.cpp:2639
+#: ../src/verbs.cpp:2644
 msgid "Jabber Instant Messaging Client"
 msgstr "Клиент для коллективного рисования"
 
-#: ../src/verbs.cpp:2641
+#: ../src/verbs.cpp:2646
 msgid "_Input Devices..."
 msgstr "_Устройства ввода..."
 
-#: ../src/verbs.cpp:2642
-#: ../src/verbs.cpp:2644
+#: ../src/verbs.cpp:2647
+#: ../src/verbs.cpp:2649
 msgid "Configure extended input devices, such as a graphics tablet"
 msgstr "Настройка расширенных устройств ввода, таких как графический планшет"
 
-#: ../src/verbs.cpp:2643
+#: ../src/verbs.cpp:2648
 msgid "_Input Devices (new)..."
 msgstr "_Устройства ввода (новый диалог)..."
 
-#: ../src/verbs.cpp:2645
+#: ../src/verbs.cpp:2650
 msgid "_Extensions..."
 msgstr "_Расширения..."
 
-#: ../src/verbs.cpp:2646
+#: ../src/verbs.cpp:2651
 msgid "Query information about extensions"
 msgstr "Запросить информацию о расширениях"
 
-#: ../src/verbs.cpp:2647
+#: ../src/verbs.cpp:2652
 msgid "Layer_s..."
 msgstr "Сл_ои..."
 
-#: ../src/verbs.cpp:2648
+#: ../src/verbs.cpp:2653
 msgid "View Layers"
 msgstr "Открыть палитру слоёв"
 
-#: ../src/verbs.cpp:2649
+#: ../src/verbs.cpp:2654
 msgid "Path Effects..."
 msgstr "Контурные эффекты..."
 
-#: ../src/verbs.cpp:2650
+#: ../src/verbs.cpp:2655
 msgid "Manage path effects"
 msgstr "Управление контурными эффектами"
 
-#: ../src/verbs.cpp:2651
+#: ../src/verbs.cpp:2656
 msgid "Filter Effects..."
 msgstr "Фильтры эффектов..."
 
-#: ../src/verbs.cpp:2652
+#: ../src/verbs.cpp:2657
 msgid "Manage SVG filter effects"
 msgstr "Изменить фильтры SVG"
 
-#: ../src/verbs.cpp:2653
+#: ../src/verbs.cpp:2658
 msgid "SVG Fonts..."
 msgstr "Шрифты SVG..."
 
-#: ../src/verbs.cpp:2654
+#: ../src/verbs.cpp:2659
 msgid "Manage SVG fonts"
 msgstr "Управление шрифтами SVG"
 
 #. Help
-#: ../src/verbs.cpp:2657
+#: ../src/verbs.cpp:2662
 msgid "About E_xtensions"
 msgstr "О р_асширениях"
 
-#: ../src/verbs.cpp:2658
+#: ../src/verbs.cpp:2663
 msgid "Information on Inkscape extensions"
 msgstr "Информация о расширениях Inkscape"
 
-#: ../src/verbs.cpp:2659
+#: ../src/verbs.cpp:2664
 msgid "About _Memory"
 msgstr "Об используемой _памяти"
 
-#: ../src/verbs.cpp:2660
+#: ../src/verbs.cpp:2665
 msgid "Memory usage information"
 msgstr "Информация об используемой памяти"
 
-#: ../src/verbs.cpp:2661
+#: ../src/verbs.cpp:2666
 msgid "_About Inkscape"
 msgstr "_О программе"
 
-#: ../src/verbs.cpp:2662
+#: ../src/verbs.cpp:2667
 msgid "Inkscape version, authors, license"
 msgstr "Версия Inkscape, авторы, лицензия"
 
@@ -15160,111 +15259,111 @@ msgstr "Версия Inkscape, авторы, лицензия"
 #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"),
 #. N_("Distribution terms"), /*"show_license"*/"inkscape_options"),
 #. Tutorials
-#: ../src/verbs.cpp:2667
+#: ../src/verbs.cpp:2672
 msgid "Inkscape: _Basic"
 msgstr "Inkscape: _Основы"
 
-#: ../src/verbs.cpp:2668
+#: ../src/verbs.cpp:2673
 msgid "Getting started with Inkscape"
 msgstr "Начинаем работу с Inkscape"
 
 #. "tutorial_basic"
-#: ../src/verbs.cpp:2669
+#: ../src/verbs.cpp:2674
 msgid "Inkscape: _Shapes"
 msgstr "Inkscape: _Фигуры"
 
-#: ../src/verbs.cpp:2670
+#: ../src/verbs.cpp:2675
 msgid "Using shape tools to create and edit shapes"
 msgstr "Использование инструментов рисования и редактирования фигур"
 
-#: ../src/verbs.cpp:2671
+#: ../src/verbs.cpp:2676
 msgid "Inkscape: _Advanced"
 msgstr "Inkscape: _Продвинутый курс"
 
-#: ../src/verbs.cpp:2672
+#: ../src/verbs.cpp:2677
 msgid "Advanced Inkscape topics"
 msgstr "Дополнительные темы по Inkscape"
 
 #. "tutorial_advanced"
 #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
-#: ../src/verbs.cpp:2674
+#: ../src/verbs.cpp:2679
 msgid "Inkscape: T_racing"
 msgstr "Inkscape: _Векторизация"
 
-#: ../src/verbs.cpp:2675
+#: ../src/verbs.cpp:2680
 msgid "Using bitmap tracing"
 msgstr "Использование векторизации"
 
 #. "tutorial_tracing"
-#: ../src/verbs.cpp:2676
+#: ../src/verbs.cpp:2681
 msgid "Inkscape: _Calligraphy"
 msgstr "Inkscape: _Каллиграфия"
 
-#: ../src/verbs.cpp:2677
+#: ../src/verbs.cpp:2682
 msgid "Using the Calligraphy pen tool"
 msgstr "Использование каллиграфического пера"
 
-#: ../src/verbs.cpp:2678
+#: ../src/verbs.cpp:2683
 msgid "_Elements of Design"
 msgstr "Основы _дизайна"
 
-#: ../src/verbs.cpp:2679
+#: ../src/verbs.cpp:2684
 msgid "Principles of design in the tutorial form"
 msgstr "Самоучитель по элементам дизайна в виде урока"
 
 #. "tutorial_design"
-#: ../src/verbs.cpp:2680
+#: ../src/verbs.cpp:2685
 msgid "_Tips and Tricks"
 msgstr "Inkscape: _Советы и хитрости"
 
-#: ../src/verbs.cpp:2681
+#: ../src/verbs.cpp:2686
 msgid "Miscellaneous tips and tricks"
 msgstr "Различные советы по использованию программы"
 
 #. "tutorial_tips"
 #. Effect
-#: ../src/verbs.cpp:2684
+#: ../src/verbs.cpp:2689
 msgid "Previous Effect"
 msgstr "Повторить последний"
 
-#: ../src/verbs.cpp:2685
+#: ../src/verbs.cpp:2690
 msgid "Repeat the last effect with the same settings"
 msgstr "Повторить последний эффект с теми же настройками"
 
-#: ../src/verbs.cpp:2686
+#: ../src/verbs.cpp:2691
 msgid "Previous Effect Settings..."
 msgstr "Повторить с изменениями..."
 
-#: ../src/verbs.cpp:2687
+#: ../src/verbs.cpp:2692
 msgid "Repeat the last effect with new settings"
 msgstr "Повторить последний эффект с новыми настройками"
 
-#: ../src/verbs.cpp:2691
+#: ../src/verbs.cpp:2696
 msgid "Fit the page to the current selection"
 msgstr "Откадрировать холст до текущего выделения"
 
-#: ../src/verbs.cpp:2693
+#: ../src/verbs.cpp:2698
 msgid "Fit the page to the drawing"
 msgstr "Откадрировать холст до рисунка"
 
-#: ../src/verbs.cpp:2695
+#: ../src/verbs.cpp:2700
 msgid "Fit the page to the current selection or the drawing if there is no selection"
 msgstr "Откадрировать холст до текущего выделения или рисунка, если ничего не выделено"
 
 #. LockAndHide
-#: ../src/verbs.cpp:2697
+#: ../src/verbs.cpp:2702
 msgid "Unlock All"
 msgstr "Отпереть все"
 
-#: ../src/verbs.cpp:2699
+#: ../src/verbs.cpp:2704
 msgid "Unlock All in All Layers"
 msgstr "Отпереть все во всех слоях"
 
-#: ../src/verbs.cpp:2701
+#: ../src/verbs.cpp:2706
 msgid "Unhide All"
 msgstr "Раскрыть все"
 
-#: ../src/verbs.cpp:2703
+#: ../src/verbs.cpp:2708
 msgid "Unhide All in All Layers"
 msgstr "Раскрыть все во всех слоях"
 
@@ -15276,30 +15375,35 @@ msgstr "Название профиля:"
 msgid "Save"
 msgstr "Сохранить"
 
-#: ../src/widgets/dash-selector.cpp:59
+#: ../src/widgets/dash-selector.cpp:62
 msgid "Dash pattern"
 msgstr "Пунктир"
 
-#: ../src/widgets/dash-selector.cpp:74
+#: ../src/widgets/dash-selector.cpp:77
 msgid "Pattern offset"
 msgstr "Смещение пунктира"
 
-#: ../src/widgets/desktop-widget.cpp:615
+#. display the initial welcome message in the statusbar
+#: ../src/widgets/desktop-widget.cpp:545
+msgid "<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; use selector (arrow) to move or transform them."
+msgstr "<b>Добро пожаловать в Inkscape!</b> Используйте инструменты фигур или рисования для создания объектов; используйте селектор (стрелку) для их перемещения и трансформации."
+
+#: ../src/widgets/desktop-widget.cpp:607
 #, c-format
 msgid "%s: %d (outline) - Inkscape"
 msgstr "%s: %d (каркас) — Inkscape"
 
-#: ../src/widgets/desktop-widget.cpp:617
+#: ../src/widgets/desktop-widget.cpp:609
 #, c-format
 msgid "%s: %d - Inkscape"
 msgstr "%s: %d — Inkscape"
 
-#: ../src/widgets/desktop-widget.cpp:621
+#: ../src/widgets/desktop-widget.cpp:613
 #, c-format
 msgid "%s (outline) - Inkscape"
 msgstr "%s (каркас) — Inkscape"
 
-#: ../src/widgets/desktop-widget.cpp:623
+#: ../src/widgets/desktop-widget.cpp:615
 #, c-format
 msgid "%s - Inkscape"
 msgstr "%s — Inkscape"
@@ -15311,7 +15415,7 @@ msgstr "Гарнитура"
 
 #. Style frame
 #: ../src/widgets/font-selector.cpp:188
-#: ../share/extensions/polyhedron_3d.inx.h:44
+#: ../share/extensions/polyhedron_3d.inx.h:43
 msgid "Style"
 msgstr "Начертание"
 
@@ -15324,12 +15428,12 @@ msgstr "Кегль шрифта:"
 #. * some representative characters that users of your locale will be
 #. * interested in.
 #: ../src/widgets/font-selector.cpp:639
-#: ../src/widgets/toolbox.cpp:6080
+#: ../src/widgets/toolbox.cpp:6069
 msgid "AaBbCcIiPpQq12369$€¢?.;/()"
 msgstr "АаБбВвГгЁёФфЩщЯя$€¢?.;/()"
 
 #: ../src/widgets/gradient-selector.cpp:139
-#: ../src/widgets/gradient-toolbar.cpp:462
+#: ../src/widgets/gradient-toolbar.cpp:465
 msgid "Edit..."
 msgstr "Изменить..."
 
@@ -15350,73 +15454,73 @@ msgstr "повторный"
 msgid "Repeat:"
 msgstr "Повтор:"
 
-#: ../src/widgets/gradient-toolbar.cpp:151
+#: ../src/widgets/gradient-toolbar.cpp:154
 msgid "Assign gradient to object"
 msgstr "Применить градиент к объекту"
 
-#: ../src/widgets/gradient-toolbar.cpp:185
+#: ../src/widgets/gradient-toolbar.cpp:188
 msgid "<small>No gradients</small>"
 msgstr "<small>Градиентов нет</small>"
 
-#: ../src/widgets/gradient-toolbar.cpp:194
+#: ../src/widgets/gradient-toolbar.cpp:197
 msgid "<small>Nothing selected</small>"
 msgstr "<small>Ничего не выделено</small>"
 
-#: ../src/widgets/gradient-toolbar.cpp:205
+#: ../src/widgets/gradient-toolbar.cpp:208
 msgid "<small>No gradients in selection</small>"
 msgstr "<small>Градиент не выделен</small>"
 
-#: ../src/widgets/gradient-toolbar.cpp:215
+#: ../src/widgets/gradient-toolbar.cpp:218
 msgid "<small>Multiple gradients</small>"
 msgstr "<small>Несколько градиентов</small>"
 
-#: ../src/widgets/gradient-toolbar.cpp:463
+#: ../src/widgets/gradient-toolbar.cpp:466
 msgid "Edit the stops of the gradient"
 msgstr "Изменить опорные точки в градиенте"
 
-#: ../src/widgets/gradient-toolbar.cpp:522
-#: ../src/widgets/toolbox.cpp:2151
-#: ../src/widgets/toolbox.cpp:2229
-#: ../src/widgets/toolbox.cpp:2560
-#: ../src/widgets/toolbox.cpp:2598
-#: ../src/widgets/toolbox.cpp:3215
-#: ../src/widgets/toolbox.cpp:3239
-#: ../src/widgets/toolbox.cpp:4666
-#: ../src/widgets/toolbox.cpp:4695
+#: ../src/widgets/gradient-toolbar.cpp:526
+#: ../src/widgets/toolbox.cpp:2149
+#: ../src/widgets/toolbox.cpp:2227
+#: ../src/widgets/toolbox.cpp:2558
+#: ../src/widgets/toolbox.cpp:2596
+#: ../src/widgets/toolbox.cpp:3211
+#: ../src/widgets/toolbox.cpp:3235
+#: ../src/widgets/toolbox.cpp:4648
+#: ../src/widgets/toolbox.cpp:4677
 msgid "<b>New:</b>"
 msgstr "<b>Новый:</b>"
 
-#: ../src/widgets/gradient-toolbar.cpp:535
+#: ../src/widgets/gradient-toolbar.cpp:539
 msgid "Create linear gradient"
 msgstr "Создать линейный градиент"
 
-#: ../src/widgets/gradient-toolbar.cpp:549
+#: ../src/widgets/gradient-toolbar.cpp:553
 msgid "Create radial (elliptic or circular) gradient"
 msgstr "Создать радиальный (эллиптический или круговой) градиент"
 
 #. TODO replace aux_toolbox_space(tbl, AUX_SPACING);
-#: ../src/widgets/gradient-toolbar.cpp:564
+#: ../src/widgets/gradient-toolbar.cpp:568
 msgid "on"
 msgstr "на"
 
-#: ../src/widgets/gradient-toolbar.cpp:577
+#: ../src/widgets/gradient-toolbar.cpp:581
 msgid "Create gradient in the fill"
 msgstr "Создать градиент в заливке"
 
-#: ../src/widgets/gradient-toolbar.cpp:591
+#: ../src/widgets/gradient-toolbar.cpp:595
 msgid "Create gradient in the stroke"
 msgstr "Создать градиент в обводке"
 
 #. FIXME: implement averaging of all parameters for multiple selected
 #. gtk_label_set_markup(GTK_LABEL(l), _("<b>Average:</b>"));
-#: ../src/widgets/gradient-toolbar.cpp:605
-#: ../src/widgets/toolbox.cpp:2153
-#: ../src/widgets/toolbox.cpp:2568
-#: ../src/widgets/toolbox.cpp:2586
-#: ../src/widgets/toolbox.cpp:3217
-#: ../src/widgets/toolbox.cpp:3228
-#: ../src/widgets/toolbox.cpp:4669
-#: ../src/widgets/toolbox.cpp:4680
+#: ../src/widgets/gradient-toolbar.cpp:609
+#: ../src/widgets/toolbox.cpp:2151
+#: ../src/widgets/toolbox.cpp:2566
+#: ../src/widgets/toolbox.cpp:2584
+#: ../src/widgets/toolbox.cpp:3213
+#: ../src/widgets/toolbox.cpp:3224
+#: ../src/widgets/toolbox.cpp:4651
+#: ../src/widgets/toolbox.cpp:4662
 msgid "<b>Change:</b>"
 msgstr "<b>Менять:</b>"
 
@@ -15428,46 +15532,46 @@ msgstr "Документ не содержит градиентов"
 msgid "No gradient selected"
 msgstr "Градиент не выделен"
 
-#: ../src/widgets/gradient-vector.cpp:538
+#: ../src/widgets/gradient-vector.cpp:541
 msgid "No stops in gradient"
 msgstr "В градиенте нет опорных точек"
 
-#: ../src/widgets/gradient-vector.cpp:661
+#: ../src/widgets/gradient-vector.cpp:664
 msgid "Change gradient stop offset"
 msgstr "Правка смещения опорной точки градиента"
 
 #. TRANSLATORS: "Stop" means: a "phase" of a gradient
-#: ../src/widgets/gradient-vector.cpp:803
+#: ../src/widgets/gradient-vector.cpp:806
 msgid "Add stop"
 msgstr "Добавить опорную точку"
 
-#: ../src/widgets/gradient-vector.cpp:806
+#: ../src/widgets/gradient-vector.cpp:809
 msgid "Add another control stop to gradient"
 msgstr "Добавить еще одну опорную точку в градиент"
 
-#: ../src/widgets/gradient-vector.cpp:808
+#: ../src/widgets/gradient-vector.cpp:811
 msgid "Delete stop"
 msgstr "Удалить опорную точку"
 
-#: ../src/widgets/gradient-vector.cpp:811
+#: ../src/widgets/gradient-vector.cpp:814
 msgid "Delete current control stop from gradient"
 msgstr "Удалить опорную точку градиента"
 
 #. Label
-#: ../src/widgets/gradient-vector.cpp:822
+#: ../src/widgets/gradient-vector.cpp:825
 msgid "Offset:"
 msgstr "Смещение:"
 
 #. TRANSLATORS: "Stop" means: a "phase" of a gradient
-#: ../src/widgets/gradient-vector.cpp:867
+#: ../src/widgets/gradient-vector.cpp:870
 msgid "Stop Color"
 msgstr "Цвет опорной точки"
 
-#: ../src/widgets/gradient-vector.cpp:896
+#: ../src/widgets/gradient-vector.cpp:900
 msgid "Gradient editor"
 msgstr "Редактор градиентов"
 
-#: ../src/widgets/gradient-vector.cpp:1171
+#: ../src/widgets/gradient-vector.cpp:1176
 msgid "Change gradient stop color"
 msgstr "Смена цвета опорной точки градиента"
 
@@ -15537,120 +15641,120 @@ msgstr "Цвет не определен"
 msgid "Use the <b>Node tool</b> to adjust position, scale, and rotation of the pattern on canvas. Use <b>Object &gt; Pattern &gt; Objects to Pattern</b> to create a new pattern from selection."
 msgstr "Используйте <b>Инструмент правки узлов</b> для коррекции позиции, масштаба и вращения текстуры на холсте. Используйте команду <b>Объект → Текстура → Объект(ы) в текстуру</b>, чтобы создать новую текстуру из выделения."
 
-#: ../src/widgets/select-toolbar.cpp:245
+#: ../src/widgets/select-toolbar.cpp:246
 msgid "Transform by toolbar"
 msgstr "Смена ШВ/XY через панель"
 
-#: ../src/widgets/select-toolbar.cpp:300
+#: ../src/widgets/select-toolbar.cpp:303
 msgid "Now <b>stroke width</b> is <b>scaled</b> when objects are scaled."
 msgstr "Теперь <b>толщина обводки</b> <b>масштабируется</b> вместе с объектами."
 
-#: ../src/widgets/select-toolbar.cpp:302
+#: ../src/widgets/select-toolbar.cpp:305
 msgid "Now <b>stroke width</b> is <b>not scaled</b> when objects are scaled."
 msgstr "Теперь <b>толщина обводки</b> <b>не масштабируется</b> вместе с объектами."
 
-#: ../src/widgets/select-toolbar.cpp:311
+#: ../src/widgets/select-toolbar.cpp:316
 msgid "Now <b>rounded rectangle corners</b> are <b>scaled</b> when rectangles are scaled."
 msgstr "Теперь <b>скруглённые углы прямоугольников</b> <b>масштабируются</b> вместе с прямоугольниками."
 
-#: ../src/widgets/select-toolbar.cpp:313
+#: ../src/widgets/select-toolbar.cpp:318
 msgid "Now <b>rounded rectangle corners</b> are <b>not scaled</b> when rectangles are scaled."
 msgstr "Теперь <b>скруглённые углы прямоугольников</b> <b>не масштабируются</b> вместе с прямоугольниками."
 
-#: ../src/widgets/select-toolbar.cpp:322
+#: ../src/widgets/select-toolbar.cpp:329
 msgid "Now <b>gradients</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."
 msgstr "Теперь <b>градиенты</b> <b>трансформируются</b> вместе с объектами (при перемещении, масштабировании, вращении или скосе)."
 
-#: ../src/widgets/select-toolbar.cpp:324
+#: ../src/widgets/select-toolbar.cpp:331
 msgid "Now <b>gradients</b> remain <b>fixed</b> when objects are transformed (moved, scaled, rotated, or skewed)."
 msgstr "Теперь <b>градиенты</b> остаются <b>неизменными</b> при трансформации объектов (перемещение, масштабирование, вращение или скос)."
 
-#: ../src/widgets/select-toolbar.cpp:333
+#: ../src/widgets/select-toolbar.cpp:342
 msgid "Now <b>patterns</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."
 msgstr "Теперь <b>текстуры</b> <b>трансформируются</b> вместе с объектами (при перемещении, масштабировании, вращении или скосе)."
 
-#: ../src/widgets/select-toolbar.cpp:335
+#: ../src/widgets/select-toolbar.cpp:344
 msgid "Now <b>patterns</b> remain <b>fixed</b> when objects are transformed (moved, scaled, rotated, or skewed)."
 msgstr "Теперь <b>текстуры</b> остаются <b>неизменными</b> при трансформации объектов (перемещение, масштабирование, вращение или скос)."
 
 #. four spinbuttons
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/widgets/select-toolbar.cpp:447
+#: ../src/widgets/select-toolbar.cpp:457
 msgid "select_toolbar|X position"
 msgstr "Координата X"
 
-#: ../src/widgets/select-toolbar.cpp:447
+#: ../src/widgets/select-toolbar.cpp:457
 msgid "select_toolbar|X"
 msgstr "X"
 
-#: ../src/widgets/select-toolbar.cpp:449
+#: ../src/widgets/select-toolbar.cpp:459
 msgid "Horizontal coordinate of selection"
 msgstr "Горизонтальная координата выделения"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/widgets/select-toolbar.cpp:455
+#: ../src/widgets/select-toolbar.cpp:465
 msgid "select_toolbar|Y position"
 msgstr "Координата Y"
 
-#: ../src/widgets/select-toolbar.cpp:455
+#: ../src/widgets/select-toolbar.cpp:465
 msgid "select_toolbar|Y"
 msgstr "Y"
 
-#: ../src/widgets/select-toolbar.cpp:457
+#: ../src/widgets/select-toolbar.cpp:467
 msgid "Vertical coordinate of selection"
 msgstr "Вертикальная координата выделения"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/widgets/select-toolbar.cpp:463
+#: ../src/widgets/select-toolbar.cpp:473
 msgid "select_toolbar|Width"
 msgstr "Ширина"
 
-#: ../src/widgets/select-toolbar.cpp:463
+#: ../src/widgets/select-toolbar.cpp:473
 msgid "select_toolbar|W"
 msgstr "Ш"
 
-#: ../src/widgets/select-toolbar.cpp:465
+#: ../src/widgets/select-toolbar.cpp:475
 msgid "Width of selection"
 msgstr "Ширина выделения"
 
-#: ../src/widgets/select-toolbar.cpp:472
+#: ../src/widgets/select-toolbar.cpp:482
 msgid "Lock width and height"
 msgstr "Запереть ширину и высоту"
 
-#: ../src/widgets/select-toolbar.cpp:473
+#: ../src/widgets/select-toolbar.cpp:483
 msgid "When locked, change both width and height by the same proportion"
 msgstr "Если заперто, пропорционально изменять ширину и высоту"
 
 #. TRANSLATORS: only translate "string" in "context|string".
 #. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
-#: ../src/widgets/select-toolbar.cpp:484
+#: ../src/widgets/select-toolbar.cpp:494
 msgid "select_toolbar|Height"
 msgstr "Высота"
 
-#: ../src/widgets/select-toolbar.cpp:484
+#: ../src/widgets/select-toolbar.cpp:494
 msgid "select_toolbar|H"
 msgstr "В"
 
-#: ../src/widgets/select-toolbar.cpp:486
+#: ../src/widgets/select-toolbar.cpp:496
 msgid "Height of selection"
 msgstr "Высота выделения"
 
-#: ../src/widgets/select-toolbar.cpp:523
+#: ../src/widgets/select-toolbar.cpp:533
 msgid "Affect:"
 msgstr "Менять:"
 
-#: ../src/widgets/select-toolbar.cpp:542
+#: ../src/widgets/select-toolbar.cpp:552
 msgid "Scale rounded corners"
 msgstr "Менять радиус закругленных углов"
 
-#: ../src/widgets/select-toolbar.cpp:553
+#: ../src/widgets/select-toolbar.cpp:563
 msgid "Move gradients"
 msgstr "Смещать градиенты"
 
-#: ../src/widgets/select-toolbar.cpp:564
+#: ../src/widgets/select-toolbar.cpp:574
 msgid "Move patterns"
 msgstr "Смещать текстуры"
 
@@ -15658,101 +15762,101 @@ msgstr "Смещать текстуры"
 msgid "System"
 msgstr "Системный"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:110
+#: ../src/widgets/sp-color-icc-selector.cpp:111
 msgid "CMS"
 msgstr "CMS"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:219
+#: ../src/widgets/sp-color-icc-selector.cpp:220
 #: ../src/widgets/sp-color-scales.cpp:397
 msgid "_R"
 msgstr "_R"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:219
 #: ../src/widgets/sp-color-icc-selector.cpp:220
+#: ../src/widgets/sp-color-icc-selector.cpp:221
 #: ../src/widgets/sp-color-scales.cpp:400
 msgid "_G"
 msgstr "_G"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:219
+#: ../src/widgets/sp-color-icc-selector.cpp:220
 #: ../src/widgets/sp-color-scales.cpp:403
 msgid "_B"
 msgstr "_B"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:221
 #: ../src/widgets/sp-color-icc-selector.cpp:222
+#: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-scales.cpp:423
 msgid "_H"
 msgstr "_H"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:221
 #: ../src/widgets/sp-color-icc-selector.cpp:222
+#: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-scales.cpp:426
 msgid "_S"
 msgstr "_S"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:222
+#: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-scales.cpp:429
 msgid "_L"
 msgstr "_L"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-icc-selector.cpp:224
+#: ../src/widgets/sp-color-icc-selector.cpp:225
 #: ../src/widgets/sp-color-scales.cpp:451
 msgid "_C"
 msgstr "_C"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-icc-selector.cpp:224
+#: ../src/widgets/sp-color-icc-selector.cpp:225
 #: ../src/widgets/sp-color-scales.cpp:454
 msgid "_M"
 msgstr "_M"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:223
 #: ../src/widgets/sp-color-icc-selector.cpp:224
+#: ../src/widgets/sp-color-icc-selector.cpp:225
 #: ../src/widgets/sp-color-scales.cpp:457
 msgid "_Y"
 msgstr "_Y"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:223
+#: ../src/widgets/sp-color-icc-selector.cpp:224
 #: ../src/widgets/sp-color-scales.cpp:460
 msgid "_K"
 msgstr "_K"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:234
+#: ../src/widgets/sp-color-icc-selector.cpp:235
 msgid "Gray"
 msgstr "Серый"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-icc-selector.cpp:238
+#: ../src/widgets/sp-color-icc-selector.cpp:239
 #: ../src/widgets/sp-color-scales.cpp:452
 #: ../src/widgets/sp-color-scales.cpp:453
 msgid "Cyan"
 msgstr "Голубой"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-icc-selector.cpp:238
+#: ../src/widgets/sp-color-icc-selector.cpp:239
 #: ../src/widgets/sp-color-scales.cpp:455
 #: ../src/widgets/sp-color-scales.cpp:456
 msgid "Magenta"
 msgstr "Пурпурный"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:237
 #: ../src/widgets/sp-color-icc-selector.cpp:238
+#: ../src/widgets/sp-color-icc-selector.cpp:239
 #: ../src/widgets/sp-color-scales.cpp:458
 #: ../src/widgets/sp-color-scales.cpp:459
 msgid "Yellow"
 msgstr "Жёлтый"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:295
+#: ../src/widgets/sp-color-icc-selector.cpp:296
 msgid "Fix"
 msgstr "Исправить"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:298
+#: ../src/widgets/sp-color-icc-selector.cpp:299
 msgid "Fix RGB fallback to match icc-color() value."
 msgstr "Исправить откат на RGB до совпадения со значением icc-color()"
 
 #. Label
-#: ../src/widgets/sp-color-icc-selector.cpp:379
+#: ../src/widgets/sp-color-icc-selector.cpp:380
 #: ../src/widgets/sp-color-scales.cpp:406
 #: ../src/widgets/sp-color-scales.cpp:432
 #: ../src/widgets/sp-color-scales.cpp:463
@@ -15760,8 +15864,8 @@ msgstr "Исправить откат на RGB до совпадения со з
 msgid "_A"
 msgstr "_A"
 
-#: ../src/widgets/sp-color-icc-selector.cpp:389
-#: ../src/widgets/sp-color-icc-selector.cpp:401
+#: ../src/widgets/sp-color-icc-selector.cpp:390
+#: ../src/widgets/sp-color-icc-selector.cpp:402
 #: ../src/widgets/sp-color-scales.cpp:407
 #: ../src/widgets/sp-color-scales.cpp:408
 #: ../src/widgets/sp-color-scales.cpp:433
@@ -15773,11 +15877,11 @@ msgstr "_A"
 msgid "Alpha (opacity)"
 msgstr "Альфа-канал (непрозрачность)"
 
-#: ../src/widgets/sp-color-notebook.cpp:329
+#: ../src/widgets/sp-color-notebook.cpp:330
 msgid "RGBA_:"
 msgstr "RGBA_:"
 
-#: ../src/widgets/sp-color-notebook.cpp:337
+#: ../src/widgets/sp-color-notebook.cpp:338
 msgid "Hexadecimal RGBA value of the color"
 msgstr "Шестнадцатеричное значение RGBA"
 
@@ -15814,1406 +15918,1409 @@ msgstr "Значение"
 msgid "Type text in a text node"
 msgstr "Ввод текста в текстовую ветвь"
 
-#: ../src/widgets/toolbox.cpp:197
+#: ../src/widgets/toolbox.cpp:194
 msgid "Color/opacity used for color tweaking"
 msgstr "Цвет/непрозрачность, используемые для коррекции цвета"
 
-#: ../src/widgets/toolbox.cpp:201
+#: ../src/widgets/toolbox.cpp:198
 msgid "Style of new stars"
 msgstr "Стиль новых звёзд"
 
-#: ../src/widgets/toolbox.cpp:203
+#: ../src/widgets/toolbox.cpp:200
 msgid "Style of new rectangles"
 msgstr "Стиль новых прямоугольников"
 
-#: ../src/widgets/toolbox.cpp:205
+#: ../src/widgets/toolbox.cpp:202
 msgid "Style of new 3D boxes"
 msgstr "Стиль новых паралеллепипедов"
 
-#: ../src/widgets/toolbox.cpp:207
+#: ../src/widgets/toolbox.cpp:204
 msgid "Style of new ellipses"
 msgstr "Стиль новых эллипсов"
 
-#: ../src/widgets/toolbox.cpp:209
+#: ../src/widgets/toolbox.cpp:206
 msgid "Style of new spirals"
 msgstr "Стиль новых спиралей"
 
-#: ../src/widgets/toolbox.cpp:211
+#: ../src/widgets/toolbox.cpp:208
 msgid "Style of new paths created by Pencil"
 msgstr "Стиль новых контуров, созданных Карандашом"
 
-#: ../src/widgets/toolbox.cpp:213
+#: ../src/widgets/toolbox.cpp:210
 msgid "Style of new paths created by Pen"
 msgstr "Стиль новых контуров, созданных Пером"
 
-#: ../src/widgets/toolbox.cpp:215
+#: ../src/widgets/toolbox.cpp:212
 msgid "Style of new calligraphic strokes"
 msgstr "Стиль новых каллиграфических штрихов"
 
-#: ../src/widgets/toolbox.cpp:217
-#: ../src/widgets/toolbox.cpp:219
+#: ../src/widgets/toolbox.cpp:214
+#: ../src/widgets/toolbox.cpp:216
 msgid "TBD"
 msgstr ""
 
-#: ../src/widgets/toolbox.cpp:229
+#: ../src/widgets/toolbox.cpp:226
 msgid "Style of Paint Bucket fill objects"
 msgstr "Стиль заливки новых объектов, созданных инструментом заливки"
 
-#: ../src/widgets/toolbox.cpp:1265
+#: ../src/widgets/toolbox.cpp:1264
 msgid "Insert node"
 msgstr "Вставка узла"
 
-#: ../src/widgets/toolbox.cpp:1266
+#: ../src/widgets/toolbox.cpp:1265
 msgid "Insert new nodes into selected segments"
 msgstr "Вставить новые узлы в выделенные сегменты"
 
-#: ../src/widgets/toolbox.cpp:1269
+#: ../src/widgets/toolbox.cpp:1268
 msgid "Insert"
 msgstr "Вставить"
 
-#: ../src/widgets/toolbox.cpp:1277
+#: ../src/widgets/toolbox.cpp:1276
 msgid "Delete selected nodes"
 msgstr "Удалить выделенные узлы"
 
-#: ../src/widgets/toolbox.cpp:1287
+#: ../src/widgets/toolbox.cpp:1286
 msgid "Join endnodes"
 msgstr "Соединение оконечных узлов"
 
-#: ../src/widgets/toolbox.cpp:1288
+#: ../src/widgets/toolbox.cpp:1287
 msgid "Join selected endnodes"
 msgstr "Соединить контуры по выделенным оконечным узлам"
 
-#: ../src/widgets/toolbox.cpp:1291
+#: ../src/widgets/toolbox.cpp:1290
 msgid "Join"
 msgstr "Соединение"
 
-#: ../src/widgets/toolbox.cpp:1298
+#: ../src/widgets/toolbox.cpp:1297
 #, fuzzy
 msgid "Break nodes"
 msgstr "Перемещение узлов"
 
-#: ../src/widgets/toolbox.cpp:1299
+#: ../src/widgets/toolbox.cpp:1298
 msgid "Break path at selected nodes"
 msgstr "Разорвать контур в выделенном узле"
 
-#: ../src/widgets/toolbox.cpp:1309
+#: ../src/widgets/toolbox.cpp:1308
 #, fuzzy
 msgid "Join with segment"
 msgstr "Соединение узлов сегментом"
 
-#: ../src/widgets/toolbox.cpp:1310
+#: ../src/widgets/toolbox.cpp:1309
 msgid "Join selected endnodes with a new segment"
 msgstr "Соединить контуры по выделенным оконечным узлам новым сегментом"
 
-#: ../src/widgets/toolbox.cpp:1320
+#: ../src/widgets/toolbox.cpp:1319
 msgid "Delete segment between two non-endpoint nodes"
 msgstr "Удалить сегмент между двумя неоконечными узлами"
 
-#: ../src/widgets/toolbox.cpp:1329
+#: ../src/widgets/toolbox.cpp:1328
 msgid "Node Cusp"
 msgstr "Острые узлы"
 
-#: ../src/widgets/toolbox.cpp:1330
+#: ../src/widgets/toolbox.cpp:1329
 msgid "Make selected nodes corner"
 msgstr "Сделать выделенные узлы острыми"
 
-#: ../src/widgets/toolbox.cpp:1339
+#: ../src/widgets/toolbox.cpp:1338
 msgid "Node Smooth"
 msgstr "Гладкие узлы"
 
-#: ../src/widgets/toolbox.cpp:1340
+#: ../src/widgets/toolbox.cpp:1339
 msgid "Make selected nodes smooth"
 msgstr "Сделать выделенные узлы сглаженными"
 
-#: ../src/widgets/toolbox.cpp:1349
+#: ../src/widgets/toolbox.cpp:1348
 msgid "Node Symmetric"
 msgstr "Симметричные узлы"
 
-#: ../src/widgets/toolbox.cpp:1350
+#: ../src/widgets/toolbox.cpp:1349
 msgid "Make selected nodes symmetric"
 msgstr "Сделать выделенные узлы симметричными"
 
-#: ../src/widgets/toolbox.cpp:1359
+#: ../src/widgets/toolbox.cpp:1358
 msgid "Node Line"
 msgstr "Линия по узлам"
 
-#: ../src/widgets/toolbox.cpp:1360
+#: ../src/widgets/toolbox.cpp:1359
 msgid "Make selected segments lines"
 msgstr "Сделать выделенные сегменты прямыми"
 
-#: ../src/widgets/toolbox.cpp:1369
+#: ../src/widgets/toolbox.cpp:1368
 msgid "Node Curve"
 msgstr "Кривая по узлам"
 
-#: ../src/widgets/toolbox.cpp:1370
+#: ../src/widgets/toolbox.cpp:1369
 msgid "Make selected segments curves"
 msgstr "Сделать выделенные сегменты кривыми"
 
-#: ../src/widgets/toolbox.cpp:1379
+#: ../src/widgets/toolbox.cpp:1378
 msgid "Show Handles"
 msgstr "Показывать рычаги"
 
-#: ../src/widgets/toolbox.cpp:1380
+#: ../src/widgets/toolbox.cpp:1379
 msgid "Show the Bezier handles of selected nodes"
 msgstr "Показывать рычаги выбранных узлов"
 
-#: ../src/widgets/toolbox.cpp:1390
+#: ../src/widgets/toolbox.cpp:1389
 msgid "Show Outline"
 msgstr "Показать контур"
 
-#: ../src/widgets/toolbox.cpp:1391
+#: ../src/widgets/toolbox.cpp:1390
 msgid "Show the outline of the path"
 msgstr "Показать очертания контура"
 
-#: ../src/widgets/toolbox.cpp:1401
+#: ../src/widgets/toolbox.cpp:1400
 msgid "Next path effect parameter"
 msgstr "Следующий параметр контурного эффекта"
 
-#: ../src/widgets/toolbox.cpp:1402
+#: ../src/widgets/toolbox.cpp:1401
 msgid "Show next path effect parameter for editing"
 msgstr "Показать следующий редактируемый параметр динамического эффекта"
 
-#: ../src/widgets/toolbox.cpp:1413
+#: ../src/widgets/toolbox.cpp:1412
 msgid "Edit the clipping path of the object"
 msgstr "Изменить обтравочный контур объекта"
 
-#: ../src/widgets/toolbox.cpp:1423
+#: ../src/widgets/toolbox.cpp:1422
 msgid "Edit mask path"
 msgstr "Изменить контур маски"
 
-#: ../src/widgets/toolbox.cpp:1424
+#: ../src/widgets/toolbox.cpp:1423
 msgid "Edit the mask of the object"
 msgstr "Изменить маску объекта"
 
-#: ../src/widgets/toolbox.cpp:1438
+#: ../src/widgets/toolbox.cpp:1437
 msgid "X coordinate:"
 msgstr "Координата по X:"
 
-#: ../src/widgets/toolbox.cpp:1438
+#: ../src/widgets/toolbox.cpp:1437
 msgid "X coordinate of selected node(s)"
 msgstr "Координата X выбранных узлов"
 
-#: ../src/widgets/toolbox.cpp:1456
+#: ../src/widgets/toolbox.cpp:1455
 msgid "Y coordinate:"
 msgstr "Координата по Y:"
 
-#: ../src/widgets/toolbox.cpp:1456
+#: ../src/widgets/toolbox.cpp:1455
 msgid "Y coordinate of selected node(s)"
 msgstr "Координата Y выбранных узлов"
 
-#: ../src/widgets/toolbox.cpp:1900
+#: ../src/widgets/toolbox.cpp:1898
 msgid "Star: Change number of corners"
 msgstr "Смена количества лучей"
 
-#: ../src/widgets/toolbox.cpp:1943
+#: ../src/widgets/toolbox.cpp:1941
 msgid "Star: Change spoke ratio"
 msgstr "Смена отношения радиусов"
 
-#: ../src/widgets/toolbox.cpp:1986
+#: ../src/widgets/toolbox.cpp:1984
 msgid "Make polygon"
 msgstr "Звезда → многоугольник"
 
-#: ../src/widgets/toolbox.cpp:1986
+#: ../src/widgets/toolbox.cpp:1984
 msgid "Make star"
 msgstr "Многоугольник → звезда"
 
-#: ../src/widgets/toolbox.cpp:2022
+#: ../src/widgets/toolbox.cpp:2020
 msgid "Star: Change rounding"
 msgstr "Смена закругления"
 
-#: ../src/widgets/toolbox.cpp:2057
+#: ../src/widgets/toolbox.cpp:2055
 msgid "Star: Change randomization"
 msgstr "Смена случайности искажения"
 
-#: ../src/widgets/toolbox.cpp:2248
+#: ../src/widgets/toolbox.cpp:2246
 msgid "Regular polygon (with one handle) instead of a star"
 msgstr "Правильный многоугольник, а не звезда"
 
-#: ../src/widgets/toolbox.cpp:2255
+#: ../src/widgets/toolbox.cpp:2253
 msgid "Star instead of a regular polygon (with one handle)"
 msgstr "Звезда вместо обычного многоугольника (с одним рычагом)"
 
-#: ../src/widgets/toolbox.cpp:2276
+#: ../src/widgets/toolbox.cpp:2274
 msgid "triangle/tri-star"
 msgstr "треугольник/звезда с 3 лучами"
 
-#: ../src/widgets/toolbox.cpp:2276
+#: ../src/widgets/toolbox.cpp:2274
 msgid "square/quad-star"
 msgstr "квадрат/звезда с 4 лучами"
 
-#: ../src/widgets/toolbox.cpp:2276
+#: ../src/widgets/toolbox.cpp:2274
 msgid "pentagon/five-pointed star"
 msgstr "пятиугольник/звезда с 5 лучами"
 
-#: ../src/widgets/toolbox.cpp:2276
+#: ../src/widgets/toolbox.cpp:2274
 msgid "hexagon/six-pointed star"
 msgstr "шестиугольник/звезда с 6 лучами"
 
-#: ../src/widgets/toolbox.cpp:2279
+#: ../src/widgets/toolbox.cpp:2277
 msgid "Corners"
 msgstr "Углы"
 
-#: ../src/widgets/toolbox.cpp:2279
+#: ../src/widgets/toolbox.cpp:2277
 msgid "Corners:"
 msgstr "Углы:"
 
-#: ../src/widgets/toolbox.cpp:2279
+#: ../src/widgets/toolbox.cpp:2277
 msgid "Number of corners of a polygon or star"
 msgstr "Количество вершин многоугольника или звезды"
 
-#: ../src/widgets/toolbox.cpp:2292
+#: ../src/widgets/toolbox.cpp:2290
 msgid "thin-ray star"
 msgstr "звезда с тонкими лучами"
 
-#: ../src/widgets/toolbox.cpp:2292
+#: ../src/widgets/toolbox.cpp:2290
 msgid "pentagram"
 msgstr "пентаграмма"
 
-#: ../src/widgets/toolbox.cpp:2292
+#: ../src/widgets/toolbox.cpp:2290
 msgid "hexagram"
 msgstr "гексаграмма"
 
-#: ../src/widgets/toolbox.cpp:2292
+#: ../src/widgets/toolbox.cpp:2290
 msgid "heptagram"
 msgstr "гептаграмма"
 
-#: ../src/widgets/toolbox.cpp:2292
+#: ../src/widgets/toolbox.cpp:2290
 msgid "octagram"
 msgstr "октограмма"
 
-#: ../src/widgets/toolbox.cpp:2292
+#: ../src/widgets/toolbox.cpp:2290
 msgid "regular polygon"
 msgstr "обычный многоугольник"
 
-#: ../src/widgets/toolbox.cpp:2295
+#: ../src/widgets/toolbox.cpp:2293
 msgid "Spoke ratio"
 msgstr "Отношение радиусов"
 
-#: ../src/widgets/toolbox.cpp:2295
+#: ../src/widgets/toolbox.cpp:2293
 msgid "Spoke ratio:"
 msgstr "Отношение радиусов:"
 
 #. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle.
 #. Base radius is the same for the closest handle.
-#: ../src/widgets/toolbox.cpp:2298
+#: ../src/widgets/toolbox.cpp:2296
 msgid "Base radius to tip radius ratio"
 msgstr "Отношение радиусов основания и вершины луча"
 
-#: ../src/widgets/toolbox.cpp:2316
+#: ../src/widgets/toolbox.cpp:2314
 msgid "stretched"
 msgstr "растянуто"
 
-#: ../src/widgets/toolbox.cpp:2316
+#: ../src/widgets/toolbox.cpp:2314
 msgid "twisted"
 msgstr "извилисто"
 
-#: ../src/widgets/toolbox.cpp:2316
+#: ../src/widgets/toolbox.cpp:2314
 msgid "slightly pinched"
 msgstr "слегка прищемлено"
 
-#: ../src/widgets/toolbox.cpp:2316
+#: ../src/widgets/toolbox.cpp:2314
 msgid "NOT rounded"
 msgstr "БЕЗ закругления"
 
-#: ../src/widgets/toolbox.cpp:2316
+#: ../src/widgets/toolbox.cpp:2314
 msgid "slightly rounded"
 msgstr "небольшое закругление"
 
-#: ../src/widgets/toolbox.cpp:2316
+#: ../src/widgets/toolbox.cpp:2314
 msgid "visibly rounded"
 msgstr "заметное закругление"
 
-#: ../src/widgets/toolbox.cpp:2316
+#: ../src/widgets/toolbox.cpp:2314
 msgid "well rounded"
 msgstr "порядочное закругление"
 
-#: ../src/widgets/toolbox.cpp:2316
+#: ../src/widgets/toolbox.cpp:2314
 msgid "amply rounded"
 msgstr "изрядное закругление"
 
-#: ../src/widgets/toolbox.cpp:2316
-#: ../src/widgets/toolbox.cpp:2331
+#: ../src/widgets/toolbox.cpp:2314
+#: ../src/widgets/toolbox.cpp:2329
 msgid "blown up"
 msgstr "безумное"
 
-#: ../src/widgets/toolbox.cpp:2319
+#: ../src/widgets/toolbox.cpp:2317
 msgid "Rounded"
 msgstr "Закругление"
 
-#: ../src/widgets/toolbox.cpp:2319
+#: ../src/widgets/toolbox.cpp:2317
 msgid "Rounded:"
 msgstr "Закругление:"
 
-#: ../src/widgets/toolbox.cpp:2319
+#: ../src/widgets/toolbox.cpp:2317
 msgid "How much rounded are the corners (0 for sharp)"
 msgstr "Насколько сглажены углы (0 — острые)"
 
-#: ../src/widgets/toolbox.cpp:2331
+#: ../src/widgets/toolbox.cpp:2329
 msgid "NOT randomized"
 msgstr "без случайности"
 
-#: ../src/widgets/toolbox.cpp:2331
+#: ../src/widgets/toolbox.cpp:2329
 msgid "slightly irregular"
 msgstr "едва беспорядочно"
 
-#: ../src/widgets/toolbox.cpp:2331
+#: ../src/widgets/toolbox.cpp:2329
 msgid "visibly randomized"
 msgstr "заметная случайность"
 
-#: ../src/widgets/toolbox.cpp:2331
+#: ../src/widgets/toolbox.cpp:2329
 msgid "strongly randomized"
 msgstr "изрядная случайность"
 
-#: ../src/widgets/toolbox.cpp:2334
+#: ../src/widgets/toolbox.cpp:2332
 msgid "Randomized"
 msgstr "Случайность"
 
-#: ../src/widgets/toolbox.cpp:2334
+#: ../src/widgets/toolbox.cpp:2332
 msgid "Randomized:"
 msgstr "Искажение:"
 
-#: ../src/widgets/toolbox.cpp:2334
+#: ../src/widgets/toolbox.cpp:2332
 msgid "Scatter randomly the corners and angles"
 msgstr "Случайным образом смещать вершины и вращать углы"
 
-#: ../src/widgets/toolbox.cpp:2349
-#: ../src/widgets/toolbox.cpp:3290
-#: ../src/widgets/toolbox.cpp:3563
-#: ../src/widgets/toolbox.cpp:6749
+#: ../src/widgets/toolbox.cpp:2347
+#: ../src/widgets/toolbox.cpp:3286
+#: ../src/widgets/toolbox.cpp:3546
+#: ../src/widgets/toolbox.cpp:6737
 msgid "Defaults"
 msgstr "По умолчанию"
 
-#: ../src/widgets/toolbox.cpp:2350
-#: ../src/widgets/toolbox.cpp:3291
+#: ../src/widgets/toolbox.cpp:2348
+#: ../src/widgets/toolbox.cpp:3287
 msgid "Reset shape parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
 msgstr "Сбросить параметры фигуры к значениям по умолчанию (параметры по умолчанию можно изменить в настройках Inkscape)"
 
-#: ../src/widgets/toolbox.cpp:2423
+#: ../src/widgets/toolbox.cpp:2421
 msgid "Change rectangle"
 msgstr "Удаление закругления"
 
-#: ../src/widgets/toolbox.cpp:2616
+#: ../src/widgets/toolbox.cpp:2614
 msgid "W:"
 msgstr "Ш:"
 
-#: ../src/widgets/toolbox.cpp:2616
+#: ../src/widgets/toolbox.cpp:2614
 msgid "Width of rectangle"
 msgstr "Ширина прямоугольника"
 
-#: ../src/widgets/toolbox.cpp:2633
+#: ../src/widgets/toolbox.cpp:2631
 msgid "H:"
 msgstr "Г:"
 
-#: ../src/widgets/toolbox.cpp:2633
+#: ../src/widgets/toolbox.cpp:2631
 msgid "Height of rectangle"
 msgstr "Высота прямоугольника"
 
-#: ../src/widgets/toolbox.cpp:2647
-#: ../src/widgets/toolbox.cpp:2662
+#: ../src/widgets/toolbox.cpp:2645
+#: ../src/widgets/toolbox.cpp:2660
 msgid "not rounded"
 msgstr "без закругления"
 
-#: ../src/widgets/toolbox.cpp:2650
+#: ../src/widgets/toolbox.cpp:2648
 msgid "Horizontal radius"
 msgstr "Горизонтальный радиус"
 
-#: ../src/widgets/toolbox.cpp:2650
+#: ../src/widgets/toolbox.cpp:2648
 msgid "Rx:"
 msgstr "Гор. радиус:"
 
-#: ../src/widgets/toolbox.cpp:2650
+#: ../src/widgets/toolbox.cpp:2648
 msgid "Horizontal radius of rounded corners"
 msgstr "Горизонтальный радиус закругленных углов"
 
-#: ../src/widgets/toolbox.cpp:2665
+#: ../src/widgets/toolbox.cpp:2663
 msgid "Vertical radius"
 msgstr "Вертикальный радиус"
 
-#: ../src/widgets/toolbox.cpp:2665
+#: ../src/widgets/toolbox.cpp:2663
 msgid "Ry:"
 msgstr "Верт. радиус:"
 
-#: ../src/widgets/toolbox.cpp:2665
+#: ../src/widgets/toolbox.cpp:2663
 msgid "Vertical radius of rounded corners"
 msgstr "Вертикальный радиус закругленных углов"
 
-#: ../src/widgets/toolbox.cpp:2684
+#: ../src/widgets/toolbox.cpp:2682
 msgid "Not rounded"
 msgstr "Не закруглён"
 
-#: ../src/widgets/toolbox.cpp:2685
+#: ../src/widgets/toolbox.cpp:2683
 msgid "Make corners sharp"
 msgstr "Убрать закругление углов"
 
 #. TODO: use the correct axis here, too
-#: ../src/widgets/toolbox.cpp:2875
+#: ../src/widgets/toolbox.cpp:2871
 msgid "3D Box: Change perspective (angle of infinite axis)"
 msgstr "Паралеллепипед: смена перспективы"
 
-#: ../src/widgets/toolbox.cpp:2945
+#: ../src/widgets/toolbox.cpp:2941
 msgid "Angle in X direction"
 msgstr "Угол в направлении X"
 
 #. Translators: PL is short for 'perspective line'
-#: ../src/widgets/toolbox.cpp:2947
+#: ../src/widgets/toolbox.cpp:2943
 msgid "Angle of PLs in X direction"
 msgstr "Угол ПЛ в направлении X"
 
 #. Translators: VP is short for 'vanishing point'
-#: ../src/widgets/toolbox.cpp:2969
+#: ../src/widgets/toolbox.cpp:2965
 msgid "State of VP in X direction"
 msgstr "Состояние точек схода в направлении X"
 
-#: ../src/widgets/toolbox.cpp:2970
+#: ../src/widgets/toolbox.cpp:2966
 msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)"
 msgstr "Переключить точку схода в направлении X между «конечной» и «бесконечной» (=параллельной)"
 
-#: ../src/widgets/toolbox.cpp:2985
+#: ../src/widgets/toolbox.cpp:2981
 msgid "Angle in Y direction"
 msgstr "Угол в направлении Y"
 
-#: ../src/widgets/toolbox.cpp:2985
+#: ../src/widgets/toolbox.cpp:2981
 msgid "Angle Y:"
 msgstr "Угол Y:"
 
 #. Translators: PL is short for 'perspective line'
-#: ../src/widgets/toolbox.cpp:2987
+#: ../src/widgets/toolbox.cpp:2983
 msgid "Angle of PLs in Y direction"
 msgstr "Угол ПЛ в направлении Y"
 
 #. Translators: VP is short for 'vanishing point'
-#: ../src/widgets/toolbox.cpp:3008
+#: ../src/widgets/toolbox.cpp:3004
 msgid "State of VP in Y direction"
 msgstr "Состояние точек схода в направлении Y"
 
-#: ../src/widgets/toolbox.cpp:3009
+#: ../src/widgets/toolbox.cpp:3005
 msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)"
 msgstr "Переключить точку схода в направлении Y между «конечной» и «бесконечной» (=параллельной)"
 
-#: ../src/widgets/toolbox.cpp:3024
+#: ../src/widgets/toolbox.cpp:3020
 msgid "Angle in Z direction"
 msgstr "Угол в направлении Z"
 
 #. Translators: PL is short for 'perspective line'
-#: ../src/widgets/toolbox.cpp:3026
+#: ../src/widgets/toolbox.cpp:3022
 msgid "Angle of PLs in Z direction"
 msgstr "Угол ПЛ в направлении Z"
 
 #. Translators: VP is short for 'vanishing point'
-#: ../src/widgets/toolbox.cpp:3047
+#: ../src/widgets/toolbox.cpp:3043
 msgid "State of VP in Z direction"
 msgstr "Состояние точек схода в направлении Z"
 
-#: ../src/widgets/toolbox.cpp:3048
+#: ../src/widgets/toolbox.cpp:3044
 msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)"
 msgstr "Переключить точку схода в направлении Z между «конечной» и «бесконечной» (=параллельной)"
 
-#: ../src/widgets/toolbox.cpp:3106
+#: ../src/widgets/toolbox.cpp:3102
 msgid "Change spiral"
 msgstr "Сброс изменений спирали"
 
-#: ../src/widgets/toolbox.cpp:3247
+#: ../src/widgets/toolbox.cpp:3243
 msgid "just a curve"
 msgstr "просто кривая"
 
-#: ../src/widgets/toolbox.cpp:3247
+#: ../src/widgets/toolbox.cpp:3243
 msgid "one full revolution"
 msgstr "один полный оборот"
 
-#: ../src/widgets/toolbox.cpp:3250
+#: ../src/widgets/toolbox.cpp:3246
 msgid "Number of turns"
 msgstr "Количество поворотов"
 
-#: ../src/widgets/toolbox.cpp:3250
+#: ../src/widgets/toolbox.cpp:3246
 msgid "Turns:"
 msgstr "Витков:"
 
-#: ../src/widgets/toolbox.cpp:3250
+#: ../src/widgets/toolbox.cpp:3246
 msgid "Number of revolutions"
 msgstr "Количество витков"
 
-#: ../src/widgets/toolbox.cpp:3261
+#: ../src/widgets/toolbox.cpp:3257
 msgid "circle"
 msgstr "окружность"
 
-#: ../src/widgets/toolbox.cpp:3261
+#: ../src/widgets/toolbox.cpp:3257
 msgid "edge is much denser"
 msgstr "край намного плотнее"
 
-#: ../src/widgets/toolbox.cpp:3261
+#: ../src/widgets/toolbox.cpp:3257
 msgid "edge is denser"
 msgstr "центр плотнее"
 
-#: ../src/widgets/toolbox.cpp:3261
+#: ../src/widgets/toolbox.cpp:3257
 msgid "even"
 msgstr "ровная спираль"
 
-#: ../src/widgets/toolbox.cpp:3261
+#: ../src/widgets/toolbox.cpp:3257
 msgid "center is denser"
 msgstr "центр плотнее"
 
-#: ../src/widgets/toolbox.cpp:3261
+#: ../src/widgets/toolbox.cpp:3257
 msgid "center is much denser"
 msgstr "центр намного плотнее"
 
-#: ../src/widgets/toolbox.cpp:3264
+#: ../src/widgets/toolbox.cpp:3260
 msgid "Divergence"
 msgstr "Отклонение"
 
-#: ../src/widgets/toolbox.cpp:3264
+#: ../src/widgets/toolbox.cpp:3260
 msgid "Divergence:"
 msgstr "Нелинейность:"
 
-#: ../src/widgets/toolbox.cpp:3264
+#: ../src/widgets/toolbox.cpp:3260
 msgid "How much denser/sparser are outer revolutions; 1 = uniform"
 msgstr "Насколько постепенно увеличивать или уменьшать расстояния между витками; 1 = равномерно"
 
-#: ../src/widgets/toolbox.cpp:3275
+#: ../src/widgets/toolbox.cpp:3271
 msgid "starts from center"
 msgstr "начинается из центра"
 
-#: ../src/widgets/toolbox.cpp:3275
+#: ../src/widgets/toolbox.cpp:3271
 msgid "starts mid-way"
 msgstr "начинается с середины"
 
-#: ../src/widgets/toolbox.cpp:3275
+#: ../src/widgets/toolbox.cpp:3271
 msgid "starts near edge"
 msgstr "начинается с края"
 
-#: ../src/widgets/toolbox.cpp:3278
+#: ../src/widgets/toolbox.cpp:3274
 msgid "Inner radius"
 msgstr "Внутренний радиус"
 
-#: ../src/widgets/toolbox.cpp:3278
+#: ../src/widgets/toolbox.cpp:3274
 msgid "Inner radius:"
 msgstr "Внутренний радиус:"
 
-#: ../src/widgets/toolbox.cpp:3278
+#: ../src/widgets/toolbox.cpp:3274
 msgid "Radius of the innermost revolution (relative to the spiral size)"
 msgstr "Радиус первого изнутри витка (относительно размера спирали)"
 
-#: ../src/widgets/toolbox.cpp:3351
+#: ../src/widgets/toolbox.cpp:3347
 msgid "Bezier"
 msgstr "Кривые Безье"
 
-#: ../src/widgets/toolbox.cpp:3352
+#: ../src/widgets/toolbox.cpp:3348
 msgid "Create regular Bezier path"
 msgstr "Рисовать кривую Безье"
 
-#: ../src/widgets/toolbox.cpp:3358
+#: ../src/widgets/toolbox.cpp:3354
 msgid "Spiro"
 msgstr "Кривые Спиро"
 
-#: ../src/widgets/toolbox.cpp:3359
+#: ../src/widgets/toolbox.cpp:3355
 msgid "Create Spiro path"
 msgstr "Рисовать кривую Спиро"
 
-#: ../src/widgets/toolbox.cpp:3366
+#: ../src/widgets/toolbox.cpp:3362
 msgid "Zigzag"
 msgstr "Зигзаги"
 
-#: ../src/widgets/toolbox.cpp:3367
+#: ../src/widgets/toolbox.cpp:3363
 msgid "Create a sequence of straight line segments"
 msgstr "Рисовать последовательность прямых отрезков"
 
-#: ../src/widgets/toolbox.cpp:3373
+#: ../src/widgets/toolbox.cpp:3369
 msgid "Paraxial"
 msgstr "Параксиальный режим"
 
-#: ../src/widgets/toolbox.cpp:3374
+#: ../src/widgets/toolbox.cpp:3370
 msgid "Create a sequence of paraxial line segments"
 msgstr "Рисовать последовательность прямых отрезков"
 
-#: ../src/widgets/toolbox.cpp:3382
-#: ../src/widgets/toolbox.cpp:3778
+#: ../src/widgets/toolbox.cpp:3378
+#: ../src/widgets/toolbox.cpp:3769
 #: ../share/extensions/extrude.inx.h:3
 msgid "Mode:"
 msgstr "Режим:"
 
-#: ../src/widgets/toolbox.cpp:3411
+#: ../src/widgets/toolbox.cpp:3407
 msgid "Triangle in"
 msgstr "Декрещендо"
 
-#: ../src/widgets/toolbox.cpp:3412
+#: ../src/widgets/toolbox.cpp:3408
 msgid "Triangle out"
 msgstr "Крещендо"
 
-#: ../src/widgets/toolbox.cpp:3414
+#: ../src/widgets/toolbox.cpp:3410
 msgid "From clipboard"
 msgstr "Из буфера обмена"
 
-#: ../src/widgets/toolbox.cpp:3439
-#: ../src/widgets/toolbox.cpp:3440
+#: ../src/widgets/toolbox.cpp:3435
+#: ../src/widgets/toolbox.cpp:3436
 msgid "Shape:"
 msgstr "Форма:"
 
-#: ../src/widgets/toolbox.cpp:3534
+#: ../src/widgets/toolbox.cpp:3520
 msgid "(many nodes, rough)"
 msgstr "(много узлов, грубые линии)"
 
-#: ../src/widgets/toolbox.cpp:3534
+#: ../src/widgets/toolbox.cpp:3520
+#: ../src/widgets/toolbox.cpp:3640
 #: ../src/widgets/toolbox.cpp:3657
-#: ../src/widgets/toolbox.cpp:3674
-#: ../src/widgets/toolbox.cpp:3869
-#: ../src/widgets/toolbox.cpp:4248
-#: ../src/widgets/toolbox.cpp:4281
-#: ../src/widgets/toolbox.cpp:5260
+#: ../src/widgets/toolbox.cpp:3860
+#: ../src/widgets/toolbox.cpp:4230
+#: ../src/widgets/toolbox.cpp:4263
+#: ../src/widgets/toolbox.cpp:5249
 msgid "(default)"
 msgstr "(по умолчанию)"
 
-#: ../src/widgets/toolbox.cpp:3534
+#: ../src/widgets/toolbox.cpp:3520
 msgid "(few nodes, smooth)"
 msgstr "(мало узлов, плавные линии)"
 
-#: ../src/widgets/toolbox.cpp:3537
+#: ../src/widgets/toolbox.cpp:3523
 msgid "Smoothing:"
 msgstr "Сглаживание:"
 
-#: ../src/widgets/toolbox.cpp:3537
+#: ../src/widgets/toolbox.cpp:3523
 msgid "Smoothing: "
 msgstr "Сглаживание:"
 
-#: ../src/widgets/toolbox.cpp:3538
+#: ../src/widgets/toolbox.cpp:3524
 msgid "How much smoothing (simplifying) is applied to the line"
 msgstr "Как сильно сглаживается (упрощается) рисуемая от руки линия"
 
-#: ../src/widgets/toolbox.cpp:3564
+#: ../src/widgets/toolbox.cpp:3547
 msgid "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
 msgstr "Сбросить параметры карандаша к значениям по умолчанию (параметры по умолчанию можно изменить в диалоге настройки Inkscape)"
 
 #. Width
-#: ../src/widgets/toolbox.cpp:3657
+#: ../src/widgets/toolbox.cpp:3640
 msgid "(pinch tweak)"
 msgstr "(узкая кисть)"
 
-#: ../src/widgets/toolbox.cpp:3657
+#: ../src/widgets/toolbox.cpp:3640
 msgid "(broad tweak)"
 msgstr "(широкая кисть)"
 
-#: ../src/widgets/toolbox.cpp:3660
+#: ../src/widgets/toolbox.cpp:3643
 msgid "The width of the tweak area (relative to the visible canvas area)"
 msgstr "Ширина области коррекции (относительно видимой области холста)"
 
 #. Force
-#: ../src/widgets/toolbox.cpp:3674
+#: ../src/widgets/toolbox.cpp:3657
 msgid "(minimum force)"
 msgstr "(минимальная)"
 
-#: ../src/widgets/toolbox.cpp:3674
+#: ../src/widgets/toolbox.cpp:3657
 msgid "(maximum force)"
 msgstr "(максимальная)"
 
-#: ../src/widgets/toolbox.cpp:3677
+#: ../src/widgets/toolbox.cpp:3660
 msgid "Force"
 msgstr "Сила"
 
-#: ../src/widgets/toolbox.cpp:3677
+#: ../src/widgets/toolbox.cpp:3660
 msgid "Force:"
 msgstr "Сила:"
 
-#: ../src/widgets/toolbox.cpp:3677
+#: ../src/widgets/toolbox.cpp:3660
 msgid "The force of the tweak action"
 msgstr "Сила действия инструмента коррекции"
 
-#: ../src/widgets/toolbox.cpp:3695
+#: ../src/widgets/toolbox.cpp:3678
 msgid "Move mode"
 msgstr "Перемещение объектов"
 
-#: ../src/widgets/toolbox.cpp:3696
+#: ../src/widgets/toolbox.cpp:3679
 msgid "Move objects in any direction"
 msgstr "Перемещать объекты в любом направлении"
 
-#: ../src/widgets/toolbox.cpp:3702
+#: ../src/widgets/toolbox.cpp:3685
 msgid "Move in/out mode"
 msgstr "Приближение и отталкивание объектов"
 
-#: ../src/widgets/toolbox.cpp:3703
+#: ../src/widgets/toolbox.cpp:3686
 msgid "Move objects towards cursor; with Shift from cursor"
 msgstr "Перемещать объекты по направлению к курсору, с Shift — в направлении от курсора"
 
-#: ../src/widgets/toolbox.cpp:3709
+#: ../src/widgets/toolbox.cpp:3692
 msgid "Move jitter mode"
 msgstr "Случайное перемещение объектов"
 
-#: ../src/widgets/toolbox.cpp:3710
+#: ../src/widgets/toolbox.cpp:3693
 msgid "Move objects in random directions"
 msgstr "Перемещать объекты в случайных направлениях"
 
-#: ../src/widgets/toolbox.cpp:3716
+#: ../src/widgets/toolbox.cpp:3699
 msgid "Scale mode"
 msgstr "Масштабирование объектов"
 
-#: ../src/widgets/toolbox.cpp:3717
+#: ../src/widgets/toolbox.cpp:3700
 msgid "Scale objects, with Shift scale up"
 msgstr "Менять размер объектов, с Shift — увеличивать"
 
-#: ../src/widgets/toolbox.cpp:3723
+#: ../src/widgets/toolbox.cpp:3706
 msgid "Rotate mode"
 msgstr "Вращение объектов"
 
-#: ../src/widgets/toolbox.cpp:3724
+#: ../src/widgets/toolbox.cpp:3707
 msgid "Rotate objects, with Shift counterclockwise"
 msgstr "Вращать объекты, с Shift — против часовой стрелки"
 
-#: ../src/widgets/toolbox.cpp:3730
+#: ../src/widgets/toolbox.cpp:3713
 msgid "Duplicate/delete mode"
 msgstr "Дублирование и удаление объектов"
 
-#: ../src/widgets/toolbox.cpp:3731
+#: ../src/widgets/toolbox.cpp:3714
 msgid "Duplicate objects, with Shift delete"
 msgstr "Дублировать объекты, с Shift — удалять"
 
-#: ../src/widgets/toolbox.cpp:3737
+#: ../src/widgets/toolbox.cpp:3720
 msgid "Push mode"
 msgstr "Толкание контуров"
 
-#: ../src/widgets/toolbox.cpp:3738
+#: ../src/widgets/toolbox.cpp:3721
 msgid "Push parts of paths in any direction"
 msgstr "Выталкивать части контуров"
 
-#: ../src/widgets/toolbox.cpp:3744
+#: ../src/widgets/toolbox.cpp:3727
 msgid "Shrink/grow mode"
 msgstr "Сокращение и наращивание объема контуров"
 
-#: ../src/widgets/toolbox.cpp:3745
+#: ../src/widgets/toolbox.cpp:3728
 msgid "Shrink (inset) parts of paths; with Shift grow (outset)"
 msgstr "Сокращать объем контуров (втягивать их), с Shift — наращивать его (раздувать контуры)"
 
-#: ../src/widgets/toolbox.cpp:3751
+#: ../src/widgets/toolbox.cpp:3734
 msgid "Attract/repel mode"
 msgstr "Притяжение и отталкивание контуров"
 
-#: ../src/widgets/toolbox.cpp:3752
-#, fuzzy
+#: ../src/widgets/toolbox.cpp:3735
 msgid "Attract parts of paths towards cursor; with Shift from cursor"
-msgstr "Ð\9fÑ\80иÑ\82Ñ\8fжение Ñ\87аÑ\81Ñ\82ей ÐºÐ¾Ð½Ñ\82Ñ\83Ñ\80ов Ðº ÐºÑ\83Ñ\80Ñ\81оÑ\80Ñ\83"
+msgstr "Ð\9fÑ\80иÑ\82Ñ\8fгиваÑ\82Ñ\8c Ñ\87аÑ\81Ñ\82и ÐºÐ¾Ð½Ñ\82Ñ\83Ñ\80ов Ðº ÐºÑ\83Ñ\80Ñ\81оÑ\80Ñ\83; Ñ\81 Shift â\80\94 Ð¾Ñ\82Ñ\82алкиваÑ\82Ñ\8c Ð¸Ñ\85 Ð¾Ñ\82 ÐºÑ\83Ñ\80Ñ\81оÑ\80а"
 
-#: ../src/widgets/toolbox.cpp:3758
+#: ../src/widgets/toolbox.cpp:3741
 msgid "Roughen mode"
 msgstr "Огрубление контуров"
 
-#: ../src/widgets/toolbox.cpp:3759
+#: ../src/widgets/toolbox.cpp:3742
 msgid "Roughen parts of paths"
 msgstr "Огрублять части контуров, рисовать заусенцы"
 
-#: ../src/widgets/toolbox.cpp:3765
+#: ../src/widgets/toolbox.cpp:3748
 msgid "Color paint mode"
 msgstr "Раскрашивание объектов"
 
-#: ../src/widgets/toolbox.cpp:3766
+#: ../src/widgets/toolbox.cpp:3749
 msgid "Paint the tool's color upon selected objects"
 msgstr "Рисовать цветом инструмента по выбранным объектам"
 
-#: ../src/widgets/toolbox.cpp:3772
+#: ../src/widgets/toolbox.cpp:3755
 msgid "Color jitter mode"
 msgstr "Перебор цветов для объектов"
 
-#: ../src/widgets/toolbox.cpp:3773
+#: ../src/widgets/toolbox.cpp:3756
 msgid "Jitter the colors of selected objects"
 msgstr "Перебирать цвета выделенных объектов"
 
-#: ../src/widgets/toolbox.cpp:3799
+#: ../src/widgets/toolbox.cpp:3762
+msgid "Blur mode"
+msgstr "Размывание"
+
+#: ../src/widgets/toolbox.cpp:3763
+msgid "Blur selected objects more; with Shift, blur less"
+msgstr "Размывать объекты, с Shift — уменьшать размытость"
+
+#: ../src/widgets/toolbox.cpp:3790
 msgid "Channels:"
 msgstr "Каналы:"
 
-#: ../src/widgets/toolbox.cpp:3810
+#: ../src/widgets/toolbox.cpp:3801
 msgid "In color mode, act on objects' hue"
 msgstr "В режиме изменения цвета влиять на тон объектов"
 
 #. TRANSLATORS:  "H" here stands for hue
-#: ../src/widgets/toolbox.cpp:3814
+#: ../src/widgets/toolbox.cpp:3805
 msgid "H"
 msgstr "H"
 
-#: ../src/widgets/toolbox.cpp:3825
+#: ../src/widgets/toolbox.cpp:3816
 msgid "In color mode, act on objects' saturation"
 msgstr "В режиме изменения цвета влиять на насыщенность объектов"
 
 #. TRANSLATORS: "S" here stands for Saturation
-#: ../src/widgets/toolbox.cpp:3829
+#: ../src/widgets/toolbox.cpp:3820
 msgid "S"
 msgstr "S"
 
-#: ../src/widgets/toolbox.cpp:3840
+#: ../src/widgets/toolbox.cpp:3831
 msgid "In color mode, act on objects' lightness"
 msgstr "В режиме изменения цвета влиять на яркость объектов"
 
 #. TRANSLATORS: "L" here stands for Lightness
-#: ../src/widgets/toolbox.cpp:3844
+#: ../src/widgets/toolbox.cpp:3835
 msgid "L"
 msgstr "L"
 
-#: ../src/widgets/toolbox.cpp:3855
+#: ../src/widgets/toolbox.cpp:3846
 msgid "In color mode, act on objects' opacity"
 msgstr "В режиме изменения цвета влиять на непрозрачность объектов"
 
 #. TRANSLATORS: "O" here stands for Opacity
-#: ../src/widgets/toolbox.cpp:3859
+#: ../src/widgets/toolbox.cpp:3850
 msgid "O"
 msgstr "O"
 
 #. Fidelity
-#: ../src/widgets/toolbox.cpp:3869
+#: ../src/widgets/toolbox.cpp:3860
 msgid "(rough, simplified)"
 msgstr "(грубо, упрощённо)"
 
-#: ../src/widgets/toolbox.cpp:3869
+#: ../src/widgets/toolbox.cpp:3860
 msgid "(fine, but many nodes)"
 msgstr "(точно, но много узлов)"
 
-#: ../src/widgets/toolbox.cpp:3872
+#: ../src/widgets/toolbox.cpp:3863
 msgid "Fidelity"
 msgstr "Точность"
 
-#: ../src/widgets/toolbox.cpp:3872
+#: ../src/widgets/toolbox.cpp:3863
 msgid "Fidelity:"
 msgstr "Точность:"
 
-#: ../src/widgets/toolbox.cpp:3873
+#: ../src/widgets/toolbox.cpp:3864
 msgid "Low fidelity simplifies paths; high fidelity preserves path features but may generate a lot of new nodes"
 msgstr "Низкая точность упрощает контуры; высокая точность сохраняет общую форму неизменной части контура, но добавляет новые узлы"
 
-#: ../src/widgets/toolbox.cpp:3890
-#: ../src/widgets/toolbox.cpp:4399
+#: ../src/widgets/toolbox.cpp:3881
+#: ../src/widgets/toolbox.cpp:4381
 msgid "Pressure"
 msgstr "Нажим"
 
-#: ../src/widgets/toolbox.cpp:3891
+#: ../src/widgets/toolbox.cpp:3882
 msgid "Use the pressure of the input device to alter the force of tweak action"
 msgstr "Нажим устройства ввода изменяет силу корректирующего действия"
 
-#: ../src/widgets/toolbox.cpp:4074
+#: ../src/widgets/toolbox.cpp:4062
 msgid "No preset"
 msgstr "Не выбрана"
 
-#: ../src/widgets/toolbox.cpp:4093
+#: ../src/widgets/toolbox.cpp:4080
 msgid "Save..."
 msgstr "Сохранить..."
 
 #. Width
-#: ../src/widgets/toolbox.cpp:4248
-#: ../src/widgets/toolbox.cpp:5260
+#: ../src/widgets/toolbox.cpp:4230
+#: ../src/widgets/toolbox.cpp:5249
 msgid "(hairline)"
 msgstr "(волосок)"
 
-#: ../src/widgets/toolbox.cpp:4248
-#: ../src/widgets/toolbox.cpp:5260
+#: ../src/widgets/toolbox.cpp:4230
+#: ../src/widgets/toolbox.cpp:5249
 msgid "(broad stroke)"
 msgstr "(широкий штрих)"
 
-#: ../src/widgets/toolbox.cpp:4251
-#: ../src/widgets/toolbox.cpp:5263
+#: ../src/widgets/toolbox.cpp:4233
+#: ../src/widgets/toolbox.cpp:5252
 msgid "Pen Width"
 msgstr "Толщина пера"
 
-#: ../src/widgets/toolbox.cpp:4252
+#: ../src/widgets/toolbox.cpp:4234
 msgid "The width of the calligraphic pen (relative to the visible canvas area)"
 msgstr "Ширина каллиграфического пера (относительно видимой области холста)"
 
 #. Thinning
-#: ../src/widgets/toolbox.cpp:4265
+#: ../src/widgets/toolbox.cpp:4247
 msgid "(speed blows up stroke)"
 msgstr "(скорость утолщает штрих)"
 
-#: ../src/widgets/toolbox.cpp:4265
+#: ../src/widgets/toolbox.cpp:4247
 msgid "(slight widening)"
 msgstr "(легкое утолщение)"
 
-#: ../src/widgets/toolbox.cpp:4265
+#: ../src/widgets/toolbox.cpp:4247
 msgid "(constant width)"
 msgstr "(постоянная ширина)"
 
-#: ../src/widgets/toolbox.cpp:4265
+#: ../src/widgets/toolbox.cpp:4247
 msgid "(slight thinning, default)"
 msgstr "(легкое утоньшение, по умолчанию)"
 
-#: ../src/widgets/toolbox.cpp:4265
+#: ../src/widgets/toolbox.cpp:4247
 msgid "(speed deflates stroke)"
 msgstr "(скорость обнуляет штрих)"
 
-#: ../src/widgets/toolbox.cpp:4268
+#: ../src/widgets/toolbox.cpp:4250
 msgid "Stroke Thinning"
 msgstr "Утоньшение штриха"
 
-#: ../src/widgets/toolbox.cpp:4268
+#: ../src/widgets/toolbox.cpp:4250
 msgid "Thinning:"
 msgstr "Сужение:"
 
-#: ../src/widgets/toolbox.cpp:4269
+#: ../src/widgets/toolbox.cpp:4251
 msgid "How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 makes them broader, 0 makes width independent of velocity)"
 msgstr "Как сильно скорость сужает штрих (> 0: быстрые штрихи уже, < 0: быстрые штрихи шире; при 0 ширина штриха не зависит от скорости)"
 
 #. Angle
-#: ../src/widgets/toolbox.cpp:4281
+#: ../src/widgets/toolbox.cpp:4263
 msgid "(left edge up)"
 msgstr "(левый угол вверху)"
 
-#: ../src/widgets/toolbox.cpp:4281
+#: ../src/widgets/toolbox.cpp:4263
 msgid "(horizontal)"
 msgstr "(перо горизонтально)"
 
-#: ../src/widgets/toolbox.cpp:4281
+#: ../src/widgets/toolbox.cpp:4263
 msgid "(right edge up)"
 msgstr "(правый угол вверху)"
 
-#: ../src/widgets/toolbox.cpp:4284
+#: ../src/widgets/toolbox.cpp:4266
 msgid "Pen Angle"
 msgstr "Угол пера"
 
-#: ../src/widgets/toolbox.cpp:4284
+#: ../src/widgets/toolbox.cpp:4266
 msgid "Angle:"
 msgstr "Угол:"
 
-#: ../src/widgets/toolbox.cpp:4285
+#: ../src/widgets/toolbox.cpp:4267
 msgid "The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if fixation = 0)"
 msgstr "Угол пера (в градусах; 0 = горизонтально; при нулевой фиксации значения не имеет)"
 
 #. Fixation
-#: ../src/widgets/toolbox.cpp:4299
+#: ../src/widgets/toolbox.cpp:4281
 msgid "(perpendicular to stroke, \"brush\")"
 msgstr "(перпендикулярно штриху)"
 
-#: ../src/widgets/toolbox.cpp:4299
+#: ../src/widgets/toolbox.cpp:4281
 msgid "(almost fixed, default)"
 msgstr "(почти полная, значение по умолчанию)"
 
-#: ../src/widgets/toolbox.cpp:4299
+#: ../src/widgets/toolbox.cpp:4281
 msgid "(fixed by Angle, \"pen\")"
 msgstr "(угол зафиксирован)"
 
-#: ../src/widgets/toolbox.cpp:4302
+#: ../src/widgets/toolbox.cpp:4284
 msgid "Fixation"
 msgstr "Фиксация"
 
-#: ../src/widgets/toolbox.cpp:4302
+#: ../src/widgets/toolbox.cpp:4284
 msgid "Fixation:"
 msgstr "Фиксация:"
 
-#: ../src/widgets/toolbox.cpp:4303
-#, fuzzy
+#: ../src/widgets/toolbox.cpp:4285
 msgid "Angle behavior (0 = nib always perpendicular to stroke direction, 100 = fixed angle)"
-msgstr "Фиксация угла (0 = перо всегда перпендикулярно направлению штриха, 1 = угол не меняется)"
+msgstr "Фиксация угла (0 = перо всегда перпендикулярно направлению штриха, 100 = угол не меняется)"
 
 #. Cap Rounding
-#: ../src/widgets/toolbox.cpp:4315
+#: ../src/widgets/toolbox.cpp:4297
 msgid "(blunt caps, default)"
 msgstr "(плоские концы, значение по умолчанию)"
 
-#: ../src/widgets/toolbox.cpp:4315
+#: ../src/widgets/toolbox.cpp:4297
 msgid "(slightly bulging)"
 msgstr "(слегка закругленные)"
 
-#: ../src/widgets/toolbox.cpp:4315
+#: ../src/widgets/toolbox.cpp:4297
 msgid "(approximately round)"
 msgstr "(примерно круглые)"
 
-#: ../src/widgets/toolbox.cpp:4315
+#: ../src/widgets/toolbox.cpp:4297
 msgid "(long protruding caps)"
 msgstr "(округлые, далеко выдающиеся концы)"
 
-#: ../src/widgets/toolbox.cpp:4319
+#: ../src/widgets/toolbox.cpp:4301
 msgid "Cap rounding"
 msgstr "Закругление концов"
 
-#: ../src/widgets/toolbox.cpp:4319
+#: ../src/widgets/toolbox.cpp:4301
 msgid "Caps:"
 msgstr "Концы:"
 
-#: ../src/widgets/toolbox.cpp:4320
+#: ../src/widgets/toolbox.cpp:4302
 msgid "Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = round caps)"
 msgstr "Увеличение значения дает далеко выдающиеся концы (0=без концов, 1=округлые концы)"
 
 #. Tremor
-#: ../src/widgets/toolbox.cpp:4332
+#: ../src/widgets/toolbox.cpp:4314
 msgid "(smooth line)"
 msgstr "(гладкая линия)"
 
-#: ../src/widgets/toolbox.cpp:4332
+#: ../src/widgets/toolbox.cpp:4314
 msgid "(slight tremor)"
 msgstr "(легкое дрожание)"
 
-#: ../src/widgets/toolbox.cpp:4332
+#: ../src/widgets/toolbox.cpp:4314
 msgid "(noticeable tremor)"
 msgstr "(заметное дрожание)"
 
-#: ../src/widgets/toolbox.cpp:4332
+#: ../src/widgets/toolbox.cpp:4314
 msgid "(maximum tremor)"
 msgstr "(максимальное дрожание)"
 
-#: ../src/widgets/toolbox.cpp:4335
+#: ../src/widgets/toolbox.cpp:4317
 msgid "Stroke Tremor"
 msgstr "Дрожание штриха"
 
-#: ../src/widgets/toolbox.cpp:4335
+#: ../src/widgets/toolbox.cpp:4317
 msgid "Tremor:"
 msgstr "Дрожание:"
 
-#: ../src/widgets/toolbox.cpp:4336
+#: ../src/widgets/toolbox.cpp:4318
 msgid "Increase to make strokes rugged and trembling"
 msgstr "Увеличение значения делает штрихи дрожащими"
 
 #. Wiggle
-#: ../src/widgets/toolbox.cpp:4350
+#: ../src/widgets/toolbox.cpp:4332
 msgid "(no wiggle)"
 msgstr "(без виляния)"
 
-#: ../src/widgets/toolbox.cpp:4350
+#: ../src/widgets/toolbox.cpp:4332
 msgid "(slight deviation)"
 msgstr "(легкое отклонение)"
 
-#: ../src/widgets/toolbox.cpp:4350
+#: ../src/widgets/toolbox.cpp:4332
 msgid "(wild waves and curls)"
 msgstr "(сумасшедшее вихляние)"
 
-#: ../src/widgets/toolbox.cpp:4353
+#: ../src/widgets/toolbox.cpp:4335
 msgid "Pen Wiggle"
 msgstr "Виляние пером"
 
-#: ../src/widgets/toolbox.cpp:4353
+#: ../src/widgets/toolbox.cpp:4335
 msgid "Wiggle:"
 msgstr "Виляние:"
 
-#: ../src/widgets/toolbox.cpp:4354
+#: ../src/widgets/toolbox.cpp:4336
 msgid "Increase to make the pen waver and wiggle"
 msgstr "Увеличение значения делает штрихи виляющими"
 
 #. Mass
-#: ../src/widgets/toolbox.cpp:4367
+#: ../src/widgets/toolbox.cpp:4349
 msgid "(no inertia)"
 msgstr "(без инерции)"
 
-#: ../src/widgets/toolbox.cpp:4367
+#: ../src/widgets/toolbox.cpp:4349
 msgid "(slight smoothing, default)"
 msgstr "(легкое отставание, по умолчанию)"
 
-#: ../src/widgets/toolbox.cpp:4367
+#: ../src/widgets/toolbox.cpp:4349
 msgid "(noticeable lagging)"
 msgstr "(заметное отставание)"
 
-#: ../src/widgets/toolbox.cpp:4367
+#: ../src/widgets/toolbox.cpp:4349
 msgid "(maximum inertia)"
 msgstr "(максимальная инерция)"
 
-#: ../src/widgets/toolbox.cpp:4370
+#: ../src/widgets/toolbox.cpp:4352
 msgid "Pen Mass"
 msgstr "Масса пера"
 
-#: ../src/widgets/toolbox.cpp:4370
+#: ../src/widgets/toolbox.cpp:4352
 msgid "Mass:"
 msgstr "Масса:"
 
-#: ../src/widgets/toolbox.cpp:4371
+#: ../src/widgets/toolbox.cpp:4353
 msgid "Increase to make the pen drag behind, as if slowed by inertia"
 msgstr "Увеличение значения затормаживает перо, словно оно очень инертно"
 
-#: ../src/widgets/toolbox.cpp:4386
+#: ../src/widgets/toolbox.cpp:4368
 msgid "Trace Background"
 msgstr "Трассировать фон"
 
-#: ../src/widgets/toolbox.cpp:4387
+#: ../src/widgets/toolbox.cpp:4369
 msgid "Trace the lightness of the background by the width of the pen (white - minimum width, black - maximum width)"
 msgstr "Трассировать освещенность фона толщиной линии пера (белый — минимальная толщина, черный — максимальная толщина)"
 
-#: ../src/widgets/toolbox.cpp:4400
+#: ../src/widgets/toolbox.cpp:4382
 msgid "Use the pressure of the input device to alter the width of the pen"
 msgstr "Нажим (pressure) устройства ввода изменяет ширину пера"
 
-#: ../src/widgets/toolbox.cpp:4412
+#: ../src/widgets/toolbox.cpp:4394
 msgid "Tilt"
 msgstr "Наклон"
 
-#: ../src/widgets/toolbox.cpp:4413
+#: ../src/widgets/toolbox.cpp:4395
 msgid "Use the tilt of the input device to alter the angle of the pen's nib"
 msgstr "Наклон (tilt) устройства ввода изменяет угол пера"
 
-#: ../src/widgets/toolbox.cpp:4426
+#: ../src/widgets/toolbox.cpp:4408
 msgid "Choose a preset"
 msgstr "Выберите предустановку"
 
-#: ../src/widgets/toolbox.cpp:4514
+#: ../src/widgets/toolbox.cpp:4496
 msgid "Arc: Change start/end"
 msgstr "Дуга: изменить начало/конец"
 
-#: ../src/widgets/toolbox.cpp:4578
+#: ../src/widgets/toolbox.cpp:4560
 msgid "Arc: Change open/closed"
 msgstr "Дуга: Изменить открытость/закрытость"
 
-#: ../src/widgets/toolbox.cpp:4704
+#: ../src/widgets/toolbox.cpp:4686
 msgid "Start:"
 msgstr "Начало:"
 
-#: ../src/widgets/toolbox.cpp:4705
+#: ../src/widgets/toolbox.cpp:4687
 msgid "The angle (in degrees) from the horizontal to the arc's start point"
 msgstr "Угол (в градусах) от горизонтали до начальной точки дуги"
 
-#: ../src/widgets/toolbox.cpp:4717
+#: ../src/widgets/toolbox.cpp:4699
 msgid "End:"
 msgstr "Конец:"
 
-#: ../src/widgets/toolbox.cpp:4718
+#: ../src/widgets/toolbox.cpp:4700
 msgid "The angle (in degrees) from the horizontal to the arc's end point"
 msgstr "Угол (в градусах) от горизонтали до конечной точки дуги"
 
-#: ../src/widgets/toolbox.cpp:4734
+#: ../src/widgets/toolbox.cpp:4716
 msgid "Closed arc"
 msgstr "Закрытая дуга"
 
-#: ../src/widgets/toolbox.cpp:4735
+#: ../src/widgets/toolbox.cpp:4717
 msgid "Switch to segment (closed shape with two radii)"
 msgstr "Переключиться на сегмент (закрытый эллипс с двумя радиусами)"
 
-#: ../src/widgets/toolbox.cpp:4741
+#: ../src/widgets/toolbox.cpp:4723
 msgid "Open Arc"
 msgstr "Открытая дуга"
 
-#: ../src/widgets/toolbox.cpp:4742
+#: ../src/widgets/toolbox.cpp:4724
 msgid "Switch to arc (unclosed shape)"
 msgstr "Переключиться на дугу (незакрытый эллипс)"
 
-#: ../src/widgets/toolbox.cpp:4765
+#: ../src/widgets/toolbox.cpp:4747
 msgid "Make whole"
 msgstr "Сделать целым"
 
-#: ../src/widgets/toolbox.cpp:4766
+#: ../src/widgets/toolbox.cpp:4748
 msgid "Make the shape a whole ellipse, not arc or segment"
 msgstr "Сделать фигуру целым эллипсом, а не дугой или сегментом"
 
-#: ../src/widgets/toolbox.cpp:4835
+#: ../src/widgets/toolbox.cpp:4817
 msgid "Opacity:"
 msgstr "Непрозрачность:"
 
-#: ../src/widgets/toolbox.cpp:4842
+#: ../src/widgets/toolbox.cpp:4824
 msgid "Pick opacity"
 msgstr "Снять непрозрачность"
 
-#: ../src/widgets/toolbox.cpp:4843
+#: ../src/widgets/toolbox.cpp:4825
 msgid "Pick both the color and the alpha (transparency) under cursor; otherwise, pick only the visible color premultiplied by alpha"
 msgstr "Снимать значение альфа-канала (полупрозрачности) под курсором; если отключено, снимается только видимый цвет"
 
-#: ../src/widgets/toolbox.cpp:4846
+#: ../src/widgets/toolbox.cpp:4828
 msgid "Pick"
 msgstr "Снять"
 
-#: ../src/widgets/toolbox.cpp:4855
+#: ../src/widgets/toolbox.cpp:4837
 msgid "Assign opacity"
 msgstr "Назначить непрозрачность"
 
-#: ../src/widgets/toolbox.cpp:4856
+#: ../src/widgets/toolbox.cpp:4838
 msgid "If alpha was picked, assign it to selection as fill or stroke transparency"
 msgstr "Если полупрозрачность снята, назначать её заливке или обводке в выделении"
 
-#: ../src/widgets/toolbox.cpp:4859
+#: ../src/widgets/toolbox.cpp:4841
 msgid "Assign"
 msgstr "Назначить"
 
-#: ../src/widgets/toolbox.cpp:5110
+#: ../src/widgets/toolbox.cpp:5092
 msgid "All inactive"
 msgstr "Все неактивны"
 
-#: ../src/widgets/toolbox.cpp:5111
+#: ../src/widgets/toolbox.cpp:5093
 msgid "No geometric tool is active"
 msgstr "Ни один инструмент создания геометрических конструкций не выбран"
 
-#: ../src/widgets/toolbox.cpp:5112
+#: ../src/widgets/toolbox.cpp:5094
 msgid "all_inactive"
 msgstr "все_неактивны"
 
-#: ../src/widgets/toolbox.cpp:5144
-#, fuzzy
+#: ../src/widgets/toolbox.cpp:5126
 msgid "Show limiting bounding box"
-msgstr "Ð\93еомеÑ\82Ñ\80иÑ\87еÑ\81каÑ\8f Ð¿Ð»Ð¾Ñ\89адка (BB)"
+msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð¾Ð³Ñ\80аниÑ\87иваÑ\8eÑ\89Ñ\83Ñ\8e Ð¿Ð»Ð¾Ñ\89адкÑ\83 (BB)"
 
-#: ../src/widgets/toolbox.cpp:5145
+#: ../src/widgets/toolbox.cpp:5127
 msgid "Show bounding box (used to cut infinite lines)"
 msgstr ""
 
-#: ../src/widgets/toolbox.cpp:5156
-#, fuzzy
+#: ../src/widgets/toolbox.cpp:5138
 msgid "Get limiting bounding box from selection"
-msgstr "УбÑ\80аÑ\82Ñ\8c Ð¾Ð±Ñ\82Ñ\80авоÑ\87нÑ\8bй ÐºÐ¾Ð½Ñ\82Ñ\83Ñ\80 из выделения"
+msgstr "Ð\94елаÑ\82Ñ\8c Ð¾Ð³Ñ\80аниÑ\87иваÑ\8eÑ\89Ñ\83Ñ\8e Ð¿Ð»Ð¾Ñ\89адкÑ\83 (BB) из выделения"
 
-#: ../src/widgets/toolbox.cpp:5157
+#: ../src/widgets/toolbox.cpp:5139
 msgid "Set limiting bounding box (used to cut infinite lines) to the bounding box of current selection"
 msgstr "Создание и редактирование масштабируемой векторной графики в формате SVG"
 
-#: ../src/widgets/toolbox.cpp:5169
+#: ../src/widgets/toolbox.cpp:5151
 msgid "Choose a line segment type"
 msgstr "Выберите тип сегмента линии"
 
-#: ../src/widgets/toolbox.cpp:5185
-#, fuzzy
+#: ../src/widgets/toolbox.cpp:5167
 msgid "Display measuring info"
-msgstr "ЦвеÑ\82опеÑ\80едаÑ\87а Ð¼Ð¾Ð½Ð¸Ñ\82оÑ\80а:"
+msgstr "Ð\9fоказÑ\8bваÑ\82Ñ\8c Ð´Ð°Ð½Ð½Ñ\8bе Ð¸Ð·Ð¼ÐµÑ\80ений"
 
-#: ../src/widgets/toolbox.cpp:5186
+#: ../src/widgets/toolbox.cpp:5168
 msgid "Display measuring info for selected items"
 msgstr ""
 
-#: ../src/widgets/toolbox.cpp:5206
+#: ../src/widgets/toolbox.cpp:5188
 msgid "Open LPE dialog"
 msgstr "Открыть диалог LPE"
 
-#: ../src/widgets/toolbox.cpp:5207
+#: ../src/widgets/toolbox.cpp:5189
 msgid "Open LPE dialog (to adapt parameters numerically)"
 msgstr "Открыть диалог динамических контурных эффектов для ручного ввода параметров"
 
-#: ../src/widgets/toolbox.cpp:5264
+#: ../src/widgets/toolbox.cpp:5253
 msgid "The width of the eraser pen (relative to the visible canvas area)"
 msgstr "Толщина пера ластика (относительно видимой области холста)"
 
-#: ../src/widgets/toolbox.cpp:5282
+#: ../src/widgets/toolbox.cpp:5271
 msgid "Delete objects touched by the eraser"
 msgstr "Удалять объекты, которых коснулся ластик"
 
-#: ../src/widgets/toolbox.cpp:5288
+#: ../src/widgets/toolbox.cpp:5277
 msgid "Cut"
 msgstr "Вырезать"
 
-#: ../src/widgets/toolbox.cpp:5289
+#: ../src/widgets/toolbox.cpp:5278
 msgid "Cut out from objects"
 msgstr "Вырезать из объектов"
 
-#: ../src/widgets/toolbox.cpp:5634
+#: ../src/widgets/toolbox.cpp:5619
 msgid "Text: Change font family"
 msgstr "Текст: сменить гарнитуру"
 
-#: ../src/widgets/toolbox.cpp:5722
+#: ../src/widgets/toolbox.cpp:5708
 msgid "Text: Change alignment"
 msgstr "Текст: сменить выключку"
 
-#: ../src/widgets/toolbox.cpp:5800
+#: ../src/widgets/toolbox.cpp:5787
 msgid "Text: Change font style"
 msgstr "Текст: сменить начертание"
 
-#: ../src/widgets/toolbox.cpp:5847
+#: ../src/widgets/toolbox.cpp:5835
 msgid "Text: Change orientation"
 msgstr "Текст: сменить ориентацию"
 
-#: ../src/widgets/toolbox.cpp:5949
+#: ../src/widgets/toolbox.cpp:5938
 msgid "Text: Change font size"
 msgstr "Текст: сменить кегль"
 
-#: ../src/widgets/toolbox.cpp:6184
+#: ../src/widgets/toolbox.cpp:6173
 msgid "This font is currently not installed on your system. Inkscape will use the default font instead."
 msgstr "Этот шрифт сейчас отсутствует в системе. Вместо него Inkscape использует шрифт по умолчанию."
 
-#: ../src/widgets/toolbox.cpp:6220
+#: ../src/widgets/toolbox.cpp:6209
 msgid "Align left"
 msgstr "Выключка влево"
 
-#: ../src/widgets/toolbox.cpp:6231
+#: ../src/widgets/toolbox.cpp:6220
 msgid "Center"
 msgstr "Выключка по центру"
 
-#: ../src/widgets/toolbox.cpp:6242
+#: ../src/widgets/toolbox.cpp:6231
 msgid "Align right"
 msgstr "Выключка вправо"
 
-#: ../src/widgets/toolbox.cpp:6253
+#: ../src/widgets/toolbox.cpp:6242
 msgid "Justify"
 msgstr "Выключка по ширине"
 
-#: ../src/widgets/toolbox.cpp:6268
+#: ../src/widgets/toolbox.cpp:6257
 msgid "Bold"
 msgstr "Полужирное"
 
-#: ../src/widgets/toolbox.cpp:6279
+#: ../src/widgets/toolbox.cpp:6268
 msgid "Italic"
 msgstr "Наклонное"
 
-#: ../src/widgets/toolbox.cpp:6413
+#: ../src/widgets/toolbox.cpp:6401
 msgid "Change connector spacing"
 msgstr "Смена интервала соед. линии"
 
-#: ../src/widgets/toolbox.cpp:6496
+#: ../src/widgets/toolbox.cpp:6484
 msgid "Avoid"
 msgstr "Избегать"
 
-#: ../src/widgets/toolbox.cpp:6506
+#: ../src/widgets/toolbox.cpp:6494
 msgid "Ignore"
 msgstr "Игнорировать"
 
-#: ../src/widgets/toolbox.cpp:6518
+#: ../src/widgets/toolbox.cpp:6506
 msgid "Connector Spacing"
 msgstr "Интервал линии соединения"
 
-#: ../src/widgets/toolbox.cpp:6518
+#: ../src/widgets/toolbox.cpp:6506
 msgid "Spacing:"
 msgstr "Интервал:"
 
-#: ../src/widgets/toolbox.cpp:6519
+#: ../src/widgets/toolbox.cpp:6507
 msgid "The amount of space left around objects by auto-routing connectors"
 msgstr "Оставшееся пространство вокруг объектов при автосоединении"
 
-#: ../src/widgets/toolbox.cpp:6530
+#: ../src/widgets/toolbox.cpp:6518
 msgid "Graph"
 msgstr "Граф"
 
-#: ../src/widgets/toolbox.cpp:6540
+#: ../src/widgets/toolbox.cpp:6528
 msgid "Connector Length"
 msgstr "Длина линии соединения"
 
-#: ../src/widgets/toolbox.cpp:6540
+#: ../src/widgets/toolbox.cpp:6528
 msgid "Length:"
 msgstr "Длина:"
 
-#: ../src/widgets/toolbox.cpp:6541
+#: ../src/widgets/toolbox.cpp:6529
 msgid "Ideal length for connectors when layout is applied"
 msgstr "Идеальная длина при использовании оптимизации внешнего вида линий соединения"
 
-#: ../src/widgets/toolbox.cpp:6553
+#: ../src/widgets/toolbox.cpp:6541
 msgid "Downwards"
 msgstr "Вниз"
 
-#: ../src/widgets/toolbox.cpp:6554
+#: ../src/widgets/toolbox.cpp:6542
 msgid "Make connectors with end-markers (arrows) point downwards"
 msgstr "Линии соединения со стрелками указывают вниз"
 
-#: ../src/widgets/toolbox.cpp:6569
+#: ../src/widgets/toolbox.cpp:6557
 msgid "Do not allow overlapping shapes"
 msgstr "Не допускать перекрытия фигур"
 
-#: ../src/widgets/toolbox.cpp:6672
+#: ../src/widgets/toolbox.cpp:6660
 msgid "Fill by"
 msgstr "Чем залить"
 
-#: ../src/widgets/toolbox.cpp:6673
+#: ../src/widgets/toolbox.cpp:6661
 msgid "Fill by:"
 msgstr "Чем залить:"
 
-#: ../src/widgets/toolbox.cpp:6685
+#: ../src/widgets/toolbox.cpp:6673
 msgid "Fill Threshold"
 msgstr "Порог заливки"
 
-#: ../src/widgets/toolbox.cpp:6686
+#: ../src/widgets/toolbox.cpp:6674
 msgid "The maximum allowed difference between the clicked pixel and the neighboring pixels to be counted in the fill"
 msgstr "Максимально допустимая разница между щелкнутым пикселом и соседними пикселами, попадающими в заливку"
 
-#: ../src/widgets/toolbox.cpp:6711
+#: ../src/widgets/toolbox.cpp:6699
 msgid "Grow/shrink by"
 msgstr "Увеличить/уменьшить на"
 
-#: ../src/widgets/toolbox.cpp:6711
+#: ../src/widgets/toolbox.cpp:6699
 msgid "Grow/shrink by:"
 msgstr "Увеличить/уменьшить на:"
 
-#: ../src/widgets/toolbox.cpp:6712
+#: ../src/widgets/toolbox.cpp:6700
 msgid "The amount to grow (positive) or shrink (negative) the created fill path"
 msgstr "Насколько увеличить (положительное число) или уменьшить (отрицательное число) создаваемый контур с заливкой"
 
-#: ../src/widgets/toolbox.cpp:6737
+#: ../src/widgets/toolbox.cpp:6725
 msgid "Close gaps"
 msgstr "Закрыть интервалы"
 
-#: ../src/widgets/toolbox.cpp:6738
+#: ../src/widgets/toolbox.cpp:6726
 msgid "Close gaps:"
 msgstr "Закрыть интервалы:"
 
-#: ../src/widgets/toolbox.cpp:6750
+#: ../src/widgets/toolbox.cpp:6738
 msgid "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
 msgstr "Сбросить параметры заливки к значениям по умолчанию (параметры по умолчанию можно изменить через диалог настройки Inkscape)"
 
-#: ../share/extensions/dimension.py:97
+#: ../share/extensions/dimension.py:99
 msgid "Unable to process this object.  Try changing it into a path first."
 msgstr "Невозможно обработать этот объект. Попробуйте сначала оконтурить его."
 
@@ -17278,10 +17385,27 @@ msgstr ""
 msgid "This extension requires that the second selected path be four nodes long."
 msgstr "Второй выбранный контур должен содержать четыре узла."
 
-#: ../share/extensions/polyhedron_3d.py:60
+#: ../share/extensions/polyhedron_3d.py:58
 msgid "Failed to import the numpy module. This module is required by this extension. Please install them and try again.  On a Debian-like system this can be done with the command, sudo apt-get install python-numpy."
 msgstr "Не удалось импортировать модуль numpy, необходимый для этого расширения. Установите его и попробуйте еще раз. В системах наподобие Debian это можно сделать командой sudo apt-get install python-numpy."
 
+#: ../share/extensions/polyhedron_3d.py:329
+msgid "No face data found in specified file\n"
+msgstr ""
+
+#: ../share/extensions/polyhedron_3d.py:335
+msgid "No edge data found in specified file\n"
+msgstr ""
+
+#. we cannot generate a list of faces from the edges without a lot of computation
+#: ../share/extensions/polyhedron_3d.py:510
+msgid "Face Data Not Found. Ensure file contains face data, and check the file is imported as \"Face-Specifed\" under the \"Model File\" tab.\n"
+msgstr ""
+
+#: ../share/extensions/polyhedron_3d.py:512
+msgid "Internal Error. No view type selected\n"
+msgstr ""
+
 #: ../share/extensions/summersnight.py:32
 msgid "The second path must be exactly four nodes long."
 msgstr "Второй контур должен состоят ровно из четырех узлов."
@@ -17561,6 +17685,146 @@ msgstr "Кегль шрифта"
 msgid "Number Nodes"
 msgstr "Нумерация узлов"
 
+#: ../share/extensions/draw_from_triangle.inx.h:1
+msgid "Altitudes"
+msgstr "Угловые возвышения"
+
+#: ../share/extensions/draw_from_triangle.inx.h:2
+msgid "Angle Bisectors"
+msgstr "Угловые биссектрисы"
+
+#: ../share/extensions/draw_from_triangle.inx.h:3
+msgid "Centroid"
+msgstr "Центроид"
+
+#: ../share/extensions/draw_from_triangle.inx.h:4
+msgid "Circumcentre"
+msgstr "Центр описанной окружности"
+
+#: ../share/extensions/draw_from_triangle.inx.h:5
+msgid "Circumcircle"
+msgstr "Описанная окружность"
+
+#: ../share/extensions/draw_from_triangle.inx.h:6
+msgid "Common Objects"
+msgstr "Обычные объекты"
+
+#: ../share/extensions/draw_from_triangle.inx.h:7
+msgid "Contact Triangle"
+msgstr ""
+
+#: ../share/extensions/draw_from_triangle.inx.h:8
+msgid "Custom Point Specified By:"
+msgstr ""
+
+#: ../share/extensions/draw_from_triangle.inx.h:9
+msgid "Custom Points and Options"
+msgstr "Заказные точки и параметры"
+
+#: ../share/extensions/draw_from_triangle.inx.h:10
+#, fuzzy
+msgid "Draw Circle About This Point"
+msgstr "Окружность через три точки"
+
+#: ../share/extensions/draw_from_triangle.inx.h:11
+msgid "Draw From Triangle"
+msgstr "Геометрия треугольника"
+
+#: ../share/extensions/draw_from_triangle.inx.h:12
+msgid "Draw Isogonal Conjugate"
+msgstr ""
+
+#: ../share/extensions/draw_from_triangle.inx.h:13
+msgid "Draw Isotomic Conjugate"
+msgstr ""
+
+#: ../share/extensions/draw_from_triangle.inx.h:14
+msgid "Draw Marker At This Point"
+msgstr ""
+
+#: ../share/extensions/draw_from_triangle.inx.h:15
+#, fuzzy
+msgid "Excentral Triangle"
+msgstr "Треугольник"
+
+#: ../share/extensions/draw_from_triangle.inx.h:16
+msgid "Excentres"
+msgstr "Центры вневписанных окружностей"
+
+#: ../share/extensions/draw_from_triangle.inx.h:17
+msgid "Excircles"
+msgstr "Вневписанные окружности"
+
+#: ../share/extensions/draw_from_triangle.inx.h:18
+#, fuzzy
+msgid "Extouch Triangle"
+msgstr "Треугольник"
+
+#: ../share/extensions/draw_from_triangle.inx.h:19
+msgid "Gergonne Point"
+msgstr "Точка Жергонна"
+
+#: ../share/extensions/draw_from_triangle.inx.h:21
+msgid "Incentre"
+msgstr "Центр вписанной окружности"
+
+#: ../share/extensions/draw_from_triangle.inx.h:22
+msgid "Incircle"
+msgstr "Вписанная окружность"
+
+#: ../share/extensions/draw_from_triangle.inx.h:23
+msgid "Nagel Point"
+msgstr "Точка Нагеля"
+
+#: ../share/extensions/draw_from_triangle.inx.h:24
+msgid "Nine-Point Centre"
+msgstr "Центр окружности девяти точек"
+
+#: ../share/extensions/draw_from_triangle.inx.h:25
+msgid "Nine-Point Circle"
+msgstr "Окружность девяти точек"
+
+#: ../share/extensions/draw_from_triangle.inx.h:26
+msgid "Orthic Triangle"
+msgstr "Ортоцентрический треугольник"
+
+#: ../share/extensions/draw_from_triangle.inx.h:27
+msgid "Orthocentre"
+msgstr "Ортоцентр"
+
+#: ../share/extensions/draw_from_triangle.inx.h:28
+msgid "Point At"
+msgstr "Указывает на:"
+
+#: ../share/extensions/draw_from_triangle.inx.h:29
+msgid "Radius / px"
+msgstr "Радиус (px):"
+
+#: ../share/extensions/draw_from_triangle.inx.h:31
+#, fuzzy
+msgid "Report this triangle's properties"
+msgstr "Смена свойств направляющей"
+
+#: ../share/extensions/draw_from_triangle.inx.h:32
+msgid "Symmedial Triangle"
+msgstr "Симмедиальный треугольник"
+
+#: ../share/extensions/draw_from_triangle.inx.h:33
+msgid "Symmedian Point"
+msgstr "Точка симмедианы"
+
+#: ../share/extensions/draw_from_triangle.inx.h:34
+msgid "Symmedians"
+msgstr "Симмедианы"
+
+#: ../share/extensions/draw_from_triangle.inx.h:35
+msgid "Triangle Function"
+msgstr "функции треугольника"
+
+#: ../share/extensions/draw_from_triangle.inx.h:36
+msgid "Trilinear Coordinates"
+msgstr "трилинейным координатам"
+
 #: ../share/extensions/dxf_input.inx.h:1
 #: ../share/extensions/dxf_output.inx.h:1
 msgid "AutoCAD DXF (*.dxf)"
@@ -18434,93 +18698,88 @@ msgid "Octahedron"
 msgstr "Октаэдр"
 
 #: ../share/extensions/polyhedron_3d.inx.h:33
-#, fuzzy
-msgid "Report Normal Vector Information"
-msgstr "Информация об используемой памяти"
-
-#: ../share/extensions/polyhedron_3d.inx.h:34
 msgid "Rotate Around:"
 msgstr "Повернуть вокруг:"
 
-#: ../share/extensions/polyhedron_3d.inx.h:35
+#: ../share/extensions/polyhedron_3d.inx.h:34
 msgid "Rotation / Degrees"
 msgstr "Вращение, градусы"
 
-#: ../share/extensions/polyhedron_3d.inx.h:36
+#: ../share/extensions/polyhedron_3d.inx.h:35
 msgid "Scaling Factor"
 msgstr "Коэффициент масштаба:"
 
-#: ../share/extensions/polyhedron_3d.inx.h:37
+#: ../share/extensions/polyhedron_3d.inx.h:36
 #, fuzzy
 msgid "Shading"
 msgstr "Интервал"
 
-#: ../share/extensions/polyhedron_3d.inx.h:39
+#: ../share/extensions/polyhedron_3d.inx.h:38
 msgid "Small Triambic Icosahedron"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:40
+#: ../share/extensions/polyhedron_3d.inx.h:39
 msgid "Snub Cube"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:41
+#: ../share/extensions/polyhedron_3d.inx.h:40
 msgid "Snub Dodecahedron"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:43
+#: ../share/extensions/polyhedron_3d.inx.h:42
 #, no-c-format
 msgid "Stroke Opacity/ %"
 msgstr "Непрозрачность обводки, %s"
 
-#: ../share/extensions/polyhedron_3d.inx.h:45
+#: ../share/extensions/polyhedron_3d.inx.h:44
 msgid "Tetrahedron"
 msgstr "Тетраэдр"
 
-#: ../share/extensions/polyhedron_3d.inx.h:46
+#: ../share/extensions/polyhedron_3d.inx.h:45
 msgid "Then Rotate Around:"
 msgstr "Затем повернуть вокруг:"
 
-#: ../share/extensions/polyhedron_3d.inx.h:47
+#: ../share/extensions/polyhedron_3d.inx.h:46
 msgid "Truncated Cube"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:48
+#: ../share/extensions/polyhedron_3d.inx.h:47
 msgid "Truncated Dodecahedron"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:49
+#: ../share/extensions/polyhedron_3d.inx.h:48
 msgid "Truncated Icosahedron"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:50
+#: ../share/extensions/polyhedron_3d.inx.h:49
 msgid "Truncated Octahedron"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:51
+#: ../share/extensions/polyhedron_3d.inx.h:50
 msgid "Truncated Tetrahedron"
 msgstr ""
 
-#: ../share/extensions/polyhedron_3d.inx.h:52
+#: ../share/extensions/polyhedron_3d.inx.h:51
 msgid "Vertices"
 msgstr "Вершины"
 
-#: ../share/extensions/polyhedron_3d.inx.h:53
+#: ../share/extensions/polyhedron_3d.inx.h:52
 msgid "View"
 msgstr "Вид"
 
-#: ../share/extensions/polyhedron_3d.inx.h:54
+#: ../share/extensions/polyhedron_3d.inx.h:53
 msgid "X-Axis"
 msgstr "Ось X"
 
-#: ../share/extensions/polyhedron_3d.inx.h:55
+#: ../share/extensions/polyhedron_3d.inx.h:54
 msgid "Y-Axis"
 msgstr "Ось Y"
 
-#: ../share/extensions/polyhedron_3d.inx.h:56
+#: ../share/extensions/polyhedron_3d.inx.h:55
 msgid "Z-Axis"
 msgstr "Ось Z"
 
-#: ../share/extensions/polyhedron_3d.inx.h:57
+#: ../share/extensions/polyhedron_3d.inx.h:56
 msgid "Z-Sort Faces By:"
 msgstr ""
 
@@ -18886,6 +19145,28 @@ msgstr "Импорт файлов Windows Metafile"
 msgid "XAML Input"
 msgstr "Импорт XAML"
 
+#~ msgid "Embed fonts on export (Type 1 only) (EPS)"
+#~ msgstr "Встроить шрифтовый файл (только Type 1) при экспорте (EPS)"
+#~ msgid "Export files with the bounding box set to the page size (EPS)"
+#~ msgstr ""
+#~ "При экспорте установить значение BoundingBox равным размеру страницы, а "
+#~ "не рисунка (EPS)"
+
+#, fuzzy
+#~ msgid "Report Normal Vector Information"
+#~ msgstr "Информация об используемой памяти"
+
+#, fuzzy
+#~ msgid "An exception occurred during execution of the Spiro Path Effect."
+#~ msgstr "Прерывание при выполнении контурного эффекта"
+#~ msgid "Bounding box"
+#~ msgstr "Площадка (BB)"
+#~ msgid "Last gen. segment"
+#~ msgstr "Последний созданный сегмент"
+#~ msgid "Reference"
+#~ msgstr "Ориентир:"
+#~ msgid "<b>%i</b> objects selected"
+#~ msgstr "<b>%i</b> объектов выделено"
 #~ msgid "<b>Pushing %d</b> selected object"
 #~ msgid_plural "<b>Pushing %d</b> selected objects"
 #~ msgstr[0] "<b>Толкается %d</b> выбранный объект"
@@ -19102,10 +19383,6 @@ msgstr "Импорт XAML"
 #, fuzzy
 #~ msgid "Curve handle"
 #~ msgstr "Смещение рычага"
-
-#, fuzzy
-#~ msgid "Common Objects"
-#~ msgstr "Объекты"
 #~ msgid ""
 #~ "Cannot set <b>%s</b>: Another element with value <b>%s</b> already exists!"
 #~ msgstr ""
index 4ff7148ef8a6ca2a1cb037289265abeae17506e0..0ff5cb7beb888b92d13592e817470a56c6c645a4 100644 (file)
@@ -34,6 +34,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 import sys, inkex, pathmodifier
 from simpletransform import *
+import gettext
+_ = gettext.gettext
 
 class Dimension(pathmodifier.PathModifier):
     def __init__(self):
diff --git a/share/extensions/draw_from_triangle.inx b/share/extensions/draw_from_triangle.inx
new file mode 100644 (file)
index 0000000..7973cda
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+    <_name>Draw From Triangle</_name>
+    <id>il.fromtriangle</id>
+    <dependency type="executable" location="extensions">draw_from_triangle.py</dependency>
+    <dependency type="executable" location="extensions">inkex.py</dependency>
+    <param name="tab" type="notebook">
+        <page name="common1" _gui-text="Common Objects">
+            <param name="circumcircle"    type="boolean" _gui-text="Circumcircle"></param>
+            <param name="circumcentre"    type="boolean" _gui-text="Circumcentre"></param>
+            <param name="incircle"        type="boolean" _gui-text="Incircle"></param>
+            <param name="incentre"        type="boolean" _gui-text="Incentre"></param>
+            <param name="contact_tri"     type="boolean" _gui-text="Contact Triangle"></param>
+            <param name="excircles"       type="boolean" _gui-text="Excircles"></param>
+            <param name="excentres"       type="boolean" _gui-text="Excentres"></param>
+            <param name="extouch_tri"     type="boolean" _gui-text="Extouch Triangle"></param>
+            <param name="excentral_tri"   type="boolean" _gui-text="Excentral Triangle"></param>
+            <param name="orthocentre"     type="boolean" _gui-text="Orthocentre"></param>
+            <param name="orthic_tri"      type="boolean" _gui-text="Orthic Triangle"></param>
+            <param name="altitudes"       type="boolean" _gui-text="Altitudes"></param>
+            <param name="anglebisectors"  type="boolean" _gui-text="Angle Bisectors"></param>
+            <param name="centroid"        type="boolean" _gui-text="Centroid"></param>
+            <param name="ninepointcentre" type="boolean" _gui-text="Nine-Point Centre"></param>
+            <param name="ninepointcircle" type="boolean" _gui-text="Nine-Point Circle"></param>
+            <param name="symmedians"      type="boolean" _gui-text="Symmedians"></param>
+            <param name="sym_point"       type="boolean" _gui-text="Symmedian Point"></param>
+            <param name="sym_tri"         type="boolean" _gui-text="Symmedial Triangle"></param>
+            <param name="gergonne_pt"     type="boolean" _gui-text="Gergonne Point"></param>
+            <param name="nagel_pt"        type="boolean" _gui-text="Nagel Point"></param>
+        </page>
+        <page name="Custom" _gui-text="Custom Points and Options">
+            <param name="mode" type="optiongroup" _gui-text="Custom Point Specified By:">
+                <_option value="trilin">Trilinear Coordinates</_option>
+                <_option value="tcf">Triangle Function</_option>
+            </param>
+            <param name="cust_str"      type="string"  _gui-text="Point At">cos(a_a):cos(a_b):cos(a_c)</param>
+            <param name="cust_pt"       type="boolean" _gui-text="Draw Marker At This Point"></param>
+            <param name="cust_radius"   type="boolean" _gui-text="Draw Circle About This Point"></param>
+            <param name="radius"        type="string"  _gui-text="Radius / px">s_a*s_b*s_c/(4*area)</param>
+            <param name="isogonal_conj" type="boolean" _gui-text="Draw Isogonal Conjugate"></param>
+            <param name="isotomic_conj" type="boolean" _gui-text="Draw Isotomic Conjugate"></param>
+            <param name="report" type="boolean" _gui-text="Report this triangle's properties"></param>
+        </page>
+        <page name="Help" _gui-text="Help">
+            <param name="instructions"   type="description">This extension draws constructions about a triangle defined by the first 3 nodes of a selected path. You may select one of preset objects or create your own ones.
+            
+All units are the Inkscape's pixel unit. Angles are all in radians.
+You can specify a point by trilinear coordinates or by a triangle centre function.
+Enter as functions of the side length or angles.
+Trilinear elements should be separated by a colon: ':'.
+Side lengths are represented as 's_a', 's_b' and 's_c'.
+Angles corresponding to these are 'a_a', 'a_b', and 'a_c'.
+You can also use the semi-perimeter and area of the triangle as constants. Write 'area' or 'semiperim' for these.
+
+You can use any standard Python math function:
+ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); 
+modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); 
+acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); 
+cos(x); sin(x); tan(x); degrees(x); radians(x); 
+cosh(x); sinh(x); tanh(x)
+
+Also available are the inverse trigonometric functions:
+sec(x); csc(x); cot(x)
+
+You can specify the radius of a circle about a custom point using an formula, which may also contain the side lengths, angles, etc. You can also plot the isogonal and isotomic conjugate of the point. Be aware that this may cause a divide-by-zero error for certain points.
+            </param>
+        </page>
+    </param>
+    <effect>
+        <object-type>all</object-type>
+                <effects-menu>
+                    <submenu _name="Render"/>
+                </effects-menu>
+    </effect>
+    <script>
+        <command reldir="extensions" interpreter="python">draw_from_triangle.py</command>
+    </script>
+</inkscape-extension>
diff --git a/share/extensions/draw_from_triangle.py b/share/extensions/draw_from_triangle.py
new file mode 100644 (file)
index 0000000..b63d0f5
--- /dev/null
@@ -0,0 +1,474 @@
+#!/usr/bin/env python 
+'''
+Copyright (C) 2007 John Beard john.j.beard@gmail.com
+
+##This extension allows you to draw various triangle constructions
+##It requires a path to be selected
+##It will use the first three nodes of this path
+
+## Dimensions of a triangle__
+#
+#        /`__
+#       / a_c``--__
+#      /           ``--__ s_a
+# s_b /                  ``--__
+#    /a_a                    a_b`--__  
+#   /--------------------------------``B
+#  A              s_b
+
+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
+'''
+
+import inkex
+import simplestyle, sys, simplepath
+from math import *
+import gettext
+_ = gettext.gettext
+
+#DRAWING ROUTINES
+
+#draw an SVG triangle given in trilinar coords
+def draw_SVG_circle(rad, centre, params, style, name, parent):#draw an SVG circle with a given radius as trilinear coordinates
+    if rad == 0: #we want a dot
+        r = style.d_rad #get the dot width from the style
+        circ_style = { 'stroke':style.d_col, 'stroke-width':str(style.d_th), 'fill':style.d_fill }
+    else:
+        r = rad #use given value
+        circ_style = { 'stroke':style.c_col, 'stroke-width':str(style.c_th), 'fill':style.c_fill }
+
+    cx,cy = get_cartesian_pt(centre, params)
+    circ_attribs = {'style':simplestyle.formatStyle(circ_style),
+                    inkex.addNS('label','inkscape'):name,
+                    'cx':str(cx), 'cy':str(cy), 
+                    'r':str(r)}
+    inkex.etree.SubElement(parent, inkex.addNS('circle','svg'), circ_attribs )
+
+#draw an SVG triangle given in trilinar coords
+def draw_SVG_tri(vert_mat, params, style, name, parent):
+    p1,p2,p3 = get_cartesian_tri(vert_mat, params) #get the vertex matrix in cartesian points
+    tri_style   = { 'stroke': style.l_col, 'stroke-width':str(style.l_th), 'fill': style.l_fill }
+    tri_attribs = {'style':simplestyle.formatStyle(tri_style),
+                    inkex.addNS('label','inkscape'):name,
+                    'd':'M '+str(p1[0])+','+str(p1[1])+
+                       ' L '+str(p2[0])+','+str(p2[1])+
+                       ' L '+str(p3[0])+','+str(p3[1])+
+                       ' L '+str(p1[0])+','+str(p1[1])+' z'}
+    inkex.etree.SubElement(parent, inkex.addNS('path','svg'), tri_attribs )
+
+#draw an SVG line segment between the given (raw) points
+def draw_SVG_line( (x1, y1), (x2, y2), style, name, parent):
+    line_style   = { 'stroke': style.l_col, 'stroke-width':str(style.l_th), 'fill': style.l_fill }
+    line_attribs = {'style':simplestyle.formatStyle(line_style),
+                    inkex.addNS('label','inkscape'):name,
+                    'd':'M '+str(x1)+','+str(y1)+' L '+str(x2)+','+str(y2)}
+    inkex.etree.SubElement(parent, inkex.addNS('path','svg'), line_attribs )
+
+#lines from each vertex to a corresponding point in trilinears
+def draw_vertex_lines( vert_mat, params, width, name, parent):
+    for i in range(3):
+        oppositepoint = get_cartesian_pt( vert_mat[i], params)
+        draw_SVG_line(params[3][-i%3], oppositepoint, width, name+':'+str(i), parent)
+        
+#MATHEMATICAL ROUTINES
+
+def distance( (x0,y0),(x1,y1)):#find the pythagorean distance
+    return sqrt( (x0-x1)*(x0-x1) + (y0-y1)*(y0-y1) )
+
+def vector_from_to( (x0,y0),(x1,y1) ):#get the vector from (x0,y0) to (x1,y1)
+    return (x1-x0, y1-y0)
+
+def get_cartesian_pt( t, p):#get the cartesian coordinates from a trilinear set
+    denom = p[0][0]*t[0] + p[0][1]*t[1] + p[0][2]*t[2]
+    c1 = p[0][1]*t[1]/denom
+    c2 = p[0][2]*t[2]/denom
+    return ( c1*p[2][1][0]+c2*p[2][0][0], c1*p[2][1][1]+c2*p[2][0][1] )
+
+def get_cartesian_tri( ((t11,t12,t13),(t21,t22,t23),(t31,t32,t33)), params):#get the cartesian points from a trilinear vertex matrix
+    p1=get_cartesian_pt( (t11,t12,t13), params )
+    p2=get_cartesian_pt( (t21,t22,t23), params )
+    p3=get_cartesian_pt( (t31,t32,t33), params )
+    return (p1,p2,p3)
+
+def angle_from_3_sides(a, b, c): #return the angle opposite side c
+    cosx = (a*a + b*b - c*c)/(2*a*b)  #use the cosine rule
+    return acos(cosx)
+    
+def translate_string(string, os): #translates s_a, a_a, etc to params[x][y], with cyclic offset
+    string = string.replace('s_a', 'params[0]['+str((os+0)%3)+']') #replace with ref. to the relvant values,
+    string = string.replace('s_b', 'params[0]['+str((os+1)%3)+']') #cycled by i
+    string = string.replace('s_c', 'params[0]['+str((os+2)%3)+']')
+    string = string.replace('a_a', 'params[1]['+str((os+0)%3)+']')
+    string = string.replace('a_b', 'params[1]['+str((os+1)%3)+']')
+    string = string.replace('a_c', 'params[1]['+str((os+2)%3)+']')
+    string = string.replace('area','params[4][0]')
+    string = string.replace('semiperim','params[4][1]')
+    return string
+
+def pt_from_tcf( tcf , params):#returns a trilinear triplet from a triangle centre function
+    trilin_pts=[]#will hold the final points
+    for i in range(3):
+        temp = tcf #read in the tcf
+        temp = translate_string(temp, i)
+        func = eval('lambda params: ' + temp.strip('"')) #the function leading to the trilinar element
+        trilin_pts.append(func(params))#evaluate the function for the first trilinear element
+    return trilin_pts
+    
+#SVG DATA PROCESSING
+    
+def get_n_points_from_path( node, n):#returns a list of first n points (x,y) in an SVG path-representing node
+
+    p = simplepath.parsePath(node.get('d')) #parse the path
+    
+    xi = [] #temporary storage for x and y (will combine at end)
+    yi = []
+    
+    for cmd,params in p:                    #a parsed path is made up of (cmd, params) pairs
+        defs = simplepath.pathdefs[cmd]
+        for i in range(defs[1]):
+            if   defs[3][i] == 'x' and len(xi) < n:#only collect the first three
+                xi.append(params[i])
+            elif defs[3][i] == 'y' and len(yi) < n:#only collect the first three
+                yi.append(params[i])
+
+    if len(xi) == n and len(yi) == n:
+        points = [] # returned pairs of points
+        for i in range(n):
+            points.append( [ xi[i], yi[i] ] )
+    else:
+        #inkex.errormsg(_('Error: Not enough nodes to gather coordinates.')) #fail silently and exit, rather than invoke an error console
+        return [] #return a blank
+        
+    return points
+    
+#EXTRA MATHS FUNCTIONS
+def sec(x):#secant(x)
+    if x == pi/2 or x==-pi/2 or x == 3*pi/2 or x == -3*pi/2: #sec(x) is undefined
+        return 100000000000
+    else:
+        return 1/cos(x)
+
+def csc(x):#cosecant(x)
+    if x == 0 or x==pi or x==2*pi or x==-2*pi: #csc(x) is undefined
+        return 100000000000
+    else:
+        return 1/sin(x)
+
+def cot(x):#cotangent(x)
+    if x == 0 or x==pi or x==2*pi or x==-2*pi: #cot(x) is undefined
+        return 100000000000
+    else:
+        return 1/tan(x)
+        
+def report_properties( params ):#report to the Inkscape console using errormsg
+    inkex.errormsg(_("Side Length 'a'/px: " + str( params[0][0] ) ))
+    inkex.errormsg(_("Side Length 'b'/px: " + str( params[0][1] ) ))
+    inkex.errormsg(_("Side Length 'c'/px: " + str( params[0][2] ) ))
+    inkex.errormsg(_("Angle 'A'/radians:" + str( params[1][0] ) ))
+    inkex.errormsg(_("Angle 'B'/radians: " + str( params[1][1] ) ))
+    inkex.errormsg(_("Angle 'C'/radians: " + str( params[1][2] ) ))
+    inkex.errormsg(_("Semiperimeter/px: " + str( params[4][1] ) ))
+    inkex.errormsg(_("Area /px^2: " + str( params[4][0] ) ))
+    return
+    
+
+class Style(object): #container for style information
+    def __init__(self, options):
+        #dot markers
+        self.d_rad = 4 #dot marker radius
+        self.d_th  = 2 #stroke width
+        self.d_fill= '#aaaaaa' #fill colour
+        self.d_col = '#000000' #stroke colour
+
+        #lines
+        self.l_th  = 2
+        self.l_fill= 'none'
+        self.l_col = '#000000'
+        
+        #circles
+        self.c_th  = 2
+        self.c_fill= 'none'
+        self.c_col = '#000000'
+
+class Draw_From_Triangle(inkex.Effect):
+    def __init__(self):
+        inkex.Effect.__init__(self)
+        self.OptionParser.add_option("--tab",
+                        action="store", type="string", 
+                        dest="tab", default="sampling",
+                        help="The selected UI-tab when OK was pressed") 
+#PRESET POINT OPTIONS
+        self.OptionParser.add_option("--circumcircle",
+                        action="store", type="inkbool", 
+                        dest="do_circumcircle", default=False)
+        self.OptionParser.add_option("--circumcentre",
+                        action="store", type="inkbool", 
+                        dest="do_circumcentre", default=False)
+        self.OptionParser.add_option("--incircle",
+                        action="store", type="inkbool", 
+                        dest="do_incircle", default=False)
+        self.OptionParser.add_option("--incentre",
+                        action="store", type="inkbool", 
+                        dest="do_incentre", default=False)
+        self.OptionParser.add_option("--contact_tri",
+                        action="store", type="inkbool", 
+                        dest="do_contact_tri", default=False)
+        self.OptionParser.add_option("--excircles",
+                        action="store", type="inkbool", 
+                        dest="do_excircles", default=False)
+        self.OptionParser.add_option("--excentres",
+                        action="store", type="inkbool", 
+                        dest="do_excentres", default=False)
+        self.OptionParser.add_option("--extouch_tri",
+                        action="store", type="inkbool", 
+                        dest="do_extouch_tri", default=False)
+        self.OptionParser.add_option("--excentral_tri",
+                        action="store", type="inkbool", 
+                        dest="do_excentral_tri", default=False)
+        self.OptionParser.add_option("--orthocentre",
+                        action="store", type="inkbool", 
+                        dest="do_orthocentre", default=False)
+        self.OptionParser.add_option("--orthic_tri",
+                        action="store", type="inkbool", 
+                        dest="do_orthic_tri", default=False)
+        self.OptionParser.add_option("--altitudes",
+                        action="store", type="inkbool", 
+                        dest="do_altitudes", default=False)
+        self.OptionParser.add_option("--anglebisectors",
+                        action="store", type="inkbool", 
+                        dest="do_anglebisectors", default=False)
+        self.OptionParser.add_option("--centroid",
+                        action="store", type="inkbool", 
+                        dest="do_centroid", default=False)
+        self.OptionParser.add_option("--ninepointcentre",
+                        action="store", type="inkbool", 
+                        dest="do_ninepointcentre", default=False)
+        self.OptionParser.add_option("--ninepointcircle",
+                        action="store", type="inkbool", 
+                        dest="do_ninepointcircle", default=False)
+        self.OptionParser.add_option("--symmedians",
+                        action="store", type="inkbool", 
+                        dest="do_symmedians", default=False)
+        self.OptionParser.add_option("--sym_point",
+                        action="store", type="inkbool", 
+                        dest="do_sym_pt", default=False)
+        self.OptionParser.add_option("--sym_tri",
+                        action="store", type="inkbool", 
+                        dest="do_sym_tri", default=False)
+        self.OptionParser.add_option("--gergonne_pt",
+                        action="store", type="inkbool", 
+                        dest="do_gergonne_pt", default=False)
+        self.OptionParser.add_option("--nagel_pt",
+                        action="store", type="inkbool", 
+                        dest="do_nagel_pt", default=False)
+#CUSTOM POINT OPTIONS
+        self.OptionParser.add_option("--mode",
+                        action="store", type="string", 
+                        dest="mode", default='trilin')
+        self.OptionParser.add_option("--cust_str",
+                        action="store", type="string", 
+                        dest="cust_str", default='s_a')
+        self.OptionParser.add_option("--cust_pt",
+                        action="store", type="inkbool", 
+                        dest="do_cust_pt", default=False)
+        self.OptionParser.add_option("--cust_radius",
+                        action="store", type="inkbool", 
+                        dest="do_cust_radius", default=False)
+        self.OptionParser.add_option("--radius",
+                        action="store", type="string", 
+                        dest="radius", default='s_a')
+        self.OptionParser.add_option("--isogonal_conj",
+                        action="store", type="inkbool", 
+                        dest="do_isogonal_conj", default=False)
+        self.OptionParser.add_option("--isotomic_conj",
+                        action="store", type="inkbool", 
+                        dest="do_isotomic_conj", default=False)
+        self.OptionParser.add_option("--report",
+                        action="store", type="inkbool", 
+                        dest="report", default=False)
+
+
+    def effect(self):
+        
+        so = self.options #shorthand
+        
+        pts = [] #initialise in case nothing is selected and following loop is not executed
+        for id, node in self.selected.iteritems():
+            if node.tag == inkex.addNS('path','svg'):
+                pts = get_n_points_from_path( node, 3 ) #find the (x,y) coordinates of the first 3 points of the path
+
+
+        if len(pts) == 3: #if we have right number of nodes, else skip and end program
+            st = Style(so)#style for dots, lines and circles
+            
+            #CREATE A GROUP TO HOLD ALL GENERATED ELEMENTS IN
+            #Hold relative to point A (pt[0])
+            group_translation = 'translate(' + str( pts[0][0] ) + ','+ str( pts[0][1] ) + ')'
+            group_attribs = {inkex.addNS('label','inkscape'):'TriangleElements',
+                  'transform':group_translation }
+            layer = inkex.etree.SubElement(self.current_layer, 'g', group_attribs)
+            
+            #GET METRICS OF THE TRIANGLE
+            #vertices in the local coordinates (set pt[0] to be the origin)
+            vtx = [[0,0],
+                   [pts[1][0]-pts[0][0],pts[1][1]-pts[0][1]],
+                   [pts[2][0]-pts[0][0],pts[2][1]-pts[0][1]]]
+            
+            s_a = distance(vtx[1],vtx[2])#get the scalar side lengths
+            s_b = distance(vtx[0],vtx[1])
+            s_c = distance(vtx[0],vtx[2])
+            sides=(s_a,s_b,s_c)#side list for passing to functions easily and for indexing
+            
+            a_a = angle_from_3_sides(s_b, s_c, s_a)#angles in radians
+            a_b = angle_from_3_sides(s_a, s_c, s_b)
+            a_c = angle_from_3_sides(s_a, s_b, s_c)
+            angles=(a_a,a_b,a_c)
+            
+            ab  = vector_from_to(vtx[0], vtx[1]) #vector from a to b
+            ac  = vector_from_to(vtx[0], vtx[2]) #vector from a to c
+            bc  = vector_from_to(vtx[1], vtx[2]) #vector from b to c
+            vecs= (ab,ac) # vectors for finding cartesian point from trilinears
+
+            semiperim = (s_a+s_b+s_c)/2.0 #semiperimeter
+            area      = sqrt( semiperim*(semiperim-s_a)*(semiperim-s_b)*(semiperim-s_c) ) #area of the triangle by heron's formula
+            uvals = (area, semiperim) #useful values
+                    
+            params = (sides, angles, vecs, vtx, uvals) #all useful triangle parameters in one object
+            
+            if so.report:
+                report_properties( params )
+
+            #BEGIN DRAWING
+            if so.do_circumcentre or so.do_circumcircle:
+                r  = s_a*s_b*s_c/(4*area)
+                pt = (cos(a_a),cos(a_b),cos(a_c))
+                if so.do_circumcentre:
+                    draw_SVG_circle(0, pt, params, st, 'Circumcentre', layer)
+                if so.do_circumcircle:
+                    draw_SVG_circle(r, pt, params, st, 'Circumcircle', layer)
+            
+            if so.do_incentre or so.do_incircle:
+                pt = [1,1,1]
+                if so.do_incentre:
+                    draw_SVG_circle(0, pt, params, st, 'Incentre', layer)
+                if so.do_incircle:
+                    r  = area/semiperim
+                    draw_SVG_circle(r, pt, params, st, 'Incircle', layer)
+            
+            if so.do_contact_tri:
+                t1 = s_b*s_c/(-s_a+s_b+s_c)
+                t2 = s_a*s_c/( s_a-s_b+s_c)
+                t3 = s_a*s_b/( s_a+s_b-s_c)
+                v_mat = ( (0,t2,t3),(t1,0,t3),(t1,t2,0))
+                draw_SVG_tri(v_mat, params, st,'ContactTriangle',layer)
+                
+            if so.do_extouch_tri:
+                t1 = (-s_a+s_b+s_c)/s_a
+                t2 = ( s_a-s_b+s_c)/s_b
+                t3 = ( s_a+s_b-s_c)/s_c
+                v_mat = ( (0,t2,t3),(t1,0,t3),(t1,t2,0))
+                draw_SVG_tri(v_mat, params, st,'ExtouchTriangle',layer)
+                          
+            if so.do_orthocentre:
+                pt = pt_from_tcf('cos(a_b)*cos(a_c)', params)
+                draw_SVG_circle(0, pt, params, st, 'Orthocentre', layer)
+            
+            if so.do_orthic_tri:
+                v_mat = [[0,sec(a_b),sec(a_c)],[sec(a_a),0,sec(a_c)],[sec(a_a),sec(a_b),0]]
+                draw_SVG_tri(v_mat, params, st,'OrthicTriangle',layer)
+            
+            if so.do_centroid:
+                pt = [1/s_a,1/s_b,1/s_c]
+                draw_SVG_circle(0, pt, params, st, 'Centroid', layer)
+            
+            if so.do_ninepointcentre or so.do_ninepointcircle:
+                pt = [cos(a_b-a_c),cos(a_c-a_a),cos(a_a-a_b)]
+                if so.do_ninepointcentre:
+                    draw_SVG_circle(0, pt, params, st, 'NinePointCentre', layer)
+                if so.do_ninepointcircle:
+                    r    = s_a*s_b*s_c/(8*area)
+                    draw_SVG_circle(r, pt, params, st, 'NinePointCircle', layer)
+            
+            if so.do_altitudes:
+                v_mat  = [[0,sec(a_b),sec(a_c)],[sec(a_a),0,sec(a_c)],[sec(a_a),sec(a_b),0]]
+                draw_vertex_lines( v_mat, params, st, 'Altitude', layer)
+            
+            if so.do_anglebisectors:
+                v_mat  = ((0,1,1),(1,0,1),(1,1,0))
+                draw_vertex_lines(v_mat,params, st, 'AngleBisectors', layer)
+            
+            if so.do_excircles or so.do_excentres or so.do_excentral_tri:
+                v_mat = ((-1,1,1),(1,-1,1),(1,1,-1))
+                if so.do_excentral_tri:
+                    draw_SVG_tri(v_mat, params, st,'ExcentralTriangle',layer)
+                for i in range(3):
+                    if so.do_excircles:
+                        r = area/(semiperim-sides[i])
+                        draw_SVG_circle(r, v_mat[i], params, st, 'Excircle:'+str(i), layer)
+                    if so.do_excentres:
+                        draw_SVG_circle(0, v_mat[i], params, st, 'Excentre:'+str(i), layer)
+            
+            if so.do_sym_tri or so.do_symmedians:
+                v_mat = ((0,s_b,s_c), (s_a, 0, s_c), (s_a, s_b, 0))
+                if so.do_sym_tri:
+                    draw_SVG_tri(v_mat, params, st,'SymmedialTriangle',layer)
+                if so.do_symmedians:
+                    draw_vertex_lines(v_mat,params, st, 'Symmedian', layer)
+            
+            if so.do_sym_pt:
+                pt = (s_a,s_b,s_c)
+                draw_SVG_circle(0, pt, params, st, 'SymmmedianPoint', layer)
+            
+            if so.do_gergonne_pt:
+                pt = pt_from_tcf('1/(s_a*(s_b+s_c-s_a))', params)
+                draw_SVG_circle(0, pt, params, st, 'GergonnePoint', layer)
+            
+            if so.do_nagel_pt:
+                pt = pt_from_tcf('(s_b+s_c-s_a)/s_a', params)
+                draw_SVG_circle(0, pt, params, st, 'NagelPoint', layer)
+            
+            if so.do_cust_pt or so.do_cust_radius or so.do_isogonal_conj or so.do_isotomic_conj:
+                pt = []#where we will store the point in trilinears
+                if so.mode == 'trilin':#if we are receiving from trilinears
+                    for i in range(3):
+                        strings = so.cust_str.split(':')#get split string
+                        strings[i] = translate_string(strings[i],0)
+                        func = eval('lambda params: ' + strings[i].strip('"')) #the function leading to the trilinar element
+                        pt.append(func(params)) #evaluate the function for the trilinear element
+                else:#we need a triangle function
+                    string = so.cust_str #don't need to translate, as the pt_from_tcf function does that for us
+                    pt = pt_from_tcf(string, params)#get the point from the tcf directly
+                    
+                if so.do_cust_pt:#draw the point
+                    draw_SVG_circle(0, pt, params, st, 'CustomTrilinearPoint', layer)
+                if so.do_cust_radius:#draw the circle with given radius
+                    strings = translate_string(so.radius,0)
+                    func = eval('lambda params: ' + strings.strip('"')) #the function leading to the radius
+                    r = func(params)
+                    draw_SVG_circle(r, pt, params, st, 'CustomTrilinearCircle', layer)
+                if so.do_isogonal_conj:
+                    isogonal=[0,0,0]
+                    for i in range (3):
+                        isogonal[i] = 1/pt[i]
+                    draw_SVG_circle(0, isogonal, params, st, 'CustomIsogonalConjugate', layer)
+                if so.do_isotomic_conj:
+                    isotomic=[0,0,0]
+                    for i in range (3):
+                        isotomic[i] = 1/( params[0][i]*params[0][i]*pt[i] )
+                    draw_SVG_circle(0, isotomic, params, st, 'CustomIsotomicConjugate', layer)
+
+
+e = Draw_From_Triangle()
+e.affect()
+
index 5826be693212b944fe56f2d084b4922b8a3f670e..ca3777627b3853a301f144c8de75d94236a328b7 100755 (executable)
@@ -22,12 +22,14 @@ along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 '''
 import inkex, simplepath, cubicsuperpath, dxf_templates, math
+import gettext
+_ = gettext.gettext
 
 try:
     from numpy import *
     from numpy.linalg import solve
 except:
-    inkex.errormsg("Failed to import the numpy or numpy.linalg modules. These modules are required by this extension. Please install them and try again.")
+    inkex.errormsg(_("Failed to import the numpy or numpy.linalg modules. These modules are required by this extension. Please install them and try again."))
     inkex.sys.exit()
 
 def pointdistance((x1,y1),(x2,y2)):
index 3ef24399ef0534df337fa5a88f33b3567be62303..17c80814e497b57ba2754a83c959e8a6591ed878 100644 (file)
@@ -8,21 +8,21 @@
         <page name="common" _gui-text="Model File">\r
             <param name="obj" type="optiongroup" appearance="minimal" _gui-text="Object:">\r
                 <_option value="cube">Cube</_option>\r
-                <_option value="t_cube">Truncated Cube</_option>\r
-                <_option value="sn_cube">Snub Cube</_option>\r
+                <_option value="trunc_cube">Truncated Cube</_option>\r
+                <_option value="snub_cube">Snub Cube</_option>\r
                 <_option value="cuboct">Cuboctohedron</_option>\r
                 <_option value="tet">Tetrahedron</_option>\r
-                <_option value="t_tet">Truncated Tetrahedron</_option>\r
+                <_option value="trunc_tet">Truncated Tetrahedron</_option>\r
                 <_option value="oct">Octahedron</_option>\r
-                <_option value="t_oct">Truncated Octahedron</_option>\r
+                <_option value="trunc_oct">Truncated Octahedron</_option>\r
                 <_option value="icos">Icosahedron</_option>\r
-                <_option value="t_icos">Truncated Icosahedron</_option>\r
-                <_option value="s_t_icos">Small Triambic Icosahedron</_option>\r
+                <_option value="trunc_icos">Truncated Icosahedron</_option>\r
+                <_option value="small_triam_icos">Small Triambic Icosahedron</_option>\r
                 <_option value="dodec">Dodecahedron</_option>\r
-                <_option value="t_dodec">Truncated Dodecahedron</_option>\r
-                <_option value="sn_dodec">Snub Dodecahedron</_option>\r
-                <_option value="g_dodec">Great Dodecahedron</_option>\r
-                <_option value="g_s_dodec">Great Stellated Dodecahedron</_option>\r
+                <_option value="trunc_dodec">Truncated Dodecahedron</_option>\r
+                <_option value="snub_dodec">Snub Dodecahedron</_option>\r
+                <_option value="great_dodec">Great Dodecahedron</_option>\r
+                <_option value="great_stel_dodec">Great Stellated Dodecahedron</_option>\r
                 <_option value="from_file">Load From File</_option>\r
                 </param>\r
             <param name="spec_file" type="string"  _gui-text="Filename:">great_rhombicuboct.obj</param>\r
@@ -84,7 +84,6 @@
                 <_option value="max">Maximum</_option>\r
                 <_option value="min">Minimum</_option>\r
                 <_option value="mean">Mean</_option></param>\r
-            <param name="norm" type="boolean" _gui-text="Report Normal Vector Information">0</param>\r
         </page>\r
     </param>\r
     <effect>\r
index fca66b1137612766df3e1a83bfe8878b5df17e76..a6a33ccdf569bdb4646c2a5c99f054caef17ab50 100644 (file)
@@ -26,12 +26,12 @@ Copyright (C) 2007 John Beard john.j.beard@gmail.com
 #f  1   2   3
 
 #Edges are given by a list of vertices. These will be broken down
-#into adjacent pairs. Each edge can connect only two vertices
+#into adjacent pairs automatically.
 #l  1   2   3
 
 #Faces are rendered according to the painter's algorithm and perhaps
 #back-face culling, if selected. The parameter to sort the faces by
-#is user-selectable
+#is user-selectable between max, min and average z-value of the vertices
 
 ######LICENCE#######
 This program is free software; you can redistribute it and/or modify
@@ -50,16 +50,23 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 '''
 
 import inkex
-import simplestyle, sys, simplepath, re
+import simplestyle, sys, re
 from math import *
-import gettext
-_ = gettext.gettext
 try:
     from numpy import *
 except:
     inkex.errormsg(_("Failed to import the numpy module. This module is required by this extension. Please install them and try again.  On a Debian-like system this can be done with the command, sudo apt-get install python-numpy."))
     sys.exit()
 
+#FILE IO ROUTINES
+def get_filename(self_options):
+        if self_options.obj == 'from_file':
+            file = self_options.spec_file
+        else:
+            file = self_options.obj + '.obj'
+            
+        return file
+
 def objfile(name):
     import os.path
     if __name__ == '__main__':
@@ -75,30 +82,25 @@ def get_obj_data(obj, name):
     
     #regular expressions
     getname = '(.[nN]ame:\\s*)(.*)'
-    floating = '([\-\+\\d*\.e]*)'
+    floating = '([\-\+\\d*\.e]*)'   #a possibly non-integer number, with +/- and exponent.
     getvertex = '(v\\s+)'+floating+'\\s+'+floating+'\\s+'+floating
     getedgeline = '(l\\s+)(.*)'
     getfaceline = '(f\\s+)(.*)'
-    getnextint = '(\\d+)([/\\d]*)(.*)'#we need to deal with 133\343\123 or 123\\456 as one item
-    
-    obj.vtx = []
-    obj.edg = []
-    obj.fce = []
-    obj.name=''
+    getnextint = '(\\d+)([/\\d]*)(.*)'#we need to deal with 123\343\123 or 123\\456 as equivalent to 123 (we are ignoring the other options in the obj file)
     
     for line in infile:
-        if line[0]=='#': #we have a comment line
-            m = re.search(getname, line)
+        if line[0]=='#':                    #we have a comment line
+            m = re.search(getname, line)        #check to see if this line contains a name
             if m:
-                obj.name = m.group(2)
-        elif line[0:1] == 'v': #we have a vertex (maybe)
-            m = re.search(getvertex, line)
-            if m: #we have a valid vertex
+                obj.name = m.group(2)           #if it does, set the property
+        elif line[0] == 'v':                #we have a vertex (maybe)
+            m = re.search(getvertex, line)      #check to see if this line contains a valid vertex
+            if m:                               #we have a valid vertex
                 obj.vtx.append( [float(m.group(2)), float(m.group(3)), float(m.group(4)) ] )
-        elif line[0:1] == 'l':#we have a line (maybe)
-            m = re.search(getedgeline, line)
-            if m:#we have a line beginning 'l '
-                vtxlist = []#buffer
+        elif line[0] == 'l':                #we have a line (maybe)
+            m = re.search(getedgeline, line)    #check to see if this line begins 'l '
+            if m:                               #we have a line beginning 'l '
+                vtxlist = []    #buffer
                 while line:
                     m2 = re.search(getnextint, line)
                     if m2:
@@ -109,9 +111,9 @@ def get_obj_data(obj, name):
                 if len(vtxlist) > 1:#we need at least 2 vertices to make an edge
                     for i in range (len(vtxlist)-1):#we can have more than one vertex per line - get adjacent pairs
                         obj.edg.append( ( vtxlist[i], vtxlist[i+1] ) )#get the vertex pair between that vertex and the next
-        elif line[0:1] == 'f':#we have a face (maybe)
+        elif line[0] == 'f':                #we have a face (maybe)
             m = re.search(getfaceline, line)
-            if m:#we have a line beginning 'l '
+            if m:                               #we have a line beginning 'f '
                 vtxlist = []#buffer
                 while line:
                     m2 = re.search(getnextint, line)
@@ -120,12 +122,14 @@ def get_obj_data(obj, name):
                         line = m2.group(3)#remainder
                     else:
                         line = None
-                if len(vtxlist) > 2:#we need at least 3 vertices to make an edge
+                if len(vtxlist) > 2:            #we need at least 3 vertices to make an edge
                     obj.fce.append(vtxlist)
     
-    if obj.name == '':#no name was found, use filename, without extension
+    if obj.name == '':#no name was found, use filename, without extension (.obj)
         obj.name = name[0:-4]
 
+#RENDERING AND SVG OUTPUT FUNCTIONS
+
 def draw_SVG_dot((cx, cy), st, name, parent):
     style = { 'stroke': '#000000', 'stroke-width':str(st.th), 'fill': st.fill, 'stroke-opacity':st.s_opac, 'fill-opacity':st.f_opac}
     circ_attribs = {'style':simplestyle.formatStyle(style),
@@ -135,8 +139,7 @@ def draw_SVG_dot((cx, cy), st, name, parent):
     inkex.etree.SubElement(parent, inkex.addNS('circle','svg'), circ_attribs )
     
 def draw_SVG_line((x1, y1),(x2, y2), st, name, parent):
-    #sys.stderr.write(str(p1))
-    style = { 'stroke': '#000000', 'stroke-width':str(st.th)}
+    style = { 'stroke': '#000000', 'stroke-width':str(st.th), 'stroke-linecap':st.linecap}
     line_attribs = {'style':simplestyle.formatStyle(style),
                     inkex.addNS('label','inkscape'):name,
                     'd':'M '+str(x1)+','+str(-y1)+' L '+str(x2)+','+str(-y2)}
@@ -157,12 +160,95 @@ def draw_SVG_poly(pts, face, st, name, parent):
                     inkex.addNS('label','inkscape'):name,'d': d}
     inkex.etree.SubElement(parent, inkex.addNS('path','svg'), line_attribs )
     
+def draw_edges( edge_list, pts, st, parent ):
+    for edge in edge_list:#for every edge
+        pt_1 = pts[ edge[0]-1 ][0:2] #the point at the start
+        pt_2 = pts[ edge[1]-1 ][0:2] #the point at the end
+        name = 'Edge'+str(edge[0])+'-'+str(edge[1])
+        draw_SVG_line(pt_1,pt_2,st, name, parent)#plot edges
+                              
+def draw_faces( faces_data, pts, obj, shading, fill_col,st, parent):          
+    for face in faces_data:#for every polygon that has been sorted
+        if shading:
+            st.fill = get_darkened_colour(fill_col, face[1]/pi)#darken proportionally to angle to lighting vector
+        else:
+            st.fill = get_darkened_colour(fill_col, 1)#do not darken colour
+                          
+        face_no = face[3]#the number of the face to draw
+        draw_SVG_poly(pts, obj.fce[ face_no ], st, 'Face:'+str(face_no), parent)
+
+def get_darkened_colour( (r,g,b), factor):
+#return a hex triplet of colour, reduced in lightness proportionally to a value between 0 and 1
+    return  '#' + "%02X" % floor( factor*r ) \
+                + "%02X" % floor( factor*g ) \
+                + "%02X" % floor( factor*b ) #make the colour string
+
+def make_rotation_log(options):
+#makes a string recording the axes and angles of each roation, so an object can be repeated
+    return   options.r1_ax+str('%.2f'%options.r1_ang)+':'+\
+             options.r2_ax+str('%.2f'%options.r2_ang)+':'+\
+             options.r3_ax+str('%.2f'%options.r3_ang)+':'+\
+             options.r1_ax+str('%.2f'%options.r4_ang)+':'+\
+             options.r2_ax+str('%.2f'%options.r5_ang)+':'+\
+             options.r3_ax+str('%.2f'%options.r6_ang)
+
+#MATHEMATICAL FUNCTIONS
+def get_angle( vector1, vector2 ): #returns the angle between two vectors
+    return acos( dot(vector1, vector2) )
+
+def length(vector):#return the pythagorean length of a vector
+    return sqrt(dot(vector,vector))
+
+def normalise(vector):#return the unit vector pointing in the same direction as the argument
+    return vector / length(vector)
+
 def get_normal( pts, face): #returns the normal vector for the plane passing though the first three elements of face of pts
     #n = pt[0]->pt[1] x pt[0]->pt[3]
     a = (array(pts[ face[0]-1 ]) - array(pts[ face[1]-1 ]))
     b = (array(pts[ face[0]-1 ]) - array(pts[ face[2]-1 ]))
     return cross(a,b).flatten()
+
+def get_unit_normal(pts, face, cw_wound): #returns the unit normal for the plane passing through the first three points of face, taking account of winding
+    if cw_wound:
+        winding = -1 #if it is clockwise wound, reverse the vecotr direction
+    else:
+        winding = 1 #else leave alone
+    
+    return winding*normalise(get_normal(pts, face))
+
+def rotate( matrix, angle, axis ):#choose the correct rotation matrix to use
+    if   axis == 'x':
+        matrix = rot_x(matrix, angle)
+    elif axis == 'y':
+        matrix = rot_y(matrix, angle)
+    elif axis == 'z':
+        matrix = rot_z(matrix, angle)
+    return matrix
+    
+def rot_z( matrix , a):#rotate around the z-axis by a radians
+    trans_mat = mat(array( [[ cos(a) , -sin(a) ,    0   ],
+                            [ sin(a) ,  cos(a) ,    0   ],
+                            [   0    ,    0    ,    1   ]]))
+    return trans_mat*matrix
+
+def rot_y( matrix , a):#rotate around the y-axis by a radians
+    trans_mat = mat(array( [[ cos(a) ,    0    , sin(a) ],
+                            [   0    ,    1    ,    0   ],
+                            [-sin(a) ,    0    , cos(a) ]]))
+    return trans_mat*matrix
     
+def rot_x( matrix , a):#rotate around the x-axis by a radians
+    trans_mat = mat(array( [[   1    ,    0    ,    0   ],
+                            [   0    ,  cos(a) ,-sin(a) ],
+                            [   0    ,  sin(a) , cos(a) ]]))
+    return trans_mat*matrix
+
+def get_transformed_pts( vtx_list, trans_mat):#translate the points according to the matrix
+    transformed_pts = []
+    for vtx in vtx_list:
+        transformed_pts.append((trans_mat * mat(vtx).T).T.tolist()[0] )#transform the points at add to the list
+    return transformed_pts
+
 def get_max_z(pts, face): #returns the largest z_value of any point in the face
     max_z = pts[ face[0]-1 ][2]
     for i in range(1, len(face)):
@@ -183,54 +269,71 @@ def get_cent_z(pts, face): #returns the centroid z_value of any point in the fac
             sum += pts[ face[i]-1 ][2]
     return sum/len(face)
     
-def length(vector):#return the pythagorean length of a vector
-    return sqrt(dot(vector,vector))
-    
-def rot_z( matrix , a):
-    trans_mat = mat(array( [[ cos(a) , -sin(a) ,    0   ],
-                            [ sin(a) ,  cos(a) ,    0   ],
-                            [   0    ,    0    ,    1   ]]))
-    return trans_mat*matrix
+def get_z_sort_param(pts, face, method): #returns the z-sorting parameter specified by 'method' ('max', 'min', 'cent') 
+    z_sort_param = ''
+    if  method == 'max':
+        z_sort_param  = get_max_z(pts, face)
+    elif method == 'min':
+        z_sort_param  = get_min_z(pts, face)
+    else:
+        z_sort_param  = get_cent_z(pts, face)
+    return z_sort_param
+
+#OBJ DATA MANIPULATION
+def remove_duplicates(list):#removes the duplicates from a list
+    list.sort()#sort the list
+    last = list[-1]
+    for i in range(len(list)-2, -1, -1):
+        if last==list[i]:
+            del list[i]
+        else:
+            last = list[i]
+    return list
 
-def rot_y( matrix , a):
-    trans_mat = mat(array( [[ cos(a) ,    0    , sin(a) ],
-                            [   0    ,    1    ,    0   ],
-                            [-sin(a) ,    0    , cos(a) ]]))
-    return trans_mat*matrix
-    
-def rot_x( matrix , a):
-    trans_mat = mat(array( [[   1    ,    0    ,    0   ],
-                            [   0    ,  cos(a) ,-sin(a) ],
-                            [   0    ,  sin(a) , cos(a) ]]))
-    return trans_mat*matrix
-    
 def make_edge_list(face_list):#make an edge vertex list from an existing face vertex list
     edge_list = []
     for i in range(len(face_list)):#for every face
         edges = len(face_list[i]) #number of edges around that face
         for j in range(edges):#for every vertex in that face
-            edge_list.append( [face_list[i][j], face_list[i][(j+1)%edges] ] )#get the vertex pair between that vertex and the next
-    for i in range(len(edge_list)):
-        edge_list[i].sort()#sort the entries of the entries
-    edge_list.sort()#sort the list
-    last = edge_list[-1] #delete duplicate entries
-    for i in range(len(edge_list)-2, -1, -1):
-        if last==edge_list[i]:
-            del edge_list[i]
-        else:
-            last=edge_list[i]
-    return edge_list
+            new_edge = [face_list[i][j], face_list[i][(j+1)%edges] ]
+            new_edge.sort() #put in ascending order of vertices (to ensure we spot duplicates)
+            edge_list.append( new_edge )#get the vertex pair between that vertex and the next
+    
+    return remove_duplicates(edge_list)
     
 class Style(object): #container for style information
-    def __init__(self):
-        None
+    def __init__(self,options):
+        self.th = options.th
+        self.fill= '#ff0000'
+        self.col = '#000000'
+        self.r = 2
+        self.f_opac = str(options.f_opac/100.0)
+        self.s_opac = str(options.s_opac/100.0)
+        self.linecap = 'round'
+        self.linejoin = 'round'
 
 class Obj(object): #a 3d object defined by the vertices and the faces (eg a polyhedron)
 #edges can be generated from this information
     def __init__(self):
-        None
+        self.vtx = []
+        self.edg = []
+        self.fce = []
+        self.name=''
+        
+    def set_type(self, options):
+        if options.type == 'face':
+            if self.fce != []:
+                self.type = 'face'
+            else:
+                inkex.errormsg(_('No face data found in specified file\n'))
+                self.type = 'error'
+        else:
+            if self.edg != []:
+                self.type = 'edge'
+            else:
+                inkex.errormsg(_('No edge data found in specified file\n'))
+                obj.type = 'error'
 
 class Poly_3D(inkex.Effect):
     def __init__(self):
@@ -338,170 +441,75 @@ class Poly_3D(inkex.Effect):
             
             
     def effect(self):
-        so = self.options
+        so = self.options#shorthand
         
-        st = Style()
-        st.th = so.th
-        st.fill= '#ff0000'
-        st.col = '#000000'
-        st.r = 2
-        st.f_opac = str(so.f_opac/100.0)
-        st.s_opac = str(so.s_opac/100.0)
-        st.linecap = 'round'
-        st.linejoin = 'round'
+        #INITIALISE AND LOAD DATA
         
-        file = ''
-        if   so.obj == 'cube':
-            file = 'cube.obj'
-        elif so.obj == 't_cube':
-            file = 'trunc_cube.obj'
-        elif so.obj == 'sn_cube':
-            file = 'snub_cube.obj'
-        elif so.obj == 'cuboct':
-            file = 'cuboct.obj'
-        elif so.obj == 'tet':
-            file = 'tet.obj'
-        elif so.obj == 't_tet':
-            file = 'trunc_tet.obj'
-        elif so.obj == 'oct':
-            file = 'oct.obj'
-        elif so.obj == 't_oct':
-            file = 'trunc_oct.obj'
-        elif so.obj == 'icos':
-            file = 'icos.obj'
-        elif so.obj == 't_icos':
-            file = 'trunc_icos.obj'
-        elif so.obj == 's_t_icos':
-            file = 'small_triam_icos.obj'
-        elif so.obj == 'g_s_dodec':
-            file = 'great_stel_dodec.obj'
-        elif so.obj == 'dodec':
-            file = 'dodec.obj'
-        elif so.obj == 'sn_dodec':
-            file = 'snub_dodec.obj'
-        elif so.obj == 'g_dodec':
-            file = 'great_dodec.obj'
-        elif so.obj == 't_dodec':
-            file = 'trunc_dodec.obj'
-        elif so.obj == 'from_file':
-            file = so.spec_file
-            
         obj = Obj() #create the object
-        get_obj_data(obj, file)
+        file = get_filename(so)#get the file to load data from
+        get_obj_data(obj, file)#load data from the obj file
+        obj.set_type(so)#set the type (face or edge) as per the settings
         
-        obj.type=''
-        if so.type == 'face':
-            if len(obj.fce) > 0:
-                obj.type = 'face'
-            else:
-                sys.stderr.write('No face data found in specified file\n')
-                obj.type = 'error'
-        else:
-            if len(obj.edg) > 0:
-                obj.type = 'edge'
-            else:
-                sys.stderr.write('No edge data found in specified file\n')
-                obj.type = 'error'
+        st = Style(so) #initialise style
+        fill_col = (so.f_r, so.f_g, so.f_b) #colour tuple for the face fill
+        lighting = normalise( (so.lv_x,-so.lv_y,so.lv_z) ) #unit light vector
         
-        trans_mat = mat(identity(3, float)) #init. trans matrix as identity matrix
+        #INKSCAPE GROUP TO CONTAIN THE POLYHEDRON
         
-        #perform rotations
+        #Put in in the centre of the current view
+        poly_transform = 'translate(' + str( self.view_center[0]) + ',' + str( self.view_center[1]) + ')'
+        #we will put all the rotations in the object name, so it can be repeated in 
+        poly_name = obj.name+':'+make_rotation_log(so)
+        poly_attribs = {inkex.addNS('label','inkscape'):poly_name,
+                        'transform':poly_transform }
+        poly = inkex.etree.SubElement(self.current_layer, 'g', poly_attribs)#the group to put everything in
+        
+        #TRANFORMATION OF THE OBJECT (ROTATION, SCALE, ETC)
+        
+        trans_mat = mat(identity(3, float)) #init. trans matrix as identity matrix
         for i in range(1, 7):#for each rotation
             axis  = eval('so.r'+str(i)+'_ax')
             angle = eval('so.r'+str(i)+'_ang') *pi/180
-            if   axis == 'x':
-                trans_mat = rot_x(trans_mat, angle)
-            elif axis == 'y':
-                trans_mat = rot_y(trans_mat, angle)
-            elif axis == 'z':
-                trans_mat = rot_z(trans_mat, angle)
-
-        # Embed points in group
-        #Put in in the centre of the current view
-        t = 'translate(' + str( self.view_center[0]) + ',' + str( self.view_center[1]) + ')'
-        #we will put all the rotations in the object name, so it can be repeated in future
-        proj_attribs = {inkex.addNS('label','inkscape'):obj.name+':'+so.r1_ax+str('%.2f'%so.r1_ang)+':'+
-                                                                     so.r2_ax+str('%.2f'%so.r2_ang)+':'+
-                                                                     so.r3_ax+str('%.2f'%so.r3_ang)+':'+
-                                                                     so.r1_ax+str('%.2f'%so.r4_ang)+':'+
-                                                                     so.r2_ax+str('%.2f'%so.r5_ang)+':'+
-                                                                     so.r3_ax+str('%.2f'%so.r6_ang),
-                        'transform':t }
-        proj = inkex.etree.SubElement(self.current_layer, 'g', proj_attribs)#the group to put everything in
-        
-        vp_pts=[] #the points as projected in the z-axis onto the viewplane
+            trans_mat = rotate(trans_mat, angle, axis)
+        trans_mat = trans_mat*so.scl #scale by linear factor (do this only after the transforms to reduce round-off)
         
-        for i in range(len(obj.vtx)):
-            vp_pts.append((so.scl* (trans_mat * mat(obj.vtx[i]).T)).T.tolist()[0] )#transform the points at add to vp_pts
+        transformed_pts = get_transformed_pts(obj.vtx, trans_mat) #the points as projected in the z-axis onto the viewplane
         
-        lighting = [so.lv_x,-so.lv_y,so.lv_z] #direction of light vector
-        lighting = lighting/length(lighting) #normalise
+        #RENDERING OF THE OBJECT
         
         if so.show == 'vtx':
-            for i in range(len(vp_pts)):
-                draw_SVG_dot([vp_pts[i][0],vp_pts[i][1]], st, 'Point'+str(i), proj)#plot points
+            for i in range(len(transformed_pts)):
+                draw_SVG_dot([transformed_pts[i][0],transformed_pts[i][1]], st, 'Point'+str(i), poly)#plot points using transformed_pts x and y coords
         
         elif so.show == 'edg':
-            if obj.type == 'face':#we must generate the edge list
+            if obj.type == 'face':#we must generate the edge list from the faces
                 edge_list = make_edge_list(obj.fce)
             else:#we already have an edge list
                 edge_list = obj.edg
                         
-            for i in range(len(edge_list)):#for every edge
-                pt_1 = vp_pts[ edge_list[i][0]-1 ] #the point at the start
-                pt_2 = vp_pts[ edge_list[i][1]-1 ] #the point at the end
-                
-                draw_SVG_line((pt_1[0], pt_1[1]),
-                              (pt_2[0], pt_2[1]),
-                              st, 'Edge', proj)#plot edges
+            draw_edges( edge_list, transformed_pts, st, poly)
                               
         elif so.show == 'fce':
             if obj.type == 'face':#we have a face list
-                
-                if so.cw_wound: rev = -1 #if cw wound, reverse normals
-                else: rev = 1
-                
+               
                 z_list = []
                 
                 for i in range(len(obj.fce)):
-                    norm = get_normal(vp_pts, obj.fce[i])#get the normal to the face
-                    norm = rev*norm / length(norm)#normalise and reverse if needed
-                    angle = acos( dot(norm, lighting) )#get the angle between the normal and the lighting vector
-                    
-                    
-                    if   so.z_sort =='max':
-                        z_sort_param  = get_max_z(vp_pts, obj.fce[i])
-                    elif so.z_sort == 'min':
-                        z_sort_param  = get_min_z(vp_pts, obj.fce[i])
-                    else:
-                        z_sort_param  = get_cent_z(vp_pts, obj.fce[i])
+                    face = obj.fce[i] #the face we are dealing with
+                    norm = get_unit_normal(transformed_pts, face, so.cw_wound) #get the normal vector to the face
+                    angle = get_angle( norm, lighting )#get the angle between the normal and the lighting vector
+                    z_sort_param = get_z_sort_param(transformed_pts, face, so.z_sort)
                     
-                    if so.norm:#if a log of normals is required
-                        if i == 0:
-                            sys.stderr.write('Normal Vectors for each face are: \n\n')
-                        sys.stderr.write('Face '+str(i)+': ' + str(norm) + '\n')
-                    
-                    if so.back: # draw all polygons
-                        z_list.append((z_sort_param, angle, norm, i) )
-                    elif norm[2] > 0:#ignore backwards-facing faces (back face cull)
-                        z_list.append((z_sort_param, angle, norm, i) ) #record the maximum z-value of the face and angle to light, along with the face ID and normal
+                    if so.back or norm[2] > 0: # include all polygons or just the front-facing ones as needed
+                        z_list.append((z_sort_param, angle, norm, i))#record the maximum z-value of the face and angle to light, along with the face ID and normal
                 
                 z_list.sort(lambda x, y: cmp(x[0],y[0])) #sort by ascending sort parameter of the face
-                
-                for i in range(len(z_list)):#for every polygon that has been sorted
-                    if so.shade:
-                        st.fill = '#' + "%02X" % floor( z_list[i][1]*so.f_r/pi ) \
-                                      + "%02X" % floor( z_list[i][1]*so.f_g/pi ) \
-                                      + "%02X" % floor( z_list[i][1]*so.f_b/pi ) #make the colour string
-                    else:
-                        st.fill = '#' + '%02X' % so.f_r + '%02X' % so.f_g + '%02X' % so.f_b #opaque
-                                      
-                    face_no = z_list[i][3]#the number of the face to draw
-                    draw_SVG_poly(vp_pts, obj.fce[ face_no ], st, 'Face:'+str(face_no), proj)
-            else:
-                sys.stderr.write('Face Data Not Found. Ensure file contains face data, and check the file is imported as "Face-Specifed" under the "Model File" tab.\n')
+                draw_faces( z_list, transformed_pts, obj, so.shade, fill_col, st, poly)
+
+            else:#we cannot generate a list of faces from the edges without a lot of computation
+                inkex.errormsg(_('Face Data Not Found. Ensure file contains face data, and check the file is imported as "Face-Specifed" under the "Model File" tab.\n'))
         else:
-            sys.stderr.write('Internal Error. No view type selected\n')
+            inkex.errormsg(_('Internal Error. No view type selected\n'))
         
 if __name__ == '__main__':
     e = Poly_3D()
index a7f738d41d5be7ce05bc1fd8d50ca44aec40e87a..610c8bf19fcca24d178f575150ca05845c40e71b 100644 (file)
@@ -5,16 +5,15 @@
   <dependency type="executable" location="extensions">inkex.py</dependency>
   <dependency type="executable" location="extensions">render_barcode.py</dependency>
   <param name="type" type="enum" _gui-text="Barcode Type:">
-    <item value="ean13">EAN13</item>
     <item value="ean8">EAN8</item>
-    <item value="ean13">UPC-A</item>
-    <item value="ean13">UPC-E</item>
-    <item value="ean13">UPC-5</item>
+    <item value="ean13">EAN13</item>
+    <item value="upca">UPC-A</item>
+    <item value="upce">UPC-E</item>
     <item value="code39">Code39</item>
     <item value="code39ext">Code39Ext</item>
     <item value="code93">Code93</item>
     <item value="code128">Code128</item>
-    <item value="rm4scc">RM4SCC</item>
+    <item value="rm4scc">RM4CC / RM4SCC</item>
   </param>
   <param name="text" type="string" _gui-text="Barcode Data:"></param>
   <param name="height" type="int" _gui-text="Bar Height:" min="20" max="80">30</param>
index 012ea5c77847b4dbe7057ba09919e983e7188238..356d75581c472866e03f56af6964fd78b83a94c0 100755 (executable)
@@ -191,6 +191,21 @@ def parseColor(c):
         c=svgcolors[c]
     if c.startswith('#') and len(c)==4:
         c='#'+c[1:2]+c[1:2]+c[2:3]+c[2:3]+c[3:]+c[3:]
+    elif c.startswith('rgb('):
+        # remove the rgb(...) stuff
+        tmp = c.strip()[4:-1]
+        numbers = [number.strip() for number in tmp.split(',')]
+        converted_numbers = []
+        if len(numbers) == 3:
+            for num in numbers:
+                if num.endswith(r'%'):
+                    converted_numbers.append( int(int(num[0:-1])*255/100))
+                else:
+                    converted_numbers.append(int(num))
+            return tuple(converted_numbers)
+        else:    
+            return (0,0,0)
+        
     r=int(c[1:3],16)
     g=int(c[3:5],16)
     b=int(c[5:],16)
index 6c004ca1557c1d92218bdfcb85b8454a50adab55..5e1b6078d5ce69cfafc51ebe2777feada42831ff 100644 (file)
 <stop style="stop-color:#000000;stop-opacity:1;" offset="0" id="stop7774" />
 <stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop7776" />
 </linearGradient>
-<linearGradient inkscape:collect="always" id="linearGradient7716">
-<stop style="stop-color:#000000;stop-opacity:1;" offset="0" id="stop7718" />
-<stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop7720" />
-</linearGradient>
 <linearGradient inkscape:collect="always" id="linearGradient5602">
 <stop style="stop-color:#cccccc;stop-opacity:1" offset="0" id="stop5604" />
 <stop style="stop-color:#000000;stop-opacity:1" offset="1" id="stop5606" />
 <linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient5389" gradientUnits="userSpaceOnUse" x1="113.7436" y1="149.37389" x2="123.97673" y2="167.55257" />
 <linearGradient inkscape:collect="always" xlink:href="#linearGradient5734" id="linearGradient5391" gradientUnits="userSpaceOnUse" x1="283.98041" y1="25.257681" x2="279.47864" y2="21.160408" />
 <linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient5393" gradientUnits="userSpaceOnUse" x1="279.64499" y1="22.038395" x2="283.10538" y2="25.592152" />
-<linearGradient inkscape:collect="always" xlink:href="#linearGradient5663" id="linearGradient5577" gradientUnits="userSpaceOnUse" x1="872" y1="66" x2="865.5" y2="57.5" />
 <radialGradient inkscape:collect="always" xlink:href="#linearGradient5602" id="radialGradient5579" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,1.666667,0,-148.5)" cx="842.25" cy="222.75" fx="842.7534" fy="222.75" r="0.75" />
 <linearGradient inkscape:collect="always" xlink:href="#linearGradient5740" id="linearGradient5581" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.845525,0,0,3.663228,882.7464,-542.9603)" x1="18.508638" y1="218.88832" x2="17.150238" y2="214.55122" />
 <linearGradient inkscape:collect="always" xlink:href="#linearGradient5740" id="linearGradient5583" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.388986,0,0,2.194866,891.1676,-224.2946)" x1="15.741557" y1="213.87196" x2="19.382519" y2="219.41841" />
 <linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient5857" gradientUnits="userSpaceOnUse" x1="31.372471" y1="132.94643" x2="36.186733" y2="138.5" />
 <linearGradient inkscape:collect="always" xlink:href="#linearGradient3480" id="linearGradient5859" gradientUnits="userSpaceOnUse" gradientTransform="translate(-1.5,7.5244)" x1="34.519402" y1="137.51648" x2="42.183006" y2="137.47379" />
 <linearGradient inkscape:collect="always" xlink:href="#linearGradient5204" id="linearGradient5861" gradientUnits="userSpaceOnUse" x1="13.479776" y1="86.265739" x2="17.629627" y2="92.007393" />
-<radialGradient inkscape:collect="always" xlink:href="#linearGradient7716" id="radialGradient7722" cx="373.9964" cy="138.4813" fx="373.9964" fy="138.4813" r="1.507797" gradientUnits="userSpaceOnUse" />
 <radialGradient inkscape:collect="always" xlink:href="#linearGradient7772" id="radialGradient7778" cx="375.0941" cy="137.9821" fx="375.0941" fy="137.9821" r="1.111868" gradientUnits="userSpaceOnUse" />
 <radialGradient inkscape:collect="always" xlink:href="#linearGradient7780" id="radialGradient7786" cx="375.0941" cy="137.9821" fx="375.0941" fy="137.9821" r="1.111868" gradientUnits="userSpaceOnUse" />
 <radialGradient inkscape:collect="always" xlink:href="#linearGradient7788" id="radialGradient7794" cx="375.0941" cy="137.9821" fx="375.0941" fy="137.9821" r="1.111868" gradientUnits="userSpaceOnUse" />
 <radialGradient inkscape:collect="always" xlink:href="#linearGradient7820" id="radialGradient7826" cx="375.0941" cy="137.9821" fx="375.0941" fy="137.9821" r="1.111868" gradientUnits="userSpaceOnUse" />
 <radialGradient inkscape:collect="always" xlink:href="#linearGradient7828" id="radialGradient7834" cx="375.0941" cy="137.9821" fx="375.0941" fy="137.9821" r="1.111868" gradientUnits="userSpaceOnUse" />
 <radialGradient inkscape:collect="always" xlink:href="#linearGradient7836" id="radialGradient7842" cx="375.0941" cy="137.9821" fx="375.0941" fy="137.9821" r="1.111868" gradientUnits="userSpaceOnUse" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient5663" id="linearGradient5376" gradientUnits="userSpaceOnUse" x1="872" y1="66" x2="865.5" y2="57.5" gradientTransform="translate(20,0)" />
 </defs>
-<sodipodi:namedview inkscape:guide-bbox="true" inkscape:current-layer="g5078" inkscape:grid-bbox="true" inkscape:pageopacity="1.0000000" pagecolor="#e8e8e4" snaptoguides="true" showguides="true" inkscape:window-y="0" inkscape:window-x="0" inkscape:window-height="1000" inkscape:window-width="1225" inkscape:cy="1067.296" inkscape:cx="387.9922" inkscape:zoom="2.567223" gridtolerance="6" snaptogrid="false" showgrid="true" id="base" inkscape:document-units="px" inkscape:grid-points="true" guidetolerance="8" fill="#8ab3de" stroke="#646464" inkscape:object-nodes="true" objecttolerance="11" inkscape:snap-bbox="false" inkscape:snap-nodes="true" inkscape:bbox-nodes="true" inkscape:bbox-paths="true" inkscape:snap-global="true">
+<sodipodi:namedview inkscape:guide-bbox="true" inkscape:current-layer="svg1" inkscape:grid-bbox="true" inkscape:pageopacity="1.0000000" pagecolor="#e8e8e4" snaptoguides="true" showguides="true" inkscape:window-y="0" inkscape:window-x="0" inkscape:window-height="1000" inkscape:window-width="1225" inkscape:cy="1184.005" inkscape:cx="636.4626" inkscape:zoom="3.242702" gridtolerance="6" snaptogrid="false" showgrid="true" id="base" inkscape:document-units="px" inkscape:grid-points="true" guidetolerance="8" fill="#8ab3de" stroke="#646464" inkscape:object-nodes="true" objecttolerance="11" inkscape:snap-bbox="false" inkscape:snap-nodes="true" inkscape:bbox-nodes="true" inkscape:bbox-paths="true" inkscape:snap-global="true">
 <inkscape:grid type="xygrid" id="grid9252" originx="0px" originy="0px" spacingx="0.5px" spacingy="0.5px" empspacing="2" visible="true" enabled="false" />
 <sodipodi:guide orientation="0,1" position="630.08101,968.02815" id="guide4946" />
 <sodipodi:guide orientation="0,1" position="618.47896,943.93157" id="guide4948" />
@@ -702,7 +697,7 @@ http://www.inkscape.org/</dc:description>
 <path style="fill:url(#linearGradient3737)" class="shade" d="M 8.9,61.7 C 6.3,71.1 22.3,70.9 31.2,74.4 32.7,73.5 33.5,72.4 32.4,71.4 25.2,67.8 11,67.8 8.9,61.7 z M 120,62.7 C 117.3,71.6 94.5,75 86.6,79.7 85.5,80.8 86.2,81.8 87.5,82.8 97.3,77.9 123.2,74.1 120,62.7 z M 44.3,73.7 C 41.1,73.7 39.1,75.3 44.9,77.4 52.6,78 63.7,81.1 66.1,82.1 69.8,75.5 45.1,73.7 44.3,73.7 z M 23.2,82.2 C 21.9,83.1 21.2,84.1 22.3,85.1 25.8,88.8 43.8,92.2 47.5,95.8 48.4,94.6 48.7,93.4 47.6,92.2 44.2,88.8 28.2,85.6 23.2,82.2 z M 103,91.3 C 102.3,92.1 101.7,93 101.5,94 101.5,96.1 116.9,97.4 116.9,93.4 116.6,92.7 116.3,92 115.7,91.3 112.9,92.9 106,92.5 103,91.3 z M 95.6,91.7 C 92.2,98.8 84.3,94.2 75.8,102.8 74.4,104.3 75.2,105.1 76.5,105.8 85.2,97.6 93.2,102.9 96.2,94 96.4,93.1 96.2,92.4 95.6,91.7 z M 41.6,98.7 C 39.2,101.9 35,104 32,101.4 31.7,101.2 31.5,100.9 31.3,100.6 30.2,102 30.2,103.5 32,105.1 35.6,108.2 41.3,104.3 43,99.9 42.7,99.4 42.1,99 41.6,98.7 z M 98.3,99.7 C 96,103.4 100.6,106.4 104.7,104.1 105.3,103.4 105.2,102 104.1,100.6 101.7,101.8 99.4,101.1 98.3,99.7 z M 43.9,103.6 C 43,104.7 42.7,106 43.8,107.2 47.4,110.8 55.8,107.3 57.3,115.8 58.4,121.9 72,118.7 78.8,113.8 80.3,112.16 79.6,111.1 78.3,110.3 71.2,115.1 58.3,118 57.3,112.2 55.8,103.7 47.5,107.1 43.9,103.6 z" id="path46" />
 <path id="icecap" class="full-specularity" style="fill:url(#linearGradient3739)" d="M 70.5,15.5 86.8,32.1 C 88.3,33.6 88.3,36.7 87.4,37.6 L 79.3,31 77.7,40.7 71,37.1 60.1,44 56.5,29.5 50.7,42.1 36.2,42 C 33.4,42 33.8,39.1 36.7,36.2 42.4,29.9 53.5,19.2 57,15.5 60.6,11.8 66.9,11.9 70.5,15.5 z" />
 </g>
-<use x="0" y="0" xlink:href="#path4893" id="use4911" transform="matrix(0,1,1,0,805.5171,-805.2431)" width="1250" height="1250" />
+<use x="0" y="0" xlink:href="#path4893" id="use4911" transform="matrix(0,1,1,0,825.5171,-825.2431)" width="1250" height="1250" />
 <g transform="translate(839.0362,80.70908)" id="layer1" />
 <g style="stroke:#000000;stroke-opacity:1" transform="translate(-251.412,135.0283)" id="simplify" inkscape:label="#simplify">
 <path id="path10936" style="fill:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4" d="M 486.953,205.5 501.953,205.5 M 501.953,201.4255 C 495.453,205.9255 493.453,194.4542 486.953,200.4255 M 486.953,193.6678 C 488.953,198.6678 489.0896,191.5995 490.953,190.6678 492.953,189.6678 493.2942,193.6914 493.953,195.6678 494.953,198.6678 495.953,192.6678 497.953,191.6678 500.7814,190.2536 497.953,198.6678 501.953,194.6678" />
@@ -984,8 +979,8 @@ http://www.inkscape.org/</dc:description>
 </g>
 <g id="node_cusp" transform="translate(665,-119.9465)">
 <rect y="175" x="-45" height="16" width="16" id="rect3216" style="color:#000000;fill:none;stroke:none;stroke-width:1;marker:none;display:inline" />
-<path style="fill:none;stroke:#646464;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M -44.50979,175.5032 C -37.52207,175.5032 -37.53892,185.5192 -37.53892,187.5192 -33.0238,185 -30.0238,181 -29.5041,175.5032" id="path3226" sodipodi:nodetypes="ccc" />
-<rect y="103.933" x="-161.2208" height="4.232837" width="4.189415" id="rect3224" style="color:#000000;fill:#6464ff;fill-opacity:0.3921569;fill-rule:evenodd;stroke:#0000ff;stroke-width:1.0000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline" transform="matrix(0.707109,-0.707105,0.707109,0.707105,0,0)" />
+<path style="fill:none;stroke:#646464;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M -44.50979,175.5032 C -37.52207,175.5032 -37.53892,184.6391 -37.53892,186.6391 -33.0238,184.1199 -30.0238,181 -29.5041,175.5032" id="path3226" sodipodi:nodetypes="ccc" />
+<rect y="103.5115" x="-160.3997" height="3.831147" width="3.791844" id="rect3224" style="color:#000000;fill:#6464ff;fill-opacity:0.3921569;fill-rule:evenodd;stroke:#0000ff;stroke-width:0.9051018;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline" transform="matrix(0.7071088,-0.7071048,0.7071088,0.7071048,0,0)" />
 </g>
 <g id="node_smooth" transform="translate(684.986,-119.9465)">
 <path style="fill:none;stroke:#646464;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M -44.41296,176.5635 C -44.94008,180.0159 -43.54193,185.457 -37.54193,185.457 -31.54193,185.457 -29.98307,179.8869 -30.45595,176.4345" id="path3254" sodipodi:nodetypes="csc" />
@@ -993,20 +988,19 @@ http://www.inkscape.org/</dc:description>
 <use transform="translate(0.0140001,-3.0535)" x="0" y="0" xlink:href="#rect4374" id="use5742" width="1250" height="1250" />
 </g>
 <g id="node_symmetric" transform="translate(705.0198,-119.9465)" inkscape:label="#node_symmetric">
-<path style="fill:none;stroke:#646464;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M -42.44776,186.5 -31.55518,186.5" id="path10665" sodipodi:nodetypes="cc" />
-<path style="fill:none;stroke:#646464;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M -44.41296,176.5635 C -44.94008,180.0159 -43.02606,185.543 -37.02606,185.543 -31.02606,185.543 -29.0373,180.0159 -29.51018,176.5635" id="path10667" sodipodi:nodetypes="csc" />
+<path id="path10667" style="fill:none;stroke:#646464;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M -44.41296,176.5635 C -44.94008,180.0159 -43.02606,186.0936 -37.02606,186.0936 -31.02606,186.0936 -29.0373,180.0159 -29.51018,176.5635 M -42.44776,186.1975 -31.55518,186.1975" sodipodi:nodetypes="csccc" />
 <rect y="175" x="-45" height="16" width="16" id="rect10669" style="color:#000000;fill:none;stroke:none;stroke-width:1;marker:none;display:inline" />
 <rect y="-39.47938" x="-188.4831" height="4.950177" width="4.966394" id="rect10671" style="color:#000000;fill:#6464ff;fill-opacity:0.3921569;fill-rule:evenodd;stroke:#0000ff;stroke-width:1.0000015;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline" transform="matrix(2.790265e-6,-1,1,-2.867107e-6,0,0)" />
-<rect style="color:#000000;fill:#6464ff;fill-opacity:0.3921569;fill-rule:evenodd;stroke:#0000ff;stroke-width:1.0000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline" id="rect10673" width="2.067648" height="2.017743" x="-44.54361" y="185.4978" />
-<rect style="color:#000000;fill:#6464ff;fill-opacity:0.3921569;fill-rule:evenodd;stroke:#0000ff;stroke-width:1.0000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline" id="rect10675" width="2.022052" height="2.026662" x="-31.53185" y="185.4733" />
+<rect style="color:#000000;fill:#ffffff;fill-opacity:0.3921569;fill-rule:evenodd;stroke:#0000ff;stroke-width:1.0000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline" id="rect10673" width="2.067648" height="2.017743" x="-44.54361" y="185.2228" ry="1.008872" rx="1.008872" />
+<rect style="color:#000000;fill:#ffffff;fill-opacity:0.3921569;fill-rule:evenodd;stroke:#0000ff;stroke-width:1.0000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline" id="rect10675" width="2.022052" height="2.026662" x="-31.53185" y="185.1983" ry="1.011026" rx="1.011026" />
 </g>
-<g id="node_curve" transform="translate(724.9762,-119.9465)">
+<g id="node_curve" transform="translate(744.9762,-119.9465)">
 <path style="fill:none;stroke:#646464;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M -42.38772,188.4395 C -42.38772,181.4395 -38.41209,177.6123 -31.41209,177.6123" id="path10679" sodipodi:nodetypes="cc" />
 <rect y="175" x="-45" height="16" width="16" id="rect10681" style="color:#000000;fill:none;stroke:none;stroke-width:1;marker:none;display:inline" />
 <use transform="translate(-4.9762,-0.0534998)" x="0" y="0" xlink:href="#rect4374" id="use5745" width="1250" height="1250" />
 <use transform="translate(5.981293,-11.02417)" x="0" y="0" xlink:href="#rect4374" id="use5747" width="1250" height="1250" />
 </g>
-<g id="node_line" transform="translate(744.9762,-119.9465)">
+<g id="node_line" transform="translate(764.9762,-119.9465)">
 <path style="fill:none;stroke:#646464;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M -42.5,188.5 -31.5,177.5" id="path4418" sodipodi:nodetypes="cc" />
 <rect y="175" x="-45" height="16" width="16" id="rect4420" style="color:#000000;fill:none;stroke:none;stroke-width:1;marker:none;display:inline" />
 <use transform="translate(-5.018707,-0.0241656)" x="0" y="0" xlink:href="#rect4374" id="use5756" width="1250" height="1250" />
@@ -2197,11 +2191,11 @@ http://www.inkscape.org/</dc:description>
 <use x="0" y="0" xlink:href="#path7204" id="use3823" transform="matrix(1,0,0,-1,-819.959,351)" width="1250" height="1250" />
 <use x="0" y="0" xlink:href="#g3813" id="use3728" transform="translate(-720.4065,259.3541)" width="1250" height="1250" />
 <use height="1250" width="1250" transform="matrix(0.866026,0.5,-0.5,0.866026,-450.7461,-366.064)" id="use3744" xlink:href="#g3813" y="0" x="0" />
-<g transform="translate(64.4787,-188)" id="nodes_show_handles">
+<g transform="translate(84.4787,-188)" id="nodes_show_handles">
 <rect style="opacity:0;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8;marker:none;visibility:visible;display:inline;overflow:visible" id="rect3742" width="12" height="12" x="735" y="57" transform="translate(-64.4787,188)" />
 <path style="color:#000000;fill:none;stroke:#909090;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" d="M 682.0213,245.5 C 678.5213,246 673.5213,249.5 673.5213,253.5" id="path4641" sodipodi:nodetypes="cc" />
 <path style="color:#000000;fill:none;stroke:#646464;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" d="M 673.0213,247.5 673.0213,253.5" id="path4638" sodipodi:nodetypes="cc" />
-<use transform="translate(703.5311,60.02666)" x="0" y="0" xlink:href="#rect10675" id="use3738" width="1250" height="1250" />
+<use transform="translate(703.5311,60.30166)" x="0" y="0" xlink:href="#rect10675" id="use3738" width="1250" height="1250" />
 <use transform="translate(704.4975,77.02417)" x="0" y="0" xlink:href="#use5758" id="use4635" width="1250" height="1250" />
 </g>
 <g style="display:inline" id="remove_overlaps" transform="translate(-48,41)">
@@ -2749,13 +2743,13 @@ http://www.inkscape.org/</dc:description>
 <rect style="fill:#b3b3b3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4579" width="4.069275" height="4.069275" x="-39.06561" y="185.0237" />
 <rect y="180.9545" x="-43.13489" height="4.069275" width="4.069275" id="rect4581" style="fill:#b3b3b3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
 </g>
-<g id="edit_next_parameter" inkscape:label="#g10193">
+<g id="edit_next_parameter" inkscape:label="#g10193" transform="translate(20,0)">
 <path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#4d4d4d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="M 761.9292,60.21135 C 761.5878,61.39286 761.4946,62.3835 761.5011,63.20978 761.5077,64.03606 761.6167,64.69823 761.7564,65.22109 762.0358,66.2668 762.4196,66.76142 762.7922,66.84248 763.1648,66.92354 764.0584,66.69636 764.9435,66.40187 765.3861,66.25463 765.8255,66.09125 766.196,65.9186 766.5666,65.74595 766.8671,65.56494 767.048,65.34354 766.4063,64.64298 765.4475,64.04417 764.4271,63.34698 763.9169,62.99839 763.396,62.61954 762.9432,62.13023 762.4904,61.64091 762.1008,61.0399 761.9292,60.21135 z M 764.4579,59.01822 C 764.2129,59.7969 764.3097,60.67268 764.6999,61.36216 765.0313,61.94976 765.5572,62.39261 766.1623,62.67942 766.6964,62.92688 767.2804,63.04656 767.9134,63.0393 767.2183,62.61982 766.613,62.21989 766.1246,61.81109 765.6363,61.40228 765.2668,60.98517 765.0109,60.58979 764.4991,59.79903 764.4542,59.10024 764.4579,59.01822 z M 767.2562,57.98462 C 766.778,58.99773 766.8948,59.70934 767.2669,60.18111 767.639,60.65288 768.2666,60.91061 768.9902,61.0957 768.3331,60.58465 767.8453,59.85018 767.5652,59.20611 767.2851,58.56204 767.214,58.01559 767.2562,57.98462 z M 770.782,55.78203 C 770.2055,56.1138 770.2762,57.16371 770.004,57.54492 769.478,58.28155 768.9415,58.39158 769.2239,58.98036 769.5903,59.74429 769.7493,59.35851 770.7399,59.45409 771.0491,59.48392 771.9668,60.4286 772.2901,60.37037 771.3092,58.83005 770.7454,57.38913 770.782,55.78203 z" id="path9858" inkscape:path-effect="#path-effect9860" inkscape:original-d="M 762.7922,66.84248 C 763.6022,63.11924 765.4886,60.07306 771.5388,58.08446" sodipodi:nodetypes="cc" />
 <path sodipodi:nodetypes="cc" id="path9256" d="M 762.5,68.5 C 763.3058,62.01571 768.0747,58.5078 773.5,57.5" style="fill:none;stroke:#008000;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
 <rect style="fill:none;stroke:none;stroke-width:1;marker:none;display:inline" id="rect9258" width="16" height="16" x="759.9762" y="55.0535" />
 <use transform="translate(760,-189)" x="0" y="0" xlink:href="#g6043" id="use9872" width="1250" height="1250" />
-<use height="1250" width="1250" id="use10185" xlink:href="#rect10675" y="0" x="0" transform="translate(805.0318,-128.9733)" />
-<use transform="translate(793.0318,-116.9733)" x="0" y="0" xlink:href="#rect10675" id="use10187" width="1250" height="1250" />
+<use height="1250" width="1250" id="use10185" xlink:href="#rect10675" y="0" x="0" transform="translate(805.0318,-128.6983)" />
+<use transform="translate(793.0318,-116.6983)" x="0" y="0" xlink:href="#rect10675" id="use10187" width="1250" height="1250" />
 </g>
 <g id="grid_xy">
 <path sodipodi:nodetypes="cc" id="path5235" d="M 305.5,421.5 305.5,436.5" style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
@@ -2847,7 +2841,7 @@ http://www.inkscape.org/</dc:description>
 <path sodipodi:nodetypes="ccccccccccccccccccccccccccccc" style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" d="M 905.9609,256.0794 905.9609,255.0794 906.9609,255.0794 906.9609,254.0794 907.9609,254.0794 907.9609,253.0794 908.9609,253.0794 908.9609,255.0794 925.0391,255.0794 925.0391,253.0794 926.0391,253.0794 926.0391,254.0794 927.0391,254.0794 927.0391,255.0794 928.0391,255.0794 928.0391,256.0794 927.0391,256.0794 927.0391,257.0794 926.0391,257.0794 926.0391,258.0794 925.0391,258.0794 925.0391,256.0794 908.9609,256.0794 908.9609,258.0794 907.9609,258.0794 907.9609,257.0794 906.9609,257.0794 906.9609,256.0794 905.9609,256.0794 z" id="path12946" />
 <rect style="opacity:0.5513197;color:#000000;fill:none;stroke:none;stroke-width:1px;marker:none;display:inline" id="rect12948" width="24" height="24" x="905" y="240" />
 </g>
-<g id="nodes_show_helperpath" transform="translate(835.0187,-120.9465)">
+<g id="nodes_show_helperpath" transform="translate(855.0187,-120.9465)">
 <path style="fill:#ffffff;fill-opacity:0.75;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M -42.51871,188.4465 C -42.51871,182.9474 -41.84309,175.4698 -31.51871,177.4465 -29.7078,177.7932 -31.18387,189.1883 -42.51871,188.4465" id="path4756" sodipodi:nodetypes="csc" />
 <rect y="175" x="-45" height="16" width="16" id="rect4758" style="fill:none;stroke:none;stroke-width:1;marker:none;display:inline" />
 <use transform="translate(-4.9762,-0.0534998)" x="0" y="0" xlink:href="#rect4374" id="use4760" width="1250" height="1250" />
@@ -2870,20 +2864,20 @@ http://www.inkscape.org/</dc:description>
 </g>
 </g>
 </g>
-<path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 835,62 C 833,64 830,63.5 827,60.5" id="path4828" sodipodi:nodetypes="cc" />
-<use x="0" y="0" xlink:href="#path4828" id="use4830" transform="matrix(0,1,1,0,765.5,-765)" width="1250" height="1250" />
-<g inkscape:label="#nodeedit-clippath" id="nodeedit-clippath" transform="translate(60,0)">
+<path style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 855,62 C 853,64 850,63.5 847,60.5" id="path4828" sodipodi:nodetypes="cc" />
+<use x="0" y="0" xlink:href="#path4828" id="use4830" transform="matrix(0,1,1,0,785.5,-785)" width="1250" height="1250" />
+<g inkscape:label="#nodeedit-clippath" id="nodeedit-clippath" transform="translate(80,0)">
 <path style="fill:none;stroke:#00ff00;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" d="M 762.5,68.5 C 763.3058,62.01571 768.0747,58.5078 773.5,57.5" id="path4813" sodipodi:nodetypes="cc" />
 <rect y="55.0535" x="759.9762" height="16" width="16" id="rect4815" style="fill:none;stroke:none;marker:none;display:inline" />
-<use transform="translate(805.0318,-128.9733)" x="0" y="0" xlink:href="#rect10675" id="use4819" width="1250" height="1250" />
-<use height="1250" width="1250" id="use4821" xlink:href="#rect10675" y="0" x="0" transform="translate(793.0318,-116.9733)" />
+<use transform="translate(805.0318,-128.6983)" x="0" y="0" xlink:href="#rect10675" id="use4819" width="1250" height="1250" />
+<use height="1250" width="1250" id="use4821" xlink:href="#rect10675" y="0" x="0" transform="translate(793.0318,-116.6983)" />
 </g>
-<path sodipodi:nodetypes="cc" id="path4893" d="M 875,62 C 873,64 869,63 865,58" style="fill:none;stroke:url(#linearGradient5577);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-<g transform="translate(100,0)" id="nodeedit-mask" inkscape:label="">
+<path sodipodi:nodetypes="cc" id="path4893" d="M 895,62 C 893,64 889,63 885,58" style="fill:none;stroke:url(#linearGradient5376);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+<g transform="translate(120,0)" id="nodeedit-mask" inkscape:label="">
 <path sodipodi:nodetypes="cc" id="path4899" d="M 762.5,68.5 C 763.3058,62.01571 768.0747,58.5078 773.5,57.5" style="fill:none;stroke:#0000ff;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
 <rect style="fill:none;stroke:none;marker:none;display:inline" id="rect4901" width="16" height="16" x="759.9762" y="55.0535" />
-<use height="1250" width="1250" id="use4903" xlink:href="#rect10675" y="0" x="0" transform="translate(805.0318,-128.9733)" />
-<use transform="translate(793.0318,-116.9733)" x="0" y="0" xlink:href="#rect10675" id="use4905" width="1250" height="1250" />
+<use height="1250" width="1250" id="use4903" xlink:href="#rect10675" y="0" x="0" transform="translate(805.0318,-128.6983)" />
+<use transform="translate(793.0318,-116.6983)" x="0" y="0" xlink:href="#rect10675" id="use4905" width="1250" height="1250" />
 </g>
 <g id="draw_erase" transform="translate(1.5,359.5)">
 <rect style="color:#000000;fill:none;stroke:none;stroke-width:1.0000001;marker:none;display:inline" id="rect7418" width="24" height="24" x="450" y="115" />
@@ -3127,30 +3121,35 @@ http://www.inkscape.org/</dc:description>
 <rect inkscape:label="#rect5080-7" style="fill:none;stroke:none;stroke-width:1;marker:none;display:inline" id="tweak_blur_mode" width="16" height="16" x="-64.90511" y="221.0282" />
 <g id="g7655" style="fill:#000000" transform="translate(-436.7857,84.59235)">
 <path inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" inkscape:tile-h="2.223736" inkscape:tile-w="2.223736" inkscape:tile-cy="137.9821" inkscape:tile-cx="375.0941" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" sodipodi:ry="1.111868" sodipodi:rx="1.111868" sodipodi:cy="137.9821" sodipodi:cx="375.0941" id="path7657" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" sodipodi:type="arc" transform="matrix(1.20571,0,0,1.20571,-78.25832,-27.88514)" />
-<path transform="matrix(1.188922,0,0,1.188922,-63.09951,-25.56857)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7660" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.180543,0,0,1.180543,-57.00309,-21.38516)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7662" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.088184,0,0,1.088184,-22.35986,-5.61394)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7664" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.188915,0,0,1.188915,-69.00487,-25.56775)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7666" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.20571,0,0,1.20571,-66.44314,-27.88514)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7668" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.093412,0,0,1.093412,-36.13602,-6.3353)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7670" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.184974,0,0,1.184974,-70.48049,-15.94187)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7672" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.111722,0,0,1.111722,-37.0964,-14.9165)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7674" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.181829,0,0,1.181829,-69.30058,-21.56258)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7676" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.485788,0,0,1.485788,-180.3604,-63.50353)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7818);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7678" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.485788,0,0,1.485788,-180.3597,-57.44874)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7802);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7680" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.485788,0,0,1.485788,-177.4064,-63.50356)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7826);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7682" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.485788,0,0,1.485788,-174.4526,-63.50354)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7834);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7684" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.485788,0,0,1.485788,-180.3605,-60.47619)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7810);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7686" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.4858,0,0,1.4858,-177.4101,-57.45014)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7794);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7688" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.485788,0,0,1.485788,-174.4524,-60.47613)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7842);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7692" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.492675,0,0,1.492675,-177.0357,-58.39903)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7786);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7694" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.191739,0,0,1.191739,-64.1566,-13.84799)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7696" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.181973,0,0,1.181973,-57.53942,-15.52772)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7698" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.20571,0,0,1.20571,-78.25832,-15.77568)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7700" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.193386,0,0,1.193386,-70.68201,-14.07527)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7702" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.121575,0,0,1.121575,-40.79199,-4.166495)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7704" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(1.20571,0,0,1.20571,-66.44314,-15.77568)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7706" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-<path transform="matrix(6.75293,0,0,6.75293,-2153.081,-787.2478)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7778);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7690" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 A 1.111868,1.111868 0 1 1 373.9822,137.9821 1.111868,1.111868 0 1 1 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
-</g>
+<path transform="matrix(1.188922,0,0,1.188922,-63.09951,-25.56857)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7660" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.180543,0,0,1.180543,-57.00309,-21.38516)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7662" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.088184,0,0,1.088184,-22.35986,-5.61394)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7664" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.188915,0,0,1.188915,-69.00487,-25.56775)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7666" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.20571,0,0,1.20571,-66.44314,-27.88514)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7668" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.093412,0,0,1.093412,-36.13602,-6.3353)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7670" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.184974,0,0,1.184974,-70.48049,-15.94187)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7672" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.111722,0,0,1.111722,-37.0964,-14.9165)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7674" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.181829,0,0,1.181829,-69.30058,-21.56258)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7676" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.485788,0,0,1.485788,-180.3604,-63.50353)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7818);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7678" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.485788,0,0,1.485788,-180.3597,-57.44874)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7802);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7680" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.485788,0,0,1.485788,-177.4064,-63.50356)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7826);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7682" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.485788,0,0,1.485788,-174.4526,-63.50354)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7834);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7684" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.485788,0,0,1.485788,-180.3605,-60.47619)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7810);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7686" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.4858,0,0,1.4858,-177.4101,-57.45014)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7794);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7688" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.485788,0,0,1.485788,-174.4524,-60.47613)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7842);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7692" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.492675,0,0,1.492675,-177.0357,-58.39903)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7786);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7694" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.191739,0,0,1.191739,-64.1566,-13.84799)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7696" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.181973,0,0,1.181973,-57.53942,-15.52772)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7698" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.20571,0,0,1.20571,-78.25832,-15.77568)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7700" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.193386,0,0,1.193386,-70.68201,-14.07527)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7702" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.121575,0,0,1.121575,-40.79199,-4.166495)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7704" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(1.20571,0,0,1.20571,-66.44314,-15.77568)" sodipodi:type="arc" style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7706" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+<path transform="matrix(6.75293,0,0,6.75293,-2153.081,-787.2478)" sodipodi:type="arc" style="color:#000000;fill:url(#radialGradient7778);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2773579;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="use7690" sodipodi:cx="375.0941" sodipodi:cy="137.9821" sodipodi:rx="1.111868" sodipodi:ry="1.111868" d="M 376.206,137.9821 C 376.206,138.5959 375.7078,139.094 375.0941,139.094 374.4803,139.094 373.9822,138.5959 373.9822,137.9821 373.9822,137.3684 374.4803,136.8702 375.0941,136.8702 375.7078,136.8702 376.206,137.3684 376.206,137.9821 z" inkscape:tile-x0="373.9822" inkscape:tile-y0="136.8702" />
+</g>
+</g>
+<g inkscape:label="#node_symmetric" transform="translate(725.0198,-119.9465)" id="node_auto">
+<path sodipodi:nodetypes="csc" id="path5383" d="M -44.41296,176.5635 C -44.94008,180.0159 -43.02606,185.9502 -37.02606,185.9502 -31.02606,185.9502 -29.0373,180.0159 -29.51018,176.5635" style="fill:none;stroke:#646464;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none" />
+<rect style="color:#000000;fill:none;stroke:none;stroke-width:1;marker:none;display:inline" id="rect5385" width="16" height="16" x="-45" y="175" />
+<rect transform="matrix(2.790265e-6,-1,1,-2.867107e-6,0,0)" style="color:#000000;fill:#6464ff;fill-opacity:0.3921569;fill-rule:evenodd;stroke:#0000ff;stroke-width:1.0000015;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;display:inline" id="rect5387" width="4.966394" height="4.950177" x="-188.4831" y="-39.47938" ry="2.475089" />
 </g>
 </svg>
index 33e4f07f8887ae659473407c47d18f3cdb4ecb81..8244996c801759f2764e24d3e29584e87f6dd63d 100644 (file)
@@ -81,7 +81,6 @@ libinkpre_a_SOURCES = \
        filter-chemistry.cpp filter-chemistry.h \
        filter-enums.cpp filter-enums.h \
        flood-context.cpp flood-context.h       \
-       fontsize-expansion.cpp fontsize-expansion.h     \
        forward.h       \
        gradient-context.cpp gradient-context.h \
        gradient-drag.cpp gradient-drag.h \
@@ -131,8 +130,6 @@ libinkpre_a_SOURCES =       \
        menus-skeleton.h        \
        prefix.cpp      \
        prefix.h        \
-       prefs-utils.cpp \
-       prefs-utils.h   \
        print.cpp print.h       \
        profile-manager.cpp     \
        profile-manager.h       \
@@ -151,6 +148,7 @@ libinkpre_a_SOURCES =       \
        shape-editor.cpp shape-editor.h \
        shortcuts.cpp shortcuts.h       \
        snap.cpp snap.h \
+       snap-preferences.cpp snap-preferences.h \
        snapped-curve.cpp snapped-curve.h \
        snapped-line.cpp snapped-line.h \
        snapped-point.cpp snapped-point.h \
index 1409d1d64a75be2c3c3a053d345535ecab8137e4..50d348e7b408783396df625a64333732bef6604f 100644 (file)
@@ -34,7 +34,7 @@
 #include "xml/repr.h"
 #include "xml/node-event-vector.h"
 #include "object-edit.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "message-context.h"
 #include "desktop.h"
 #include "desktop-style.h"
@@ -208,11 +208,12 @@ static void sp_arc_context_setup(SPEventContext *ec)
         sigc::bind(sigc::ptr_fun(&sp_arc_context_selection_changed), (gpointer) ac)
         );
 
-    if (prefs_get_int_attribute("tools.shapes", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/shapes/selcue")) {
         ec->enableSelectionCue();
     }
 
-    if (prefs_get_int_attribute("tools.shapes", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/shapes/gradientdrag")) {
         ec->enableGrDrag();
     }
 
@@ -250,8 +251,9 @@ static gint sp_arc_context_root_handler(SPEventContext *event_context, GdkEvent
     SPDesktop *desktop = event_context->desktop;
     Inkscape::Selection *selection = sp_desktop_selection(desktop);
     SPArcContext *ac = SP_ARC_CONTEXT(event_context);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    event_context->tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
+    event_context->tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
 
     gint ret = FALSE;
 
@@ -266,7 +268,7 @@ static gint sp_arc_context_root_handler(SPEventContext *event_context, GdkEvent
                 SnapManager &m = desktop->namedview->snap_manager;
                 m.setup(desktop);
                 Geom::Point pt2g = to_2geom(ac->center);
-                m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, pt2g);
+                m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g);
                 ac->center = from_2geom(pt2g);
 
                 sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate),
@@ -423,7 +425,7 @@ static void sp_arc_drag(SPArcContext *ac, Geom::Point pt, guint state)
         repr->setAttribute("sodipodi:type", "arc");
 
         /* Set style */
-        sp_desktop_apply_style_tool(desktop, repr, "tools.shapes.arc", false);
+        sp_desktop_apply_style_tool(desktop, repr, "/tools/shapes/arc", false);
 
         ac->item = SP_ITEM(desktop->currentLayer()->appendChildRepr(repr));
         Inkscape::GC::release(repr);
index 25167e75be6912b9617ffc3b91066f6f25337a53..89be0eb4f764083c212128b4b5edbd227f223108 100644 (file)
@@ -352,6 +352,7 @@ struct {char const *attr; bool supported;} const all_attrs[] = {
     {"inkscape:snap-nodes", true},
     {"inkscape:snap-guide", true},
     {"inkscape:snap-center", true},
+    {"inkscape:snap-smooth-nodes", true},
     {"inkscape:snap-intersection-grid-guide", true},
     {"inkscape:snap-intersection-paths", true},
     {"inkscape:pageopacity", true},
index e64cedf36a6d5cdf0be1766439ce0b4a54466281..add2c8caf43f3dcccdae21c12f30d05784d5f87a 100644 (file)
@@ -92,6 +92,7 @@ static SPStyleProp const props[] = {
     {SP_ATTR_INKSCAPE_SNAP_NODES, "inkscape:snap-nodes"},
     {SP_ATTR_INKSCAPE_SNAP_GUIDE, "inkscape:snap-guide"},
     {SP_ATTR_INKSCAPE_SNAP_CENTER, "inkscape:snap-center"},
+    {SP_ATTR_INKSCAPE_SNAP_SMOOTH_NODES, "inkscape:snap-smooth-nodes"},
     {SP_ATTR_INKSCAPE_SNAP_INTERS_GRIDGUIDE, "inkscape:snap-intersection-grid-guide"},
     {SP_ATTR_INKSCAPE_SNAP_INTERS_PATHS, "inkscape:snap-intersection-paths"},
     {SP_ATTR_INKSCAPE_OBJECT_PATHS, "inkscape:object-paths"},
index 82fba18a93ec2405c21b91fbd6975a1f32d9097a..e15822411e9cceb4e757cc0d3336e2cc22e78e05 100644 (file)
@@ -92,6 +92,7 @@ enum SPAttributeEnum {
     SP_ATTR_INKSCAPE_SNAP_NODES,
     SP_ATTR_INKSCAPE_SNAP_GUIDE,
     SP_ATTR_INKSCAPE_SNAP_CENTER,
+    SP_ATTR_INKSCAPE_SNAP_SMOOTH_NODES,
     SP_ATTR_INKSCAPE_SNAP_INTERS_GRIDGUIDE,
     SP_ATTR_INKSCAPE_SNAP_INTERS_PATHS,
     SP_ATTR_INKSCAPE_OBJECT_PATHS,
index 03a9073b4c564229c9c5d9349586a345d5a76671..404723231d80bf4bc4309f9e11b81528fd776695 100644 (file)
@@ -38,7 +38,7 @@
 #include "object-edit.h"
 #include "xml/repr.h"
 #include "xml/node-event-vector.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "context-fns.h"
 #include "desktop-style.h"
 #include "transf_mat_3x4.h"
@@ -247,12 +247,13 @@ static void sp_box3d_context_setup(SPEventContext *ec)
     );
 
     bc->_vpdrag = new Box3D::VPDrag(sp_desktop_document (ec->desktop));
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    if (prefs_get_int_attribute("tools.shapes", "selcue", 0) != 0) {
+    if (prefs->getBool("/tools/shapes/selcue")) {
         ec->enableSelectionCue();
     }
 
-    if (prefs_get_int_attribute("tools.shapes", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/shapes/gradientdrag")) {
         ec->enableGrDrag();
     }
 
@@ -290,13 +291,14 @@ static gint sp_box3d_context_root_handler(SPEventContext *event_context, GdkEven
 
     SPDesktop *desktop = event_context->desktop;
     Inkscape::Selection *selection = sp_desktop_selection (desktop);
-    int const snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int const snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     Box3DContext *bc = SP_BOX3D_CONTEXT(event_context);
     g_assert (SP_ACTIVE_DOCUMENT->current_persp3d);
     Persp3D *cur_persp = SP_ACTIVE_DOCUMENT->current_persp3d;
 
-    event_context->tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
+    event_context->tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
 
     gint ret = FALSE;
     switch (event->type) {
@@ -331,7 +333,7 @@ static gint sp_box3d_context_root_handler(SPEventContext *event_context, GdkEven
             /* Snap center */
             SnapManager &m = desktop->namedview->snap_manager;
             m.setup(desktop, true, bc->item);
-            m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, button_dt);
+            m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, button_dt);
             bc->center = from_2geom(button_dt);
 
             sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate),
@@ -363,7 +365,7 @@ static gint sp_box3d_context_root_handler(SPEventContext *event_context, GdkEven
 
             SnapManager &m = desktop->namedview->snap_manager;
             m.setup(desktop, true, bc->item);
-            m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, motion_dt);
+            m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, motion_dt);
 
             bc->ctrl_dragged  = event->motion.state & GDK_CONTROL_MASK;
 
@@ -397,7 +399,7 @@ static gint sp_box3d_context_root_handler(SPEventContext *event_context, GdkEven
                     bc->drag_ptC_proj = cur_persp->tmat.preimage (from_2geom(motion_dt), bc->drag_ptB_proj[Proj::X], Proj::X);
                 }
                 Geom::Point pt2g = to_2geom(bc->drag_ptC);
-                m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, pt2g);
+                m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g);
                 bc->drag_ptC = from_2geom(pt2g);
             }
 
@@ -583,7 +585,7 @@ static void sp_box3d_drag(Box3DContext &bc, guint /*state*/)
         repr->setAttribute("sodipodi:type", "inkscape:box3d");
 
         /* Set style */
-        sp_desktop_apply_style_tool (desktop, repr, "tools.shapes.3dbox", false);
+        sp_desktop_apply_style_tool (desktop, repr, "/tools/shapes/3dbox", false);
 
         bc.item = (SPItem *) desktop->currentLayer()->appendChildRepr(repr);
         Inkscape::GC::release(repr);
index cdeb001ebe113a27b1e7384700e185db7b7f8c83..866cbbca47f7091a0b6dec9b96d364b17815c1b7 100644 (file)
@@ -241,19 +241,20 @@ box3d_side_apply_style (Box3DSide *side) {
     Inkscape::XML::Node *repr_face = SP_OBJECT_REPR(SP_OBJECT(side));
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    Glib::ustring descr = "desktop.";
+    Glib::ustring descr = "/desktop/";
     descr += box3d_side_axes_string(side);
-    Glib::ustring cur_style = prefs->getString(descr, "style");    
+    descr += "/style";
+    Glib::ustring cur_style = prefs->getString(descr);    
     
     SPDesktop *desktop = inkscape_active_desktop();
-    bool use_current = prefs->getBool("tools.shapes.3dbox", "usecurrent", false);
+    bool use_current = prefs->getBool("/tools/shapes/3dbox/usecurrent", false);
     if (use_current && !cur_style.empty()) {
         /* use last used style */
         repr_face->setAttribute("style", cur_style.data());
     } else {
         /* use default style */
         GString *pstring = g_string_new("");
-        g_string_printf (pstring, "tools.shapes.3dbox.%s", box3d_side_axes_string(side));
+        g_string_printf (pstring, "/tools/shapes/3dbox/%s", box3d_side_axes_string(side));
         sp_desktop_apply_style_tool (desktop, repr_face, pstring->str, false);
     }
 }
index 548132bdc5b0f626e6efb29230b9ffa20c74dad7..057329a28f4f60937a68881560e0e46ab248ce89 100644 (file)
@@ -35,7 +35,7 @@
 #include "2geom/geom.h"
 #include "sp-guide.h"
 #include "sp-namedview.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 #include "desktop.h"
 #include "desktop-handles.h"
@@ -1416,8 +1416,9 @@ box3d_push_back_corner_pair(SPBox3D *box, std::list<std::pair<Geom::Point, Geom:
 void
 box3d_convert_to_guides(SPItem *item) {
     SPBox3D *box = SP_BOX3D(item);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    if (prefs_get_int_attribute("tools.shapes.3dbox", "convertguides", 1) == 0) {
+    if (!prefs->getBool("/tools/shapes/3dbox/convertguides", true)) {
         sp_item_convert_to_guides(SP_ITEM(box));
         return;
     }
index 583145c806a3dc596fd3f1ba7675f9f4745052d1..fbfa8efb1697d910dda780cca834d912137b6e1e 100644 (file)
@@ -39,9 +39,9 @@ extern guint update_in_progress;
 #define DEBUG_MESSAGE(key, ...) \
 {\
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();\
-    bool dump = prefs->getBool("options.scislac", #key);\
-    bool dumpD = prefs->getBool("options.scislac", #key"D");\
-    bool dumpD2 = prefs->getBool("options.scislac", #key"D2");\
+    bool dump = prefs->getBool(Glib::ustring("/options/scislac/") + #key);\
+    bool dumpD = prefs->getBool(Glib::ustring("/options/scislac/") + #key"D");\
+    bool dumpD2 = prefs->getBool(Glib::ustring("/options/scislac/") + #key"D2");\
     dumpD &= ( (update_in_progress == 0) || dumpD2 );\
     if ( dump )\
     {\
@@ -684,7 +684,7 @@ cmsHPROFILE Inkscape::colorprofile_get_system_profile_handle()
     }
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring uri = prefs->getString("options.displayprofile", "uri");
+    Glib::ustring uri = prefs->getString("/options/displayprofile/uri");
 
     if ( !uri.empty() ) {
         if ( uri != lastURI ) {
@@ -743,8 +743,8 @@ cmsHPROFILE Inkscape::colorprofile_get_proof_profile_handle()
     }
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    bool which = prefs->getBool( "options.softproof", "enable");
-    Glib::ustring uri = prefs->getString("options.softproof", "uri");
+    bool which = prefs->getBool( "/options/softproof/enable");
+    Glib::ustring uri = prefs->getString("/options/softproof/uri");
 
     if ( which && !uri.empty() ) {
         if ( lastURI != uri ) {
@@ -799,7 +799,7 @@ static void free_transforms();
 cmsHTRANSFORM Inkscape::colorprofile_get_display_transform()
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    bool fromDisplay = prefs->getBool( "options.displayprofile", "from_display");
+    bool fromDisplay = prefs->getBool( "/options/displayprofile/from_display");
     if ( fromDisplay ) {
         if ( transf ) {
             cmsDeleteTransform(transf);
@@ -808,14 +808,14 @@ cmsHTRANSFORM Inkscape::colorprofile_get_display_transform()
         return 0;
     }
 
-    bool warn = prefs->getBool( "options.softproof", "gamutwarn");
-    int intent = prefs->getIntLimited( "options.displayprofile", "intent", 0, 0, 3 );
-    int proofIntent = prefs->getIntLimited( "options.softproof", "intent", 0, 0, 3 );
-    bool bpc = prefs->getBool( "options.softproof", "bpc");
+    bool warn = prefs->getBool( "/options/softproof/gamutwarn");
+    int intent = prefs->getIntLimited( "/options/displayprofile/intent", 0, 0, 3 );
+    int proofIntent = prefs->getIntLimited( "/options/softproof/intent", 0, 0, 3 );
+    bool bpc = prefs->getBool( "/options/softproof/bpc");
 #if defined(cmsFLAGS_PRESERVEBLACK)
-    bool preserveBlack = prefs->getBool( "options.softproof", "preserveblack");
+    bool preserveBlack = prefs->getBool( "/options/softproof/preserveblack");
 #endif //defined(cmsFLAGS_PRESERVEBLACK)
-    Glib::ustring colorStr = prefs->getString("options.softproof", "gamutcolor");
+    Glib::ustring colorStr = prefs->getString("/options/softproof/gamutcolor");
     Gdk::Color gamutColor( colorStr.empty() ? "#808080" : colorStr );
 
     if ( (warn != gamutWarn)
@@ -969,14 +969,14 @@ cmsHTRANSFORM Inkscape::colorprofile_get_display_per( Glib::ustring const& id )
             if ( id == it2->id ) {
                 MemProfile& item = *it2;
 
-                bool warn = prefs->getBool( "options.softproof", "gamutwarn");
-                int intent = prefs->getIntLimited( "options.displayprofile", "intent", 0, 0, 3 );
-                int proofIntent = prefs->getIntLimited( "options.softproof", "intent", 0, 0, 3 );
-                bool bpc = prefs->getBool( "options.softproof", "bpc");
+                bool warn = prefs->getBool( "/options/softproof/gamutwarn");
+                int intent = prefs->getIntLimited( "/options/displayprofile/intent", 0, 0, 3 );
+                int proofIntent = prefs->getIntLimited( "/options/softproof/intent", 0, 0, 3 );
+                bool bpc = prefs->getBool( "/options/softproof/bpc");
 #if defined(cmsFLAGS_PRESERVEBLACK)
-                bool preserveBlack = prefs->getBool( "options.softproof", "preserveblack");
+                bool preserveBlack = prefs->getBool( "/options/softproof/preserveblack");
 #endif //defined(cmsFLAGS_PRESERVEBLACK)
-                Glib::ustring colorStr = prefs->getString("options.softproof", "gamutcolor");
+                Glib::ustring colorStr = prefs->getString("/options/softproof/gamutcolor");
                 Gdk::Color gamutColor( colorStr.empty() ? "#808080" : colorStr );
 
                 if ( (warn != gamutWarn)
index eab50b478500f9b376bb42a5ecf98d32c76ca74b..48a7f308c68427ca8451ac364a5d3bae8297d68f 100644 (file)
@@ -8,6 +8,7 @@
 #include "forward.h"
 #include "message-context.h"
 #include "streq.h"
+#include "preferences.h"
 
 #define MIN_PRESSURE      0.0
 #define MAX_PRESSURE      1.0
@@ -23,7 +24,7 @@ static void sp_common_context_init(SPCommonContext *erc);
 static void sp_common_context_dispose(GObject *object);
 
 static void sp_common_context_setup(SPEventContext *ec);
-static void sp_common_context_set(SPEventContext *ec, gchar const *key, gchar const *value);
+static void sp_common_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val);
 
 static gint sp_common_context_root_handler(SPEventContext *event_context, GdkEvent *event);
 
@@ -154,51 +155,38 @@ static void sp_common_context_setup(SPEventContext *ec)
     }
 }
 
-static inline bool
-get_bool_value(char const *const val)
-{
-    return ( val && *val == '1' );
-    /* The only possible values if written by inkscape are NULL (attribute not present)
-     * or "0" or "1".
-     *
-     * For other values (e.g. if modified by a human without following the above rules), the
-     * current implementation does the right thing for empty string, "no", "false", "n", "f"
-     * but the wrong thing for "yes", "true", "y", "t". */
-}
-
-static void sp_common_context_set(SPEventContext *ec, gchar const *key, gchar const *value)
+static void sp_common_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *value)
 {
     SPCommonContext *ctx = SP_COMMON_CONTEXT(ec);
-
-    if (streq(key, "mass")) {
-        double const dval = ( value ? g_ascii_strtod (value, NULL) : 0.2 );
-        ctx->mass = CLAMP(dval, -1000.0, 1000.0);
-    } else if (streq(key, "wiggle")) {
-        double const dval = ( value ? g_ascii_strtod (value, NULL) : (1 - DRAG_DEFAULT));
-        ctx->drag = CLAMP((1 - dval), DRAG_MIN, DRAG_MAX); // drag is inverse to wiggle
-    } else if (streq(key, "angle")) {
-        double const dval = ( value ? g_ascii_strtod (value, NULL) : 0.0);
-        ctx->angle = CLAMP (dval, -90, 90);
-    } else if (streq(key, "width")) {
-        double const dval = ( value ? g_ascii_strtod (value, NULL) : 0.1 );
-        ctx->width = CLAMP(dval, -1000.0, 1000.0);
-    } else if (streq(key, "thinning")) {
-        double const dval = ( value ? g_ascii_strtod (value, NULL) : 0.1 );
-        ctx->vel_thin = CLAMP(dval, -1.0, 1.0);
-    } else if (streq(key, "tremor")) {
-        double const dval = ( value ? g_ascii_strtod (value, NULL) : 0.0 );
-        ctx->tremor = CLAMP(dval, 0.0, 1.0);
-    } else if (streq(key, "flatness")) {
-        double const dval = ( value ? g_ascii_strtod (value, NULL) : 1.0 );
-        ctx->flatness = CLAMP(dval, 0, 1.0);
-    } else if (streq(key, "usepressure")) {
-        ctx->usepressure = get_bool_value(value);
-    } else if (streq(key, "usetilt")) {
-        ctx->usetilt = get_bool_value(value);
-    } else if (streq(key, "abs_width")) {
-        ctx->abs_width = get_bool_value(value);
-    } else if (streq(key, "cap_rounding")) {
-        ctx->cap_rounding = ( value ? g_ascii_strtod (value, NULL) : 0.0 );
+    Glib::ustring path = value->getEntryName();
+    
+    // ignore preset modifications
+    static Glib::ustring const presets_path = ec->pref_observer->observed_path + "/preset";
+    Glib::ustring const &full_path = value->getPath();
+    if (full_path.compare(0, presets_path.size(), presets_path) == 0) return;
+
+    if (path == "mass") {
+        ctx->mass = CLAMP(value->getDouble(0.2), -1000.0, 1000.0);
+    } else if (path == "wiggle") {
+        ctx->drag = CLAMP((1 - value->getDouble(1 - DRAG_DEFAULT)), DRAG_MIN, DRAG_MAX); // drag is inverse to wiggle
+    } else if (path == "angle") {
+        ctx->angle = CLAMP(value->getDouble(), -90, 90);
+    } else if (path == "width") {
+        ctx->width = CLAMP(value->getDouble(0.1), -1000.0, 1000.0);
+    } else if (path == "thinning") {
+        ctx->vel_thin = CLAMP(value->getDouble(0.1), -1.0, 1.0);
+    } else if (path == "tremor") {
+        ctx->tremor = CLAMP(value->getDouble(), 0.0, 1.0);
+    } else if (path == "flatness") {
+        ctx->flatness = CLAMP(value->getDouble(1.0), 0, 1.0);
+    } else if (path == "usepressure") {
+        ctx->usepressure = value->getBool();
+    } else if (path == "usetilt") {
+        ctx->usetilt = value->getBool();
+    } else if (path == "abs_width") {
+        ctx->abs_width = value->getBool();
+    } else if (path == "cap_rounding") {
+        ctx->cap_rounding = value->getDouble();
     }
 }
 
index 5a09f87650b97fba1fe1ebe24675772e12bbcb48..ac9064713e07cf599f51fa827ffe2d935ee43973 100644 (file)
 
 #include "sp-item.h"
 #include "conn-avoid-ref.h"
-#include "libnr/nr-rect-ops.h"
 #include "libavoid/polyutil.h"
 #include "libavoid/router.h"
 #include "libavoid/connector.h"
 #include "xml/simple-node.h"
 #include "document.h"
-#include "prefs-utils.h"
-
 #include "desktop.h"
 #include "desktop-handles.h"
 #include "sp-namedview.h"
@@ -206,9 +203,9 @@ static Avoid::Polygn avoid_item_poly(SPItem const *item)
     poly = Avoid::newPoly(4);
 
     for (unsigned n = 0; n < 4; ++n) {
-        NR::Point hullPoint = rExpandedHull.corner(n);
-        poly.ps[n].x = hullPoint[NR::X];
-        poly.ps[n].y = hullPoint[NR::Y];
+        Geom::Point hullPoint = rExpandedHull.corner(n);
+        poly.ps[n].x = hullPoint[Geom::X];
+        poly.ps[n].y = hullPoint[Geom::Y];
     }
 
     return poly;
index 527ba720f97a087043c6b2b335cfd98c7a341028..ef89c290f89e47c5e7fba1dd8615e2e0dce53703 100644 (file)
@@ -59,7 +59,7 @@
 #include "message-stack.h"
 #include "selection.h"
 #include "inkscape.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-path.h"
 #include "display/canvas-bpath.h"
 #include "display/sodipodi-ctrl.h"
@@ -85,9 +85,9 @@ static gint sp_connector_context_root_handler(SPEventContext *ec, GdkEvent *even
 static gint sp_connector_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event);
 
 // Stuff borrowed from DrawContext
-static void spcc_connector_set_initial_point(SPConnectorContext *cc, NR::Point const p);
-static void spcc_connector_set_subsequent_point(SPConnectorContext *cc, NR::Point const p);
-static void spcc_connector_finish_segment(SPConnectorContext *cc, NR::Point p);
+static void spcc_connector_set_initial_point(SPConnectorContext *cc, Geom::Point const p);
+static void spcc_connector_set_subsequent_point(SPConnectorContext *cc, Geom::Point const p);
+static void spcc_connector_finish_segment(SPConnectorContext *cc, Geom::Point p);
 static void spcc_reset_colors(SPConnectorContext *cc);
 static void spcc_connector_finish(SPConnectorContext *cc);
 static void spcc_concat_colors_and_flush(SPConnectorContext *cc);
@@ -103,11 +103,11 @@ static void cc_set_active_shape(SPConnectorContext *cc, SPItem *item);
 static void cc_clear_active_shape(SPConnectorContext *cc);
 static void cc_set_active_conn(SPConnectorContext *cc, SPItem *item);
 static void cc_clear_active_conn(SPConnectorContext *cc);
-static gchar *conn_pt_handle_test(SPConnectorContext *cc, NR::Point& w);
+static gchar *conn_pt_handle_test(SPConnectorContext *cc, Geom::Point& w);
 static bool cc_item_is_shape(SPItem *item);
 static void cc_selection_changed(Inkscape::Selection *selection, gpointer data);
 static void cc_connector_rerouting_finish(SPConnectorContext *const cc,
-        NR::Point *const p);
+        Geom::Point *const p);
 
 static void shape_event_attr_deleted(Inkscape::XML::Node *repr,
         Inkscape::XML::Node *child, Inkscape::XML::Node *ref, gpointer data);
@@ -116,7 +116,7 @@ static void shape_event_attr_changed(Inkscape::XML::Node *repr, gchar const *nam
         gpointer data);
 
 
-static NR::Point connector_drag_origin_w(0, 0);
+static Geom::Point connector_drag_origin_w(0, 0);
 static bool connector_within_tolerance = false;
 static SPEventContextClass *parent_class;
 
@@ -283,7 +283,8 @@ sp_connector_context_setup(SPEventContext *ec)
     // Notice the initial selection.
     cc_selection_changed(cc->selection, (gpointer) cc);
 
-    if (prefs_get_int_attribute("tools.connector", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/connector/selcue", 0)) {
         ec->enableSelectionCue();
     }
 
@@ -373,7 +374,7 @@ cc_clear_active_conn(SPConnectorContext *cc)
 
 
 static gchar *
-conn_pt_handle_test(SPConnectorContext *cc, NR::Point& p)
+conn_pt_handle_test(SPConnectorContext *cc, Geom::Point& p)
 {
     // TODO: this will need to change when there are more connection
     //       points available for each shape.
@@ -398,7 +399,7 @@ sp_connector_context_item_handler(SPEventContext *event_context, SPItem *item, G
 
     SPConnectorContext *cc = SP_CONNECTOR_CONTEXT(event_context);
 
-    NR::Point p(event->button.x, event->button.y);
+    Geom::Point p(event->button.x, event->button.y);
 
     switch (event->type) {
         case GDK_BUTTON_RELEASE:
@@ -488,9 +489,9 @@ sp_connector_context_root_handler(SPEventContext *ec, GdkEvent *event)
 static gint
 connector_handle_button_press(SPConnectorContext *const cc, GdkEventButton const &bevent)
 {
-    NR::Point const event_w(bevent.x, bevent.y);
+    Geom::Point const event_w(bevent.x, bevent.y);
     /* Find desktop coordinates */
-    NR::Point p = cc->desktop->w2d(event_w);
+    Geom::Point p = cc->desktop->w2d(event_w);
     SPEventContext *event_context = SP_EVENT_CONTEXT(cc);
 
     gint ret = FALSE;
@@ -502,12 +503,12 @@ connector_handle_button_press(SPConnectorContext *const cc, GdkEventButton const
             return TRUE;
         }
 
-        NR::Point const event_w(bevent.x,
+        Geom::Point const event_w(bevent.x,
                                 bevent.y);
         connector_drag_origin_w = event_w;
         connector_within_tolerance = true;
 
-        NR::Point const event_dt = cc->desktop->w2d(event_w);
+        Geom::Point const event_dt = cc->desktop->w2d(event_w);
         switch (cc->state) {
             case SP_CONNECTOR_CONTEXT_STOP:
                 /* This is allowed, if we just cancelled curve */
@@ -520,7 +521,7 @@ connector_handle_button_press(SPConnectorContext *const cc, GdkEventButton const
 
                     /* Set start anchor */
                     /* Create green anchor */
-                    NR::Point p = event_dt;
+                    Geom::Point p = event_dt;
 
                     // Test whether we clicked on a connection point
                     cc->sid = conn_pt_handle_test(cc, p);
@@ -532,7 +533,7 @@ connector_handle_button_press(SPConnectorContext *const cc, GdkEventButton const
                         // as there's no other points to go off.
                         SnapManager &m = cc->desktop->namedview->snap_manager;
                         m.setup(cc->desktop);
-                        m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, pt2g);
+                        m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g);
                     }
                     spcc_connector_set_initial_point(cc, from_2geom(pt2g));
 
@@ -590,17 +591,17 @@ connector_handle_motion_notify(SPConnectorContext *const cc, GdkEventMotion cons
 {
     gint ret = FALSE;
     SPEventContext *event_context = SP_EVENT_CONTEXT(cc);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     if (event_context->space_panning || mevent.state & GDK_BUTTON2_MASK || mevent.state & GDK_BUTTON3_MASK) {
         // allow middle-button scrolling
         return FALSE;
     }
 
-    NR::Point const event_w(mevent.x, mevent.y);
+    Geom::Point const event_w(mevent.x, mevent.y);
 
     if (connector_within_tolerance) {
-        gint const tolerance = prefs_get_int_attribute_limited("options.dragtolerance",
-                                                               "value", 0, 0, 100);
+        gint const tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
         if ( NR::LInfty( event_w - connector_drag_origin_w ) < tolerance ) {
             return FALSE;   // Do not drag if we're within tolerance from origin.
         }
@@ -675,10 +676,10 @@ connector_handle_button_release(SPConnectorContext *const cc, GdkEventButton con
         SPDesktop *desktop = SP_EVENT_CONTEXT_DESKTOP(cc);
         SPDocument *doc = sp_desktop_document(desktop);
 
-        NR::Point const event_w(revent.x, revent.y);
+        Geom::Point const event_w(revent.x, revent.y);
 
         /* Find desktop coordinates */
-        NR::Point p = cc->desktop->w2d(event_w);
+        Geom::Point p = cc->desktop->w2d(event_w);
 
         switch (cc->state) {
             //case SP_CONNECTOR_CONTEXT_POINT:
@@ -766,7 +767,7 @@ connector_handle_key_press(SPConnectorContext *const cc, guint const keyval)
 
 
 static void
-cc_connector_rerouting_finish(SPConnectorContext *const cc, NR::Point *const p)
+cc_connector_rerouting_finish(SPConnectorContext *const cc, Geom::Point *const p)
 {
     SPDesktop *desktop = SP_EVENT_CONTEXT_DESKTOP(cc);
     SPDocument *doc = sp_desktop_document(desktop);
@@ -814,7 +815,7 @@ spcc_reset_colors(SPConnectorContext *cc)
 
 
 static void
-spcc_connector_set_initial_point(SPConnectorContext *const cc, NR::Point const p)
+spcc_connector_set_initial_point(SPConnectorContext *const cc, Geom::Point const p)
 {
     g_assert( cc->npoints == 0 );
 
@@ -826,15 +827,15 @@ spcc_connector_set_initial_point(SPConnectorContext *const cc, NR::Point const p
 
 
 static void
-spcc_connector_set_subsequent_point(SPConnectorContext *const cc, NR::Point const p)
+spcc_connector_set_subsequent_point(SPConnectorContext *const cc, Geom::Point const p)
 {
     g_assert( cc->npoints != 0 );
 
     SPDesktop *dt = cc->desktop;
-    NR::Point o = dt->dt2doc(cc->p[0]);
-    NR::Point d = dt->dt2doc(p);
-    Avoid::Point src(o[NR::X], o[NR::Y]);
-    Avoid::Point dst(d[NR::X], d[NR::Y]);
+    Geom::Point o = dt->dt2doc(cc->p[0]);
+    Geom::Point d = dt->dt2doc(p);
+    Avoid::Point src(o[Geom::X], o[Geom::Y]);
+    Avoid::Point dst(d[Geom::X], d[Geom::Y]);
 
     if (!cc->newConnRef) {
         Avoid::Router *router = sp_desktop_document(dt)->router;
@@ -850,11 +851,11 @@ spcc_connector_set_subsequent_point(SPConnectorContext *const cc, NR::Point cons
     cc->newConnRef->calcRouteDist();
 
     cc->red_curve->reset();
-    NR::Point pt(route.ps[0].x, route.ps[0].y);
+    Geom::Point pt(route.ps[0].x, route.ps[0].y);
     cc->red_curve->moveto(pt);
 
     for (int i = 1; i < route.pn; ++i) {
-        NR::Point p(route.ps[i].x, route.ps[i].y);
+        Geom::Point p(route.ps[i].x, route.ps[i].y);
         cc->red_curve->lineto(p);
     }
     cc->red_curve->transform(dt->doc2dt());
@@ -919,7 +920,7 @@ spcc_flush_white(SPConnectorContext *cc, SPCurve *gc)
 
         Inkscape::XML::Node *repr = xml_doc->createElement("svg:path");
         /* Set style */
-        sp_desktop_apply_style_tool(desktop, repr, "tools.connector", false);
+        sp_desktop_apply_style_tool(desktop, repr, "/tools/connector", false);
 
         gchar *str = sp_svg_write_path( c->get_pathvector() );
         g_assert( str != NULL );
@@ -966,7 +967,7 @@ spcc_flush_white(SPConnectorContext *cc, SPCurve *gc)
 
 
 static void
-spcc_connector_finish_segment(SPConnectorContext *const cc, NR::Point const /*p*/)
+spcc_connector_finish_segment(SPConnectorContext *const cc, Geom::Point const /*p*/)
 {
     if (!cc->red_curve->is_empty()) {
         cc->green_curve->append_continuous(cc->red_curve, 0.0625);
@@ -1068,7 +1069,7 @@ endpt_handler(SPKnot */*knot*/, GdkEvent *event, SPConnectorContext *cc)
                 unsigned ind = (cc->active_handle == cc->endpt_handle[0]) ? 0 : 1;
                 sp_conn_end_detach(cc->clickeditem, ind);
 
-                NR::Point origin;
+                Geom::Point origin;
                 if (cc->clickedhandle == cc->endpt_handle[0]) {
                     origin = cc->endpt_handle[1]->pos;
                 }
@@ -1258,7 +1259,8 @@ static bool cc_item_is_shape(SPItem *item)
         }
     }
     else if (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item)) {
-        if (prefs_get_int_attribute("tools.connector", "ignoretext", 1) == 1) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        if (prefs->getBool("/tools/connector/ignoretext", true)) {
             // Don't count text as a shape we can connect connector to.
             return false;
         }
index e8d9a4390d5073b21a5122760ff42c51df86afc6..d67e12b8134b8534f81078ebd231a4a0392171e7 100644 (file)
@@ -17,7 +17,7 @@
 #include "event-context.h"
 #include <forward.h>
 #include <display/display-forward.h>
-#include <libnr/nr-point.h>
+#include <2geom/point.h>
 #include "libavoid/connector.h"
 
 
@@ -44,7 +44,7 @@ enum {
 
 struct SPConnectorContext : public SPEventContext {
     Inkscape::Selection *selection;
-    NR::Point p[5];
+    Geom::Point p[5];
 
     /** \invar npoints in {0, 2}. */
     gint npoints;
index e6ebbe337c49669d28b1369c0ff3b338d90e0e12..c80def78786f2dee63ad867379ada857d1db749d 100644 (file)
@@ -132,11 +132,11 @@ Geom::Rect Inkscape::snap_rectangular_box(SPDesktop const *desktop, SPItem *item
             Inkscape::SnappedPoint s[2];
 
             /* Try to snap p[0] (the opposite corner) along the constraint vector */
-            s[0] = m.constrainedSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(p[0]),
+            s[0] = m.constrainedSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(p[0]),
                                      Inkscape::Snapper::ConstraintLine(p[0] - p[1]));
 
             /* Try to snap p[1] (the dragged corner) along the constraint vector */
-            s[1] = m.constrainedSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(p[1]),
+            s[1] = m.constrainedSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(p[1]),
                                      Inkscape::Snapper::ConstraintLine(p[1] - p[0]));
 
             /* Choose the best snap and update points accordingly */
@@ -157,7 +157,7 @@ Geom::Rect Inkscape::snap_rectangular_box(SPDesktop const *desktop, SPItem *item
 
             /* Our origin is the opposite corner.  Snap the drag point along the constraint vector */
             p[0] = center;
-            snappoint = m.constrainedSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(p[1]),
+            snappoint = m.constrainedSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(p[1]),
                                           Inkscape::Snapper::ConstraintLine(p[1] - p[0]));
             if (snappoint.getSnapped()) {
                 p[1] = snappoint.getPoint();
@@ -175,8 +175,8 @@ Geom::Rect Inkscape::snap_rectangular_box(SPDesktop const *desktop, SPItem *item
 
         Inkscape::SnappedPoint s[2];
 
-        s[0] = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(p[0]));
-        s[1] = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(p[1]));
+        s[0] = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(p[0]));
+        s[1] = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(p[1]));
 
         if (s[0].getDistance() < s[1].getDistance()) {
             if (s[0].getSnapped()) {
@@ -197,7 +197,7 @@ Geom::Rect Inkscape::snap_rectangular_box(SPDesktop const *desktop, SPItem *item
         /* There's no constraint on the corner point, so just snap it to anything */
         p[0] = center;
         p[1] = pt;
-        snappoint = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(pt));
+        snappoint = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(pt));
         if (snappoint.getSnapped()) {
             p[1] = snappoint.getPoint();
         }
index cfd5a9b7133c1657d836cafefc6952abe72401a3..a6baae8dae47c5f6e360abcf088d0e54b09a05ba 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 #include "debug/gdk-event-latency-tracker.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 namespace Inkscape {
 namespace Debug {
@@ -32,7 +32,8 @@ boost::optional<double> GdkEventLatencyTracker::process(GdkEvent const *event) {
     if (start_seconds == 0.0) {
         elapsed.start();
         start_seconds = timestamp_seconds;
-        skew = prefs_get_double_attribute_limited("debug.latency", "skew", 1.0, 0.5, 2.0);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        skew = prefs->getDoubleLimited("/debug/latency/skew", 1.0, 0.5, 2.0);
         return boost::optional<double>(0.0);
     } else {
         last_elapsed = elapsed.elapsed();
index 726341dedef6a6b312e9692e6e315fdfdf7eff62..4258d1980433540ef133373827f6f982f8681f22 100644 (file)
@@ -36,7 +36,7 @@
 #include "snap.h"
 #include "display/canvas-grid.h"
 #include "display/canvas-axonomgrid.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "helper/action.h"
 #include "tools-switch.h"
 #include <2geom/point.h>
@@ -52,8 +52,9 @@ int sp_desktop_root_handler(SPCanvasItem */*item*/, GdkEvent *event, SPDesktop *
     static bool first = true;
 
     if ( first ) {
-        if ( prefs_get_int_attribute("options.useextinput", "value", 1)
-            && prefs_get_int_attribute("options.switchonextinput", "value", 0) ) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        if ( prefs->getBool("/options/useextinput/value", true)
+            && prefs->getBool("/options/switchonextinput/value") ) {
             watch = true;
             init_extended();
         }
index 72c943949bc1499007e13c8059e3e37700963625..a8d0a3d1e9bae4672434edb7c895c4e658692f40 100644 (file)
@@ -25,8 +25,8 @@ namespace Inkscape {
 #define SP_DESKTOP_ZOOM_MIN 0.01
 
 #define SP_COORDINATES_UNDERLINE_NONE (0)
-#define SP_COORDINATES_UNDERLINE_X (1 << NR::X)
-#define SP_COORDINATES_UNDERLINE_Y (1 << NR::Y)
+#define SP_COORDINATES_UNDERLINE_X (1 << Geom::X)
+#define SP_COORDINATES_UNDERLINE_Y (1 << Geom::Y)
 
 SPEventContext * sp_desktop_event_context (SPDesktop const * desktop);
 Inkscape::Selection * sp_desktop_selection (SPDesktop const * desktop);
index 23b2e07a5d945be9277d4aebdb765fa49d306dba..07817529dfaa25bc8ea29f211166fb655be0c337 100644 (file)
@@ -23,7 +23,7 @@
 #include "selection.h"
 #include "inkscape.h"
 #include "style.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-use.h"
 #include "sp-feblend.h"
 #include "sp-filter.h"
@@ -159,22 +159,22 @@ void
 sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write_current)
 {
     if (write_current) {
-// 1. Set internal value
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        // 1. Set internal value
         sp_repr_css_merge(desktop->current, css);
 
-// 1a. Write to prefs; make a copy and unset any URIs first
+        // 1a. Write to prefs; make a copy and unset any URIs first
         SPCSSAttr *css_write = sp_repr_css_attr_new();
         sp_repr_css_merge(css_write, css);
         sp_css_attr_unset_uris(css_write);
-        sp_repr_css_change(inkscape_get_repr(INKSCAPE, "desktop"), css_write, "style");
+        prefs->mergeStyle("/desktop/style", css_write);
+        
         for (const GSList *i = desktop->selection->itemList(); i != NULL; i = i->next) {
             /* last used styles for 3D box faces are stored separately */
             if (SP_IS_BOX3D_SIDE (i->data)) {
                 const char * descr  = box3d_side_axes_string(SP_BOX3D_SIDE(i->data));
                 if (descr != NULL) {
-                    gchar *style_grp = g_strconcat ("desktop.", descr, NULL);
-                    sp_repr_css_change(inkscape_get_repr(INKSCAPE, style_grp), css_write, "style");
-                    g_free (style_grp);
+                    prefs->mergeStyle(Glib::ustring("/desktop/") + descr + "/style", css_write);
                 }
             }
         }
@@ -243,19 +243,17 @@ sp_desktop_get_color(SPDesktop *desktop, bool is_fill)
 }
 
 double
-sp_desktop_get_master_opacity_tool(SPDesktop *desktop, char const *tool, bool *has_opacity)
+sp_desktop_get_master_opacity_tool(SPDesktop *desktop, Glib::ustring const &tool, bool *has_opacity)
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     SPCSSAttr *css = NULL;
     gfloat value = 1.0; // default if nothing else found
     if (has_opacity)
         *has_opacity = false;
-    if (prefs_get_double_attribute(tool, "usecurrent", 0) != 0) {
+    if (prefs->getBool(tool + "/usecurrent")) {
         css = sp_desktop_get_style(desktop, true);
-    } else { 
-        Inkscape::XML::Node *tool_repr = inkscape_get_repr(INKSCAPE, tool);
-        if (tool_repr) {
-            css = sp_repr_css_attr_inherited(tool_repr, "style");
-        }
+    } else {
+        css = prefs->getStyle(tool + "/style");
     }
    
     if (css) {
@@ -276,17 +274,15 @@ sp_desktop_get_master_opacity_tool(SPDesktop *desktop, char const *tool, bool *h
     return value;
 }
 double
-sp_desktop_get_opacity_tool(SPDesktop *desktop, char const *tool, bool is_fill)
+sp_desktop_get_opacity_tool(SPDesktop *desktop, Glib::ustring const &tool, bool is_fill)
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     SPCSSAttr *css = NULL;
     gfloat value = 1.0; // default if nothing else found
-    if (prefs_get_double_attribute(tool, "usecurrent", 0) != 0) {
+    if (prefs->getBool(tool + "/usecurrent")) {
         css = sp_desktop_get_style(desktop, true);
     } else { 
-        Inkscape::XML::Node *tool_repr = inkscape_get_repr(INKSCAPE, tool);
-        if (tool_repr) {
-            css = sp_repr_css_attr_inherited(tool_repr, "style");
-        }
+        css = prefs->getStyle(tool + "/style");
     }
    
     if (css) {
@@ -305,19 +301,17 @@ sp_desktop_get_opacity_tool(SPDesktop *desktop, char const *tool, bool is_fill)
 }
 
 guint32
-sp_desktop_get_color_tool(SPDesktop *desktop, char const *tool, bool is_fill, bool *has_color)
-{
+sp_desktop_get_color_tool(SPDesktop *desktop, Glib::ustring const &tool, bool is_fill, bool *has_color)
+{   
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     SPCSSAttr *css = NULL;
     guint32 r = 0; // if there's no color, return black
     if (has_color)
         *has_color = false;
-    if (prefs_get_int_attribute(tool, "usecurrent", 0) != 0) {
+    if (prefs->getBool(tool + "/usecurrent")) {
         css = sp_desktop_get_style(desktop, true);
     } else {
-        Inkscape::XML::Node *tool_repr = inkscape_get_repr(INKSCAPE, tool);
-        if (tool_repr) {
-            css = sp_repr_css_attr_inherited(tool_repr, "style");
-        }
+        css = prefs->getStyle(tool + "/style");
     }
    
     if (css) {
@@ -342,18 +336,17 @@ sp_desktop_get_color_tool(SPDesktop *desktop, char const *tool, bool is_fill, bo
  * Apply the desktop's current style or the tool style to repr.
  */
 void
-sp_desktop_apply_style_tool(SPDesktop *desktop, Inkscape::XML::Node *repr, char const *tool, bool with_text)
+sp_desktop_apply_style_tool(SPDesktop *desktop, Inkscape::XML::Node *repr, Glib::ustring const &tool_path, bool with_text)
 {
     SPCSSAttr *css_current = sp_desktop_get_style(desktop, with_text);
-    if ((prefs_get_int_attribute(tool, "usecurrent", 0) != 0) && css_current) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    
+    if (prefs->getBool(tool_path + "/usecurrent") && css_current) {
         sp_repr_css_set(repr, css_current, "style");
     } else {
-        Inkscape::XML::Node *tool_repr = inkscape_get_repr(INKSCAPE, tool);
-        if (tool_repr) {
-            SPCSSAttr *css = sp_repr_css_attr_inherited(tool_repr, "style");
-            sp_repr_css_set(repr, css, "style");
-            sp_repr_css_attr_unref(css);
-        }
+        SPCSSAttr *css = prefs->getStyle(tool_path + "/style");
+        sp_repr_css_set(repr, css, "style");
+        sp_repr_css_attr_unref(css);
     }
     if (css_current) {
         sp_repr_css_attr_unref(css_current);
@@ -368,21 +361,19 @@ double
 sp_desktop_get_font_size_tool(SPDesktop *desktop)
 {
     (void)desktop; // TODO cleanup
-    gchar const *desktop_style = inkscape_get_repr(INKSCAPE, "desktop")->attribute("style");
-    gchar const *style_str = NULL;
-    if ((prefs_get_int_attribute("tools.text", "usecurrent", 0) != 0) && desktop_style) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    Glib::ustring desktop_style = prefs->getString("/desktop/style");
+    Glib::ustring style_str;
+    if ((prefs->getBool("/tools/text/usecurrent")) && !desktop_style.empty()) {
         style_str = desktop_style;
     } else {
-        Inkscape::XML::Node *tool_repr = inkscape_get_repr(INKSCAPE, "tools.text");
-        if (tool_repr) {
-            style_str = tool_repr->attribute("style");
-        }
+        style_str = prefs->getString("/tools/text/style");
     }
 
     double ret = 12;
-    if (style_str) {
+    if (!style_str.empty()) {
         SPStyle *style = sp_style_new(SP_ACTIVE_DOCUMENT);
-        sp_style_merge_from_style_string(style, style_str);
+        sp_style_merge_from_style_string(style, style_str.data());
         ret = style->font_size.computed;
         sp_style_unref(style);
     }
index 57d8e0ae1b2b15c49762ce48dbae1b1cf534743f..40461da723cea5b8909f0855db1538fad0f0a4bb 100644 (file)
@@ -25,6 +25,7 @@ namespace XML {
 struct Node;
 }
 }
+namespace Glib { class ustring; }
 
 enum { // what kind of a style the query is returning
     QUERY_STYLE_NOTHING,   // nothing was queried - e.g. no selection
@@ -57,11 +58,11 @@ void sp_desktop_set_color(SPDesktop *desktop, ColorRGBA const &color, bool is_re
 void sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change = true, bool write_current = true);
 SPCSSAttr *sp_desktop_get_style(SPDesktop *desktop, bool with_text);
 guint32 sp_desktop_get_color (SPDesktop *desktop, bool is_fill);
-double sp_desktop_get_master_opacity_tool(SPDesktop *desktop, char const *tool, bool* has_opacity = NULL);
-double sp_desktop_get_opacity_tool(SPDesktop *desktop, char const *tool, bool is_fill);
-guint32 sp_desktop_get_color_tool(SPDesktop *desktop, char const *tool, bool is_fill, bool* has_color = NULL);
+double sp_desktop_get_master_opacity_tool(SPDesktop *desktop, Glib::ustring const &tool, bool* has_opacity = NULL);
+double sp_desktop_get_opacity_tool(SPDesktop *desktop, Glib::ustring const &tool, bool is_fill);
+guint32 sp_desktop_get_color_tool(SPDesktop *desktop, Glib::ustring const &tool, bool is_fill, bool* has_color = NULL);
 double sp_desktop_get_font_size_tool (SPDesktop *desktop);
-void sp_desktop_apply_style_tool(SPDesktop *desktop, Inkscape::XML::Node *repr, char const *tool, bool with_text);
+void sp_desktop_apply_style_tool(SPDesktop *desktop, Inkscape::XML::Node *repr, Glib::ustring const &tool, bool with_text);
 
 gdouble stroke_average_width (GSList const *objects);
 
index eb4a5041056a65dc8281b3726ed1d3409ccda039..1ee24f9c6d35854c73c20714dd1e1450dbf52103 100644 (file)
@@ -70,7 +70,7 @@
 #include "sp-namedview.h"
 #include "color.h"
 #include "sp-item-group.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "object-hierarchy.h"
 #include "helper/units.h"
 #include "display/canvas-arena.h"
@@ -133,7 +133,7 @@ SPDesktop::SPDesktop() :
     page( 0 ),
     page_border( 0 ),
     current( 0 ),
-       _focusMode(false),
+    _focusMode(false),
     zooms_past( 0 ),
     zooms_future( 0 ),
     dkey( 0 ),
@@ -156,7 +156,7 @@ SPDesktop::SPDesktop() :
     _active( false ),
     _w2d(),
     _d2w(),
-    _doc2dt( NR::Matrix(Geom::Scale(1, -1)) ),
+    _doc2dt( Geom::Scale(1, -1) ),
     grids_visible( false )
 {
     _d2w.setIdentity();
@@ -170,10 +170,11 @@ SPDesktop::init (SPNamedView *nv, SPCanvas *aCanvas)
 {
     // Temporary workaround for link order issues:
     Inkscape::DeviceManager::getManager().getDevices();
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     _guides_message_context = new Inkscape::MessageContext(const_cast<Inkscape::MessageStack*>(messageStack()));
 
-    current = sp_repr_css_attr_inherited (inkscape_get_repr (INKSCAPE, "desktop"), "style");
+    current = prefs->getStyle("/desktop/style");
 
     namedview = nv;
     canvas = aCanvas;
@@ -216,9 +217,9 @@ SPDesktop::init (SPNamedView *nv, SPCanvas *aCanvas)
     drawing = sp_canvas_item_new (main, SP_TYPE_CANVAS_ARENA, NULL);
     g_signal_connect (G_OBJECT (drawing), "arena_event", G_CALLBACK (_arena_handler), this);
 
-    SP_CANVAS_ARENA (drawing)->arena->delta = prefs_get_double_attribute ("options.cursortolerance", "value", 1.0); // default is 1 px
+    SP_CANVAS_ARENA (drawing)->arena->delta = prefs->getDouble("/options/cursortolerance/value", 1.0); // default is 1 px
 
-    if (prefs_get_int_attribute("options.startmode", "outline", 0)) {
+    if (prefs->getBool("/options/startmode/outline")) {
         // Start in outline mode
         setDisplayModeOutline();
     } else {
@@ -238,7 +239,7 @@ SPDesktop::init (SPNamedView *nv, SPCanvas *aCanvas)
      * call "set" instead of "push".  Can we assume that there is only one
      * context ever?
      */
-    push_event_context (SP_TYPE_SELECT_CONTEXT, "tools.select", SP_EVENT_CONTEXT_STATIC);
+    push_event_context (SP_TYPE_SELECT_CONTEXT, "/tools/select", SP_EVENT_CONTEXT_STATIC);
 
     // display rect and zoom are now handled in sp_desktop_widget_realize()
 
@@ -613,8 +614,7 @@ SPDesktop::set_event_context (GtkType type, const gchar *config)
         g_object_unref (G_OBJECT (ec));
     }
 
-    Inkscape::XML::Node *repr = (config) ? inkscape_get_repr (_inkscape, config) : NULL;
-    ec = sp_event_context_new (type, this, repr, SP_EVENT_CONTEXT_STATIC);
+    ec = sp_event_context_new (type, this, config, SP_EVENT_CONTEXT_STATIC);
     ec->next = event_context;
     event_context = ec;
     sp_event_context_activate (ec);
@@ -628,7 +628,6 @@ void
 SPDesktop::push_event_context (GtkType type, const gchar *config, unsigned int key)
 {
     SPEventContext *ref, *ec;
-    Inkscape::XML::Node *repr;
 
     if (event_context && event_context->key == key) return;
     ref = event_context;
@@ -641,8 +640,7 @@ SPDesktop::push_event_context (GtkType type, const gchar *config, unsigned int k
     }
 
     if (event_context) sp_event_context_deactivate (event_context);
-    repr = (config) ? inkscape_get_repr (INKSCAPE, config) : NULL;
-    ec = sp_event_context_new (type, this, repr, key);
+    ec = sp_event_context_new (type, this, config, key);
     ec->next = event_context;
     event_context = ec;
     sp_event_context_activate (ec);
@@ -723,10 +721,10 @@ SPDesktop::push_current_zoom (GList **history)
     Geom::Rect const area = get_display_area();
 
     NRRect *old_zoom = g_new(NRRect, 1);
-    old_zoom->x0 = area.min()[NR::X];
-    old_zoom->x1 = area.max()[NR::X];
-    old_zoom->y0 = area.min()[NR::Y];
-    old_zoom->y1 = area.max()[NR::Y];
+    old_zoom->x0 = area.min()[Geom::X];
+    old_zoom->x1 = area.max()[Geom::X];
+    old_zoom->y0 = area.min()[Geom::Y];
+    old_zoom->y1 = area.max()[Geom::Y];
     if ( *history == NULL
          || !( ( ((NRRect *) ((*history)->data))->x0 == old_zoom->x0 ) &&
                ( ((NRRect *) ((*history)->data))->x1 == old_zoom->x1 ) &&
@@ -773,15 +771,15 @@ SPDesktop::set_display_area (double x0, double y0, double x1, double y1, double
     int clear = FALSE;
     if (!NR_DF_TEST_CLOSE (newscale, scale, 1e-4 * scale)) {
         /* Set zoom factors */
-        _d2w = NR::Matrix(Geom::Scale(newscale, -newscale));
-        _w2d = NR::Matrix(Geom::Scale(1/newscale, 1/-newscale));
+        _d2w = Geom::Scale(newscale, -newscale);
+        _w2d = Geom::Scale(1/newscale, 1/-newscale);
         sp_canvas_item_affine_absolute(SP_CANVAS_ITEM(main), _d2w);
         clear = TRUE;
     }
 
     /* Calculate top left corner (in document pixels) */
-    x0 = cx - 0.5 * viewbox.dimensions()[NR::X] / newscale;
-    y1 = cy + 0.5 * viewbox.dimensions()[NR::Y] / newscale;
+    x0 = cx - 0.5 * viewbox.dimensions()[Geom::X] / newscale;
+    y1 = cy + 0.5 * viewbox.dimensions()[Geom::Y] / newscale;
 
     /* Scroll */
     sp_canvas_scroll_to (canvas, x0 * newscale - border, y1 * -newscale - border, clear);
@@ -868,94 +866,94 @@ SPDesktop::next_zoom()
 #include "nodepath.h"
 
 /** \brief  Performs a quick zoom into what the user is working on
-       \param  enable  Whether we're going in or out of quick zoom
+    \param  enable  Whether we're going in or out of quick zoom
 
 */
 void 
 SPDesktop::zoom_quick (bool enable)
 {
-       if (enable == _quick_zoom_enabled) {
-               return;
-       }
-
-       if (enable == true) {
-               _quick_zoom_stored_area = get_display_area();
-               bool zoomed = false;
-
-               if (!zoomed) {
-                       SPItem * singleItem = selection->singleItem();
-                       if (singleItem != NULL && tools_isactive(this, TOOLS_NODES)) {
-                               SPNodeContext * ncontext = SP_NODE_CONTEXT(event_context);
-
-                               Inkscape::NodePath::Path * nodepath = ncontext->shape_editor->get_nodepath();
-                               // printf("I've got a nodepath, crazy\n");
-
-                               Geom::Rect nodes;
-                               bool firstnode = true;
-
-                               if (nodepath->selected) {
-                                       for (GList *spl = nodepath->subpaths; spl != NULL; spl = spl->next) {
-                                          Inkscape::NodePath::SubPath *subpath = (Inkscape::NodePath::SubPath *) spl->data;
-                                               for (GList *nl = subpath->nodes; nl != NULL; nl = nl->next) {
-                                                  Inkscape::NodePath::Node *node = (Inkscape::NodePath::Node *) nl->data;
-                                                       if (node->selected) {
-                                                               // printf("\tSelected node\n");
-                                                               if (firstnode) {
-                                                                       nodes = Geom::Rect(node->pos, node->pos);
-                                                                       firstnode = false;
-                                                               } else {
-                                                                       nodes.expandTo(node->pos);
-                                                               }
-
-                                                               if (node->p.other != NULL) {
-                                                                       /* Include previous node pos */
-                                                                       nodes.expandTo(node->p.other->pos);
-
-                                                                       /* Include previous handle */
-                                                                       if (!sp_node_side_is_line(node, &node->p)) {
-                                                                               nodes.expandTo(node->p.pos);
-                                                                       }
-                                                               }
-
-                                                               if (node->n.other != NULL) {
-                                                                       /* Include previous node pos */
-                                                                       nodes.expandTo(node->n.other->pos);
-
-                                                                       /* Include previous handle */
-                                                                       if (!sp_node_side_is_line(node, &node->n)) {
-                                                                               nodes.expandTo(node->n.pos);
-                                                                       }
-                                                               }
-                                                       }
-                                               }
-                                       }
-
-                                       if (!firstnode && nodes.area() * 2.0 < _quick_zoom_stored_area.area()) {
-                                               set_display_area(nodes, 10);
-                                               zoomed = true;
-                                       }
-                               }
-                       }
-               }
-
-               if (!zoomed) {
-                       boost::optional<Geom::Rect> const d = selection->bounds();
-                       if (d && !d->isEmpty() && d->area() * 2.0 < _quick_zoom_stored_area.area()) {
-                               set_display_area(*d, 10);
-                               zoomed = true;
-                       
-               }
-
-               if (!zoomed) {
-                       zoom_relative(_quick_zoom_stored_area.midpoint()[NR::X], _quick_zoom_stored_area.midpoint()[NR::Y], 2.0);
-                       zoomed = true;
-               }
-       } else {
-               set_display_area(_quick_zoom_stored_area, 0);
-       }
-
-       _quick_zoom_enabled = enable;
-       return;
+    if (enable == _quick_zoom_enabled) {
+        return;
+    }
+
+    if (enable == true) {
+        _quick_zoom_stored_area = get_display_area();
+        bool zoomed = false;
+
+        if (!zoomed) {
+            SPItem * singleItem = selection->singleItem();
+            if (singleItem != NULL && tools_isactive(this, TOOLS_NODES)) {
+                SPNodeContext * ncontext = SP_NODE_CONTEXT(event_context);
+
+                Inkscape::NodePath::Path * nodepath = ncontext->shape_editor->get_nodepath();
+                // printf("I've got a nodepath, crazy\n");
+
+                Geom::Rect nodes;
+                bool firstnode = true;
+
+                if (nodepath->selected) {
+                    for (GList *spl = nodepath->subpaths; spl != NULL; spl = spl->next) {
+                       Inkscape::NodePath::SubPath *subpath = (Inkscape::NodePath::SubPath *) spl->data;
+                        for (GList *nl = subpath->nodes; nl != NULL; nl = nl->next) {
+                           Inkscape::NodePath::Node *node = (Inkscape::NodePath::Node *) nl->data;
+                            if (node->selected) {
+                                // printf("\tSelected node\n");
+                                if (firstnode) {
+                                    nodes = Geom::Rect(node->pos, node->pos);
+                                    firstnode = false;
+                                } else {
+                                    nodes.expandTo(node->pos);
+                                }
+
+                                if (node->p.other != NULL) {
+                                    /* Include previous node pos */
+                                    nodes.expandTo(node->p.other->pos);
+
+                                    /* Include previous handle */
+                                    if (!sp_node_side_is_line(node, &node->p)) {
+                                        nodes.expandTo(node->p.pos);
+                                    }
+                                }
+
+                                if (node->n.other != NULL) {
+                                    /* Include previous node pos */
+                                    nodes.expandTo(node->n.other->pos);
+
+                                    /* Include previous handle */
+                                    if (!sp_node_side_is_line(node, &node->n)) {
+                                        nodes.expandTo(node->n.pos);
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                    if (!firstnode && nodes.area() * 2.0 < _quick_zoom_stored_area.area()) {
+                        set_display_area(nodes, 10);
+                        zoomed = true;
+                    }
+                }
+            }
+        }
+
+        if (!zoomed) {
+            boost::optional<Geom::Rect> const d = selection->bounds();
+            if (d && !d->isEmpty() && d->area() * 2.0 < _quick_zoom_stored_area.area()) {
+                set_display_area(*d, 10);
+                zoomed = true;
+            } 
+        }
+
+        if (!zoomed) {
+            zoom_relative(_quick_zoom_stored_area.midpoint()[Geom::X], _quick_zoom_stored_area.midpoint()[Geom::Y], 2.0);
+            zoomed = true;
+        }
+    } else {
+        set_display_area(_quick_zoom_stored_area, 0);
+    }
+
+    _quick_zoom_enabled = enable;
+    return;
 }
 
 /**
@@ -974,8 +972,8 @@ SPDesktop::zoom_absolute_keep_point (double cx, double cy, double px, double py,
 
     Geom::Rect const viewbox = canvas->getViewbox();
 
-    double const width2 = viewbox.dimensions()[NR::X] / zoom;
-    double const height2 = viewbox.dimensions()[NR::Y] / zoom;
+    double const width2 = viewbox.dimensions()[Geom::X] / zoom;
+    double const height2 = viewbox.dimensions()[Geom::Y] / zoom;
 
     set_display_area(cx - px * width2,
                      cy - py * height2,
@@ -1001,22 +999,22 @@ SPDesktop::zoom_relative_keep_point (double cx, double cy, double zoom)
 {
     Geom::Rect const area = get_display_area();
 
-    if (cx < area.min()[NR::X]) {
-        cx = area.min()[NR::X];
+    if (cx < area.min()[Geom::X]) {
+        cx = area.min()[Geom::X];
     }
-    if (cx > area.max()[NR::X]) {
-        cx = area.max()[NR::X];
+    if (cx > area.max()[Geom::X]) {
+        cx = area.max()[Geom::X];
     }
-    if (cy < area.min()[NR::Y]) {
-        cy = area.min()[NR::Y];
+    if (cy < area.min()[Geom::Y]) {
+        cy = area.min()[Geom::Y];
     }
-    if (cy > area.max()[NR::Y]) {
-        cy = area.max()[NR::Y];
+    if (cy > area.max()[Geom::Y]) {
+        cy = area.max()[Geom::Y];
     }
 
     gdouble const scale = _d2w.descrim() * zoom;
-    double const px = (cx - area.min()[NR::X]) / area.dimensions()[NR::X];
-    double const py = (cy - area.min()[NR::Y]) / area.dimensions()[NR::Y];
+    double const px = (cx - area.min()[Geom::X]) / area.dimensions()[Geom::X];
+    double const py = (cy - area.min()[Geom::Y]) / area.dimensions()[Geom::Y];
 
     zoom_absolute_keep_point(cx, cy, px, py, scale);
 }
@@ -1146,7 +1144,11 @@ SPDesktop::scroll_world (double dx, double dy, bool is_scrolling)
 bool
 SPDesktop::scroll_to_point (Geom::Point const &p, gdouble autoscrollspeed)
 {
-    gdouble autoscrolldistance = (gdouble) prefs_get_int_attribute_limited ("options.autoscrolldistance", "value", 0, -1000, 10000);
+    using Geom::X;
+    using Geom::Y;
+
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gdouble autoscrolldistance = (gdouble) prefs->getIntLimited("/options/autoscrolldistance/value", 0, -1000, 10000);
 
     // autoscrolldistance is in screen pixels, but the display area is in document units
     autoscrolldistance /= _d2w.descrim();
@@ -1154,33 +1156,33 @@ SPDesktop::scroll_to_point (Geom::Point const &p, gdouble autoscrollspeed)
     Geom::Rect dbox = get_display_area();
     dbox.expandBy(-autoscrolldistance);
 
-    if (!(p[NR::X] > dbox.min()[NR::X] && p[NR::X] < dbox.max()[NR::X]) ||
-        !(p[NR::Y] > dbox.min()[NR::Y] && p[NR::Y] < dbox.max()[NR::Y])   ) {
+    if (!(p[X] > dbox.min()[X] && p[X] < dbox.max()[X]) ||
+        !(p[Y] > dbox.min()[Y] && p[Y] < dbox.max()[Y])   ) {
 
         Geom::Point const s_w( p * (Geom::Matrix)_d2w );
 
         gdouble x_to;
-        if (p[NR::X] < dbox.min()[NR::X])
-            x_to = dbox.min()[NR::X];
-        else if (p[NR::X] > dbox.max()[NR::X])
-            x_to = dbox.max()[NR::X];
+        if (p[X] < dbox.min()[X])
+            x_to = dbox.min()[X];
+        else if (p[X] > dbox.max()[X])
+            x_to = dbox.max()[X];
         else
-            x_to = p[NR::X];
+            x_to = p[X];
 
         gdouble y_to;
-        if (p[NR::Y] < dbox.min()[NR::Y])
-            y_to = dbox.min()[NR::Y];
-        else if (p[NR::Y] > dbox.max()[NR::Y])
-            y_to = dbox.max()[NR::Y];
+        if (p[Y] < dbox.min()[Y])
+            y_to = dbox.min()[Y];
+        else if (p[Y] > dbox.max()[Y])
+            y_to = dbox.max()[Y];
         else
-            y_to = p[NR::Y];
+            y_to = p[Y];
 
         Geom::Point const d_dt(x_to, y_to);
         Geom::Point const d_w( d_dt * _d2w );
         Geom::Point const moved_w( d_w - s_w );
 
         if (autoscrollspeed == 0)
-            autoscrollspeed = prefs_get_double_attribute_limited ("options.autoscrollspeed", "value", 1, 0, 10);
+            autoscrollspeed = prefs->getDoubleLimited("/options/autoscrollspeed/value", 1, 0, 10);
 
         if (autoscrollspeed != 0)
             scroll_world (autoscrollspeed * moved_w);
@@ -1228,29 +1230,29 @@ SPDesktop::fullscreen()
 
 /** \brief  Checks to see if the user is working in focused mode
 
-       Returns the value of \c _focusMode
+    Returns the value of \c _focusMode
 */
 bool
 SPDesktop::is_focusMode()
 {
-       return _focusMode;
+    return _focusMode;
 }
 
 /** \brief  Changes whether the user is in focus mode or not
-       \param  mode  Which mode the view should be in
+    \param  mode  Which mode the view should be in
 
 */
 void
 SPDesktop::focusMode (bool mode)
 {
-       if (mode == _focusMode) { return; }
+    if (mode == _focusMode) { return; }
 
-       _focusMode = mode;
+    _focusMode = mode;
 
-       layoutWidget();
-       //sp_desktop_widget_layout(SPDesktopWidget);
+    layoutWidget();
+    //sp_desktop_widget_layout(SPDesktopWidget);
 
-       return;
+    return;
 }
 
 void
@@ -1344,7 +1346,7 @@ bool SPDesktop::onDeleteUI (GdkEventAny*)
 bool
 SPDesktop::onWindowStateEvent (GdkEventWindowState* event)
 {
-       // Record the desktop window's state
+    // Record the desktop window's state
     window_state = event->new_window_state;
 
     // Layout may differ depending on full-screen mode or not
@@ -1353,7 +1355,7 @@ SPDesktop::onWindowStateEvent (GdkEventWindowState* event)
         layoutWidget();
     }
 
-       return false;
+    return false;
 }
 
 void
@@ -1383,8 +1385,8 @@ SPDesktop::isToolboxButtonActive (gchar const *id)
 void
 SPDesktop::emitToolSubselectionChanged(gpointer data)
 {
-       _tool_subselection_changed.emit(data);
-       inkscape_subselection_changed (this);
+    _tool_subselection_changed.emit(data);
+    inkscape_subselection_changed (this);
 }
 
 void
@@ -1452,7 +1454,7 @@ void SPDesktop::showGrids(bool show, bool dirty_document)
 
 void SPDesktop::toggleSnapping()
 {
-    bool v = namedview->snap_manager.getSnapEnabledGlobally();
+    bool v = namedview->snap_manager.snapprefs.getSnapEnabledGlobally();
     Inkscape::XML::Node *repr = SP_OBJECT_REPR(namedview);
     sp_repr_set_boolean(repr, "inkscape:snap-global", !v);
 }
@@ -1731,7 +1733,7 @@ _namedview_modified (SPObject *obj, guint flags, SPDesktop *desktop)
                 int order = sp_canvas_item_order (desktop->page_border);
                 int morder = sp_canvas_item_order (desktop->drawing);
                 if (morder > order) sp_canvas_item_raise (desktop->page_border,
-                                   morder - order);
+                    morder - order);
             }
         } else {
                 sp_canvas_item_hide (desktop->page_border);
@@ -1747,14 +1749,15 @@ _namedview_modified (SPObject *obj, guint flags, SPDesktop *desktop)
             ((CtrlRect *) desktop->page_border)->setShadow(0, 0x00000000);
         }
 
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         if (SP_RGBA32_A_U(nv->pagecolor) < 128 ||
             (SP_RGBA32_R_U(nv->pagecolor) +
              SP_RGBA32_G_U(nv->pagecolor) +
              SP_RGBA32_B_U(nv->pagecolor)) >= 384) {
             // the background color is light or transparent, use black outline
-            SP_CANVAS_ARENA (desktop->drawing)->arena->outlinecolor = prefs_get_int_attribute("options.wireframecolors", "onlight", 0xff);
+            SP_CANVAS_ARENA (desktop->drawing)->arena->outlinecolor = prefs->getInt("/options/wireframecolors/onlight", 0xff);
         } else { // use white outline
-            SP_CANVAS_ARENA (desktop->drawing)->arena->outlinecolor = prefs_get_int_attribute("options.wireframecolors", "ondark", 0xffffffff);
+            SP_CANVAS_ARENA (desktop->drawing)->arena->outlinecolor = prefs->getInt("/options/wireframecolors/ondark", 0xffffffff);
         }
     }
 }
index fa38e1b7188715a069a5d328f03905052f428ebb..ce82f4ea6aee265ea7f6eac2bf1c348e1e7d782b 100644 (file)
@@ -118,7 +118,7 @@ struct SPDesktop : public Inkscape::UI::View::View
     GList *zooms_past;
     GList *zooms_future;
     bool _quick_zoom_enabled; ///< Signifies that currently we're in quick zoom mode
-       Geom::Rect _quick_zoom_stored_area;  ///< The area of the screen before quick zoom
+    Geom::Rect _quick_zoom_stored_area;  ///< The area of the screen before quick zoom
     unsigned int dkey;
     unsigned int number;
     guint window_state;
index c27c2b666f07f995e840933ab3381c2e564f629c..ce0fc15dfa3a7789f9241d5e0eb1ebb7557778f4 100644 (file)
@@ -68,7 +68,7 @@ static win_data wd;
 
 // impossible original values to make sure they are read from prefs
 static gint x = -1000, y = -1000, w = 0, h = 0;
-static gchar const *prefs_path = "dialogs.clonetiler";
+static Glib::ustring const prefs_path = "/dialogs/clonetiler/";
 
 #define SB_MARGIN 1
 #define VB_MARGIN 4
@@ -125,10 +125,10 @@ clonetiler_dialog_delete (GtkObject */*object*/, GdkEvent * /*event*/, gpointer
     if (y<0) y=0;
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt(prefs_path, "x", x);
-    prefs->setInt(prefs_path, "y", y);
-    prefs->setInt(prefs_path, "w", w);
-    prefs->setInt(prefs_path, "h", h);
+    prefs->setInt(prefs_path + "x", x);
+    prefs->setInt(prefs_path + "y", y);
+    prefs->setInt(prefs_path + "w", w);
+    prefs->setInt(prefs_path + "h", h);
 
     return FALSE; // which means, go ahead and destroy it
 
@@ -151,7 +151,7 @@ on_picker_color_changed (guint rgba)
     gchar c[32];
     sp_svg_write_color(c, sizeof(c), rgba);
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setString(prefs_path, "initial_color", c);
+    prefs->setString(prefs_path + "initial_color", c);
 
     is_updating = false;
 }
@@ -1134,89 +1134,87 @@ clonetiler_apply( GtkWidget */*widget*/, void * )
 
     clonetiler_remove (NULL, NULL, false);
 
-    double shiftx_per_i = 0.01 * prefs->getDoubleLimited(prefs_path, "shiftx_per_i", 0, -10000, 10000);
-    double shifty_per_i = 0.01 * prefs->getDoubleLimited(prefs_path, "shifty_per_i", 0, -10000, 10000);
-    double shiftx_per_j = 0.01 * prefs->getDoubleLimited(prefs_path, "shiftx_per_j", 0, -10000, 10000);
-    double shifty_per_j = 0.01 * prefs->getDoubleLimited(prefs_path, "shifty_per_j", 0, -10000, 10000);
-    double shiftx_rand  = 0.01 * prefs->getDoubleLimited(prefs_path, "shiftx_rand", 0, 0, 1000);
-    double shifty_rand  = 0.01 * prefs->getDoubleLimited(prefs_path, "shifty_rand", 0, 0, 1000);
-    double shiftx_exp   =        prefs->getDoubleLimited(prefs_path, "shiftx_exp",   1, 0, 10);
-    double shifty_exp   =        prefs->getDoubleLimited(prefs_path, "shifty_exp", 1, 0, 10);
-    bool   shiftx_alternate =    prefs->getBool(prefs_path, "shiftx_alternate");
-    bool   shifty_alternate =    prefs->getBool(prefs_path, "shifty_alternate");
-    bool   shiftx_cumulate  =    prefs->getBool(prefs_path, "shiftx_cumulate");
-    bool   shifty_cumulate  =    prefs->getBool(prefs_path, "shifty_cumulate");
-    bool   shiftx_excludew  =    prefs->getBool(prefs_path, "shiftx_excludew");
-    bool   shifty_excludeh  =    prefs->getBool(prefs_path, "shifty_excludeh");
-
-    double scalex_per_i = 0.01 * prefs->getDoubleLimited(prefs_path, "scalex_per_i", 0, -100, 1000);
-    double scaley_per_i = 0.01 * prefs->getDoubleLimited(prefs_path, "scaley_per_i", 0, -100, 1000);
-    double scalex_per_j = 0.01 * prefs->getDoubleLimited(prefs_path, "scalex_per_j", 0, -100, 1000);
-    double scaley_per_j = 0.01 * prefs->getDoubleLimited(prefs_path, "scaley_per_j", 0, -100, 1000);
-    double scalex_rand  = 0.01 * prefs->getDoubleLimited(prefs_path, "scalex_rand",  0, 0, 1000);
-    double scaley_rand  = 0.01 * prefs->getDoubleLimited(prefs_path, "scaley_rand",  0, 0, 1000);
-    double scalex_exp   =        prefs->getDoubleLimited(prefs_path, "scalex_exp",   1, 0, 10);
-    double scaley_exp   =        prefs->getDoubleLimited(prefs_path, "scaley_exp",   1, 0, 10);
-    double scalex_log       =    prefs->getDoubleLimited(prefs_path, "scalex_log",   0, 0, 10);
-    double scaley_log       =    prefs->getDoubleLimited(prefs_path, "scaley_log",   0, 0, 10);
-    bool   scalex_alternate =    prefs->getBool(prefs_path, "scalex_alternate");
-    bool   scaley_alternate =    prefs->getBool(prefs_path, "scaley_alternate");
-    bool   scalex_cumulate  =    prefs->getBool(prefs_path, "scalex_cumulate");
-    bool   scaley_cumulate  =    prefs->getBool(prefs_path, "scaley_cumulate");
-
-    double rotate_per_i =        prefs->getDoubleLimited(prefs_path, "rotate_per_i", 0, -180, 180);
-    double rotate_per_j =        prefs->getDoubleLimited(prefs_path, "rotate_per_j", 0, -180, 180);
-    double rotate_rand =  0.01 * prefs->getDoubleLimited(prefs_path, "rotate_rand", 0, 0, 100);
-    bool   rotate_alternatei   = prefs->getBool(prefs_path, "rotate_alternatei");
-    bool   rotate_alternatej   = prefs->getBool(prefs_path, "rotate_alternatej");
-    bool   rotate_cumulatei    = prefs->getBool(prefs_path, "rotate_cumulatei");
-    bool   rotate_cumulatej    = prefs->getBool(prefs_path, "rotate_cumulatej");
-
-    double blur_per_i =   0.01 * prefs->getDoubleLimited(prefs_path, "blur_per_i", 0, 0, 100);
-    double blur_per_j =   0.01 * prefs->getDoubleLimited(prefs_path, "blur_per_j", 0, 0, 100);
-    bool   blur_alternatei =     prefs->getBool(prefs_path, "blur_alternatei");
-    bool   blur_alternatej =     prefs->getBool(prefs_path, "blur_alternatej");
-    double blur_rand =    0.01 * prefs->getDoubleLimited(prefs_path, "blur_rand", 0, 0, 100);
-
-    double opacity_per_i = 0.01 * prefs->getDoubleLimited(prefs_path, "opacity_per_i", 0, 0, 100);
-    double opacity_per_j = 0.01 * prefs->getDoubleLimited(prefs_path, "opacity_per_j", 0, 0, 100);
-    bool   opacity_alternatei =   prefs->getBool(prefs_path, "opacity_alternatei");
-    bool   opacity_alternatej =   prefs->getBool(prefs_path, "opacity_alternatej");
-    double opacity_rand =  0.01 * prefs->getDoubleLimited(prefs_path, "opacity_rand", 0, 0, 100);
-
-    Glib::ustring initial_color =    prefs->getString(prefs_path, "initial_color");
-    double hue_per_j =        0.01 * prefs->getDoubleLimited(prefs_path, "hue_per_j", 0, -100, 100);
-    double hue_per_i =        0.01 * prefs->getDoubleLimited(prefs_path, "hue_per_i", 0, -100, 100);
-    double hue_rand  =        0.01 * prefs->getDoubleLimited(prefs_path, "hue_rand", 0, 0, 100);
-    double saturation_per_j = 0.01 * prefs->getDoubleLimited(prefs_path, "saturation_per_j", 0, -100, 100);
-    double saturation_per_i = 0.01 * prefs->getDoubleLimited(prefs_path, "saturation_per_i", 0, -100, 100);
-    double saturation_rand =  0.01 * prefs->getDoubleLimited(prefs_path, "saturation_rand", 0, 0, 100);
-    double lightness_per_j =  0.01 * prefs->getDoubleLimited(prefs_path, "lightness_per_j", 0, -100, 100);
-    double lightness_per_i =  0.01 * prefs->getDoubleLimited(prefs_path, "lightness_per_i", 0, -100, 100);
-    double lightness_rand =   0.01 * prefs->getDoubleLimited(prefs_path, "lightness_rand", 0, 0, 100);
-    bool   color_alternatej = prefs->getBool(prefs_path, "color_alternatej");
-    bool   color_alternatei = prefs->getBool(prefs_path, "color_alternatei");
-
-    int    type = prefs->getInt(prefs_path, "symmetrygroup", 0);
-
-    bool   keepbbox = prefs->getBool(prefs_path, "keepbbox", true);
-
-    int    imax = prefs->getInt(prefs_path, "imax", 2);
-    int    jmax = prefs->getInt(prefs_path, "jmax", 2);
-
-    bool   fillrect = prefs->getBool(prefs_path, "fillrect");
-    double fillwidth = prefs->getDoubleLimited(prefs_path, "fillwidth", 50, 0, 1e6);
-    double fillheight = prefs->getDoubleLimited(prefs_path, "fillheight", 50, 0, 1e6);
-
-    bool   dotrace = prefs->getBool(prefs_path, "dotrace");
-    int    pick = prefs->getInt(prefs_path, "pick");
-    bool   pick_to_presence = prefs->getBool(prefs_path, "pick_to_presence");
-    bool   pick_to_size = prefs->getBool(prefs_path, "pick_to_size");
-    bool   pick_to_color = prefs->getBool(prefs_path, "pick_to_color");
-    bool   pick_to_opacity = prefs->getBool(prefs_path, "pick_to_opacity");
-    double rand_picked = 0.01 * prefs->getDoubleLimited(prefs_path, "rand_picked", 0, 0, 100);
-    bool   invert_picked = prefs->getBool(prefs_path, "invert_picked");
-    double gamma_picked = prefs->getDoubleLimited(prefs_path, "gamma_picked", 0, -10, 10);
+    double shiftx_per_i = 0.01 * prefs->getDoubleLimited(prefs_path + "shiftx_per_i", 0, -10000, 10000);
+    double shifty_per_i = 0.01 * prefs->getDoubleLimited(prefs_path + "shifty_per_i", 0, -10000, 10000);
+    double shiftx_per_j = 0.01 * prefs->getDoubleLimited(prefs_path + "shiftx_per_j", 0, -10000, 10000);
+    double shifty_per_j = 0.01 * prefs->getDoubleLimited(prefs_path + "shifty_per_j", 0, -10000, 10000);
+    double shiftx_rand  = 0.01 * prefs->getDoubleLimited(prefs_path + "shiftx_rand", 0, 0, 1000);
+    double shifty_rand  = 0.01 * prefs->getDoubleLimited(prefs_path + "shifty_rand", 0, 0, 1000);
+    double shiftx_exp   =        prefs->getDoubleLimited(prefs_path + "shiftx_exp",   1, 0, 10);
+    double shifty_exp   =        prefs->getDoubleLimited(prefs_path + "shifty_exp", 1, 0, 10);
+    bool   shiftx_alternate =    prefs->getBool(prefs_path + "shiftx_alternate");
+    bool   shifty_alternate =    prefs->getBool(prefs_path + "shifty_alternate");
+    bool   shiftx_cumulate  =    prefs->getBool(prefs_path + "shiftx_cumulate");
+    bool   shifty_cumulate  =    prefs->getBool(prefs_path + "shifty_cumulate");
+    bool   shiftx_excludew  =    prefs->getBool(prefs_path + "shiftx_excludew");
+    bool   shifty_excludeh  =    prefs->getBool(prefs_path + "shifty_excludeh");
+
+    double scalex_per_i = 0.01 * prefs->getDoubleLimited(prefs_path + "scalex_per_i", 0, -100, 1000);
+    double scaley_per_i = 0.01 * prefs->getDoubleLimited(prefs_path + "scaley_per_i", 0, -100, 1000);
+    double scalex_per_j = 0.01 * prefs->getDoubleLimited(prefs_path + "scalex_per_j", 0, -100, 1000);
+    double scaley_per_j = 0.01 * prefs->getDoubleLimited(prefs_path + "scaley_per_j", 0, -100, 1000);
+    double scalex_rand  = 0.01 * prefs->getDoubleLimited(prefs_path + "scalex_rand",  0, 0, 1000);
+    double scaley_rand  = 0.01 * prefs->getDoubleLimited(prefs_path + "scaley_rand",  0, 0, 1000);
+    double scalex_exp   =        prefs->getDoubleLimited(prefs_path + "scalex_exp",   1, 0, 10);
+    double scaley_exp   =        prefs->getDoubleLimited(prefs_path + "scaley_exp",   1, 0, 10);
+    double scalex_log       =    prefs->getDoubleLimited(prefs_path + "scalex_log",   0, 0, 10);
+    double scaley_log       =    prefs->getDoubleLimited(prefs_path + "scaley_log",   0, 0, 10);
+    bool   scalex_alternate =    prefs->getBool(prefs_path + "scalex_alternate");
+    bool   scaley_alternate =    prefs->getBool(prefs_path + "scaley_alternate");
+    bool   scalex_cumulate  =    prefs->getBool(prefs_path + "scalex_cumulate");
+    bool   scaley_cumulate  =    prefs->getBool(prefs_path + "scaley_cumulate");
+
+    double rotate_per_i =        prefs->getDoubleLimited(prefs_path + "rotate_per_i", 0, -180, 180);
+    double rotate_per_j =        prefs->getDoubleLimited(prefs_path + "rotate_per_j", 0, -180, 180);
+    double rotate_rand =  0.01 * prefs->getDoubleLimited(prefs_path + "rotate_rand", 0, 0, 100);
+    bool   rotate_alternatei   = prefs->getBool(prefs_path + "rotate_alternatei");
+    bool   rotate_alternatej   = prefs->getBool(prefs_path + "rotate_alternatej");
+    bool   rotate_cumulatei    = prefs->getBool(prefs_path + "rotate_cumulatei");
+    bool   rotate_cumulatej    = prefs->getBool(prefs_path + "rotate_cumulatej");
+
+    double blur_per_i =   0.01 * prefs->getDoubleLimited(prefs_path + "blur_per_i", 0, 0, 100);
+    double blur_per_j =   0.01 * prefs->getDoubleLimited(prefs_path + "blur_per_j", 0, 0, 100);
+    bool   blur_alternatei =     prefs->getBool(prefs_path + "blur_alternatei");
+    bool   blur_alternatej =     prefs->getBool(prefs_path + "blur_alternatej");
+    double blur_rand =    0.01 * prefs->getDoubleLimited(prefs_path + "blur_rand", 0, 0, 100);
+
+    double opacity_per_i = 0.01 * prefs->getDoubleLimited(prefs_path + "opacity_per_i", 0, 0, 100);
+    double opacity_per_j = 0.01 * prefs->getDoubleLimited(prefs_path + "opacity_per_j", 0, 0, 100);
+    bool   opacity_alternatei =   prefs->getBool(prefs_path + "opacity_alternatei");
+    bool   opacity_alternatej =   prefs->getBool(prefs_path + "opacity_alternatej");
+    double opacity_rand =  0.01 * prefs->getDoubleLimited(prefs_path + "opacity_rand", 0, 0, 100);
+
+    Glib::ustring initial_color =    prefs->getString(prefs_path + "initial_color");
+    double hue_per_j =        0.01 * prefs->getDoubleLimited(prefs_path + "hue_per_j", 0, -100, 100);
+    double hue_per_i =        0.01 * prefs->getDoubleLimited(prefs_path + "hue_per_i", 0, -100, 100);
+    double hue_rand  =        0.01 * prefs->getDoubleLimited(prefs_path + "hue_rand", 0, 0, 100);
+    double saturation_per_j = 0.01 * prefs->getDoubleLimited(prefs_path + "saturation_per_j", 0, -100, 100);
+    double saturation_per_i = 0.01 * prefs->getDoubleLimited(prefs_path + "saturation_per_i", 0, -100, 100);
+    double saturation_rand =  0.01 * prefs->getDoubleLimited(prefs_path + "saturation_rand", 0, 0, 100);
+    double lightness_per_j =  0.01 * prefs->getDoubleLimited(prefs_path + "lightness_per_j", 0, -100, 100);
+    double lightness_per_i =  0.01 * prefs->getDoubleLimited(prefs_path + "lightness_per_i", 0, -100, 100);
+    double lightness_rand =   0.01 * prefs->getDoubleLimited(prefs_path + "lightness_rand", 0, 0, 100);
+    bool   color_alternatej = prefs->getBool(prefs_path + "color_alternatej");
+    bool   color_alternatei = prefs->getBool(prefs_path + "color_alternatei");
+
+    int    type = prefs->getInt(prefs_path + "symmetrygroup", 0);
+    bool   keepbbox = prefs->getBool(prefs_path + "keepbbox", true);
+    int    imax = prefs->getInt(prefs_path + "imax", 2);
+    int    jmax = prefs->getInt(prefs_path + "jmax", 2);
+
+    bool   fillrect = prefs->getBool(prefs_path + "fillrect");
+    double fillwidth = prefs->getDoubleLimited(prefs_path + "fillwidth", 50, 0, 1e6);
+    double fillheight = prefs->getDoubleLimited(prefs_path + "fillheight", 50, 0, 1e6);
+
+    bool   dotrace = prefs->getBool(prefs_path + "dotrace");
+    int    pick = prefs->getInt(prefs_path + "pick");
+    bool   pick_to_presence = prefs->getBool(prefs_path + "pick_to_presence");
+    bool   pick_to_size = prefs->getBool(prefs_path + "pick_to_size");
+    bool   pick_to_color = prefs->getBool(prefs_path + "pick_to_color");
+    bool   pick_to_opacity = prefs->getBool(prefs_path + "pick_to_opacity");
+    double rand_picked = 0.01 * prefs->getDoubleLimited(prefs_path + "rand_picked", 0, 0, 100);
+    bool   invert_picked = prefs->getBool(prefs_path + "invert_picked");
+    double gamma_picked = prefs->getDoubleLimited(prefs_path + "gamma_picked", 0, -10, 10);
 
     if (dotrace) {
         clonetiler_trace_setup (sp_desktop_document(desktop), 1.0, SP_ITEM (obj));
@@ -1245,7 +1243,7 @@ clonetiler_apply( GtkWidget */*widget*/, void * )
         x0 = sp_repr_get_double_attribute (obj_repr, "inkscape:tile-x0", 0);
         y0 = sp_repr_get_double_attribute (obj_repr, "inkscape:tile-y0", 0);
     } else {
-        bool prefs_bbox = prefs->getBool("tools", "bounding_box", false);
+        bool prefs_bbox = prefs->getBool("/tools/bounding_box", false);
         SPItem::BBoxType bbox_type = ( prefs_bbox ? 
             SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX );
         boost::optional<Geom::Rect> r = SP_ITEM(obj)->getBounds(sp_item_i2doc_affine(SP_ITEM(obj)),
@@ -1546,7 +1544,7 @@ clonetiler_checkbox_toggled (GtkToggleButton *tb, gpointer *data)
 {
     const gchar *attr = (const gchar *) data;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool(prefs_path, attr, gtk_toggle_button_get_active(tb));
+    prefs->setBool(prefs_path + attr, gtk_toggle_button_get_active(tb));
 }
 
 static GtkWidget *
@@ -1558,7 +1556,7 @@ clonetiler_checkbox (GtkTooltips *tt, const char *tip, const char *attr)
     gtk_tooltips_set_tip (GTK_TOOLTIPS (tt), b, tip, NULL);
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    bool value = prefs->getBool(prefs_path, attr);
+    bool value = prefs->getBool(prefs_path + attr);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(b), value);
 
     gtk_box_pack_end (GTK_BOX (hb), b, FALSE, TRUE, 0);
@@ -1576,7 +1574,7 @@ clonetiler_value_changed (GtkAdjustment *adj, gpointer data)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     const gchar *pref = (const gchar *) data;
-    prefs->setDouble(prefs_path, pref, adj->value);
+    prefs->setDouble(prefs_path + pref, adj->value);
 }
 
 static GtkWidget *
@@ -1602,7 +1600,7 @@ clonetiler_spinbox (GtkTooltips *tt, const char *tip, const char *attr, double l
         gtk_box_pack_start (GTK_BOX (hb), sb, FALSE, FALSE, SB_MARGIN);
 
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        double value = prefs->getDoubleLimited(prefs_path, attr, exponent? 1.0 : 0.0, lower, upper);
+        double value = prefs->getDoubleLimited(prefs_path + attr, exponent? 1.0 : 0.0, lower, upper);
         gtk_adjustment_set_value (GTK_ADJUSTMENT (a), value);
         gtk_signal_connect(GTK_OBJECT(a), "value_changed",
                            GTK_SIGNAL_FUNC(clonetiler_value_changed), (gpointer) attr);
@@ -1628,7 +1626,7 @@ clonetiler_symgroup_changed( GtkMenuItem */*item*/, gpointer data )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     gint group_new = GPOINTER_TO_INT (data);
-    prefs->setInt(prefs_path, "symmetrygroup", group_new);
+    prefs->setInt(prefs_path + "symmetrygroup", group_new);
 }
 
 static void
@@ -1636,14 +1634,14 @@ clonetiler_xy_changed (GtkAdjustment *adj, gpointer data)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     const gchar *pref = (const gchar *) data;
-    prefs->setInt(prefs_path, pref, (int) floor(adj->value + 0.5));
+    prefs->setInt(prefs_path + pref, (int) floor(adj->value + 0.5));
 }
 
 static void
 clonetiler_keep_bbox_toggled( GtkToggleButton *tb, gpointer /*data*/ )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool(prefs_path, "keepbbox", gtk_toggle_button_get_active(tb));
+    prefs->setBool(prefs_path + "keepbbox", gtk_toggle_button_get_active(tb));
 }
 
 static void
@@ -1651,7 +1649,7 @@ clonetiler_pick_to (GtkToggleButton *tb, gpointer data)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     const gchar *pref = (const gchar *) data;
-    prefs->setBool(prefs_path, pref, gtk_toggle_button_get_active(tb));
+    prefs->setBool(prefs_path + pref, gtk_toggle_button_get_active(tb));
 }
 
 
@@ -1752,7 +1750,7 @@ clonetiler_pick_switched( GtkToggleButton */*tb*/, gpointer data )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     guint v = GPOINTER_TO_INT (data);
-    prefs->setInt(prefs_path, "pick", v);
+    prefs->setInt(prefs_path + "pick", v);
 }
 
 
@@ -1770,7 +1768,7 @@ clonetiler_switch_to_create( GtkToggleButton */*tb*/, GtkWidget *dlg )
     }
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool(prefs_path, "fillrect", false);
+    prefs->setBool(prefs_path + "fillrect", false);
 }
 
 
@@ -1788,7 +1786,7 @@ clonetiler_switch_to_fill( GtkToggleButton */*tb*/, GtkWidget *dlg )
     }
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool(prefs_path, "fillrect", true);
+    prefs->setBool(prefs_path + "fillrect", true);
 }
 
 
@@ -1802,7 +1800,7 @@ clonetiler_fill_width_changed (GtkAdjustment *adj, GtkWidget *u)
     gdouble const pixels = sp_units_get_pixels (raw_dist, unit);
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble(prefs_path, "fillwidth", pixels);
+    prefs->setDouble(prefs_path + "fillwidth", pixels);
 }
 
 static void
@@ -1813,7 +1811,7 @@ clonetiler_fill_height_changed (GtkAdjustment *adj, GtkWidget *u)
     gdouble const pixels = sp_units_get_pixels (raw_dist, unit);
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble(prefs_path, "fillheight", pixels);
+    prefs->setDouble(prefs_path + "fillheight", pixels);
 }
 
 
@@ -1823,7 +1821,7 @@ clonetiler_do_pick_toggled( GtkToggleButton *tb, gpointer /*data*/ )
     GtkWidget *vvb = (GtkWidget *) g_object_get_data (G_OBJECT(dlg), "dotrace");
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool(prefs_path, "dotrace", gtk_toggle_button_get_active (tb));
+    prefs->setBool(prefs_path + "dotrace", gtk_toggle_button_get_active (tb));
 
     if (vvb)
         gtk_widget_set_sensitive (vvb, gtk_toggle_button_get_active (tb));
@@ -1843,13 +1841,13 @@ clonetiler_dialog (void)
 
         dlg = sp_window_new (title, TRUE);
         if (x == -1000 || y == -1000) {
-            x = prefs->getInt(prefs_path, "x", -1000);
-            y = prefs->getInt(prefs_path, "y", -1000);
+            x = prefs->getInt(prefs_path + "x", -1000);
+            y = prefs->getInt(prefs_path + "y", -1000);
         }
 
         if (w ==0 || h == 0) {
-            w = prefs->getInt(prefs_path, "w", 0);
-            h = prefs->getInt(prefs_path, "h", 0);
+            w = prefs->getInt(prefs_path + "w", 0);
+            h = prefs->getInt(prefs_path + "h", 0);
         }
 
 //        if (x<0) x=0;
@@ -1913,7 +1911,7 @@ clonetiler_dialog (void)
             gtk_box_pack_start (GTK_BOX (vb), om, FALSE, FALSE, SB_MARGIN);
 
             GtkWidget *m = gtk_menu_new ();
-            int current = prefs->getInt(prefs_path, "symmetrygroup", 0);
+            int current = prefs->getInt(prefs_path + "symmetrygroup", 0);
 
             struct SymGroups {
                 int group;
@@ -2461,7 +2459,7 @@ clonetiler_dialog (void)
             GtkWidget *l = gtk_label_new (_("Initial color: "));
             gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 0);
 
-            guint32 rgba = 0x000000ff | sp_svg_read_color (prefs->getString(prefs_path, "initial_color").data(), 0x000000ff);
+            guint32 rgba = 0x000000ff | sp_svg_read_color (prefs->getString(prefs_path + "initial_color").data(), 0x000000ff);
             color_picker = new Inkscape::UI::Widget::ColorPicker (*new Glib::ustring(_("Initial color of tiled clones")), *new Glib::ustring(_("Initial color for clones (works only if the original has unset fill or stroke)")), rgba, false);
             _color_changed_connection = color_picker->connectChanged (sigc::ptr_fun(on_picker_color_changed));
 
@@ -2593,7 +2591,7 @@ clonetiler_dialog (void)
 
             GtkWidget *b  = gtk_check_button_new_with_label (_("Trace the drawing under the tiles"));
             g_object_set_data (G_OBJECT(b), "uncheckable", GINT_TO_POINTER(TRUE));
-            bool old = prefs->getBool(prefs_path, "dotrace");
+            bool old = prefs->getBool(prefs_path + "dotrace");
             gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
             gtk_tooltips_set_tip (GTK_TOOLTIPS (tt), b, _("For each clone, pick a value from the drawing in that clone's location and apply it to the clone"), NULL);
             gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
@@ -2625,7 +2623,7 @@ clonetiler_dialog (void)
                     clonetiler_table_attach (table, radio, 0.0, 1, 1);
                     gtk_signal_connect (GTK_OBJECT (radio), "toggled",
                                         GTK_SIGNAL_FUNC (clonetiler_pick_switched), GINT_TO_POINTER(PICK_COLOR));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path, "pick", 0) == PICK_COLOR);
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_COLOR);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), _("Opacity"));
@@ -2633,7 +2631,7 @@ clonetiler_dialog (void)
                     clonetiler_table_attach (table, radio, 0.0, 2, 1);
                     gtk_signal_connect (GTK_OBJECT (radio), "toggled",
                                         GTK_SIGNAL_FUNC (clonetiler_pick_switched), GINT_TO_POINTER(PICK_OPACITY));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path, "pick", 0) == PICK_OPACITY);
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_OPACITY);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), _("R"));
@@ -2641,7 +2639,7 @@ clonetiler_dialog (void)
                     clonetiler_table_attach (table, radio, 0.0, 1, 2);
                     gtk_signal_connect (GTK_OBJECT (radio), "toggled",
                                         GTK_SIGNAL_FUNC (clonetiler_pick_switched), GINT_TO_POINTER(PICK_R));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path, "pick", 0) == PICK_R);
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_R);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), _("G"));
@@ -2649,7 +2647,7 @@ clonetiler_dialog (void)
                     clonetiler_table_attach (table, radio, 0.0, 2, 2);
                     gtk_signal_connect (GTK_OBJECT (radio), "toggled",
                                         GTK_SIGNAL_FUNC (clonetiler_pick_switched), GINT_TO_POINTER(PICK_G));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path, "pick", 0) == PICK_G);
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_G);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_group (GTK_RADIO_BUTTON (radio)), _("B"));
@@ -2657,7 +2655,7 @@ clonetiler_dialog (void)
                     clonetiler_table_attach (table, radio, 0.0, 3, 2);
                     gtk_signal_connect (GTK_OBJECT (radio), "toggled",
                                         GTK_SIGNAL_FUNC (clonetiler_pick_switched), GINT_TO_POINTER(PICK_B));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path, "pick", 0) == PICK_B);
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_B);
                 }
                 {
                     //TRANSLATORS: only translate "string" in "context|string".
@@ -2667,7 +2665,7 @@ clonetiler_dialog (void)
                     clonetiler_table_attach (table, radio, 0.0, 1, 3);
                     gtk_signal_connect (GTK_OBJECT (radio), "toggled",
                                         GTK_SIGNAL_FUNC (clonetiler_pick_switched), GINT_TO_POINTER(PICK_H));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path, "pick", 0) == PICK_H);
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_H);
                 }
                 {
                     //TRANSLATORS: only translate "string" in "context|string".
@@ -2677,7 +2675,7 @@ clonetiler_dialog (void)
                     clonetiler_table_attach (table, radio, 0.0, 2, 3);
                     gtk_signal_connect (GTK_OBJECT (radio), "toggled",
                                         GTK_SIGNAL_FUNC (clonetiler_pick_switched), GINT_TO_POINTER(PICK_S));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path, "pick", 0) == PICK_S);
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_S);
                 }
                 {
                     //TRANSLATORS: only translate "string" in "context|string".
@@ -2687,7 +2685,7 @@ clonetiler_dialog (void)
                     clonetiler_table_attach (table, radio, 0.0, 3, 3);
                     gtk_signal_connect (GTK_OBJECT (radio), "toggled",
                                         GTK_SIGNAL_FUNC (clonetiler_pick_switched), GINT_TO_POINTER(PICK_L));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path, "pick", 0) == PICK_L);
+                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_L);
                 }
 
             }
@@ -2748,7 +2746,7 @@ clonetiler_dialog (void)
 
                 {
                     GtkWidget *b  = gtk_check_button_new_with_label (_("Presence"));
-                    bool old = prefs->getBool(prefs_path, "pick_to_presence", true);
+                    bool old = prefs->getBool(prefs_path + "pick_to_presence", true);
                     gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
                     gtk_tooltips_set_tip (GTK_TOOLTIPS (tt), b, _("Each clone is created with the probability determined by the picked value in that point"), NULL);
                     clonetiler_table_attach (table, b, 0.0, 1, 1);
@@ -2758,7 +2756,7 @@ clonetiler_dialog (void)
 
                 {
                     GtkWidget *b  = gtk_check_button_new_with_label (_("Size"));
-                    bool old = prefs->getBool(prefs_path, "pick_to_size");
+                    bool old = prefs->getBool(prefs_path + "pick_to_size");
                     gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
                     gtk_tooltips_set_tip (GTK_TOOLTIPS (tt), b, _("Each clone's size is determined by the picked value in that point"), NULL);
                     clonetiler_table_attach (table, b, 0.0, 2, 1);
@@ -2768,7 +2766,7 @@ clonetiler_dialog (void)
 
                 {
                     GtkWidget *b  = gtk_check_button_new_with_label (_("Color"));
-                    bool old = prefs->getBool(prefs_path, "pick_to_color", 0);
+                    bool old = prefs->getBool(prefs_path + "pick_to_color", 0);
                     gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
                     gtk_tooltips_set_tip (GTK_TOOLTIPS (tt), b, _("Each clone is painted by the picked color (the original must have unset fill or stroke)"), NULL);
                     clonetiler_table_attach (table, b, 0.0, 1, 2);
@@ -2778,7 +2776,7 @@ clonetiler_dialog (void)
 
                 {
                     GtkWidget *b  = gtk_check_button_new_with_label (_("Opacity"));
-                    bool old = prefs->getBool(prefs_path, "pick_to_opacity", 0);
+                    bool old = prefs->getBool(prefs_path + "pick_to_opacity", 0);
                     gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
                     gtk_tooltips_set_tip (GTK_TOOLTIPS (tt), b, _("Each clone's opacity is determined by the picked value in that point"), NULL);
                     clonetiler_table_attach (table, b, 0.0, 2, 2);
@@ -2786,7 +2784,7 @@ clonetiler_dialog (void)
                                        GTK_SIGNAL_FUNC(clonetiler_pick_to), (gpointer) "pick_to_opacity");
                 }
             }
-           gtk_widget_set_sensitive (vvb, prefs->getBool(prefs_path, "dotrace"));
+           gtk_widget_set_sensitive (vvb, prefs->getBool(prefs_path + "dotrace"));
         }
         }
 
@@ -2804,7 +2802,7 @@ clonetiler_dialog (void)
 
                 {
                     GtkObject *a = gtk_adjustment_new(0.0, 1, 500, 1, 10, 10);
-                    int value = prefs->getInt(prefs_path, "jmax", 2);
+                    int value = prefs->getInt(prefs_path + "jmax", 2);
                     gtk_adjustment_set_value (GTK_ADJUSTMENT (a), value);
                     GtkWidget *sb = gtk_spin_button_new (GTK_ADJUSTMENT (a), 1.0, 0);
                     gtk_tooltips_set_tip (GTK_TOOLTIPS (tt), sb, _("How many rows in the tiling"), NULL);
@@ -2824,7 +2822,7 @@ clonetiler_dialog (void)
 
                 {
                     GtkObject *a = gtk_adjustment_new(0.0, 1, 500, 1, 10, 10);
-                    int value = prefs->getInt(prefs_path, "imax", 2);
+                    int value = prefs->getInt(prefs_path + "imax", 2);
                     gtk_adjustment_set_value (GTK_ADJUSTMENT (a), value);
                     GtkWidget *sb = gtk_spin_button_new (GTK_ADJUSTMENT (a), 1.0, 0);
                     gtk_tooltips_set_tip (GTK_TOOLTIPS (tt), sb, _("How many columns in the tiling"), NULL);
@@ -2851,7 +2849,7 @@ clonetiler_dialog (void)
                     GtkObject *a = gtk_adjustment_new (0.0, -1e6, 1e6, 1.0, 10.0, 10.0);
                     sp_unit_selector_add_adjustment (SP_UNIT_SELECTOR (u), GTK_ADJUSTMENT (a));
 
-                    double value = prefs->getDouble(prefs_path, "fillwidth", 50.0);
+                    double value = prefs->getDouble(prefs_path + "fillwidth", 50.0);
                     SPUnit const &unit = *sp_unit_selector_get_unit(SP_UNIT_SELECTOR(u));
                     gdouble const units = sp_pixels_get_units (value, unit);
                     gtk_adjustment_set_value (GTK_ADJUSTMENT (a), units);
@@ -2875,7 +2873,7 @@ clonetiler_dialog (void)
                     GtkObject *a = gtk_adjustment_new (0.0, -1e6, 1e6, 1.0, 10.0, 10.0);
                     sp_unit_selector_add_adjustment (SP_UNIT_SELECTOR (u), GTK_ADJUSTMENT (a));
 
-                    double value = prefs->getDouble(prefs_path, "fillheight", 50.0);
+                    double value = prefs->getDouble(prefs_path + "fillheight", 50.0);
                     SPUnit const &unit = *sp_unit_selector_get_unit(SP_UNIT_SELECTOR(u));
                     gdouble const units = sp_pixels_get_units (value, unit);
                     gtk_adjustment_set_value (GTK_ADJUSTMENT (a), units);
@@ -2902,7 +2900,7 @@ clonetiler_dialog (void)
                 clonetiler_table_attach (table, radio, 0.0, 1, 1);
                 gtk_signal_connect (GTK_OBJECT (radio), "toggled", GTK_SIGNAL_FUNC (clonetiler_switch_to_create), (gpointer) dlg);
             }
-            if (!prefs->getBool(prefs_path, "fillrect")) {
+            if (!prefs->getBool(prefs_path + "fillrect")) {
                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
                 gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (radio));
             }
@@ -2912,7 +2910,7 @@ clonetiler_dialog (void)
                 clonetiler_table_attach (table, radio, 0.0, 2, 1);
                 gtk_signal_connect (GTK_OBJECT (radio), "toggled", GTK_SIGNAL_FUNC (clonetiler_switch_to_fill), (gpointer) dlg);
             }
-            if (prefs->getBool(prefs_path, "fillrect")) {
+            if (prefs->getBool(prefs_path + "fillrect")) {
                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
                 gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (radio));
             }
@@ -2925,7 +2923,7 @@ clonetiler_dialog (void)
             gtk_box_pack_start (GTK_BOX (mainbox), hb, FALSE, FALSE, 0);
 
             GtkWidget *b  = gtk_check_button_new_with_label (_("Use saved size and position of the tile"));
-            bool keepbbox = prefs->getBool(prefs_path, "keepbbox", true);
+            bool keepbbox = prefs->getBool(prefs_path + "keepbbox", true);
             gtk_toggle_button_set_active ((GtkToggleButton *) b, keepbbox);
             gtk_tooltips_set_tip (GTK_TOOLTIPS (tt), b, _("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"), NULL);
             gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
index dc9f4ac2a2ae6db58e933a0ead32028d6f926dec..b306e42d6245ff2e4f1a05affdd1d1caa68644f0 100644 (file)
@@ -21,7 +21,7 @@
 #include <gtk/gtk.h>
 #include "desktop.h"
 #include "inkscape-private.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "event-context.h"
 
 #include "dialog-events.h"
@@ -172,16 +172,17 @@ sp_dialog_event_handler (GtkWindow *win, GdkEvent *event, gpointer data)
 void
 sp_transientize (GtkWidget *dialog)
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 #ifndef WIN32  // FIXME: Temporary Win32 special code to enable transient dialogs
     // _set_skip_taskbar_hint makes transient dialogs NON-transient! When dialogs
     // are made transient (_set_transient_for), they are already removed from
     // the taskbar in Win32.
-    if (prefs_get_int_attribute ( "options.dialogsskiptaskbar", "value", 0)) {
+    if (prefs->getBool( "/options/dialogsskiptaskbar/value")) {
         gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog), TRUE);
     }
 #endif
 
-    gint transient_policy = prefs_get_int_attribute_limited ( "options.transientpolicy", "value", 1, 0, 2 );
+    gint transient_policy = prefs->getIntLimited("/options/transientpolicy/value", 1, 0, 2);
 
 #ifdef WIN32 // Win32 special code to enable transient dialogs
     transient_policy = 2;
@@ -207,7 +208,8 @@ void
 sp_transientize_callback ( Inkscape::Application * /*inkscape*/,
                            SPDesktop *desktop, win_data *wd )
 {
-    gint transient_policy = prefs_get_int_attribute_limited ( "options.transientpolicy", "value", 1, 0, 2);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gint transient_policy = prefs->getIntLimited( "/options/transientpolicy/value", 1, 0, 2);
 
 #ifdef WIN32 // Win32 special code to enable transient dialogs
     transient_policy = 2;
index 816a5075458ffac21f2df66e264a1676d1ca5b2f..dc337ef8e841ea006d025334258262825ee0ffbd 100644 (file)
@@ -114,7 +114,7 @@ static void sp_export_filename_modified (GtkObject * object, gpointer data);
 static inline void sp_export_find_default_selection(GtkWidget * dlg);
 static void sp_export_detect_size(GtkObject * base);
 
-static const gchar *prefs_path = "dialogs.export";
+static Glib::ustring const prefs_path = "/dialogs/export/";
 
 // these all need to be reinitialized to their defaults during dialog_destroy
 static GtkWidget *dlg = NULL;
@@ -171,10 +171,10 @@ sp_export_dialog_delete ( GtkObject */*object*/, GdkEvent */*event*/, gpointer /
     if (y<0) y=0;
     
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt(prefs_path, "x", x);
-    prefs->setInt(prefs_path, "y", y);
-    prefs->setInt(prefs_path, "w", w);
-    prefs->setInt(prefs_path, "h", h);
+    prefs->setInt(prefs_path + "x", x);
+    prefs->setInt(prefs_path + "y", y);
+    prefs->setInt(prefs_path + "w", w);
+    prefs->setInt(prefs_path + "h", h);
 
     return FALSE; // which means, go ahead and destroy it
 
@@ -400,13 +400,13 @@ sp_export_dialog (void)
         dlg = sp_window_new (title, TRUE);
 
         if (x == -1000 || y == -1000) {
-            x = prefs->getInt(prefs_path, "x", 0);
-            y = prefs->getInt(prefs_path, "y", 0);
+            x = prefs->getInt(prefs_path + "x", 0);
+            y = prefs->getInt(prefs_path + "y", 0);
         }
 
         if (w ==0 || h == 0) {
-            w = prefs->getInt(prefs_path, "w", 0);
-            h = prefs->getInt(prefs_path, "h", 0);
+            w = prefs->getInt(prefs_path + "w", 0);
+            h = prefs->getInt(prefs_path + "h", 0);
         }
 
 //        if (x<0) x=0;
@@ -484,7 +484,7 @@ sp_export_dialog (void)
                                        dlg );
 
             sp_export_spinbutton_new ( "xdpi",
-                                       prefs->getDouble("dialogs.export.defaultxdpi", "value", DPI_BASE),
+                                       prefs->getDouble("/dialogs/export/defaultxdpi/value", DPI_BASE),
                                        0.01, 100000.0, 0.1, 1.0, NULL, GTK_WIDGET(t->gobj()), 3, 0,
                                        NULL, _("dp_i"), 2, 1,
                                        G_CALLBACK (sp_export_xdpi_value_changed),
@@ -501,7 +501,7 @@ sp_export_dialog (void)
              * Needs fixing: there's no way to set ydpi currently, so we use
              *       the defaultxdpi value here, too...
              */
-            sp_export_spinbutton_new ( "ydpi", prefs->getDouble("dialogs.export.defaultxdpi", "value", DPI_BASE),
+            sp_export_spinbutton_new ( "ydpi", prefs->getDouble("/dialogs/export/defaultxdpi/value", DPI_BASE),
                                        0.01, 100000.0, 0.1, 1.0, NULL, GTK_WIDGET(t->gobj()), 3, 1,
                                        NULL, _("dpi"), 2, 0, NULL, dlg );
 
@@ -703,7 +703,7 @@ sp_export_find_default_selection(GtkWidget * dlg)
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         int i = SELECTION_NUMBER_OF;
 
-        Glib::ustring what = prefs->getString("dialogs.export.exportarea", "value");
+        Glib::ustring what = prefs->getString("/dialogs/export/exportarea/value");
 
         if (!what.empty()) {
             for (i = 0; i < SELECTION_NUMBER_OF; i++) {
@@ -881,7 +881,7 @@ sp_export_area_toggled (GtkToggleButton *tb, GtkObject *base)
 
         // remember area setting
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString("dialogs.export.exportarea", "value", selection_names[key]);
+        prefs->setString("/dialogs/export/exportarea/value", selection_names[key]);
 
         if ( key != SELECTION_CUSTOM && bbox ) {
             sp_export_set_area (base, bbox->min()[Geom::X],
@@ -1796,7 +1796,7 @@ sp_export_xdpi_value_changed (GtkAdjustment */*adj*/, GtkObject *base)
 
     // remember xdpi setting
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble("dialogs.export.defaultxdpi", "value", xdpi);
+    prefs->setDouble("/dialogs/export/defaultxdpi/value", xdpi);
 
     bmwidth = (x1 - x0) * xdpi / DPI_BASE;
 
index ebf2d4bdd94a52b3fe8fe3b5229366ae2965cfaa..e095425a963c105dd2048f514388c256cf40f852 100644 (file)
 #endif
 
 
-#include <widgets/sp-widget.h>
-#include <sp-linear-gradient.h>
-#include <sp-pattern.h>
-#include <sp-radial-gradient.h>
-#include <widgets/paint-selector.h>
-#include <style.h>
-#include <gradient-chemistry.h>
-#include <desktop-style.h>
-#include <desktop-handles.h>
-#include <selection.h>
-#include <inkscape.h>
-#include <document-private.h>
-#include <xml/repr.h>
+#include "widgets/sp-widget.h"
+#include "sp-linear-gradient.h"
+#include "sp-pattern.h"
+#include "sp-radial-gradient.h"
+#include "widgets/paint-selector.h"
+#include "style.h"
+#include "gradient-chemistry.h"
+#include "desktop-style.h"
+#include "desktop-handles.h"
+#include "selection.h"
+#include "inkscape.h"
+#include "document-private.h"
+#include "xml/repr.h"
 #include <glibmm/i18n.h>
-#include <display/sp-canvas.h>
+#include "display/sp-canvas.h"
 
 
 // These can be deleted once we sort out the libart dependence.
index 6f9eca0d73c8acdb26fc9d88f9072fd7c5f7cb71..96a6305530122dbec92f256a63209b4bde3231c0 100644 (file)
@@ -44,7 +44,7 @@ sp_find_dialog(){
 #include "desktop-handles.h"
 
 #include "dialog-events.h"
-#include "../prefs-utils.h"
+#include "../preferences.h"
 #include "../verbs.h"
 #include "../interface.h"
 #include "../sp-text.h"
@@ -77,7 +77,7 @@ static win_data wd;
 
 // impossible original values to make sure they are read from prefs
 static gint x = -1000, y = -1000, w = 0, h = 0;
-static gchar const *prefs_path = "dialogs.find";
+static Glib::ustring const prefs_path = "/dialogs/find/";
 
 
 
@@ -99,10 +99,11 @@ static gboolean sp_find_dialog_delete(GtkObject *, GdkEvent *, gpointer /*data*/
     if (x<0) x=0;
     if (y<0) y=0;
 
-    prefs_set_int_attribute (prefs_path, "x", x);
-    prefs_set_int_attribute (prefs_path, "y", y);
-    prefs_set_int_attribute (prefs_path, "w", w);
-    prefs_set_int_attribute (prefs_path, "h", h);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(prefs_path + "x", x);
+    prefs->setInt(prefs_path + "y", y);
+    prefs->setInt(prefs_path + "w", w);
+    prefs->setInt(prefs_path + "h", h);
 
     return FALSE; // which means, go ahead and destroy it
 }
@@ -647,15 +648,16 @@ sp_find_dialog_old (void)
     {
         gchar title[500];
         sp_ui_dialog_title_string (Inkscape::Verb::get(SP_VERB_DIALOG_FIND), title);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
         dlg = sp_window_new (title, TRUE);
         if (x == -1000 || y == -1000) {
-            x = prefs_get_int_attribute (prefs_path, "x", -1000);
-            y = prefs_get_int_attribute (prefs_path, "y", -1000);
+            x = prefs->getInt(prefs_path + "x", -1000);
+            y = prefs->getInt(prefs_path + "y", -1000);
         }
         if (w ==0 || h == 0) {
-            w = prefs_get_int_attribute (prefs_path, "w", 0);
-            h = prefs_get_int_attribute (prefs_path, "h", 0);
+            w = prefs->getInt(prefs_path + "w", 0);
+            h = prefs->getInt(prefs_path + "h", 0);
         }
         
 //        if (x<0) x=0;
index c3d15d83073fa82af570838c8d2914841e466b21..f31914e3eb88d8cdabf5de9cb14f18e8d9cb249a 100644 (file)
@@ -25,7 +25,7 @@
 #include <gtkmm/buttonbox.h>
 #include <gtkmm/stock.h>
 
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "inkscape.h"
 #include "document.h"
 #include "desktop-handles.h"
@@ -50,7 +50,7 @@ namespace Dialogs {
 IconPreviewPanel&
 IconPreviewPanel::getInstance()
 {
-    IconPreviewPanel &instance = *new IconPreviewPanel();
+    static IconPreviewPanel &instance = *new IconPreviewPanel();
 
     instance.refreshPreview();
 
@@ -82,39 +82,32 @@ void IconPreviewPanel::on_button_clicked(int which)
  * Constructor
  */
 IconPreviewPanel::IconPreviewPanel() :
-    UI::Widget::Panel("", "dialogs.iconpreview", SP_VERB_VIEW_ICON_PREVIEW),
+    UI::Widget::Panel("", "/dialogs/iconpreview", SP_VERB_VIEW_ICON_PREVIEW),
     hot(1),
     refreshButton(0),
     selectionButton(0)
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     numEntries = 0;
-    Inkscape::XML::Node *things = inkscape_get_repr(INKSCAPE, "iconpreview.sizes.default");
-    if (things) {
-        std::vector<int> rawSizes;
-        for ( Inkscape::XML::Node *child = things->firstChild(); child; child = child->next() )
-        {
-            gchar const *id = child->attribute("id");
-            if ( id )
-            {
-                std::string path("iconpreview.sizes.default.");
-                path += id;
-                gint show = prefs_get_int_attribute_limited( path.c_str(), "show", 1, 0, 1 );
-                gint sizeVal = prefs_get_int_attribute( path.c_str(), "value", -1 );
-                if ( show && (sizeVal > 0) )
-                {
-                    rawSizes.push_back( sizeVal );
-                }
+
+    std::vector<Glib::ustring> pref_sizes = prefs->getAllDirs("/iconpreview/sizes/default");
+    std::vector<int> rawSizes;
+    
+    for (std::vector<Glib::ustring>::iterator i = pref_sizes.begin(); i != pref_sizes.end(); ++i) {
+        if (prefs->getBool(*i + "/show", true)) {
+            int sizeVal = prefs->getInt(*i + "/value", -1);
+            if (sizeVal > 0) {
+                rawSizes.push_back(sizeVal);
             }
         }
+    }
 
-        if ( !rawSizes.empty() )
-        {
-            numEntries = rawSizes.size();
-            sizes = new int[numEntries];
-            int i = 0;
-            for ( std::vector<int>::iterator it = rawSizes.begin(); it != rawSizes.end(); ++it, ++i ) {
-                sizes[i] = *it;
-            }
+    if ( !rawSizes.empty() ) {
+        numEntries = rawSizes.size();
+        sizes = new int[numEntries];
+        int i = 0;
+        for ( std::vector<int>::iterator it = rawSizes.begin(); it != rawSizes.end(); ++it, ++i ) {
+            sizes[i] = *it;
         }
     }
 
@@ -189,7 +182,7 @@ IconPreviewPanel::IconPreviewPanel() :
     tips.set_tip((*selectionButton), _("Selection only or whole document"));
     selectionButton->signal_clicked().connect( sigc::mem_fun(*this, &IconPreviewPanel::modeToggled) );
 
-    gint val = prefs_get_int_attribute_limited( "iconpreview", "selectionOnly", 0, 0, 1 );
+    gint val = prefs->getBool("/iconpreview/selectionOnly");
     selectionButton->set_active( val != 0 );
 
     refreshButton = new Gtk::Button(Gtk::Stock::REFRESH); // , GTK_RESPONSE_APPLY
@@ -248,7 +241,8 @@ void IconPreviewPanel::refreshPreview()
 
 void IconPreviewPanel::modeToggled()
 {
-    prefs_set_int_attribute( "iconpreview", "selectionOnly", (selectionButton && selectionButton->get_active()) ? 1 : 0 );
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setBool("/iconpreview/selectionOnly", (selectionButton && selectionButton->get_active()));
 
     refreshPreview();
 }
@@ -307,13 +301,9 @@ void IconPreviewPanel::updateMagnify()
   Local Variables:
   mode:c++
   c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0))
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
   indent-tabs-mode:nil
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
-
-//#########################################################################
-//## E N D    O F    F I L E
-//#########################################################################
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index f4690623e3bec07e75bde02070a4749aa69075fc..e23fcc848ba7b885c2173f96bdc945b466e9510d 100644 (file)
@@ -1,9 +1,9 @@
 #define __SP_INPUT_C__
 
-/*
- * Extended input devices dialog
- *
- * Authors:
+/** @file
+ * @brief Extended input devices dialog
+ */
+/* Authors:
  *   Nicklas Lindgren <nili@lysator.liu.se>
  *   Johan Engelen <goejendaagh@zonnet.nl>
  *
 #include <gtk/gtkinputdialog.h>
 #include <glibmm/ustring.h>
 
-#include "../inkscape.h"
-#include "../macros.h"
-#include "../verbs.h"
-#include "../interface.h"
-#include "../xml/repr.h"
+#include "macros.h"
+#include "verbs.h"
+#include "inkscape.h"
+#include "interface.h"
+#include "xml/repr.h"
 
-#include "dialog-events.h"
-#include "../prefs-utils.h"
+#include "dialogs/dialog-events.h"
+#include "preferences.h"
 
 #define MIN_ONSCREEN_DISTANCE 50
 
@@ -35,7 +35,7 @@ static win_data wd;
 
 // impossible original values to make sure they are read from prefs
 static gint x = -1000, y = -1000, w = 0, h = 0;
-static const gchar *prefs_path = "dialogs.input";
+static Glib::ustring const prefs_path = "/dialogs/input/";
 
 static void
 sp_input_dialog_destroy (GtkObject */*object*/, gpointer /*data*/)
@@ -48,16 +48,17 @@ sp_input_dialog_destroy (GtkObject */*object*/, gpointer /*data*/)
 static gboolean
 sp_input_dialog_delete (GtkObject */*object*/, GdkEvent */*event*/, gpointer /*data*/)
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     gtk_window_get_position ((GtkWindow *) dlg, &x, &y);
     gtk_window_get_size ((GtkWindow *) dlg, &w, &h);
 
     if (x<0) x=0;
     if (y<0) y=0;
 
-    prefs_set_int_attribute (prefs_path, "x", x);
-    prefs_set_int_attribute (prefs_path, "y", y);
-    prefs_set_int_attribute (prefs_path, "w", w);
-    prefs_set_int_attribute (prefs_path, "h", h);
+    prefs->setInt(prefs_path + "x", x);
+    prefs->setInt(prefs_path + "y", y);
+    prefs->setInt(prefs_path + "w", w);
+    prefs->setInt(prefs_path + "h", h);
 
     return FALSE; // which means, go ahead and destroy it
 
@@ -70,25 +71,21 @@ static const gchar *axis_use_strings[GDK_AXIS_LAST] = {
 void
 sp_input_load_from_preferences (void)
 {
-    Inkscape::XML::Node *devices = inkscape_get_repr(INKSCAPE, "devices");
-    if (devices == NULL)
-        return;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    Inkscape::XML::Node *repr;
-    GList *list_ptr;
-
-    for (list_ptr = gdk_devices_list(); list_ptr != NULL; list_ptr = list_ptr->next) {
+    for (GList *list_ptr = gdk_devices_list(); list_ptr != NULL; list_ptr = list_ptr->next) {
         GdkDevice *device = static_cast<GdkDevice *>(list_ptr->data);
-        repr = sp_repr_lookup_child(devices, "id", device->name);
-        if (repr != NULL) {
+        //repr = sp_repr_lookup_child(devices, "id", device->name);
+        Glib::ustring device_path = Glib::ustring("/devices/") + device->name;
+        if (/*repr != NULL*/ 1) {
             GdkInputMode mode;
-            const gchar *attribute = repr->attribute("mode");
+            Glib::ustring device_mode = prefs->getString(device_path + "/mode");
 
-            if (attribute == NULL)
+            if (device_mode.empty())
                 mode = GDK_MODE_DISABLED;
-            else if (!strcmp(attribute, "screen"))
+            else if (device_mode == "screen")
                 mode = GDK_MODE_SCREEN;
-            else if (!strcmp(attribute, "window"))
+            else if (device_mode == "window")
                 mode = GDK_MODE_WINDOW;
             else
                 mode = GDK_MODE_DISABLED;
@@ -97,50 +94,40 @@ sp_input_load_from_preferences (void)
                 gdk_device_set_mode(device, mode);
             }
 
-            const gchar *temp_ptr;
-            Glib::ustring::size_type pos0;
-            Glib::ustring::size_type pos1;
-            gint i;
-            gint j;
-
+            Glib::ustring::size_type pos0, pos1;
             GdkAxisUse axis_use;
 
-            temp_ptr = repr->attribute("axes");
-            if (temp_ptr != NULL) {
-                const Glib::ustring temp_str = temp_ptr;
-                pos0 = pos1 = 0;
-                for (i=0; i < device->num_axes; i++) {
-                    pos1 = temp_str.find(";", pos0);
-                    if (pos1 == Glib::ustring::npos)
-                        break;  // Too few axis specifications
-
-                    axis_use = GDK_AXIS_IGNORE;
-                    for (j=0; j < GDK_AXIS_LAST; j++)
-                        if (!strcmp(temp_str.substr(pos0, pos1-pos0).c_str(), axis_use_strings[j])) {
-                            axis_use = static_cast<GdkAxisUse>(j);
-                            break;
-                        }
-                    gdk_device_set_axis_use(device, i, axis_use);
-                    pos0 = pos1 + 1;
-                }
+            //temp_ptr = repr->attribute("axes");
+            Glib::ustring const axes_str = prefs->getString(device_path + "/axes");
+            pos0 = pos1 = 0;
+            for (gint i=0; i < device->num_axes; i++) {
+                pos1 = axes_str.find(';', pos0);
+                if (pos1 == Glib::ustring::npos)
+                    break;  // Too few axis specifications
+
+                axis_use = GDK_AXIS_IGNORE;
+                for (gint j=0; j < GDK_AXIS_LAST; j++)
+                    if (!strcmp(axes_str.substr(pos0, pos1-pos0).c_str(), axis_use_strings[j])) {
+                        axis_use = static_cast<GdkAxisUse>(j);
+                        break;
+                    }
+                gdk_device_set_axis_use(device, i, axis_use);
+                pos0 = pos1 + 1;
             }
 
             guint keyval;
             GdkModifierType modifier;
 
-            temp_ptr = repr->attribute("keys");
-            if (temp_ptr != NULL) {
-                const Glib::ustring temp_str = temp_ptr;
-                pos0 = pos1 = 0;
-                for (i=0; i < device->num_keys; i++) {
-                    pos1 = temp_str.find(";", pos0);
-                    if (pos1 == Glib::ustring::npos)
-                        break;  // Too few key specifications
-
-                    gtk_accelerator_parse(temp_str.substr(pos0, pos1-pos0).c_str(), &keyval, &modifier);
-                    gdk_device_set_key(device, i, keyval, modifier);
-                    pos0 = pos1 + 1;
-                }
+            Glib::ustring const keys_str = prefs->getString(device_path + "/keys");
+            pos0 = pos1 = 0;
+            for (gint i=0; i < device->num_keys; i++) {
+                pos1 = keys_str.find(';', pos0);
+                if (pos1 == Glib::ustring::npos)
+                    break;  // Too few key specifications
+
+                gtk_accelerator_parse(keys_str.substr(pos0, pos1-pos0).c_str(), &keyval, &modifier);
+                gdk_device_set_key(device, i, keyval, modifier);
+                pos0 = pos1 + 1;
             }
         }
     }
@@ -149,56 +136,43 @@ sp_input_load_from_preferences (void)
 void
 sp_input_save_to_preferences (void)
 {
-    Inkscape::XML::Node *devices = inkscape_get_repr(INKSCAPE, "devices");
-    if (devices == NULL)
-        // TODO: find a clean way to add a node to the preferences root, or
-        // give an error message
-        return;
-
-    Inkscape::XML::Node *repr;
-    GList *list_ptr;
-
-    for (list_ptr = gdk_devices_list(); list_ptr != NULL; list_ptr = list_ptr->next) {
-        gint i;
-        Glib::ustring temp_attribute;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+
+    for (GList *list_ptr = gdk_devices_list(); list_ptr != NULL; list_ptr = list_ptr->next) {
         GdkDevice *device = static_cast<GdkDevice *>(list_ptr->data);
 
-        repr = sp_repr_lookup_child(devices, "id", device->name);
-        if (repr == NULL) {
-            repr = devices->document()->createElement("group");
-            repr->setAttribute("id", device->name);
-            devices->appendChild(repr);
-            Inkscape::GC::release(repr);
-        }
+        //repr = sp_repr_lookup_child(devices, "id", device->name);
+        Glib::ustring device_path = Glib::ustring("/devices/") + device->name;
+
         switch (device->mode) {
             default:
             case GDK_MODE_DISABLED: {
-                repr->setAttribute("mode", "disabled");
+                prefs->setString(device_path + "/mode", "disabled");
                 break;
             }
             case GDK_MODE_SCREEN: {
-                repr->setAttribute("mode", "screen");
+                prefs->setString(device_path + "/mode", "screen");
                 break;
             }
             case GDK_MODE_WINDOW: {
-                repr->setAttribute("mode", "window");
+                prefs->setString(device_path + "/mode", "window");
                 break;
             }
         }
 
-        temp_attribute = "";
-        for (i=0; i < device->num_axes; i++) {
+        Glib::ustring temp_attribute = "";
+        for (gint i=0; i < device->num_axes; i++) {
             temp_attribute += axis_use_strings[device->axes[i].use];
             temp_attribute += ";";
         }
-        repr->setAttribute("axes", temp_attribute.c_str());
+        prefs->setString(device_path + "/axes", temp_attribute);
 
         temp_attribute = "";
-        for (i=0; i < device->num_keys; i++) {
+        for (gint i=0; i < device->num_keys; i++) {
             temp_attribute += gtk_accelerator_name(device->keys[i].keyval, device->keys[i].modifiers);
             temp_attribute += ";";
         }
-        repr->setAttribute("keys", temp_attribute.c_str());
+        prefs->setString(device_path + "/keys", temp_attribute);
     }
 }
 
@@ -208,14 +182,11 @@ sp_input_save_button (GtkObject */*object*/, gpointer /*data*/)
     sp_input_save_to_preferences();
 }
 
-/**
- * \brief  Dialog
- *
- */
 void
 sp_input_dialog (void)
 {
     if (dlg == NULL) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
         gchar title[500];
         sp_ui_dialog_title_string (Inkscape::Verb::get(SP_VERB_DIALOG_INPUT), title);
@@ -223,13 +194,13 @@ sp_input_dialog (void)
         dlg = gtk_input_dialog_new();
 
         if (x == -1000 || y == -1000) {
-            x = prefs_get_int_attribute (prefs_path, "x", -1000);
-            y = prefs_get_int_attribute (prefs_path, "y", -1000);
+            x = prefs->getInt(prefs_path + "x", -1000);
+            y = prefs->getInt(prefs_path + "y", -1000);
         }
 
         if (w ==0 || h == 0) {
-            w = prefs_get_int_attribute (prefs_path, "w", 0);
-            h = prefs_get_int_attribute (prefs_path, "h", 0);
+            w = prefs->getInt(prefs_path + "w", 0);
+            h = prefs->getInt(prefs_path + "h", 0);
         }
 
 //        if (x<0) x=0;
index 9b816436b331c3ddf54951dce79e4cc875f52e53..808775786b9a4fb5c6013e043ec2c3a1ffc790cc 100644 (file)
@@ -40,7 +40,7 @@
 #include "../interface.h"
 
 #include "dialog-events.h"
-#include "../prefs-utils.h"
+#include "../preferences.h"
 
 #define MIN_ONSCREEN_DISTANCE 50
 
@@ -49,7 +49,7 @@ static win_data wd;
 
 // impossible original values to make sure they are read from prefs
 static gint x = -1000, y = -1000, w = 0, h = 0;
-static gchar const *prefs_path = "dialogs.object";
+static Glib::ustring const prefs_path = "/dialogs/object/";
 
 static void sp_item_widget_modify_selection (SPWidget *spw, Inkscape::Selection *selection, guint flags, GtkWidget *itemw);
 static void sp_item_widget_change_selection (SPWidget *spw, Inkscape::Selection *selection, GtkWidget *itemw);
@@ -75,10 +75,11 @@ sp_item_dialog_delete( GtkObject */*object*/, GdkEvent */*event*/, gpointer /*da
     if (x<0) x=0;
     if (y<0) y=0;
 
-    prefs_set_int_attribute (prefs_path, "x", x);
-    prefs_set_int_attribute (prefs_path, "y", y);
-    prefs_set_int_attribute (prefs_path, "w", w);
-    prefs_set_int_attribute (prefs_path, "h", h);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(prefs_path + "x", x);
+    prefs->setInt(prefs_path + "y", y);
+    prefs->setInt(prefs_path + "w", w);
+    prefs->setInt(prefs_path + "h", h);
 
     return FALSE; // which means, go ahead and destroy it
 
@@ -479,16 +480,16 @@ sp_item_dialog (void)
 
         gchar title[500];
         sp_ui_dialog_title_string (Inkscape::Verb::get(SP_VERB_DIALOG_ITEM), title);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
         dlg = sp_window_new (title, TRUE);
         if (x == -1000 || y == -1000) {
-            x = prefs_get_int_attribute (prefs_path, "x", -1000);
-            y = prefs_get_int_attribute (prefs_path, "y", -1000);
+            x = prefs->getInt(prefs_path + "x", -1000);
+            y = prefs->getInt(prefs_path + "y", -1000);
         }
-
         if (w ==0 || h == 0) {
-            w = prefs_get_int_attribute (prefs_path, "w", 0);
-            h = prefs_get_int_attribute (prefs_path, "h", 0);
+            w = prefs->getInt(prefs_path + "w", 0);
+            h = prefs->getInt(prefs_path + "h", 0);
         }
 
 //        if (x<0) x=0;
index a8c55f9def3b9fe03571311a4a528adcf41a88f5..1b754c6065d813704f2325cec94e124c3e10729b 100644 (file)
@@ -36,7 +36,7 @@
 #include "widgets/icon.h"
 #include "ui/widget/imagetoggler.h"
 #include <gtkmm/widget.h>
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "xml/repr.h"
 #include "svg/css-ostringstream.h"
 #include "desktop-style.h"
@@ -581,7 +581,7 @@ bool LayersPanel::_rowSelectFunction( Glib::RefPtr<Gtk::TreeModel> const & /*mod
  * Constructor
  */
 LayersPanel::LayersPanel() :
-    UI::Widget::Panel("", "dialogs.layers", SP_VERB_DIALOG_LAYERS),
+    UI::Widget::Panel("", "/dialogs/layers", SP_VERB_DIALOG_LAYERS),
     _maxNestDepth(20),
     _mgr(0),
     _desktop(0),
@@ -590,7 +590,8 @@ LayersPanel::LayersPanel() :
     _toggleEvent(0),
     _compositeSettings(SP_VERB_DIALOG_LAYERS, "layers", UI::Widget::SimpleFilterModifier::BLEND)
 {
-    _maxNestDepth = prefs_get_int_attribute_limited("dialogs.layers", "maxDepth", 20, 1, 1000);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    _maxNestDepth = prefs->getIntLimited("/dialogs/layers/maxDepth", 20, 1, 1000);
 
     ModelColumns *zoop = new ModelColumns();
     _model = zoop;
index 00e3082782e33edb89e4637fad80a5150c23c7a9..c7173ad1ed3a95a3fde8fb7d6eeab2c8a7347f5e 100644 (file)
@@ -8,6 +8,7 @@
  *   Bryce Harrington <brycehar@bryceharrington.org>
  *   bulia byak <buliabyak@users.sf.net>
  *   Maximilian Albert <maximilian.albert@gmail.com>
+ *   Josh Andler <scislac@users.sf.net>
  *
  * Copyright (C) 2001-2005 authors
  * Copyright (C) 2001 Ximian, Inc.
@@ -59,6 +60,7 @@
 #include "helper/stock-items.h"
 #include "io/sys.h"
 #include "ui/cache/svg_preview_cache.h"
+#include "xml/repr.h"
 
 #include "dialogs/stroke-style.h"
 
@@ -1080,7 +1082,7 @@ sp_stroke_style_line_widget_new(void)
     gint i = 0;
 
     /* Stroke width */
-    spw_label(t, _("Width:"), 0, i);
+    spw_label(t, Q_("StrokeWidth|Width:"), 0, i);
 
     hb = spw_hbox(t, 3, 1, i);
 
@@ -1209,7 +1211,7 @@ sp_stroke_style_line_widget_new(void)
 
     /* Dash */
     spw_label(t, _("Dashes:"), 0, i);
-    ds = manage(new SPDashSelector(inkscape_get_repr(INKSCAPE, "palette.dashes")));
+    ds = manage(new SPDashSelector);
 
     ds->show();
     t->attach(*ds, 1, 4, i, i+1, (Gtk::EXPAND | Gtk::FILL), static_cast<Gtk::AttachOptions>(0), 0, 0);
@@ -1227,6 +1229,7 @@ sp_stroke_style_line_widget_new(void)
     // (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path.
     spw_label(t, _("Start Markers:"), 0, i);
     marker_start_menu = ink_marker_menu(spw ,"marker-start", sandbox);
+    tt->set_tip(*marker_start_menu, _("Start Markers are drawn on the first node of a path or shape"));
     marker_start_menu_connection = marker_start_menu->signal_changed().connect(
         sigc::bind<Gtk::OptionMenu *, Gtk::Container *, SPMarkerLoc>(
             sigc::ptr_fun(&sp_marker_select), marker_start_menu, spw, SP_MARKER_LOC_START));
@@ -1237,6 +1240,7 @@ sp_stroke_style_line_widget_new(void)
     i++;
     spw_label(t, _("Mid Markers:"), 0, i);
     marker_mid_menu = ink_marker_menu(spw ,"marker-mid", sandbox);
+    tt->set_tip(*marker_mid_menu, _("Mid Markers are drawn on every node of a path or shape except the first and last nodes"));
     marker_mid_menu_connection = marker_mid_menu->signal_changed().connect(
         sigc::bind<Gtk::OptionMenu *, Gtk::Container *, SPMarkerLoc>(
             sigc::ptr_fun(&sp_marker_select), marker_mid_menu,spw, SP_MARKER_LOC_MID));
@@ -1247,6 +1251,7 @@ sp_stroke_style_line_widget_new(void)
     i++;
     spw_label(t, _("End Markers:"), 0, i);
     marker_end_menu = ink_marker_menu(spw ,"marker-end", sandbox);
+    tt->set_tip(*marker_end_menu, _("End Markers are drawn on the last node of a path or shape"));
     marker_end_menu_connection = marker_end_menu->signal_changed().connect(
         sigc::bind<Gtk::OptionMenu *, Gtk::Container *, SPMarkerLoc>(
             sigc::ptr_fun(&sp_marker_select), marker_end_menu, spw, SP_MARKER_LOC_END));
index 5d76cc8f6dcc70d61da43214606dd2acb061b0b0..71c16d87a3c52dea5e90542be01d5d26095f1dcb 100644 (file)
@@ -1047,9 +1047,9 @@ SwatchesPanel::SwatchesPanel(gchar const* prefsPath) :
     if ( !possible.empty() ) {
         JustForNow* first = 0;
         Glib::ustring targetName;
-        if ( _prefs_path ) {
+        if ( !_prefs_path.empty() ) {
             Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-            targetName = prefs->getString(_prefs_path, "palette");
+            targetName = prefs->getString(_prefs_path + "/palette");
             if (!targetName.empty()) {
                 for ( std::vector<JustForNow*>::iterator iter = possible.begin(); iter != possible.end(); ++iter ) {
                     if ( (*iter)->_name == targetName ) {
@@ -1123,9 +1123,9 @@ void SwatchesPanel::_handleAction( int setId, int itemId )
                 _holder->clear();
                 JustForNow* curr = possible[itemId];
 
-                if ( _prefs_path ) {
+                if ( !_prefs_path.empty() ) {
                     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-                    prefs->setString(_prefs_path, "palette", curr->_name);
+                    prefs->setString(_prefs_path + "/palette", curr->_name);
                 }
 
                 if ( curr->_prefWidth > 0 ) {
index 310272b1c49003200eb2c5d690ad46054220b8a3..630fada7c39c1a854758ccebfa3a150b2fd547b9 100644 (file)
@@ -90,7 +90,7 @@ private:
 class SwatchesPanel : public Inkscape::UI::Widget::Panel
 {
 public:
-    SwatchesPanel(gchar const* prefsPath = "dialogs.swatches");
+    SwatchesPanel(gchar const* prefsPath = "/dialogs/swatches");
     virtual ~SwatchesPanel();
 
     static SwatchesPanel& getInstance();
index 8f4d1b8bdd303033c66606b806ecd2cffc21dedc..1f8395c953a3e97c74d63215f3599247cf910b75 100644 (file)
@@ -45,7 +45,7 @@ extern "C" {
 #include <libnrtype/font-style-to-pos.h>
 
 #include "dialog-events.h"
-#include "../prefs-utils.h"
+#include "../preferences.h"
 #include "../verbs.h"
 #include "../interface.h"
 #include "svg/css-ostringstream.h"
@@ -80,7 +80,7 @@ static GtkWidget *dlg = NULL;
 static win_data wd;
 // impossible original values to make sure they are read from prefs
 static gint x = -1000, y = -1000, w = 0, h = 0;
-static gchar const *prefs_path = "dialogs.textandfont";
+static Glib::ustring const prefs_path = "/dialogs/textandfont/";
 
 
 
@@ -104,10 +104,11 @@ sp_text_edit_dialog_delete( GtkObject */*object*/, GdkEvent */*event*/, gpointer
     if (x<0) x=0;
     if (y<0) y=0;
 
-    prefs_set_int_attribute (prefs_path, "x", x);
-    prefs_set_int_attribute (prefs_path, "y", y);
-    prefs_set_int_attribute (prefs_path, "w", w);
-    prefs_set_int_attribute (prefs_path, "h", h);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(prefs_path + "x", x);
+    prefs->setInt(prefs_path + "y", y);
+    prefs->setInt(prefs_path + "w", w);
+    prefs->setInt(prefs_path + "h", h);
 
     return FALSE; // which means, go ahead and destroy it
 }
@@ -142,16 +143,16 @@ sp_text_edit_dialog (void)
 
         gchar title[500];
         sp_ui_dialog_title_string (Inkscape::Verb::get(SP_VERB_DIALOG_TEXT), title);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
         dlg = sp_window_new (title, TRUE);
         if (x == -1000 || y == -1000) {
-            x = prefs_get_int_attribute (prefs_path, "x", -1000);
-            y = prefs_get_int_attribute (prefs_path, "y", -1000);
+            x = prefs->getInt(prefs_path + "x", -1000);
+            y = prefs->getInt(prefs_path + "y", -1000);
         }
-
         if (w ==0 || h == 0) {
-            w = prefs_get_int_attribute (prefs_path, "w", 0);
-            h = prefs_get_int_attribute (prefs_path, "h", 0);
+            w = prefs->getInt(prefs_path + "w", 0);
+            h = prefs->getInt(prefs_path + "h", 0);
         }
 
 //        if (x<0) x=0;
@@ -608,9 +609,10 @@ sp_text_edit_dialog_set_default( GtkButton */*button*/, GtkWidget *dlg )
     GtkWidget *def = (GtkWidget*)g_object_get_data (G_OBJECT (dlg), "default");
 
     SPCSSAttr *css = sp_get_text_dialog_style ();
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     g_object_set_data (G_OBJECT (dlg), "blocked", GINT_TO_POINTER (TRUE));
-    sp_repr_css_change (inkscape_get_repr (INKSCAPE, "tools.text"), css, "style");
+    prefs->mergeStyle("/tools/text/style", css);
     g_object_set_data (G_OBJECT (dlg), "blocked", GINT_TO_POINTER (FALSE));
 
     sp_repr_css_attr_unref (css);
@@ -650,7 +652,8 @@ sp_text_edit_dialog_apply( GtkButton */*button*/, GtkWidget *dlg )
 
     if (items == 0) {
         // no text objects; apply style to prefs for new objects
-        sp_repr_css_change (inkscape_get_repr (INKSCAPE, "tools.text"), css, "style");
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        prefs->mergeStyle("/tools/text/style", css);
         gtk_widget_set_sensitive (def, FALSE);
     } else if (items == 1) {
         /* exactly one text object; now set its text, too */
@@ -749,13 +752,7 @@ sp_text_edit_dialog_read_selection ( GtkWidget *dlg,
         // (Ok to not get a font specification - must just rely on the family and style in that case)
         if (result_family == QUERY_STYLE_NOTHING || result_style == QUERY_STYLE_NOTHING
                 || result_numbers == QUERY_STYLE_NOTHING) {
-            repr = inkscape_get_repr (INKSCAPE, "tools.text");
-            if (repr) {
-                gtk_widget_set_sensitive (notebook, TRUE);
-                sp_style_read_from_repr (query, repr);
-            } else {
-                gtk_widget_set_sensitive (notebook, FALSE);
-            }
+            sp_style_read_from_prefs(query, "/tools/text");
         }
 
         // FIXME: process result_family/style == QUERY_STYLE_MULTIPLE_DIFFERENT by showing "Many" in the lists
index 1643057e88b3ee8f3cb997aa5ea3d5705324cfcc..f597c601baf783b3aeae1c812063e4dfedfc1a13 100644 (file)
@@ -24,7 +24,7 @@
 #include <gtkmm/stock.h>
 
 #include "verbs.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "inkscape.h"
 #include "desktop-handles.h"
 #include "selection.h"
@@ -383,7 +383,8 @@ void TileDialog::on_row_spinbutton_changed()
 
     double PerCol = ceil(selcount / NoOfColsSpinner.get_value());
     NoOfRowsSpinner.set_value(PerCol);
-    prefs_set_double_attribute ("dialogs.gridtiler", "NoOfCols", NoOfColsSpinner.get_value());
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setDouble("/dialogs/gridtiler/NoOfCols", NoOfColsSpinner.get_value());
     updating=false;
 }
 
@@ -407,7 +408,8 @@ void TileDialog::on_col_spinbutton_changed()
 
     double PerRow = ceil(selcount / NoOfRowsSpinner.get_value());
     NoOfColsSpinner.set_value(PerRow);
-    prefs_set_double_attribute ("dialogs.gridtiler", "NoOfCols", PerRow);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setDouble("/dialogs/gridtiler/NoOfCols", PerRow);
 
     updating=false;
 }
@@ -417,8 +419,8 @@ void TileDialog::on_col_spinbutton_changed()
  */
 void TileDialog::on_xpad_spinbutton_changed()
 {
-
-    prefs_set_double_attribute ("dialogs.gridtiler", "XPad", XPadSpinner.get_value());
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setDouble("/dialogs/gridtiler/XPad", XPadSpinner.get_value());
 
 }
 
@@ -427,9 +429,8 @@ void TileDialog::on_xpad_spinbutton_changed()
  */
 void TileDialog::on_ypad_spinbutton_changed()
 {
-
-    prefs_set_double_attribute ("dialogs.gridtiler", "YPad", YPadSpinner.get_value());
-
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setDouble("/dialogs/gridtiler/YPad", YPadSpinner.get_value());
 }
 
 
@@ -438,13 +439,13 @@ void TileDialog::on_ypad_spinbutton_changed()
  */
 void TileDialog::on_RowSize_checkbutton_changed()
 {
-
-   if (RowHeightButton.get_active()) {
-       prefs_set_double_attribute ("dialogs.gridtiler", "AutoRowSize", 20);
-   } else {
-       prefs_set_double_attribute ("dialogs.gridtiler", "AutoRowSize", -20);
-   }
-   RowHeightBox.set_sensitive ( !RowHeightButton.get_active());
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (RowHeightButton.get_active()) {
+        prefs->setDouble("/dialogs/gridtiler/AutoRowSize", 20);
+    } else {
+        prefs->setDouble("/dialogs/gridtiler/AutoRowSize", -20);
+    }
+    RowHeightBox.set_sensitive ( !RowHeightButton.get_active());
 }
 
 /**
@@ -452,14 +453,13 @@ void TileDialog::on_RowSize_checkbutton_changed()
  */
 void TileDialog::on_ColSize_checkbutton_changed()
 {
-
-   if (ColumnWidthButton.get_active()) {
-       prefs_set_double_attribute ("dialogs.gridtiler", "AutoColSize", 20);
-   } else {
-       prefs_set_double_attribute ("dialogs.gridtiler", "AutoColSize", -20);
-   }
-   ColumnWidthBox.set_sensitive ( !ColumnWidthButton.get_active());
-
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (ColumnWidthButton.get_active()) {
+        prefs->setDouble("/dialogs/gridtiler/AutoColSize", 20);
+    } else {
+        prefs->setDouble("/dialogs/gridtiler/AutoColSize", -20);
+    }
+    ColumnWidthBox.set_sensitive ( !ColumnWidthButton.get_active());
 }
 
 /**
@@ -474,7 +474,8 @@ void TileDialog::on_rowSize_spinbutton_changed()
 
     // in turn, prevent listener from responding
     updating = true;
-    prefs_set_double_attribute ("dialogs.gridtiler", "RowHeight", RowHeightSpinner.get_value());
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setDouble("/dialogs/gridtiler/RowHeight", RowHeightSpinner.get_value());
     updating=false;
 
 }
@@ -491,7 +492,8 @@ void TileDialog::on_colSize_spinbutton_changed()
 
     // in turn, prevent listener from responding
     updating = true;
-    prefs_set_double_attribute ("dialogs.gridtiler", "ColWidth", ColumnWidthSpinner.get_value());
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setDouble("/dialogs/gridtiler/ColWidth", ColumnWidthSpinner.get_value());
     updating=false;
 
 }
@@ -501,13 +503,14 @@ void TileDialog::on_colSize_spinbutton_changed()
  */
 void TileDialog::Spacing_button_changed()
 {
-   if (SpaceManualRadioButton.get_active()) {
-       prefs_set_double_attribute ("dialogs.gridtiler", "SpacingType", 20);
-   } else {
-       prefs_set_double_attribute ("dialogs.gridtiler", "SpacingType", -20);
-   }
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (SpaceManualRadioButton.get_active()) {
+        prefs->setDouble("/dialogs/gridtiler/SpacingType", 20);
+    } else {
+        prefs->setDouble("/dialogs/gridtiler/SpacingType", -20);
+    }
 
-   SizesHBox.set_sensitive ( SpaceManualRadioButton.get_active());
+    SizesHBox.set_sensitive ( SpaceManualRadioButton.get_active());
 }
 
 /**
@@ -515,17 +518,17 @@ void TileDialog::Spacing_button_changed()
  */
 void TileDialog::VertAlign_changed()
 {
-   if (VertTopRadioButton.get_active()) {
-       VertAlign = 0;
-       prefs_set_double_attribute ("dialogs.gridtiler", "VertAlign", 0);
-   } else if (VertCentreRadioButton.get_active()){
-       VertAlign = 1;
-       prefs_set_double_attribute ("dialogs.gridtiler", "VertAlign", 1);
-   } else if (VertBotRadioButton.get_active()){
-       VertAlign = 2;
-       prefs_set_double_attribute ("dialogs.gridtiler", "VertAlign", 2);
-   }
-
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (VertTopRadioButton.get_active()) {
+        VertAlign = 0;
+        prefs->setInt("/dialogs/gridtiler/VertAlign", 0);
+    } else if (VertCentreRadioButton.get_active()){
+        VertAlign = 1;
+        prefs->setInt("/dialogs/gridtiler/VertAlign", 1);
+    } else if (VertBotRadioButton.get_active()){
+        VertAlign = 2;
+        prefs->setInt("/dialogs/gridtiler/VertAlign", 2);
+    }
 }
 
 /**
@@ -533,17 +536,17 @@ void TileDialog::VertAlign_changed()
  */
 void TileDialog::HorizAlign_changed()
 {
-   if (HorizLeftRadioButton.get_active()) {
-       HorizAlign = 0;
-       prefs_set_double_attribute ("dialogs.gridtiler", "HorizAlign", 0);
-   } else if (HorizCentreRadioButton.get_active()){
-       HorizAlign = 1;
-       prefs_set_double_attribute ("dialogs.gridtiler", "HorizAlign", 1);
-   } else if (HorizRightRadioButton.get_active()){
-       HorizAlign = 2;
-       prefs_set_double_attribute ("dialogs.gridtiler", "HorizAlign", 2);
-   }
-
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (HorizLeftRadioButton.get_active()) {
+        HorizAlign = 0;
+        prefs->setInt("/dialogs/gridtiler/HorizAlign", 0);
+    } else if (HorizCentreRadioButton.get_active()){
+        HorizAlign = 1;
+        prefs->setInt("/dialogs/gridtiler/HorizAlign", 1);
+    } else if (HorizRightRadioButton.get_active()){
+        HorizAlign = 2;
+        prefs->setInt("/dialogs/gridtiler/HorizAlign", 2);
+    }
 }
 
 /**
@@ -551,14 +554,14 @@ void TileDialog::HorizAlign_changed()
  */
 void TileDialog::updateSelection()
 {
-    double col_width, row_height;
     // quit if run by the attr_changed listener
     if (updating) {
-            return;
-        }
+        return;
+    }
 
-    col_width=0;
-    row_height=0;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    double col_width = 0;
+    double row_height = 0;
     // in turn, prevent listener from responding
     updating = true;
     SPDesktop *desktop = getDesktop();
@@ -575,14 +578,14 @@ void TileDialog::updateSelection()
         if (selcount<NoOfColsSpinner.get_value()) {
             double NoOfCols = ceil(selcount / NoOfRowsSpinner.get_value());
             NoOfColsSpinner.set_value(NoOfCols);
-            prefs_set_double_attribute ("dialogs.gridtiler", "NoOfCols", NoOfCols);
+            prefs->setInt("/dialogs/gridtiler/NoOfCols", NoOfCols);
         }
     } else {
         double PerRow = ceil(sqrt(selcount));
         double PerCol = ceil(sqrt(selcount));
         NoOfRowsSpinner.set_value(PerRow);
         NoOfColsSpinner.set_value(PerCol);
-        prefs_set_double_attribute ("dialogs.gridtiler", "NoOfCols", PerCol);
+        prefs->setInt("/dialogs/gridtiler/NoOfCols", static_cast<int>(PerCol));
 
     }
 
@@ -610,10 +613,11 @@ static void updateSelectionCallback(Inkscape::Application */*inkscape*/, Inkscap
  * Constructor
  */
 TileDialog::TileDialog()
-    : UI::Widget::Panel("", "dialogs.gridtiler", SP_VERB_SELECTION_GRIDTILE)
+    : UI::Widget::Panel("", "/dialogs/gridtiler", SP_VERB_SELECTION_GRIDTILE)
 {
      // bool used by spin button callbacks to stop loops where they change each other.
     updating = false;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     // could not do this in gtkmm - there's no Gtk::SizeGroup public constructor (!)
     GtkSizeGroup *_col1 = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
@@ -663,7 +667,7 @@ TileDialog::TileDialog()
     gtk_size_group_add_widget(_col1, (GtkWidget *) NoOfRowsBox.gobj());
 
     RowHeightButton.set_label(_("Equal height"));
-    double AutoRow = prefs_get_double_attribute ("dialogs.gridtiler", "AutoRowSize", 15);
+    double AutoRow = prefs->getDouble("/dialogs/gridtiler/AutoRowSize", 15);
     if (AutoRow>0)
          AutoRowSize=true;
     else
@@ -693,7 +697,7 @@ TileDialog::TileDialog()
         VertBotRadioButton.signal_toggled().connect(sigc::mem_fun(*this, &TileDialog::VertAlign_changed));
         VertAlignVBox.pack_start(VertBotRadioButton, false, false, 0);
 
-        VertAlign = prefs_get_double_attribute ("dialogs.gridtiler", "VertAlign", 1);
+        VertAlign = prefs->getInt("/dialogs/gridtiler/VertAlign", 1);
         if (VertAlign == 0) {
             VertTopRadioButton.set_active(TRUE);
         }
@@ -733,7 +737,7 @@ TileDialog::TileDialog()
     gtk_size_group_add_widget(_col3, (GtkWidget *) NoOfColsBox.gobj());
 
     ColumnWidthButton.set_label(_("Equal width"));
-    double AutoCol = prefs_get_double_attribute ("dialogs.gridtiler", "AutoColSize", 15);
+    double AutoCol = prefs->getDouble("/dialogs/gridtiler/AutoColSize", 15);
     if (AutoCol>0)
          AutoColSize=true;
     else
@@ -767,7 +771,7 @@ TileDialog::TileDialog()
 
         HorizAlignHBox.pack_start(*(new Gtk::HBox()), true, true, 0); // centering strut
 
-        HorizAlign = prefs_get_double_attribute ("dialogs.gridtiler", "HorizAlign", 1);
+        HorizAlign = prefs->getInt("/dialogs/gridtiler/HorizAlign", 1);
         if (HorizAlign == 0) {
             HorizLeftRadioButton.set_active(TRUE);
         }
@@ -810,7 +814,7 @@ TileDialog::TileDialog()
         YPadSpinner.set_digits(1);
         YPadSpinner.set_increments(0.2, 2);
         YPadSpinner.set_range(-10000, 10000);
-        double YPad = prefs_get_double_attribute ("dialogs.gridtiler", "YPad", 15);
+        double YPad = prefs->getDouble("/dialogs/gridtiler/YPad", 15);
         YPadSpinner.set_value(YPad);
         YPadBox.pack_start(YPadSpinner, true, true, MARGIN);
         tips.set_tip(YPadSpinner, _("Vertical spacing between rows (px units)"));
@@ -835,7 +839,7 @@ TileDialog::TileDialog()
         XPadSpinner.set_digits(1);
         XPadSpinner.set_increments(0.2, 2);
         XPadSpinner.set_range(-10000, 10000);
-        double XPad = prefs_get_double_attribute ("dialogs.gridtiler", "XPad", 15);
+        double XPad = prefs->getDouble("/dialogs/gridtiler/XPad", 15);
         XPadSpinner.set_value(XPad);
         XPadBox.pack_start(XPadSpinner, true, true, MARGIN);
         tips.set_tip(XPadSpinner, _("Horizontal spacing between columns (px units)"));
@@ -850,7 +854,7 @@ TileDialog::TileDialog()
 
     contents->pack_start(TileBox);
 
-    double SpacingType = prefs_get_double_attribute ("dialogs.gridtiler", "SpacingType", 15);
+    double SpacingType = prefs->getDouble("/dialogs/gridtiler/SpacingType", 15);
     if (SpacingType>0) {
         ManualSpacing=true;
     } else {
@@ -867,20 +871,10 @@ TileDialog::TileDialog()
     show_all_children();
 }
 
-
-
-
-
-
 } //namespace Dialog
 } //namespace UI
 } //namespace Inkscape
 
-//#########################################################################
-//## E N D    O F    F I L E
-//#########################################################################
-
-
 /*
   Local Variables:
   mode:c++
@@ -890,7 +884,4 @@ TileDialog::TileDialog()
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
-
-
-
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 ::
index 89892aab48ed1d39aec805d67a468aa660f16de8..06103e9b32958be78fde5c6afb5bd31300fa7dbf 100644 (file)
@@ -54,7 +54,7 @@
 #include "widgets/icon.h"
 
 #include "dialog-events.h"
-#include "../prefs-utils.h"
+#include "../preferences.h"
 #include "../verbs.h"
 #include "../interface.h"
 
@@ -78,7 +78,7 @@ static sigc::connection document_replaced_connection;
 static win_data wd;
 // impossible original values to make sure they are read from prefs
 static gint x = -1000, y = -1000, w = 0, h = 0;
-static gchar const *const prefs_path = "dialogs.xml";
+static Glib::ustring const prefs_path = "/dialogs/xml/";
 static GtkWidget *status = NULL;
 static Inkscape::MessageStack *_message_stack = NULL;
 static Inkscape::MessageContext *_message_context = NULL;
@@ -212,13 +212,14 @@ void sp_xml_tree_dialog()
         gtk_tooltips_enable(tooltips);
 
         dlg = sp_window_new("", TRUE);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         if (x == -1000 || y == -1000) {
-            x = prefs_get_int_attribute(prefs_path, "x", -1000);
-            y = prefs_get_int_attribute(prefs_path, "y", -1000);
+            x = prefs->getInt(prefs_path + "x", -1000);
+            y = prefs->getInt(prefs_path + "y", -1000);
         }
         if (w ==0 || h == 0) {
-            w = prefs_get_int_attribute(prefs_path, "w", 0);
-            h = prefs_get_int_attribute(prefs_path, "h", 0);
+            w = prefs->getInt(prefs_path + "w", 0);
+            h = prefs->getInt(prefs_path + "h", 0);
         }
 
 //        if (x<0) x=0;
@@ -924,10 +925,11 @@ static gboolean on_delete(GtkObject */*object*/, GdkEvent */*event*/, gpointer /
     if (x<0) x=0;
     if (y<0) y=0;
 
-    prefs_set_int_attribute(prefs_path, "x", x);
-    prefs_set_int_attribute(prefs_path, "y", y);
-    prefs_set_int_attribute(prefs_path, "w", w);
-    prefs_set_int_attribute(prefs_path, "h", h);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(prefs_path + "x", x);
+    prefs->setInt(prefs_path + "y", y);
+    prefs->setInt(prefs_path + "w", w);
+    prefs->setInt(prefs_path + "h", h);
 
     return FALSE; // which means, go ahead and destroy it
 }
index edeb9e3b72e84ae8aa32facda54fb0fe52881feb..4d63138868a30edc9d31414369bcc2d7aabc6964 100644 (file)
@@ -7,7 +7,7 @@
    #define's and `using' directives of the included file. */
 #include "bezier-utils.cpp"
 
-using NR::Point;
+using Geom::Point;
 
 static bool range_approx_equal(double const a[], double const b[], unsigned len);
 
@@ -22,9 +22,9 @@ static bool range_equal(T const a[], T const b[], unsigned len) {
     return true;
 }
 
-inline bool point_approx_equal(NR::Point const &a, NR::Point const &b, double const eps)
+inline bool point_approx_equal(Geom::Point const &a, Geom::Point const &b, double const eps)
 {
-    using NR::X; using NR::Y;
+    using Geom::X; using Geom::Y;
     return ( NR_DF_TEST_CLOSE(a[X], b[X], eps) &&
              NR_DF_TEST_CLOSE(a[Y], b[Y], eps) );
 }
@@ -86,7 +86,7 @@ int main(int /*argc*/, char */*argv*/[]) {
     utest_start("bezier-utils.cpp");
 
     UTEST_TEST("copy_without_nans_or_adjacent_duplicates") {
-        NR::Point const src[] = {
+        Geom::Point const src[] = {
             Point(2., 3.),
             Point(2., 3.),
             Point(0., 0.),
index eb2b13d7b5cf6d7c95208cc2441a4fdcc7139e9f..cc24adaad462b6e2476be76317b9096d365117aa 100644 (file)
@@ -19,9 +19,9 @@ static bool range_approx_equal(double const a[], double const b[], unsigned cons
     return true;
 }
 
-static inline bool point_approx_equal(NR::Point const &a, NR::Point const &b, double const eps)
+static inline bool point_approx_equal(Geom::Point const &a, Geom::Point const &b, double const eps)
 {
-    using NR::X; using NR::Y;
+    using Geom::X; using Geom::Y;
     return ( NR_DF_TEST_CLOSE(a[X], b[X], eps) &&
              NR_DF_TEST_CLOSE(a[Y], b[Y], eps) );
 }
@@ -35,7 +35,7 @@ static inline double square(double const x) {
     the most important test is that the root-mean-square of errors in the estimation are low rather
     than that the control points found are the same.
 **/
-static void compare_ctlpts(NR::Point const est_b[], NR::Point const exp_est_b[])
+static void compare_ctlpts(Geom::Point const est_b[], Geom::Point const exp_est_b[])
 {
     unsigned diff_mask = 0;
     for (unsigned i = 0; i < 4; ++i) {
@@ -62,13 +62,13 @@ static void compare_ctlpts(NR::Point const est_b[], NR::Point const exp_est_b[])
     }
 }
 
-static void compare_rms(NR::Point const est_b[], double const t[], NR::Point const d[], unsigned const n,
+static void compare_rms(Geom::Point const est_b[], double const t[], Geom::Point const d[], unsigned const n,
                         double const exp_rms_error)
 {
     double sum_errsq = 0.0;
     for (unsigned i = 0; i < n; ++i) {
-        NR::Point const fit_pt = bezier_pt(3, est_b, t[i]);
-        NR::Point const diff = fit_pt - d[i];
+        Geom::Point const fit_pt = bezier_pt(3, est_b, t[i]);
+        Geom::Point const diff = fit_pt - d[i];
         sum_errsq += dot(diff, diff);
     }
     double const rms_error = sqrt( sum_errsq / n );
@@ -84,13 +84,13 @@ static void compare_rms(NR::Point const est_b[], double const t[], NR::Point con
 
 class BezierUtilsTest : public CxxTest::TestSuite {
 public:
-    static NR::Point const c[4];
+    static Geom::Point const c[4];
     static double const t[24];
     static unsigned const n;
-    NR::Point d[24];
-    static NR::Point const src_b[4];
-    static NR::Point const tHat1;
-    static NR::Point const tHat2;
+    Geom::Point d[24];
+    static Geom::Point const src_b[4];
+    static Geom::Point const tHat1;
+    static Geom::Point const tHat2;
 
     BezierUtilsTest()
     {
@@ -109,23 +109,23 @@ public:
 
     void testCopyWithoutNansOrAdjacentDuplicates()
     {
-        NR::Point const src[] = {
-            NR::Point(2., 3.),
-            NR::Point(2., 3.),
-            NR::Point(0., 0.),
-            NR::Point(2., 3.),
-            NR::Point(2., 3.),
-            NR::Point(1., 9.),
-            NR::Point(1., 9.)
+        Geom::Point const src[] = {
+            Geom::Point(2., 3.),
+            Geom::Point(2., 3.),
+            Geom::Point(0., 0.),
+            Geom::Point(2., 3.),
+            Geom::Point(2., 3.),
+            Geom::Point(1., 9.),
+            Geom::Point(1., 9.)
         };
-        NR::Point const exp_dest[] = {
-            NR::Point(2., 3.),
-            NR::Point(0., 0.),
-            NR::Point(2., 3.),
-            NR::Point(1., 9.)
+        Geom::Point const exp_dest[] = {
+            Geom::Point(2., 3.),
+            Geom::Point(0., 0.),
+            Geom::Point(2., 3.),
+            Geom::Point(1., 9.)
         };
         g_assert( G_N_ELEMENTS(src) == 7 );
-        NR::Point dest[7];
+        Geom::Point dest[7];
         struct tst {
             unsigned src_ix0;
             unsigned src_len;
@@ -157,11 +157,11 @@ public:
 
     void testBezierPt1()
     {
-        NR::Point const a[] = {NR::Point(2.0, 4.0),
-                               NR::Point(1.0, 8.0)};
+        Geom::Point const a[] = {Geom::Point(2.0, 4.0),
+                               Geom::Point(1.0, 8.0)};
         TS_ASSERT_EQUALS( bezier_pt(1, a, 0.0) , a[0] );
         TS_ASSERT_EQUALS( bezier_pt(1, a, 1.0) , a[1] );
-        TS_ASSERT_EQUALS( bezier_pt(1, a, 0.5) , NR::Point(1.5, 6.0) );
+        TS_ASSERT_EQUALS( bezier_pt(1, a, 0.5) , Geom::Point(1.5, 6.0) );
         double const t[] = {0.5, 0.25, 0.3, 0.6};
         for (unsigned i = 0; i < G_N_ELEMENTS(t); ++i) {
             double const ti = t[i], si = 1.0 - ti;
@@ -171,17 +171,17 @@ public:
 
     void testBezierPt2()
     {
-        NR::Point const b[] = {NR::Point(1.0, 2.0),
-                               NR::Point(8.0, 4.0),
-                               NR::Point(3.0, 1.0)};
+        Geom::Point const b[] = {Geom::Point(1.0, 2.0),
+                               Geom::Point(8.0, 4.0),
+                               Geom::Point(3.0, 1.0)};
         TS_ASSERT_EQUALS( bezier_pt(2, b, 0.0) , b[0] );
         TS_ASSERT_EQUALS( bezier_pt(2, b, 1.0) , b[2] );
-        TS_ASSERT_EQUALS( bezier_pt(2, b, 0.5) , NR::Point(5.0, 2.75) );
+        TS_ASSERT_EQUALS( bezier_pt(2, b, 0.5) , Geom::Point(5.0, 2.75) );
         double const t[] = {0.5, 0.25, 0.3, 0.6};
         for (unsigned i = 0; i < G_N_ELEMENTS(t); ++i) {
             double const ti = t[i], si = 1.0 - ti;
-            NR::Point const exp_pt( si*si * b[0] + 2*si*ti * b[1] + ti*ti * b[2] );
-            NR::Point const pt(bezier_pt(2, b, ti));
+            Geom::Point const exp_pt( si*si * b[0] + 2*si*ti * b[1] + ti*ti * b[2] );
+            Geom::Point const pt(bezier_pt(2, b, ti));
             TS_ASSERT(point_approx_equal(pt, exp_pt, 1e-11));
         }
     }
@@ -190,7 +190,7 @@ public:
     {
         TS_ASSERT_EQUALS( bezier_pt(3, c, 0.0) , c[0] );
         TS_ASSERT_EQUALS( bezier_pt(3, c, 1.0) , c[3] );
-        TS_ASSERT_EQUALS( bezier_pt(3, c, 0.5) , NR::Point(4.0, 13.0/8.0) );
+        TS_ASSERT_EQUALS( bezier_pt(3, c, 0.5) , Geom::Point(4.0, 13.0/8.0) );
         double const t[] = {0.5, 0.25, 0.3, 0.6};
         for (unsigned i = 0; i < G_N_ELEMENTS(t); ++i) {
             double const ti = t[i], si = 1.0 - ti;
@@ -206,18 +206,18 @@ public:
     void testComputeMaxErrorRatio()
     {
         struct Err_tst {
-            NR::Point pt;
+            Geom::Point pt;
             double u;
             double err;
         } const err_tst[] = {
             {c[0], 0.0, 0.0},
-            {NR::Point(4.0, 13.0/8.0), 0.5, 0.0},
-            {NR::Point(4.0, 2.0), 0.5, 9.0/64.0},
-            {NR::Point(3.0, 2.0), 0.5, 1.0 + 9.0/64.0},
-            {NR::Point(6.0, 2.0), 0.5, 4.0 + 9.0/64.0},
+            {Geom::Point(4.0, 13.0/8.0), 0.5, 0.0},
+            {Geom::Point(4.0, 2.0), 0.5, 9.0/64.0},
+            {Geom::Point(3.0, 2.0), 0.5, 1.0 + 9.0/64.0},
+            {Geom::Point(6.0, 2.0), 0.5, 4.0 + 9.0/64.0},
             {c[3], 1.0, 0.0},
         };
-        NR::Point d[G_N_ELEMENTS(err_tst)];
+        Geom::Point d[G_N_ELEMENTS(err_tst)];
         double u[G_N_ELEMENTS(err_tst)];
         for (unsigned i = 0; i < G_N_ELEMENTS(err_tst); ++i) {
             Err_tst const &t = err_tst[i];
@@ -235,8 +235,8 @@ public:
     {
         /* n == 2 */
         {
-            NR::Point const d[] = {NR::Point(2.9415, -5.8149),
-                                   NR::Point(23.021, 4.9814)};
+            Geom::Point const d[] = {Geom::Point(2.9415, -5.8149),
+                                   Geom::Point(23.021, 4.9814)};
             double u[G_N_ELEMENTS(d)];
             double const exp_u[] = {0.0, 1.0};
             g_assert( G_N_ELEMENTS(u) == G_N_ELEMENTS(exp_u) );
@@ -248,9 +248,9 @@ public:
         {
             double const exp_u[] = {0.0, 0.1829, 0.2105, 0.2105, 0.619, 0.815, 0.999, 1.0};
             unsigned const n = G_N_ELEMENTS(exp_u);
-            NR::Point d[n];
+            Geom::Point d[n];
             double u[n];
-            NR::Point const a(-23.985, 4.915), b(4.9127, 5.203);
+            Geom::Point const a(-23.985, 4.915), b(4.9127, 5.203);
             for (unsigned i = 0; i < n; ++i) {
                 double bi = exp_u[i], ai = 1.0 - bi;
                 d[i] = ai * a  +  bi * b;
@@ -262,7 +262,7 @@ public:
 
     void testGenerateBezier()
     {
-        NR::Point est_b[4];
+        Geom::Point est_b[4];
         generate_bezier(est_b, d, t, n, tHat1, tHat2, 1.0);
 
         compare_ctlpts(est_b, src_b);
@@ -274,16 +274,16 @@ public:
 
     void testSpBezierFitCubicFull()
     {
-        NR::Point est_b[4];
+        Geom::Point est_b[4];
         int splitpoints[2];
         gint const succ = sp_bezier_fit_cubic_full(est_b, splitpoints, d, n, tHat1, tHat2, square(1.2), 1);
         TS_ASSERT_EQUALS( succ , 1 );
 
-        NR::Point const exp_est_b[4] = {
-            NR::Point(5.000000, -3.000000),
-            NR::Point(7.5753, -0.4247),
-            NR::Point(4.77533, 1.22467),
-            NR::Point(3, 3)
+        Geom::Point const exp_est_b[4] = {
+            Geom::Point(5.000000, -3.000000),
+            Geom::Point(7.5753, -0.4247),
+            Geom::Point(4.77533, 1.22467),
+            Geom::Point(3, 3)
         };
         compare_ctlpts(est_b, exp_est_b);
 
@@ -294,15 +294,15 @@ public:
 
     void testSpBezierFitCubic()
     {
-        NR::Point est_b[4];
+        Geom::Point est_b[4];
         gint const succ = sp_bezier_fit_cubic(est_b, d, n, square(1.2));
         TS_ASSERT_EQUALS( succ , 1 );
 
-        NR::Point const exp_est_b[4] = {
-            NR::Point(5.000000, -3.000000),
-            NR::Point(7.57134, -0.423509),
-            NR::Point(4.77929, 1.22426),
-            NR::Point(3, 3)
+        Geom::Point const exp_est_b[4] = {
+            Geom::Point(5.000000, -3.000000),
+            Geom::Point(7.57134, -0.423509),
+            Geom::Point(4.77929, 1.22426),
+            Geom::Point(3, 3)
         };
         compare_ctlpts(est_b, exp_est_b);
 
@@ -321,22 +321,22 @@ public:
 };
 
 // This is not very neat, but since we know this header is only included by the generated CxxTest file it shouldn't give any problems
-NR::Point const BezierUtilsTest::c[4] = {
-    NR::Point(1.0, 2.0),
-    NR::Point(8.0, 4.0),
-    NR::Point(3.0, 1.0),
-    NR::Point(-2.0, -4.0)};
+Geom::Point const BezierUtilsTest::c[4] = {
+    Geom::Point(1.0, 2.0),
+    Geom::Point(8.0, 4.0),
+    Geom::Point(3.0, 1.0),
+    Geom::Point(-2.0, -4.0)};
 double const BezierUtilsTest::t[24] = {
     0.0, .001, .03, .05, .09, .13, .18, .25, .29, .33,  .39, .44,
     .51,  .57, .62, .69, .75, .81, .91, .93, .97, .98, .999, 1.0};
 unsigned const BezierUtilsTest::n = G_N_ELEMENTS(BezierUtilsTest::t);
-NR::Point const BezierUtilsTest::src_b[4] = {
-    NR::Point(5., -3.),
-    NR::Point(8., 0.),
-    NR::Point(4., 2.),
-    NR::Point(3., 3.)};
-NR::Point const BezierUtilsTest::tHat1(unit_vector( BezierUtilsTest::src_b[1] - BezierUtilsTest::src_b[0] ));
-NR::Point const BezierUtilsTest::tHat2(unit_vector( BezierUtilsTest::src_b[2] - BezierUtilsTest::src_b[3] ));
+Geom::Point const BezierUtilsTest::src_b[4] = {
+    Geom::Point(5., -3.),
+    Geom::Point(8., 0.),
+    Geom::Point(4., 2.),
+    Geom::Point(3., 3.)};
+Geom::Point const BezierUtilsTest::tHat1(unit_vector( BezierUtilsTest::src_b[1] - BezierUtilsTest::src_b[0] ));
+Geom::Point const BezierUtilsTest::tHat2(unit_vector( BezierUtilsTest::src_b[2] - BezierUtilsTest::src_b[3] ));
 
 /*
   Local Variables:
index 5d09e66a7516df13229779200cabb84386d6dbcd..b538f7fbafd75b5b3ddcdcf0bf1a359c14b4543d 100644 (file)
@@ -80,10 +80,10 @@ static Geom::Point const unconstrained_tangent(0, 0);
 #ifdef BEZIER_DEBUG
 # define DOUBLE_ASSERT(x) g_assert( ( (x) > -SP_HUGE ) && ( (x) < SP_HUGE ) )
 # define BEZIER_ASSERT(b) do { \
-           DOUBLE_ASSERT((b)[0][NR::X]); DOUBLE_ASSERT((b)[0][NR::Y]);  \
-           DOUBLE_ASSERT((b)[1][NR::X]); DOUBLE_ASSERT((b)[1][NR::Y]);  \
-           DOUBLE_ASSERT((b)[2][NR::X]); DOUBLE_ASSERT((b)[2][NR::Y]);  \
-           DOUBLE_ASSERT((b)[3][NR::X]); DOUBLE_ASSERT((b)[3][NR::Y]);  \
+           DOUBLE_ASSERT((b)[0][Geom::X]); DOUBLE_ASSERT((b)[0][Geom::Y]);  \
+           DOUBLE_ASSERT((b)[1][Geom::X]); DOUBLE_ASSERT((b)[1][Geom::Y]);  \
+           DOUBLE_ASSERT((b)[2][Geom::X]); DOUBLE_ASSERT((b)[2][Geom::Y]);  \
+           DOUBLE_ASSERT((b)[3][Geom::X]); DOUBLE_ASSERT((b)[3][Geom::Y]);  \
          } while(0)
 #else
 # define DOUBLE_ASSERT(x) do { } while(0)
@@ -148,8 +148,8 @@ copy_without_nans_or_adjacent_duplicates(Geom::Point const src[], unsigned src_l
         if ( si == src_len ) {
             return 0;
         }
-        if (!IS_NAN(src[si][NR::X]) &&
-            !IS_NAN(src[si][NR::Y])) {
+        if (!IS_NAN(src[si][Geom::X]) &&
+            !IS_NAN(src[si][Geom::Y])) {
             dest[0] = Geom::Point(src[si]);
             ++si;
             break;
@@ -160,8 +160,8 @@ copy_without_nans_or_adjacent_duplicates(Geom::Point const src[], unsigned src_l
     for (; si < src_len; ++si) {
         Geom::Point const src_pt = Geom::Point(src[si]);
         if ( src_pt != dest[di]
-             && !IS_NAN(src_pt[NR::X])
-             && !IS_NAN(src_pt[NR::Y])) {
+             && !IS_NAN(src_pt[Geom::X])
+             && !IS_NAN(src_pt[Geom::Y])) {
             dest[++di] = src_pt;
         }
     }
@@ -806,7 +806,7 @@ sp_darray_center_tangent(Geom::Point const d[],
     if ( d[center + 1] == d[center - 1] ) {
         /* Rotate 90 degrees in an arbitrary direction. */
         Geom::Point const diff = d[center] - d[center - 1];
-        ret = NR::rot90(diff);
+        ret = Geom::rot90(diff);
     } else {
         ret = d[center - 1] - d[center + 1];
     }
@@ -959,11 +959,11 @@ compute_hook(Geom::Point const &a, Geom::Point const &b, double const u, BezierC
 {
     Geom::Point const P = bezier_pt(3, bezCurve, u);
     Geom::Point const diff = .5 * (a + b) - P;
-    double const dist = NR::L2(diff);
+    double const dist = Geom::L2(diff);
     if (dist < tolerance) {
         return 0;
     }
-    double const allowed = NR::L2(b - a) + tolerance;
+    double const allowed = Geom::L2(b - a) + tolerance;
     return dist / allowed;
     /** \todo 
      * effic: Hooks are very rare.  We could start by comparing 
index 5e6188eeed4fb9da41364189e95e16daabf8ed91..34bc1994625ee901ba4bd95452edd237e2dee378 100644 (file)
@@ -32,7 +32,7 @@ struct _SPCanvasArena {
 
     guint cursor : 1;
     guint sticky : 1;
-    NR::Point c; // what is this?
+    Geom::Point c; // what is this?
 
     NRArena *arena;
     NRArenaItem *root;
index 0f5045c4d25699cef177c262dff528731d1ebc60..e181035ebe4f4ed8d56dfa1ca7141410494d4900 100644 (file)
@@ -194,17 +194,17 @@ CanvasAxonomGrid::CanvasAxonomGrid (SPNamedView * nv, Inkscape::XML::Node * in_r
     : CanvasGrid(nv, in_repr, in_doc, GRID_AXONOMETRIC)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    gridunit = sp_unit_get_by_abbreviation( prefs->getString("options.grids.axonom", "units").data() );
+    gridunit = sp_unit_get_by_abbreviation( prefs->getString("/options/grids/axonom/units").data() );
     if (!gridunit)
         gridunit = &sp_unit_get_by_id(SP_UNIT_PX);
-    origin[Geom::X] = sp_units_get_pixels( prefs->getDouble("options.grids.axonom", "origin_x", 0.0), *gridunit );
-    origin[Geom::Y] = sp_units_get_pixels( prefs->getDouble("options.grids.axonom", "origin_y", 0.0), *gridunit );
-    color = prefs->getInt("options.grids.axonom", "color", 0x0000ff20);
-    empcolor = prefs->getInt("options.grids.axonom", "empcolor", 0x0000ff40);
-    empspacing = prefs->getInt("options.grids.axonom", "empspacing", 5);
-    lengthy = sp_units_get_pixels( prefs->getDouble("options.grids.axonom", "spacing_y", 1.0), *gridunit );
-    angle_deg[X] = prefs->getDouble("options.grids.axonom", "angle_x", 30.0);
-    angle_deg[Z] = prefs->getDouble("options.grids.axonom", "angle_z", 30.0);
+    origin[Geom::X] = sp_units_get_pixels( prefs->getDouble("/options/grids/axonom/origin_x", 0.0), *gridunit );
+    origin[Geom::Y] = sp_units_get_pixels( prefs->getDouble("/options/grids/axonom/origin_y", 0.0), *gridunit );
+    color = prefs->getInt("/options/grids/axonom/color", 0x0000ff20);
+    empcolor = prefs->getInt("/options/grids/axonom/empcolor", 0x0000ff40);
+    empspacing = prefs->getInt("/options/grids/axonom/empspacing", 5);
+    lengthy = sp_units_get_pixels( prefs->getDouble("/options/grids/axonom/spacing_y", 1.0), *gridunit );
+    angle_deg[X] = prefs->getDouble("/options/grids/axonom/angle_x", 30.0);
+    angle_deg[Z] = prefs->getDouble("/options/grids/axonom/angle_z", 30.0);
     angle_deg[Y] = 0;
 
     angle_rad[X] = deg_to_rad(angle_deg[X]);
@@ -298,7 +298,6 @@ static gboolean sp_nv_read_opacity(gchar const *str, guint32 *color)
 void
 CanvasAxonomGrid::readRepr()
 {
-    /// @todo Replace direct XML preference node manipulation with calls to public prefs API
     gchar const *value;
     if ( (value = repr->attribute("originx")) ) {
         sp_nv_read_length(value, SP_UNIT_ABSOLUTE | SP_UNIT_DEVICE, &origin[Geom::X], &gridunit);
@@ -551,7 +550,7 @@ CanvasAxonomGrid::Render (SPCanvasBuf *buf)
     //set correct coloring, depending preference (when zoomed out, always major coloring or minor coloring)
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     guint32 _empcolor;
-    bool preference = prefs->getBool("options.grids", "no_emphasize_when_zoomedout", false);
+    bool preference = prefs->getBool("/options/grids/no_emphasize_when_zoomedout", false);
     if( scaled && preference ) {
         _empcolor = color;
     } else {
index 9b6b512b01b856bc7e4a94474bcff040895ca3c0..8505426d3cb7822fc68bf9fb1c27190de8c23436 100644 (file)
@@ -1,10 +1,8 @@
-#define INKSCAPE_CANVAS_GRID_C
-
-/*
- *
- * Copyright (C) Johan Engelen 2006-2007 <johan@shouraizou.nl>
+/** @file
+ * @brief Cartesian grid implementation
+ */
+/* Copyright (C) Johan Engelen 2006-2007 <johan@shouraizou.nl>
  * Copyright (C) Lauris Kaplinski 2000
- *
  */
 
 /* As a general comment, I am not exactly proud of how things are done.
@@ -13,6 +11,7 @@
  * Don't be shy to correct things.
  */
 
+#define INKSCAPE_CANVAS_GRID_C
 
 #include "sp-canvas-util.h"
 #include "util/mathfns.h" 
@@ -416,17 +415,17 @@ CanvasXYGrid::CanvasXYGrid (SPNamedView * nv, Inkscape::XML::Node * in_repr, SPD
     : CanvasGrid(nv, in_repr, in_doc, GRID_RECTANGULAR)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    gridunit = sp_unit_get_by_abbreviation( prefs->getString("options.grids.xy", "units").data() );
+    gridunit = sp_unit_get_by_abbreviation( prefs->getString("/options/grids/xy/units").data() );
     if (!gridunit)
         gridunit = &sp_unit_get_by_id(SP_UNIT_PX);
-    origin[Geom::X] = sp_units_get_pixels(prefs->getDouble("options.grids.xy", "origin_x", 0.0), *gridunit);
-    origin[Geom::Y] = sp_units_get_pixels(prefs->getDouble("options.grids.xy", "origin_y", 0.0), *gridunit);
-    color = prefs->getInt("options.grids.xy", "color", 0x0000ff20);
-    empcolor = prefs->getInt("options.grids.xy", "empcolor", 0x0000ff40);
-    empspacing = prefs->getInt("options.grids.xy", "empspacing", 5);
-    spacing[Geom::X] = sp_units_get_pixels(prefs->getDouble("options.grids.xy", "spacing_x", 0.0), *gridunit);
-    spacing[Geom::Y] = sp_units_get_pixels(prefs->getDouble("options.grids.xy", "spacing_y", 0.0), *gridunit);
-    render_dotted = prefs->getBool("options.grids.xy", "dotted", false);
+    origin[Geom::X] = sp_units_get_pixels(prefs->getDouble("/options/grids/xy/origin_x", 0.0), *gridunit);
+    origin[Geom::Y] = sp_units_get_pixels(prefs->getDouble("/options/grids/xy/origin_y", 0.0), *gridunit);
+    color = prefs->getInt("/options/grids/xy/color", 0x0000ff20);
+    empcolor = prefs->getInt("/options/grids/xy/empcolor", 0x0000ff40);
+    empspacing = prefs->getInt("/options/grids/xy/empspacing", 5);
+    spacing[Geom::X] = sp_units_get_pixels(prefs->getDouble("/options/grids/xy/spacing_x", 0.0), *gridunit);
+    spacing[Geom::Y] = sp_units_get_pixels(prefs->getDouble("/options/grids/xy/spacing_y", 0.0), *gridunit);
+    render_dotted = prefs->getBool("/options/grids/xy/dotted", false);
 
     snapper = new CanvasXYGridSnapper(this, &namedview->snap_manager, 0);
 
@@ -889,7 +888,7 @@ CanvasXYGrid::Render (SPCanvasBuf *buf)
     //set correct coloring, depending preference (when zoomed out, always major coloring or minor coloring)
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     guint32 _empcolor;
-    bool no_emp_when_zoomed_out = prefs->getBool("options.grids", "no_emphasize_when_zoomedout", false);
+    bool no_emp_when_zoomed_out = prefs->getBool("/options/grids/no_emphasize_when_zoomedout", false);
     if( (scaled[Geom::X] || scaled[Geom::Y]) && no_emp_when_zoomed_out ) {
         _empcolor = color;
     } else {
@@ -1000,14 +999,10 @@ void CanvasXYGridSnapper::_addSnappedLine(SnappedConstraints &sc, Geom::Point co
  */
 bool CanvasXYGridSnapper::ThisSnapperMightSnap() const
 {
-    return _snap_enabled && _snap_from != 0;
+    return _snapmanager->snapprefs.getSnapModeBBoxOrNodes();
 }
 
-
-
-
-
-}; /* namespace Inkscape */
+} // namespace Inkscape
 
 
 /*
index 66f3bc43cbce0562ec4de9f6caa697052243270b..f50537065be93802d641cd39b1c12763fbcafae0 100644 (file)
@@ -1,16 +1,13 @@
-#ifndef INKSCAPE_CANVAS_GRID_H
-#define INKSCAPE_CANVAS_GRID_H
-
-/*
- * Inkscape::CXYGrid
- *
- * Generic (and quite unintelligent) grid item for gnome canvas
- *
- * Copyright (C) Johan Engelen 2006-2007 <johan@shouraizou.nl>
+/** @file
+ * @brief Cartesian grid item for the Inkscape canvas
+ */
+/* Copyright (C) Johan Engelen 2006-2007 <johan@shouraizou.nl>
  * Copyright (C) Lauris Kaplinski 2000
- *
  */
 
+#ifndef INKSCAPE_CANVAS_GRID_H
+#define INKSCAPE_CANVAS_GRID_H
+
 #include <cstring>
 #include <string>
 
index 21e1fbd48ad60c365f01a13af28e6dfcdc4f0b29..f7a8cfb01270b1318b70ec3e0cbbb0250ae9f13c 100644 (file)
@@ -74,8 +74,8 @@ static void
 sp_canvastext_init (SPCanvasText *canvastext)
 {
     canvastext->rgba = 0x0000ff7f;
-    canvastext->s[NR::X] = canvastext->s[NR::Y] = 0.0;
-    canvastext->affine = NR::identity();
+    canvastext->s[Geom::X] = canvastext->s[Geom::Y] = 0.0;
+    canvastext->affine = Geom::identity();
     canvastext->fontsize = 10.0;
     canvastext->item = NULL;
     canvastext->text = NULL;
@@ -113,9 +113,9 @@ sp_canvastext_render (SPCanvasItem *item, SPCanvasBuf *buf)
     guint32 rgba = cl->rgba;
     cairo_set_source_rgba(buf->ct, SP_RGBA32_B_F(rgba), SP_RGBA32_G_F(rgba), SP_RGBA32_R_F(rgba), SP_RGBA32_A_F(rgba));
 
-    NR::Point s = cl->s * cl->affine;
-    double offsetx = s[NR::X] - buf->rect.x0;
-    double offsety = s[NR::Y] - buf->rect.y0;
+    Geom::Point s = cl->s * cl->affine;
+    double offsetx = s[Geom::X] - buf->rect.x0;
+    double offsety = s[Geom::Y] - buf->rect.y0;
     offsetx -= anchor_offset_x;
     offsety += anchor_offset_y;
 
@@ -150,10 +150,10 @@ sp_canvastext_update (SPCanvasItem *item, Geom::Matrix const &affine, unsigned i
     cairo_text_extents_t bbox;
     cairo_text_extents(&tmp_buf, cl->text, &bbox);
     **/
-    item->x1 = s[NR::X] + 0;
-    item->y1 = s[NR::Y] - cl->fontsize;
-    item->x2 = s[NR::X] + cl->fontsize * strlen(cl->text);
-    item->y2 = s[NR::Y] + cl->fontsize * 0.5; // for letters below the baseline
+    item->x1 = s[Geom::X] + 0;
+    item->y1 = s[Geom::Y] - cl->fontsize;
+    item->x2 = s[Geom::X] + cl->fontsize * strlen(cl->text);
+    item->y2 = s[Geom::Y] + cl->fontsize * 0.5; // for letters below the baseline
 
     // adjust update region according to anchor shift
     // FIXME: use the correct text extent
@@ -208,16 +208,16 @@ sp_canvastext_set_coords (SPCanvasText *ct, gdouble x0, gdouble y0)
     g_return_if_fail (ct != NULL);
     g_return_if_fail (SP_IS_CANVASTEXT (ct));
 
-    if (DIFFER (x0, ct->s[NR::X]) || DIFFER (y0, ct->s[NR::Y])) {
-        ct->s[NR::X] = x0;
-        ct->s[NR::Y] = y0;
+    if (DIFFER (x0, ct->s[Geom::X]) || DIFFER (y0, ct->s[Geom::Y])) {
+        ct->s[Geom::X] = x0;
+        ct->s[Geom::Y] = y0;
         sp_canvas_item_request_update (SP_CANVAS_ITEM (ct));
     }
     sp_canvas_item_request_update (SP_CANVAS_ITEM (ct));
 }
 
 void
-sp_canvastext_set_coords (SPCanvasText *ct, const NR::Point start)
+sp_canvastext_set_coords (SPCanvasText *ct, const Geom::Point start)
 {
     sp_canvastext_set_coords(ct, start[0], start[1]);
 }
index bb732ae6f51778577785f7d3c46d9cd56fd0f9ec..0e4724d92959572cb608cb4c9165210264ddc752 100644 (file)
@@ -41,7 +41,7 @@ SPCanvasItem *sp_canvastext_new(SPCanvasGroup *parent, Geom::Point pos, gchar co
 
 void sp_canvastext_set_rgba32 (SPCanvasText *ct, guint32 rgba);
 void sp_canvastext_set_coords (SPCanvasText *ct, gdouble x0, gdouble y0);
-void sp_canvastext_set_coords (SPCanvasText *ct, const NR::Point start);
+void sp_canvastext_set_coords (SPCanvasText *ct, const Geom::Point start);
 void sp_canvastext_set_text (SPCanvasText *ct, gchar const* new_text);
 void sp_canvastext_set_number_as_text (SPCanvasText *ct, int num);
 void sp_canvastext_set_fontsize (SPCanvasText *ct, double size);
index 5f20d077a22a38c2cec96a0cfa0cabd5c212219b..ef60f0502d9fa641260ef4096d0075a7c5ce6237 100644 (file)
@@ -89,7 +89,7 @@ static void
 nr_arena_glyphs_init(NRArenaGlyphs *glyphs)
 {
     glyphs->style = NULL;
-    glyphs->g_transform.set_identity();
+    glyphs->g_transform.setIdentity();
     glyphs->font = NULL;
     glyphs->glyph = 0;
 
@@ -142,7 +142,7 @@ nr_arena_glyphs_update(NRArenaItem *item, NRRectL */*area*/, NRGC *gc, guint /*s
     bbox.x0 = bbox.y0 = NR_HUGE;
     bbox.x1 = bbox.y1 = -NR_HUGE;
 
-    float const scale = NR::expansion(gc->transform);
+    float const scale = gc->transform.descrim();
 
     if (!glyphs->style->fill.isNone()) {
         Geom::Matrix t;
@@ -265,7 +265,7 @@ nr_arena_glyphs_set_path(NRArenaGlyphs *glyphs, SPCurve */*curve*/, unsigned int
     if (transform) {
         glyphs->g_transform = *transform;
     } else {
-        glyphs->g_transform.set_identity();
+        glyphs->g_transform.setIdentity();
     }
 
     if (font) font->Ref();
@@ -298,7 +298,7 @@ nr_arena_glyphs_fill_mask(NRArenaGlyphs *glyphs, NRRectL *area, NRPixBlock *m)
 
     if (glyphs->rfont && nr_rect_l_test_intersect_ptr(area, &item->bbox)) {
         raster_glyph *g = glyphs->rfont->GetGlyph(glyphs->glyph);
-        if ( g ) g->Blit(NR::Point(glyphs->x, glyphs->y), *m);
+        if ( g ) g->Blit(Geom::Point(glyphs->x, glyphs->y), *m);
     }
 
     return item->state;
@@ -310,7 +310,7 @@ nr_arena_glyphs_stroke_mask(NRArenaGlyphs *glyphs, NRRectL *area, NRPixBlock *m)
     NRArenaItem *item = NR_ARENA_ITEM(glyphs);
     if (glyphs->sfont && nr_rect_l_test_intersect_ptr(area, &item->bbox)) {
         raster_glyph *g=glyphs->sfont->GetGlyph(glyphs->glyph);
-        if ( g ) g->Blit(NR::Point(glyphs->x, glyphs->y),*m);
+        if ( g ) g->Blit(Geom::Point(glyphs->x, glyphs->y),*m);
     }
 
     return item->state;
index 9c6762363c80c29ff12df15aa0392fc881681310..5bf94f3fc02919c27ab387bc964245d765ebb055 100644 (file)
@@ -33,7 +33,7 @@ NRType nr_arena_glyphs_get_type (void);
 struct NRArenaGlyphs : public NRArenaItem {
        /* Glyphs data */
        SPStyle *style;
-       NR::Matrix g_transform;
+       Geom::Matrix g_transform;
        font_instance *font;
        gint glyph;
 
@@ -41,7 +41,7 @@ struct NRArenaGlyphs : public NRArenaItem {
        raster_font *sfont;
        float x, y;
 
-//     NR::Matrix cached_tr;
+//     Geom::Matrix cached_tr;
 //     Shape  *cached_shp;
 //     bool   cached_shp_dirty;
 //     bool   cached_style_dirty;
index c8a98848363590d27b98957f48fbcdfe72f12a65..17c9ab07c83ca9089e43a9045059bd5387ea640c 100644 (file)
@@ -15,7 +15,7 @@
 #include <libnr/nr-compose-transform.h>
 #include <2geom/transforms.h>
 #include <libnr/nr-blit.h>
-#include "../prefs-utils.h"
+#include "../preferences.h"
 #include "nr-arena-image.h"
 #include "style.h"
 #include "display/nr-arena.h"
@@ -173,7 +173,8 @@ nr_arena_image_update( NRArenaItem *item, NRRectL */*area*/, NRGC *gc, unsigned
 static unsigned int
 nr_arena_image_render( cairo_t *ct, NRArenaItem *item, NRRectL */*area*/, NRPixBlock *pb, unsigned int /*flags*/ )
 {
-    nr_arena_image_x_sample = prefs_get_int_attribute ("options.bitmapoversample", "value", 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    nr_arena_image_x_sample = prefs->getInt("/options/bitmapoversample/value", 1);
     nr_arena_image_y_sample = nr_arena_image_x_sample;
 
     bool outline = (item->arena->rendermode == Inkscape::RENDERMODE_OUTLINE);
@@ -228,7 +229,7 @@ nr_arena_image_render( cairo_t *ct, NRArenaItem *item, NRRectL */*area*/, NRPixB
         if (!ct)
             return item->state;
 
-        guint32 rgba = prefs_get_int_attribute("options.wireframecolors", "images", 0xff0000ff);
+        guint32 rgba = prefs->getInt("/options/wireframecolors/images", 0xff0000ff);
         // FIXME: we use RGBA buffers but cairo writes BGRA (on i386), so we must cheat
         // by setting color channels in the "wrong" order
         cairo_set_source_rgba(ct, SP_RGBA32_B_F(rgba), SP_RGBA32_G_F(rgba), SP_RGBA32_R_F(rgba), SP_RGBA32_A_F(rgba));
index b9a0cc371e6f19e445de19b26c73a08d3f023023..d944b4228aa6f14509bd00f4cdcf3807ae5ca548 100644 (file)
@@ -30,7 +30,7 @@
 #include "nr-filter.h"
 #include "libnr/nr-rect.h"
 #include "nr-arena-group.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 namespace GC = Inkscape::GC;
 
@@ -343,13 +343,14 @@ nr_arena_item_invoke_render (cairo_t *ct, NRArenaItem *item, NRRectL const *area
             // render clip and mask, if any
             guint32 saved_rgba = item->arena->outlinecolor; // save current outline color
             // render clippath as an object, using a different color
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
             if (item->clip) {
-                item->arena->outlinecolor = prefs_get_int_attribute("options.wireframecolors", "clips", 0x00ff00ff); // green clips
+                item->arena->outlinecolor = prefs->getInt("/options/wireframecolors/clips", 0x00ff00ff); // green clips
                 NR_ARENA_ITEM_VIRTUAL (item->clip, render) (ct, item->clip, &carea, pb, flags);
             } 
             // render mask as an object, using a different color
             if (item->mask) {
-                item->arena->outlinecolor = prefs_get_int_attribute("options.wireframecolors", "masks", 0x0000ffff); // blue masks
+                item->arena->outlinecolor = prefs->getInt("/options/wireframecolors/masks", 0x0000ffff); // blue masks
                 NR_ARENA_ITEM_VIRTUAL (item->mask, render) (ct, item->mask, &carea, pb, flags);
             }
             item->arena->outlinecolor = saved_rgba; // restore outline color
index 6a252e5f57c085e544a883e0a5cfff9ebf1e6893..4c988be46b5153689f1461c966e6bbfbcfae99c9 100644 (file)
@@ -29,7 +29,6 @@
 #include <livarot/float-line.h>
 #include <livarot/int-line.h>
 #include <style.h>
-#include "prefs-utils.h"
 #include "inkscape-cairo.h"
 #include "helper/geom.h"
 #include "helper/geom-curves.h"
index 8ff8c476aa8f2206b4d9108d4442a2e9cfa87a08..455757806f727bc2e4a7d56fe49285ce96ca5234 100644 (file)
@@ -154,6 +154,7 @@ struct NRArenaShape : public NRArenaItem {
     static NRArenaShape *create(NRArena *arena) {
         NRArenaShape *obj=reinterpret_cast<NRArenaShape *>(nr_object_new(NR_TYPE_ARENA_SHAPE));
         obj->init(arena);
+        obj->key = 0;
         return obj;
     }
 
index 76b541ace61029b0ac3d855ccb1e99015b049dbc..14a0396306c0dece2fe9fc5a68e64da35218c885 100644 (file)
@@ -30,7 +30,7 @@
 #include "libnr/nr-matrix.h"
 #include "libnr/nr-matrix-fns.h"
 #include "util/fixed_point.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 // IIR filtering method based on:
 // L.J. van Vliet, I.T. Young, and P.W. Verbeek, Recursive Gaussian Derivative Filters,
@@ -85,7 +85,7 @@ namespace NR {
 
 FilterGaussian::FilterGaussian()
 {
-    _deviation_x = _deviation_y = prefs_get_double_attribute("options.filtertest", "value", 1.0);
+    _deviation_x = _deviation_y = 0.0;
 }
 
 FilterPrimitive *FilterGaussian::create()
@@ -545,7 +545,8 @@ int FilterGaussian::render(FilterSlot &slot, FilterUnits const &units)
     int const PC = NR_PIXBLOCK_BPP(in);
 
     // Subsampling constants
-    int const quality = prefs_get_int_attribute("options.blurquality", "value", 0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int const quality = prefs->getInt("/options/blurquality/value");
     int const x_step_l2 = _effect_subsample_step_log2(deviation_x_org, quality);
     int const y_step_l2 = _effect_subsample_step_log2(deviation_y_org, quality);
     int const x_step = 1<<x_step_l2;
index 1501afcbecb91699ac83b4c227033a5adebe11ba..c099663fda72c519042ef66a9ca7aa98b19c4a0e 100644 (file)
@@ -65,6 +65,9 @@ inline static int _min2(const double a, const double b) {
 namespace NR {
 
 FilterSlot::FilterSlot(int slots, NRArenaItem const *item)
+    : filterquality(FILTER_QUALITY_BEST),
+      _last_out(-1),
+      _arena_item(item)
 {
     _slot_count = ((slots > 0) ? slots : 2);
     _slot = new NRPixBlock*[_slot_count];
@@ -74,10 +77,6 @@ FilterSlot::FilterSlot(int slots, NRArenaItem const *item)
         _slot[i] = NULL;
         _slot_number[i] = NR_FILTER_SLOT_NOT_SET;
     }
-
-    _last_out = -1;
-
-    _arena_item = item;
 }
 
 FilterSlot::~FilterSlot()
@@ -163,7 +162,11 @@ void FilterSlot::get_final(int slot_nr, NRPixBlock *result) {
     memset(NR_PIXBLOCK_PX(result), 0, size);
 
     if (fabs(trans[1]) > 1e-6 || fabs(trans[2]) > 1e-6) {
-        transform_bicubic(result, final_usr, trans);
+        if (filterquality == FILTER_QUALITY_BEST) {
+            transform_bicubic(result, final_usr, trans);
+        } else {
+            transform_nearest(result, final_usr, trans);
+        }
     } else if (fabs(trans[0] - 1) > 1e-6 || fabs(trans[3] - 1) > 1e-6) {
         scale_bicubic(result, final_usr);
     } else {
@@ -223,7 +226,11 @@ void FilterSlot::set(int slot_nr, NRPixBlock *pb)
                 g_warning("Memory allocation failed in NR::FilterSlot::set (transform)");
                 return;
             }
-            transform_bicubic(trans_pb, pb, trans);
+            if (filterquality == FILTER_QUALITY_BEST) {
+                transform_bicubic(trans_pb, pb, trans);
+            } else {
+                transform_nearest(trans_pb, pb, trans);
+            }
             nr_pixblock_release(pb);
             delete pb;
             pb = trans_pb;
@@ -338,6 +345,10 @@ void FilterSlot::set_units(FilterUnits const &units) {
     this->units = units;
 }
 
+void FilterSlot::set_quality(FilterQuality const q) {
+    filterquality = q;
+}
+
 }
 
 /*
index aaf22e513d7f11607f7586178bfe12015148e4a8..b566be10e7ee28d8e03fd6023c6a1ea670a22b3b 100644 (file)
@@ -15,6 +15,7 @@
  */
 
 #include "libnr/nr-pixblock.h"
+#include "display/nr-filter-types.h"
 #include "display/nr-filter-units.h"
 
 struct NRArenaItem;
@@ -72,6 +73,9 @@ public:
     /** Sets the unit system to be used for the internal images. */
     void set_units(FilterUnits const &units);
 
+    /** Sets the filtering quality. Affects used interpolation methods */
+    void set_quality(FilterQuality const q);
+
 private:
     NRPixBlock **_slot;
     int *_slot_number;
@@ -79,6 +83,8 @@ private:
 
     int _last_out;
 
+    FilterQuality filterquality;
+
     NRArenaItem const *_arena_item;
 
     FilterUnits units;
index ee24840cf7def8ea5b83d80f5dfa8d52a0fda74b..a54bfa6700d31bf184db0f2da7d5cecfae412e4e 100644 (file)
@@ -37,6 +37,14 @@ enum FilterSlotType {
 /* Unnamed slot is for NR::FilterSlot internal use. Passing it as
  * parameter to NR::FilterSlot accessors may have unforeseen consequences. */
 
+enum FilterQuality {
+    FILTER_QUALITY_BEST = 2,
+    FILTER_QUALITY_BETTER = 1,
+    FILTER_QUALITY_NORMAL = 0,
+    FILTER_QUALITY_WORSE = -1,
+    FILTER_QUALITY_WORST = -2
+};
+
 } /* namespace NR */
 
 #endif // __NR_FILTER_TYPES_H__
index 8930a74dfb5171b09996d3101078def85e4d5d92..31aec0748d0862a0d0b617c0f434c483824e8714 100644 (file)
@@ -46,6 +46,8 @@
 #include "libnr/nr-scale.h"
 #include "svg/svg-length.h"
 #include "sp-filter-units.h"
+#include "preferences.h"
+
 #if defined (SOLARIS) && (SOLARIS == 8)
 #include "round.h"
 using Inkscape::round;
@@ -111,8 +113,12 @@ int Filter::render(NRArenaItem const *item, NRPixBlock *pb)
        return 1; 
     }
 
-    Matrix trans = item->ctm;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    FilterQuality const filterquality = (FilterQuality)prefs->getInt("/options/filterquality/value");
+
+    Geom::Matrix trans = item->ctm;
     FilterSlot slot(_slot_count, item);
+    slot.set_quality(filterquality);
 
     Geom::Rect item_bbox;
     if (item->item_bbox) {
@@ -130,7 +136,7 @@ int Filter::render(NRArenaItem const *item, NRPixBlock *pb)
     }
 
     Geom::Rect filter_area = filter_effect_area(item_bbox);
-    if (item_bbox.isEmpty()) {
+    if (item_bbox.area() == 0.0) {
         // It's no use to try and filter an empty object.
         return 1;
     }
@@ -152,18 +158,19 @@ int Filter::render(NRArenaItem const *item, NRPixBlock *pb)
         units.set_automatic_resolution(false);
         units.set_resolution(_x_pixels, y_len);
     } else {
-        Point origo = filter_area.min();
+        Geom::Point origo = filter_area.min();
         origo *= trans;
-        Point max_i(filter_area.max()[X], filter_area.min()[Y]);
+        Geom::Point max_i(filter_area.max()[X], filter_area.min()[Y]);
         max_i *= trans;
-        Point max_j(filter_area.min()[X], filter_area.max()[Y]);
+        Geom::Point max_j(filter_area.min()[X], filter_area.max()[Y]);
         max_j *= trans;
         double i_len = sqrt((origo[X] - max_i[X]) * (origo[X] - max_i[X])
                             + (origo[Y] - max_i[Y]) * (origo[Y] - max_i[Y]));
         double j_len = sqrt((origo[X] - max_j[X]) * (origo[X] - max_j[X])
                             + (origo[Y] - max_j[Y]) * (origo[Y] - max_j[Y]));
         units.set_automatic_resolution(true);
-        units.set_resolution(i_len, j_len);
+        double const divisor = _resolution_divisor(filterquality);
+        units.set_resolution(i_len / divisor, j_len / divisor);
     }
 
     units.set_paraller(false);
@@ -211,7 +218,7 @@ int Filter::render(NRArenaItem const *item, NRPixBlock *pb)
     return 0;
 }
 
-void Filter::area_enlarge(NRRectL &bbox, Matrix const &m) {
+void Filter::area_enlarge(NRRectL &bbox, Geom::Matrix const &m) {
     for (int i = 0 ; i < _primitive_count ; i++) {
         if (_primitive[i]) _primitive[i]->area_enlarge(bbox, m);
     }
@@ -238,7 +245,7 @@ void Filter::bbox_enlarge(NRRectL &bbox) {
 
 Geom::Rect Filter::filter_effect_area(Geom::Rect const &bbox)
 {
-    Point minp, maxp;
+    Geom::Point minp, maxp;
     double len_x = bbox.max()[X] - bbox.min()[X];
     double len_y = bbox.max()[Y] - bbox.min()[Y];
     /* TODO: fetch somehow the object ex and em lengths */
@@ -432,6 +439,26 @@ void Filter::reset_resolution() {
     _y_pixels = -1;
 }
 
+double Filter::_resolution_divisor(FilterQuality const quality) const {
+    double divisor = 1;
+    switch (quality) {
+        case FILTER_QUALITY_WORST:
+            divisor = 8;
+            break;
+        case FILTER_QUALITY_WORSE:
+            divisor = 4;
+            break;
+        case FILTER_QUALITY_NORMAL:
+            divisor = 2;
+            break;
+        case FILTER_QUALITY_BETTER:
+        case FILTER_QUALITY_BEST:
+        default:
+            break;
+    }
+    return divisor;
+}
+
 } /* namespace NR */
 
 /*
index 1dbdfd1efc97e5b5851d6cfe75fa38cfff8dfbad..ae3857c65146deebcf79749845fbbcb020dff9a4 100644 (file)
@@ -144,7 +144,7 @@ public:
      * to be rendered so that after filtering, the original area is
      * drawn correctly.
      */
-    void area_enlarge(NRRectL &area, Matrix const &m);
+    void area_enlarge(NRRectL &area, Geom::Matrix const &m);
     /**
      * Given an object bounding box, this function enlarges it so that
      * it contains the filter effect area.
@@ -198,6 +198,7 @@ private:
     void _create_constructor_table();
     void _enlarge_primitive_table();
     void _common_init();
+    double _resolution_divisor(FilterQuality const quality) const;
 };
 
 
index 28d29b59c6aebe8079c29a54506908720321d2a4..02c9a9ea218a1469affa99e2a0d4d0c122b117d5 100644 (file)
@@ -91,11 +91,17 @@ SvgFont::scaled_font_init (cairo_scaled_font_t  *scaled_font,
   return CAIRO_STATUS_SUCCESS;
 }
 
-unsigned int compare_them(char* s1, char* s2){
-       unsigned int p=0;
-       while((s1[p] == s2[p]) && s1[p] != '\0' && s2[p] != '\0') p++;
-       if (s1[p]=='\0') return p;
-       else return 0;
+unsigned int size_of_substring(gchar* substring, gchar* str){
+       const gchar* original_substring = substring;
+
+       while((g_utf8_get_char(substring)==g_utf8_get_char(str)) && g_utf8_get_char(substring) != 0 && g_utf8_get_char(str) != 0){
+               substring = g_utf8_next_char(substring);
+               str = g_utf8_next_char(str);
+       }
+       if (g_utf8_get_char(substring)==0)
+               return substring - original_substring;
+       else
+               return 0;
 }
 
 cairo_status_t
@@ -115,15 +121,31 @@ SvgFont::scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font,
 
     unsigned long i;
     int count = 0;
-    char* _utf8 = (char*) utf8;
+    gchar* _utf8 = (gchar*) utf8;
     unsigned int len;
 
-    //First we findout whats the worst case number of glyphs.
-    while(_utf8[0] != '\0'){
-       _utf8++;
-       count++;
+    bool missing;
+    //First we findout whats the number of glyphs needed.
+    while(g_utf8_get_char(_utf8) != 0){
+       missing = true;
+       for (i=0; i < (unsigned long) this->glyphs.size(); i++){
+            if ( (len = size_of_substring(this->glyphs[i]->unicode, _utf8)) ){
+               //TODO: store this cluster
+               _utf8+=len;
+               count++;
+               missing=false;
+               break;
+           }
+       }
+       if (missing){
+               //TODO: store this cluster
+               _utf8++;
+               count++;
+       }
     }
 
+//g_warning("count is %d", count);
+
     //We use that info to allocate memory for the glyphs
     *glyphs = (cairo_glyph_t*) malloc(count*sizeof(cairo_glyph_t));
 
@@ -134,10 +156,10 @@ SvgFont::scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font,
     double x=0, y=0;//These vars store the position of the glyph within the rendered string
     bool is_horizontal_text = true; //TODO
     _utf8 = (char*) utf8;
-    while(_utf8[0] != '\0'){
+    while(g_utf8_get_char(_utf8) != 0){
        len = 0;
         for (i=0; i < (unsigned long) this->glyphs.size(); i++){
-            if ( (len = compare_them(this->glyphs[i]->unicode, _utf8)) ){
+            if ( (len = size_of_substring(this->glyphs[i]->unicode, _utf8)) ){
                //check whether is there a glyph declared on the SVG document
                // that matches with the text string in its current position
                for(SPObject* node = this->font->children;previous_unicode && node;node=node->next){
@@ -167,7 +189,7 @@ SvgFont::scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font,
                //advance glyph coordinates:
                if (is_horizontal_text) x++;
                else y++;
-                _utf8+=len; //advance 'len' chars in our string pointer
+                _utf8+=len; //advance 'len' bytes in our string pointer
                //continue;
                goto dirty;
             }
@@ -180,7 +202,7 @@ dirty:
                //advance glyph coordinates:
                if (is_horizontal_text) x++;
                else y++;
-               _utf8++; //advance 1 char in our string pointer
+               _utf8 = g_utf8_next_char(_utf8); //advance 1 char in our string pointer
        }
     }
     *num_glyphs = count;
index d82e392387e435d45a5b3cef1d68d542e40717d5..53dd6c62c50c8f82ca52d755447cacb3278aed5a 100644 (file)
@@ -35,7 +35,7 @@
 #include <libnr/nr-matrix-fns.h>
 #include <libnr/nr-matrix-ops.h>
 #include <libnr/nr-convex-hull.h>
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "inkscape.h"
 #include "sodipodi-ctrlrect.h"
 #if ENABLE_LCMS
@@ -45,6 +45,8 @@
 #include "libnr/nr-blit.h"
 #include "display/inkscape-cairo.h"
 #include "debug/gdk-event-latency-tracker.h"
+#include "desktop.h"
+#include "sp-namedview.h"
 
 using Inkscape::Debug::GdkEventLatencyTracker;
 
@@ -945,6 +947,10 @@ static void sp_canvas_dirty_rect(SPCanvas* canvas, int nl, int nt, int nr, int n
 static void sp_canvas_mark_rect(SPCanvas* canvas, int nl, int nt, int nr, int nb, uint8_t val);
 static int do_update (SPCanvas *canvas);
 
+static gboolean sp_canvas_snap_watchdog_callback(gpointer data); 
+static void sp_canvas_snap_watchdog_set(SPCanvas *canvas, GdkEventMotion *event); 
+static void sp_canvas_snap_watchdog_kill(SPCanvas *canvas);
+
 /**
  * Registers the SPCanvas class if necessary, and returns the type ID
  * associated to it.
@@ -1042,6 +1048,8 @@ sp_canvas_init (SPCanvas *canvas)
 
     canvas->is_scrolling = false;
 
+    canvas->watchdog_id = 0;
+    canvas->watchdog_event = NULL;
 }
 
 /**
@@ -1106,7 +1114,7 @@ static void track_latency(GdkEvent const *event) {
     GdkEventLatencyTracker &tracker = GdkEventLatencyTracker::default_tracker();
     boost::optional<double> latency = tracker.process(event);
     if (latency && *latency > 2.0) {
-        g_warning("Event latency reached %f sec (%1.4f)", *latency, tracker.getSkew());
+        //g_warning("Event latency reached %f sec (%1.4f)", *latency, tracker.getSkew());
     }
 }
 
@@ -1157,7 +1165,8 @@ sp_canvas_realize (GtkWidget *widget)
     widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
     gdk_window_set_user_data (widget->window, widget);
 
-    if ( prefs_get_int_attribute ("options.useextinput", "value", 1) )
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if ( prefs->getBool("/options/useextinput/value", true) )
         gtk_widget_set_events(widget, attributes.event_mask);
 
     widget->style = gtk_style_attach (widget->style, widget->window);
@@ -1574,7 +1583,10 @@ static inline void request_motions(GdkWindow *w, GdkEventMotion *event) {
 static int
 sp_canvas_motion (GtkWidget *widget, GdkEventMotion *event)
 {
-    int status;
+    static guint32 prev_time;
+       static boost::optional<Geom::Point> prev_pos;
+       
+       int status;
     SPCanvas *canvas = SP_CANVAS (widget);
 
     track_latency((GdkEvent *)event);
@@ -1584,7 +1596,52 @@ sp_canvas_motion (GtkWidget *widget, GdkEventMotion *event)
 
     if (canvas->pixmap_gc == NULL) // canvas being deleted
         return FALSE;
-
+    
+    // Snap when speed drops below e.g. 0.1 px/msec, or when no motion events have occured for 100 msec.
+       // i.e. snap when we're at stand still. The speed threshold enforces snapping for tablets, which will never
+       // be full at stand still and might keep spitting out motion events.
+    
+    // When moving at speeds around the speed limit, Inkscape might snap for one motion event but not for the 
+    // next, which will make the object that's being dragged jump from the snapped position to the mouse 
+    // position and back again. That could be annoying, but I don't see an easy way around this. 
+
+    if (event->type == GDK_MOTION_NOTIFY) {            
+       Geom::Point event_pos(event->x, event->y);
+       guint32 event_t = gdk_event_get_time ( (GdkEvent *) event );
+               
+       sp_canvas_snap_watchdog_kill(canvas);
+       SPDesktop *dt = SP_ACTIVE_DESKTOP;
+       
+       if (prev_pos) {
+               Geom::Coord dist = Geom::L2(event_pos - *prev_pos);
+               guint32 delta_t = event_t - prev_time;
+               gdouble speed = delta_t > 0 ? dist/delta_t : 1000;
+               // std::cout << "speed = " << speed << " px/msec " << "| time passed = " << delta_t << " msec" << std::endl;
+               if (speed < 0.1) {
+                               if (dt) {
+                                       dt->namedview->snap_manager.snapprefs.setSnapPostponedGlobally(false);
+                               }
+                       } else {
+                               // We're moving fast, so postpone any snapping until the next GDK_MOTION_NOTIFY event. 
+                               if (dt) {
+                                       dt->namedview->snap_manager.snapprefs.setSnapPostponedGlobally(true);
+                               }
+                               // We must snap at some point in time though, so set a watchdog timer at 100 msec from
+                               // now, just in case there's no future motion event that's under the speed limit.
+                               sp_canvas_snap_watchdog_set(canvas, event);
+                       }
+               } else {
+                       // This is the first GDK_MOTION_NOTIFY event, so postpone snapping and set the watchdog
+                       if (dt) {
+                               dt->namedview->snap_manager.snapprefs.setSnapPostponedGlobally(true);
+                       }
+                       sp_canvas_snap_watchdog_set(canvas, event);
+               }
+                       
+       prev_pos = event_pos;
+       prev_time = event_t;
+    }
+    
     canvas->state = event->state;
     pick_current_item (canvas, (GdkEvent *) event);
 
@@ -1597,6 +1654,43 @@ sp_canvas_motion (GtkWidget *widget, GdkEventMotion *event)
     return status;
 }
 
+gboolean sp_canvas_snap_watchdog_callback(gpointer data) 
+{
+       SPDesktop *dt = SP_ACTIVE_DESKTOP;
+       if (dt) {
+               dt->namedview->snap_manager.snapprefs.setSnapPostponedGlobally(false);
+       }
+       
+       SPCanvas *canvas = reinterpret_cast<SPCanvas *>(data);
+       emit_event(canvas, canvas->watchdog_event);
+       gdk_event_free(canvas->watchdog_event);
+       canvas->watchdog_event = NULL;
+       canvas->watchdog_id = 0;
+    
+       return FALSE;
+}
+
+void sp_canvas_snap_watchdog_set(SPCanvas *canvas, GdkEventMotion *event) 
+{
+       g_assert(canvas->watchdog_id == 0);
+       canvas->watchdog_id = g_timeout_add(100, &sp_canvas_snap_watchdog_callback, canvas);
+       g_assert(canvas->watchdog_event == NULL);
+       canvas->watchdog_event = gdk_event_copy( (GdkEvent *) event); 
+}
+
+void sp_canvas_snap_watchdog_kill(SPCanvas *canvas) 
+{
+       if (canvas->watchdog_id) { 
+        g_source_remove(canvas->watchdog_id); // Kill the watchdog
+        canvas->watchdog_id = 0;
+    }
+       
+       if (canvas->watchdog_event) {
+               gdk_event_free(canvas->watchdog_event);
+               canvas->watchdog_event = NULL;
+       }
+}
+       
 static void
 sp_canvas_paint_single_buffer (SPCanvas *canvas, int x0, int y0, int x1, int y1, int draw_x1, int draw_y1, int draw_x2, int draw_y2, int sw)
 {
@@ -1635,7 +1729,8 @@ sp_canvas_paint_single_buffer (SPCanvas *canvas, int x0, int y0, int x1, int y1,
 
 #if ENABLE_LCMS
     cmsHTRANSFORM transf = 0;
-    long long int fromDisplay = prefs_get_int_attribute_limited( "options.displayprofile", "from_display", 0, 0, 1 );
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool fromDisplay = prefs->getBool( "/options/displayprofile/from_display");
     if ( fromDisplay ) {
         transf = Inkscape::colorprofile_get_display_per( canvas->cms_key ? *(canvas->cms_key) : "" );
     } else {
index 60bda581825c7aa94017cee1279bd891c9934a92..8b0958ca5157f6259d1f9cfbd64179c8c831d3b1 100644 (file)
@@ -75,7 +75,7 @@ struct SPCanvasItem : public GtkObject {
     SPCanvasItem *parent;
 
     double x1, y1, x2, y2;
-    NR::Rect bounds;
+    Geom::Rect bounds;
     Geom::Matrix xform;
 };
 
@@ -193,6 +193,9 @@ struct SPCanvas {
 
     Geom::Rect getViewbox() const;
     NR::IRect getViewboxIntegers() const;
+    
+    guint watchdog_id;
+    GdkEvent *watchdog_event;
 };
 
 GtkWidget *sp_canvas_new_aa();
index 31766c3c277bd5dce1b8d8ca84bd37611a9b732d..b307684e5bb04af6f1835fee97f61e36ec389739 100644 (file)
@@ -97,7 +97,7 @@ sp_ctrlquadr_render (SPCanvasItem *item, SPCanvasBuf *buf)
 {
     SPCtrlQuadr *cq = SP_CTRLQUADR (item);
 
-    //NR::Rect area (NR::Point(buf->rect.x0, buf->rect.y0), NR::Point(buf->rect.x1, buf->rect.y1));
+    //Geom::Rect area (Geom::Point(buf->rect.x0, buf->rect.y0), Geom::Point(buf->rect.x1, buf->rect.y1));
 
     if (!buf->ct)
         return;
index b27d8d1cbbdaa7e6ad69b577514fcdfbc8ee0bdc..28a2be9a168d20014fd46d1c1b1300f57524ad82 100644 (file)
@@ -52,7 +52,7 @@
 #include "document-private.h"
 #include "dir-util.h"
 #include "unit-constants.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "libavoid/router.h"
 #include "sp-item-group.h"
 #include "profile-manager.h"
@@ -258,6 +258,7 @@ sp_document_create(Inkscape::XML::Document *rdoc,
     SPDocument *document;
     Inkscape::XML::Node *rroot;
     Inkscape::Version sodipodi_version;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     rroot = rdoc->root();
 
@@ -313,18 +314,38 @@ sp_document_create(Inkscape::XML::Document *rdoc,
     // creating namedview
     if (!sp_item_group_get_child_by_name((SPGroup *) document->root, NULL, "sodipodi:namedview")) {
         // if there's none in the document already,
-        Inkscape::XML::Node *r = NULL;
         Inkscape::XML::Node *rnew = NULL;
-        r = inkscape_get_repr(INKSCAPE, "template.base");
-        // see if there's a template with id="base" in the preferences
-        if (!r) {
-            // if there's none, create an empty element
-            rnew = rdoc->createElement("sodipodi:namedview");
-            rnew->setAttribute("id", "base");
-        } else {
-            // otherwise, take from preferences
-            rnew = r->duplicate(rroot->document());
+        
+        rnew = rdoc->createElement("sodipodi:namedview");
+        //rnew->setAttribute("id", "base");
+
+        // Add namedview data from the preferences
+        // we can't use getAllEntries because this could produce non-SVG doubles
+        Glib::ustring pagecolor = prefs->getString("/template/base/pagecolor");
+        if (!pagecolor.empty()) {
+            rnew->setAttribute("pagecolor", pagecolor.data());
+        }
+        Glib::ustring bordercolor = prefs->getString("/template/base/pagecolor");
+        if (!bordercolor.empty()) {
+            rnew->setAttribute("bordercolor", bordercolor.data());
         }
+        sp_repr_set_svg_double(rnew, "borderopacity",
+            prefs->getDouble("/template/base/borderopacity", 1.0));
+        sp_repr_set_svg_double(rnew, "objecttolerance",
+            prefs->getDouble("/template/base/objecttolerance", 10.0));
+        sp_repr_set_svg_double(rnew, "gridtolerance",
+            prefs->getDouble("/template/base/gridtolerance", 10.0));
+        sp_repr_set_svg_double(rnew, "guidetolerance",
+            prefs->getDouble("/template/base/guidetolerance", 10.0));
+        sp_repr_set_svg_double(rnew, "inkscape:pageopacity",
+            prefs->getDouble("/template/base/inkscape:pageopacity", 0.0));
+        sp_repr_set_int(rnew, "inkscape:pageshadow",
+            prefs->getInt("/template/base/inkscape:pageshadow", 2));
+        sp_repr_set_int(rnew, "inkscape:window-width",
+            prefs->getInt("/template/base/inkscape:window-width", 640));
+        sp_repr_set_int(rnew, "inkscape:window-height",
+            prefs->getInt("/template/base/inkscape:window-height", 480));
+        
         // insert into the document
         rroot->addChild(rnew, NULL);
         // clean up
@@ -931,8 +952,8 @@ sp_document_item_from_list_at_point_bottom(unsigned int dkey, SPGroup *group, GS
                                            Geom::Point const p, bool take_insensitive)
 {
     g_return_val_if_fail(group, NULL);
-
-    gdouble delta = prefs_get_double_attribute ("options.cursortolerance", "value", 1.0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0);
 
     for (SPObject *o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) {
 
@@ -968,8 +989,8 @@ SPItem*
 find_item_at_point(unsigned int dkey, SPGroup *group, Geom::Point const p, gboolean into_groups, bool take_insensitive = false, SPItem *upto = NULL)
 {
     SPItem *seen = NULL, *newseen = NULL;
-
-    gdouble delta = prefs_get_double_attribute ("options.cursortolerance", "value", 1.0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0);
 
     for (SPObject *o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) {
         if (!SP_IS_ITEM(o)) continue;
@@ -1010,8 +1031,8 @@ SPItem*
 find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Point const p)
 {
     SPItem *seen = NULL;
-
-    gdouble delta = prefs_get_double_attribute ("options.cursortolerance", "value", 1.0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0);
 
     for (SPObject *o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) {
         if (!SP_IS_ITEM(o)) continue;
@@ -1068,12 +1089,13 @@ GSList *
 sp_document_items_at_points(SPDocument *document, unsigned const key, std::vector<Geom::Point> points)
 {
     GSList *items = NULL;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     // When picking along the path, we don't want small objects close together
     // (such as hatching strokes) to obscure each other by their deltas,
     // so we temporarily set delta to a small value
-    gdouble saved_delta = prefs_get_double_attribute ("options.cursortolerance", "value", 1.0);
-    prefs_set_double_attribute ("options.cursortolerance", "value", 0.25);
+    gdouble saved_delta = prefs->getDouble("/options/cursortolerance/value", 1.0);
+    prefs->setDouble("/options/cursortolerance/value", 0.25);
 
     for(unsigned int i = 0; i < points.size(); i++) {
         SPItem *item = sp_document_item_at_point(document, key, points[i],
@@ -1083,7 +1105,7 @@ sp_document_items_at_points(SPDocument *document, unsigned const key, std::vecto
     }
 
     // and now we restore it back
-    prefs_set_double_attribute ("options.cursortolerance", "value", saved_delta);
+    prefs->setDouble("/options/cursortolerance/value", saved_delta);
 
     return items;
 }
index 363ea0b6ea095e6383042fb4038c12a31e480a16..f4abd596e4f30c45e8654c3923133d4efaeaf057 100644 (file)
@@ -25,7 +25,7 @@
  * Creates an anchor object and initializes it.
  */
 SPDrawAnchor *
-sp_draw_anchor_new(SPDrawContext *dc, SPCurve *curve, gboolean start, NR::Point delta)
+sp_draw_anchor_new(SPDrawContext *dc, SPCurve *curve, gboolean start, Geom::Point delta)
 {
     if (SP_IS_LPETOOL_CONTEXT(dc)) {
         // suppress all kinds of anchors in LPEToolContext
@@ -78,7 +78,7 @@ sp_draw_anchor_destroy(SPDrawAnchor *anchor)
  * pointer to it or NULL.
  */
 SPDrawAnchor *
-sp_draw_anchor_test(SPDrawAnchor *anchor, NR::Point w, gboolean activate)
+sp_draw_anchor_test(SPDrawAnchor *anchor, Geom::Point w, gboolean activate)
 {
     SPDesktop *dt = SP_EVENT_CONTEXT_DESKTOP(anchor->dc);
 
index 1036a5472d85b9e35099d2babe2cea8f84e7a6ca..0277616846a450278e7ad12b10e4838a773f497e 100644 (file)
@@ -6,8 +6,8 @@
  */
 
 #include <glib/gtypes.h>
+#include <2geom/point.h>
 
-#include "libnr/nr-point.h"
 struct SPDrawContext;
 struct SPCurve;
 struct SPCanvasItem;
@@ -19,15 +19,15 @@ struct SPDrawAnchor {
     SPCurve *curve;
     guint start : 1;
     guint active : 1;
-    NR::Point dp;
+    Geom::Point dp;
     SPCanvasItem *ctrl;
 };
 
 
 SPDrawAnchor *sp_draw_anchor_new(SPDrawContext *dc, SPCurve *curve, gboolean start,
-                                 NR::Point delta);
+                                 Geom::Point delta);
 SPDrawAnchor *sp_draw_anchor_destroy(SPDrawAnchor *anchor);
-SPDrawAnchor *sp_draw_anchor_test(SPDrawAnchor *anchor, NR::Point w, gboolean activate);
+SPDrawAnchor *sp_draw_anchor_test(SPDrawAnchor *anchor, Geom::Point w, gboolean activate);
 
 
 #endif /* !SEEN_DRAW_ANCHOR_H */
index d21ee5ffec156f834542e223b7f408c18a02a95f..d1124b75ab497e8ab1cc16ffa7f47f512b8a9d0b 100644 (file)
@@ -35,7 +35,7 @@
 #include "message-stack.h"
 #include "pen-context.h"
 #include "lpe-tool-context.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "selection.h"
 #include "selection-chemistry.h"
 #include "snap.h"
@@ -49,7 +49,7 @@ static void sp_draw_context_init(SPDrawContext *dc);
 static void sp_draw_context_dispose(GObject *object);
 
 static void sp_draw_context_setup(SPEventContext *ec);
-static void sp_draw_context_set(SPEventContext *ec, gchar const *key, gchar const *value);
+static void sp_draw_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val);
 static void sp_draw_context_finish(SPEventContext *ec);
 
 static gint sp_draw_context_root_handler(SPEventContext *event_context, GdkEvent *event);
@@ -225,7 +225,7 @@ sp_draw_context_finish(SPEventContext *ec)
 }
 
 static void
-sp_draw_context_set(SPEventContext */*ec*/, const gchar */*key*/, const gchar */*value*/)
+sp_draw_context_set(SPEventContext */*ec*/, Inkscape::Preferences::Entry */*val*/)
 {
 }
 
@@ -263,12 +263,12 @@ sp_draw_context_root_handler(SPEventContext *ec, GdkEvent *event)
     return ret;
 }
 
-static char const *
+static Glib::ustring const
 tool_name(SPDrawContext *dc)
 {
     return ( SP_IS_PEN_CONTEXT(dc)
-             ? "tools.freehand.pen"
-             : "tools.freehand.pencil" );
+             ? "/tools/freehand/pen"
+             : "/tools/freehand/pencil" );
 }
 
 static void
@@ -292,13 +292,14 @@ void
 spdc_check_for_and_apply_waiting_LPE(SPDrawContext *dc, SPItem *item)
 {
     using namespace Inkscape::LivePathEffect;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     if (item && SP_IS_LPE_ITEM(item)) {
-        if (prefs_get_int_attribute(tool_name(dc), "freehand-mode", 0) == 1) {
+        if (prefs->getBool(tool_name(dc) + "/freehand-mode", 0) == 1) {
             Effect::createAndApply(SPIRO, dc->desktop->doc(), item);
         }
 
-        int shape = prefs_get_int_attribute(tool_name(dc), "shape", 0);
+        int shape = prefs->getInt(tool_name(dc) + "/shape", 0);
         bool shape_applied = false;
         SPCSSAttr *css_item = sp_css_attr_from_object (SP_OBJECT(item), SP_STYLE_FLAG_ALWAYS);
         const char *cstroke = sp_repr_css_property(css_item, "stroke", "none");
@@ -469,7 +470,8 @@ spdc_attach_selection(SPDrawContext *dc, Inkscape::Selection */*sel*/)
 void spdc_endpoint_snap_rotation(SPEventContext const *const ec, Geom::Point &p, Geom::Point const &o,
                                  guint state)
 {
-    unsigned const snaps = abs(prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12));
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    unsigned const snaps = abs(prefs->getInt("/options/rotationsnapsperpi/value", 12));
     /* 0 means no snapping. */
 
     /* mirrored by fabs, so this corresponds to 15 degrees */
@@ -484,8 +486,8 @@ void spdc_endpoint_snap_rotation(SPEventContext const *const ec, Geom::Point &p,
 
     for (unsigned i = 0; i < snaps; i++) {
         double const ndot = fabs(dot(v,Geom::rot90(delta)));
-        Geom::Point t(r00*v[NR::X] + r01*v[NR::Y],
-                    r10*v[NR::X] + r11*v[NR::Y]);
+        Geom::Point t(r00*v[Geom::X] + r01*v[Geom::Y],
+                    r10*v[Geom::X] + r11*v[Geom::Y]);
         if (ndot < bn) {
             /* I think it is better numerically to use the normal, rather than the dot product
              * to assess solutions, but I haven't proven it. */
@@ -506,7 +508,7 @@ void spdc_endpoint_snap_rotation(SPEventContext const *const ec, Geom::Point &p,
             SnapManager &m = SP_EVENT_CONTEXT_DESKTOP(ec)->namedview->snap_manager;
             m.setup(SP_EVENT_CONTEXT_DESKTOP(ec));
             Geom::Point pt2g = to_2geom(p);
-            m.constrainedSnapReturnByRef( Inkscape::Snapper::SNAPPOINT_NODE, pt2g, Inkscape::Snapper::ConstraintLine(best));
+            m.constrainedSnapReturnByRef( Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g, Inkscape::Snapper::ConstraintLine(best));
             p = from_2geom(pt2g);
         }
     }
@@ -518,7 +520,7 @@ void spdc_endpoint_snap_free(SPEventContext const * const ec, Geom::Point& p, gu
     SnapManager &m = SP_EVENT_CONTEXT_DESKTOP(ec)->namedview->snap_manager;
     m.setup(SP_EVENT_CONTEXT_DESKTOP(ec));
     Geom::Point pt2g = to_2geom(p);
-    m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, pt2g);
+    m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g);
     p = from_2geom(pt2g);
 }
 
@@ -666,7 +668,7 @@ spdc_flush_white(SPDrawContext *dc, SPCurve *gc)
         } else {
             repr = xml_doc->createElement("svg:path");
             /* Set style */
-            sp_desktop_apply_style_tool(desktop, repr, tool_name(dc), false);
+            sp_desktop_apply_style_tool(desktop, repr, tool_name(dc).data(), false);
         }
 
         gchar *str = sp_svg_write_path( c->get_pathvector() );
@@ -794,7 +796,8 @@ spdc_free_colors(SPDrawContext *dc)
 
 /* Create a single dot represented by a circle */
 void spdc_create_single_dot(SPEventContext *ec, Geom::Point const &pt, char const *tool, guint event_state) {
-    g_return_if_fail(!strcmp(tool, "tools.freehand.pen") || !strcmp(tool, "tools.freehand.pencil"));
+    g_return_if_fail(!strcmp(tool, "/tools/freehand/pen") || !strcmp(tool, "/tools/freehand/pencil"));
+    Glib::ustring tool_path = tool;
 
     SPDesktop *desktop = SP_EVENT_CONTEXT_DESKTOP(ec);
     Inkscape::XML::Document *xml_doc = sp_document_repr_doc(desktop->doc());
@@ -825,9 +828,11 @@ void spdc_create_single_dot(SPEventContext *ec, Geom::Point const &pt, char cons
 
     /* put the circle where the mouse click occurred and set the diameter to the
        current stroke width, multiplied by the amount specified in the preferences */
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    
     Geom::Matrix const i2d (sp_item_i2d_affine (item));
     Geom::Point pp = pt * i2d;
-    double rad = 0.5 * prefs_get_double_attribute(tool, "dot-size", 3.0);
+    double rad = 0.5 * prefs->getDouble(tool_path + "/dot-size", 3.0);
     if (event_state & GDK_MOD1_MASK) {
         /* TODO: We vary the dot size between 0.5*rad and 1.5*rad, where rad is the dot size
            as specified in prefs. Very simple, but it might be sufficient in practice. If not,
@@ -840,8 +845,8 @@ void spdc_create_single_dot(SPEventContext *ec, Geom::Point const &pt, char cons
         rad *= 2;
     }
 
-    sp_repr_set_svg_double (repr, "sodipodi:cx", pp[NR::X]);
-    sp_repr_set_svg_double (repr, "sodipodi:cy", pp[NR::Y]);
+    sp_repr_set_svg_double (repr, "sodipodi:cx", pp[Geom::X]);
+    sp_repr_set_svg_double (repr, "sodipodi:cy", pp[Geom::Y]);
     sp_repr_set_svg_double (repr, "sodipodi:rx", rad * stroke_width);
     sp_repr_set_svg_double (repr, "sodipodi:ry", rad * stroke_width);
     item->updateRepr();
index 0e30acf1bd002581a4d8c9ea950aee3082bc4284..1f6842a5ca34236cd5304338b36188b28a572639 100644 (file)
@@ -30,7 +30,7 @@
 #include "color.h"
 #include "color-rgba.h"
 #include "desktop-style.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-namedview.h"
 #include "desktop.h"
 #include "desktop-handles.h"
@@ -114,11 +114,12 @@ static void sp_dropper_context_setup(SPEventContext *ec)
     sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(dc->area), 0x0000007f, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT);
     sp_canvas_item_hide(dc->area);
 
-    if (prefs_get_int_attribute("tools.dropper", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/dropper/selcue")) {
         ec->enableSelectionCue();
     }
 
-    if (prefs_get_int_attribute("tools.dropper", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/dropper/gradientdrag")) {
         ec->enableGrDrag();
     }
 }
@@ -142,10 +143,11 @@ static void sp_dropper_context_finish(SPEventContext *ec)
 guint32 sp_dropper_context_get_color(SPEventContext *ec)
 {
     SPDropperContext *dc = SP_DROPPER_CONTEXT(ec);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     
-    int pick = prefs_get_int_attribute("tools.dropper", "pick",
+    int pick = prefs->getInt("/tools/dropper/pick",
                                        SP_DROPPER_PICK_VISIBLE);
-    int setalpha = prefs_get_int_attribute("tools.dropper", "setalpha", 1);
+    bool setalpha = prefs->getBool("/tools/dropper/setalpha", true);
     
     return SP_RGBA32_F_COMPOSE(dc->R, dc->G, dc->B,
         (pick == SP_DROPPER_PICK_ACTUAL && setalpha) ? dc->alpha : 1.0);
@@ -157,9 +159,10 @@ static gint sp_dropper_context_root_handler(SPEventContext *event_context, GdkEv
     SPDropperContext *dc = (SPDropperContext *) event_context;
     int ret = FALSE;
     SPDesktop *desktop = event_context->desktop;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    int pick = prefs_get_int_attribute("tools.dropper", "pick", SP_DROPPER_PICK_VISIBLE);
-    int setalpha = prefs_get_int_attribute("tools.dropper", "setalpha", 1);
+    int pick = prefs->getInt("/tools/dropper/pick", SP_DROPPER_PICK_VISIBLE);
+    bool setalpha = prefs->getBool("/tools/dropper/setalpha", true);
 
     switch (event->type) {
        case GDK_BUTTON_PRESS:
index 2d4782f9b4cdf3733faa6de9fc5f651af3f6f554..e22520ecb7b493a549eb49dfb851d556d17e8555 100644 (file)
@@ -46,7 +46,7 @@
 #include "desktop-affine.h"
 #include "desktop-style.h"
 #include "message-context.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "pixmaps/cursor-calligraphy.xpm"
 #include "libnr/nr-matrix-ops.h"
 #include "libnr/nr-scale-translate-ops.h"
@@ -84,7 +84,7 @@ static void sp_dyna_draw_context_init(SPDynaDrawContext *ddc);
 static void sp_dyna_draw_context_dispose(GObject *object);
 
 static void sp_dyna_draw_context_setup(SPEventContext *ec);
-static void sp_dyna_draw_context_set(SPEventContext *ec, gchar const *key, gchar const *val);
+static void sp_dyna_draw_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *value);
 static gint sp_dyna_draw_context_root_handler(SPEventContext *ec, GdkEvent *event);
 
 static void clear_current(SPDynaDrawContext *dc);
@@ -236,27 +236,28 @@ sp_dyna_draw_context_setup(SPEventContext *ec)
     sp_event_context_read(ec, "cap_rounding");
 
     ddc->is_drawing = false;
-
     ddc->_message_context = new Inkscape::MessageContext((ec->desktop)->messageStack());
 
-    if (prefs_get_int_attribute("tools.calligraphic", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/calligraphic/selcue")) {
         ec->enableSelectionCue();
     }
 }
 
 static void
-sp_dyna_draw_context_set(SPEventContext *ec, gchar const *key, gchar const *val)
+sp_dyna_draw_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val)
 {
     SPDynaDrawContext *ddc = SP_DYNA_DRAW_CONTEXT(ec);
+    Glib::ustring path = val->getEntryName();
 
-    if (!strcmp(key, "tracebackground")) {
-        ddc->trace_bg = (val && strcmp(val, "0"));
-    } else if (!strcmp(key, "keep_selected")) {
-        ddc->keep_selected = (val && strcmp(val, "0"));
+    if (path == "tracebackground") {
+        ddc->trace_bg = val->getBool();
+    } else if (path == "keep_selected") {
+        ddc->keep_selected = val->getBool();
     } else {
         //pass on up to parent class to handle common attributes.
         if ( dd_parent_class->set ) {
-            dd_parent_class->set(ec, key, val);
+            dd_parent_class->set(ec, val);
         }
     }
 
@@ -337,7 +338,7 @@ sp_dyna_draw_apply(SPDynaDrawContext *dc, Geom::Point p)
     // This prevents flips, blobs, and jerks caused by microscopic tremor of the tablet pen,
     // especially bothersome at the start of the stroke where we don't yet have the inertia to
     // smooth them out.
-    if ( NR::L2(force) < DYNA_EPSILON || (dc->vel_max < DYNA_VEL_START && NR::L2(force) < DYNA_EPSILON_START)) {
+    if ( Geom::L2(force) < DYNA_EPSILON || (dc->vel_max < DYNA_VEL_START && Geom::L2(force) < DYNA_EPSILON_START)) {
         return FALSE;
     }
 
@@ -346,8 +347,8 @@ sp_dyna_draw_apply(SPDynaDrawContext *dc, Geom::Point p)
     /* Calculate new velocity */
     dc->vel += dc->acc;
 
-    if (NR::L2(dc->vel) > dc->vel_max)
-        dc->vel_max = NR::L2(dc->vel);
+    if (Geom::L2(dc->vel) > dc->vel_max)
+        dc->vel_max = Geom::L2(dc->vel);
 
     /* Calculate angle of drawing tool */
 
@@ -371,11 +372,11 @@ sp_dyna_draw_apply(SPDynaDrawContext *dc, Geom::Point p)
     }
 
     // 2. perpendicular to dc->vel (absolutely non-flat nib):
-    gdouble const mag_vel = NR::L2(dc->vel);
+    gdouble const mag_vel = Geom::L2(dc->vel);
     if ( mag_vel < DYNA_EPSILON ) {
         return FALSE;
     }
-    Geom::Point ang2 = NR::rot90(dc->vel) / mag_vel;
+    Geom::Point ang2 = Geom::rot90(dc->vel) / mag_vel;
 
     // 3. Average them using flatness parameter:
     // calculate angles
@@ -397,8 +398,8 @@ sp_dyna_draw_apply(SPDynaDrawContext *dc, Geom::Point p)
 
     // Try to detect a sudden flip when the new angle differs too much from the previous for the
     // current velocity; in that case discard this move
-    double angle_delta = NR::L2(Geom::Point (cos (new_ang), sin (new_ang)) - dc->ang);
-    if ( angle_delta / NR::L2(dc->vel) > 4000 ) {
+    double angle_delta = Geom::L2(Geom::Point (cos (new_ang), sin (new_ang)) - dc->ang);
+    if ( angle_delta / Geom::L2(dc->vel) > 4000 ) {
         return FALSE;
     }
 
@@ -437,8 +438,8 @@ sp_dyna_draw_brush(SPDynaDrawContext *dc)
     if (dc->trace_bg) {
         // pick single pixel
         NRPixBlock pb;
-        int x = (int) floor(brush_w[NR::X]);
-        int y = (int) floor(brush_w[NR::Y]);
+        int x = (int) floor(brush_w[Geom::X]);
+        int y = (int) floor(brush_w[Geom::Y]);
         nr_pixblock_setup_fast(&pb, NR_PIXBLOCK_MODE_R8G8B8A8P, x, y, x+1, y+1, TRUE);
         sp_canvas_arena_render_pixblock(SP_CANVAS_ARENA(sp_desktop_drawing(SP_EVENT_CONTEXT(dc)->desktop)), &pb);
         const unsigned char *s = NR_PIXBLOCK_PX(&pb);
@@ -453,7 +454,7 @@ sp_dyna_draw_brush(SPDynaDrawContext *dc)
         //g_print ("L %g thick %g\n", L, trace_thick);
     }
 
-    double width = (pressure_thick * trace_thick - vel_thin * NR::L2(dc->vel)) * dc->width;
+    double width = (pressure_thick * trace_thick - vel_thin * Geom::L2(dc->vel)) * dc->width;
 
     double tremble_left = 0, tremble_right = 0;
     if (dc->tremor > 0) {
@@ -473,8 +474,8 @@ sp_dyna_draw_brush(SPDynaDrawContext *dc)
         // (2) deflection depends on width, but is upped for small widths for better visual uniformity across widths;
         // (3) deflection somewhat depends on speed, to prevent fast strokes looking
         // comparatively smooth and slow ones excessively jittery
-        tremble_left  = (y1)*dc->tremor * (0.15 + 0.8*width) * (0.35 + 14*NR::L2(dc->vel));
-        tremble_right = (y2)*dc->tremor * (0.15 + 0.8*width) * (0.35 + 14*NR::L2(dc->vel));
+        tremble_left  = (y1)*dc->tremor * (0.15 + 0.8*width) * (0.35 + 14*Geom::L2(dc->vel));
+        tremble_right = (y2)*dc->tremor * (0.15 + 0.8*width) * (0.35 + 14*Geom::L2(dc->vel));
     }
 
     if ( width < 0.02 * dc->width ) {
@@ -644,11 +645,11 @@ sp_dyna_draw_context_root_handler(SPEventContext *event_context,
                     // mass recommended; with zero mass, jerks are still quite noticeable).
 
                     double speed = 1;
-                    if (NR::L2(dc->hatch_last_nearest) != 0) {
+                    if (Geom::L2(dc->hatch_last_nearest) != 0) {
                         // the distance nearest moved since the last motion event
-                        double nearest_moved = NR::L2(nearest - dc->hatch_last_nearest);
+                        double nearest_moved = Geom::L2(nearest - dc->hatch_last_nearest);
                         // the distance pointer moved since the last motion event
-                        double pointer_moved = NR::L2(pointer - dc->hatch_last_pointer);
+                        double pointer_moved = Geom::L2(pointer - dc->hatch_last_pointer);
                         // store them in stacks limited to SPEED_ELEMENTS
                         dc->hatch_nearest_past.push_front(nearest_moved);
                         if (dc->hatch_nearest_past.size() > SPEED_ELEMENTS)
@@ -686,7 +687,7 @@ sp_dyna_draw_context_root_handler(SPEventContext *event_context,
                         // summed, to detect if we accidentally flipped to the other side of the
                         // guide
                         double dot = NR::dot (pointer - nearest, dc->hatch_vector_accumulated);
-                        dot /= NR::L2(pointer - nearest) * NR::L2(dc->hatch_vector_accumulated);
+                        dot /= Geom::L2(pointer - nearest) * Geom::L2(dc->hatch_vector_accumulated);
 
                         if (dc->hatch_spacing != 0) { // spacing was already set
                             double target;
@@ -769,7 +770,7 @@ sp_dyna_draw_context_root_handler(SPEventContext *event_context,
                 } else {
                     // Not drawing but spacing set: gray, center snapped, fixed radius
                     Geom::Point c = (nearest + dc->hatch_spacing * hatch_unit_vector) * motion_to_curve.inverse();
-                    if (!IS_NAN(c[NR::X]) && !IS_NAN(c[NR::Y])) {
+                    if (!IS_NAN(c[Geom::X]) && !IS_NAN(c[Geom::Y])) {
                         NR::Matrix const sm (Geom::Scale(dc->hatch_spacing, dc->hatch_spacing) * Geom::Translate(c));
                         sp_canvas_item_affine_absolute(dc->hatch_area, sm);
                         sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(dc->hatch_area), 0x7f7f7fff, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT);
@@ -973,7 +974,7 @@ set_to_accumulated(SPDynaDrawContext *dc, bool unionize)
             Inkscape::XML::Node *repr = xml_doc->createElement("svg:path");
 
             /* Set style */
-            sp_desktop_apply_style_tool (desktop, repr, "tools.calligraphic", false);
+            sp_desktop_apply_style_tool (desktop, repr, "/tools/calligraphic", false);
 
             dc->repr = repr;
 
@@ -1014,11 +1015,11 @@ add_cap(SPCurve *curve,
         Geom::Point const &to, 
         double rounding)
 {
-    if (NR::L2( to - from ) > DYNA_EPSILON) {
+    if (Geom::L2( to - from ) > DYNA_EPSILON) {
         Geom::Point vel = rounding * NR::rot90( to - from ) / sqrt(2.0);
-        double mag = NR::L2(vel);
+        double mag = Geom::L2(vel);
 
-        Geom::Point v = mag * NR::rot90( to - from ) / NR::L2( to - from );
+        Geom::Point v = mag * NR::rot90( to - from ) / Geom::L2( to - from );
         curve->curveto(from + v, to + v, to);
     }
 }
@@ -1195,11 +1196,11 @@ fit_and_split(SPDynaDrawContext *dc, gboolean release)
             sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH (cbp), curve);
             curve->unref();
 
-            guint32 fillColor = sp_desktop_get_color_tool (desktop, "tools.calligraphic", true);
-            //guint32 strokeColor = sp_desktop_get_color_tool (desktop, "tools.calligraphic", false);
-            double opacity = sp_desktop_get_master_opacity_tool (desktop, "tools.calligraphic");
-            double fillOpacity = sp_desktop_get_opacity_tool (desktop, "tools.calligraphic", true);
-            //double strokeOpacity = sp_desktop_get_opacity_tool (desktop, "tools.calligraphic", false);
+            guint32 fillColor = sp_desktop_get_color_tool (desktop, "/tools/calligraphic", true);
+            //guint32 strokeColor = sp_desktop_get_color_tool (desktop, "/tools/calligraphic", false);
+            double opacity = sp_desktop_get_master_opacity_tool (desktop, "/tools/calligraphic");
+            double fillOpacity = sp_desktop_get_opacity_tool (desktop, "/tools/calligraphic", true);
+            //double strokeOpacity = sp_desktop_get_opacity_tool (desktop, "/tools/calligraphic", false);
             sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(cbp), ((fillColor & 0xffffff00) | SP_COLOR_F_TO_U(opacity*fillOpacity)), SP_WIND_RULE_EVENODD);
             //on second thougtht don't do stroke yet because we don't have stoke-width yet and because stoke appears between segments while drawing
             //sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(cbp), ((strokeColor & 0xffffff00) | SP_COLOR_F_TO_U(opacity*strokeOpacity)), 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT);
index d82d7ea89dbf40feaec0795da0df73044fd3c7bb..fab6f4dadefa326d16f1e034fcd0ddf241912ddf 100644 (file)
@@ -46,7 +46,7 @@
 #include "desktop-affine.h"
 #include "desktop-style.h"
 #include "message-context.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "pixmaps/cursor-eraser.xpm"
 #include "xml/repr.h"
 #include "context-fns.h"
@@ -84,7 +84,7 @@ static void sp_eraser_context_init(SPEraserContext *erc);
 static void sp_eraser_context_dispose(GObject *object);
 
 static void sp_eraser_context_setup(SPEventContext *ec);
-static void sp_eraser_context_set(SPEventContext *ec, gchar const *key, gchar const *val);
+static void sp_eraser_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val);
 static gint sp_eraser_context_root_handler(SPEventContext *ec, GdkEvent *event);
 
 static void clear_current(SPEraserContext *dc);
@@ -204,7 +204,8 @@ static ProfileFloatElement f_profile[PROFILE_FLOAT_SIZE] = {
 
     erc->_message_context = new Inkscape::MessageContext(desktop->messageStack());
 
-    if (prefs_get_int_attribute("tools.eraser", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/eraser/selcue", 0) != 0) {
         ec->enableSelectionCue();
     }
 // TODO temp force:
@@ -213,11 +214,11 @@ static ProfileFloatElement f_profile[PROFILE_FLOAT_SIZE] = {
 }
 
 static void
-sp_eraser_context_set(SPEventContext *ec, gchar const *key, gchar const *val)
+sp_eraser_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val)
 {
     //pass on up to parent class to handle common attributes.
     if ( eraser_parent_class->set ) {
-        eraser_parent_class->set(ec, key, val);
+        eraser_parent_class->set(ec, val);
     }
 }
 
@@ -295,7 +296,7 @@ sp_eraser_apply(SPEraserContext *dc, Geom::Point p)
     // This prevents flips, blobs, and jerks caused by microscopic tremor of the tablet pen,
     // especially bothersome at the start of the stroke where we don't yet have the inertia to
     // smooth them out.
-    if ( NR::L2(force) < ERASER_EPSILON || (dc->vel_max < ERASER_VEL_START && NR::L2(force) < ERASER_EPSILON_START)) {
+    if ( Geom::L2(force) < ERASER_EPSILON || (dc->vel_max < ERASER_VEL_START && Geom::L2(force) < ERASER_EPSILON_START)) {
         return FALSE;
     }
 
@@ -304,8 +305,8 @@ sp_eraser_apply(SPEraserContext *dc, Geom::Point p)
     /* Calculate new velocity */
     dc->vel += dc->acc;
 
-    if (NR::L2(dc->vel) > dc->vel_max)
-        dc->vel_max = NR::L2(dc->vel);
+    if (Geom::L2(dc->vel) > dc->vel_max)
+        dc->vel_max = Geom::L2(dc->vel);
 
     /* Calculate angle of drawing tool */
 
@@ -717,7 +718,7 @@ set_to_accumulated(SPEraserContext *dc)
             Inkscape::XML::Node *repr = xml_doc->createElement("svg:path");
 
             /* Set style */
-            sp_desktop_apply_style_tool (desktop, repr, "tools.eraser", false);
+            sp_desktop_apply_style_tool (desktop, repr, "/tools/eraser", false);
 
             dc->repr = repr;
 
@@ -735,7 +736,9 @@ set_to_accumulated(SPEraserContext *dc)
         if ( dc->repr ) {
             bool wasSelection = false;
             Inkscape::Selection *selection = sp_desktop_selection(desktop);
-            gint eraserMode = (prefs_get_int_attribute("tools.eraser", "mode", 0) != 0) ? 1 : 0;
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            
+            gint eraserMode = prefs->getBool("/tools/eraser/mode") ? 1 : 0;
             Inkscape::XML::Document *xml_doc = sp_document_repr_doc(desktop->doc());
 
             SPItem* acid = SP_ITEM(desktop->doc()->getObjectByRepr(dc->repr));
@@ -1001,7 +1004,8 @@ fit_and_split(SPEraserContext *dc, gboolean release)
         g_print("[%d]Yup\n", dc->npoints);
 #endif
         if (!release) {
-            gint eraserMode = (prefs_get_int_attribute("tools.eraser", "mode", 0) != 0) ? 1 : 0;
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            gint eraserMode = prefs->getBool("/tools/eraser/mode") ? 1 : 0;
             g_assert(!dc->currentcurve->is_empty());
 
             SPCanvasItem *cbp = sp_canvas_item_new(sp_desktop_sketch(desktop),
@@ -1011,11 +1015,11 @@ fit_and_split(SPEraserContext *dc, gboolean release)
             sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH (cbp), curve);
             curve->unref();
 
-            guint32 fillColor = sp_desktop_get_color_tool (desktop, "tools.eraser", true);
-            //guint32 strokeColor = sp_desktop_get_color_tool (desktop, "tools.eraser", false);
-            double opacity = sp_desktop_get_master_opacity_tool (desktop, "tools.eraser");
-            double fillOpacity = sp_desktop_get_opacity_tool (desktop, "tools.eraser", true);
-            //double strokeOpacity = sp_desktop_get_opacity_tool (desktop, "tools.eraser", false);
+            guint32 fillColor = sp_desktop_get_color_tool (desktop, "/tools/eraser", true);
+            //guint32 strokeColor = sp_desktop_get_color_tool (desktop, "/tools/eraser", false);
+            double opacity = sp_desktop_get_master_opacity_tool (desktop, "/tools/eraser");
+            double fillOpacity = sp_desktop_get_opacity_tool (desktop, "/tools/eraser", true);
+            //double strokeOpacity = sp_desktop_get_opacity_tool (desktop, "/tools/eraser", false);
             sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(cbp), ((fillColor & 0xffffff00) | SP_COLOR_F_TO_U(opacity*fillOpacity)), SP_WIND_RULE_EVENODD);
             //on second thougtht don't do stroke yet because we don't have stoke-width yet and because stoke appears between segments while drawing
             //sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(cbp), ((strokeColor & 0xffffff00) | SP_COLOR_F_TO_U(opacity*strokeOpacity)), 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT);
index e5f81a2b9d58ce02122f60437523161c6644eea7..be7b2e033ca546e629327b580c106c0f37bb4b0f 100644 (file)
@@ -48,7 +48,7 @@
 #include "interface.h"
 #include "macros.h"
 #include "tools-switch.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "message-context.h"
 #include "gradient-drag.h"
 #include "object-edit.h"
@@ -166,10 +166,8 @@ sp_event_context_dispose(GObject *object)
         ec->desktop = NULL;
     }
 
-    if (ec->prefs_repr) {
-        sp_repr_remove_listener_by_data(ec->prefs_repr, ec);
-        Inkscape::GC::release(ec->prefs_repr);
-        ec->prefs_repr = NULL;
+    if (ec->pref_observer) {
+        delete ec->pref_observer;
     }
 
     G_OBJECT_CLASS(parent_class)->dispose(object);
@@ -338,17 +336,19 @@ static gint sp_event_context_private_root_handler(SPEventContext *event_context,
     static unsigned int zoom_rb = 0;
 
     SPDesktop *desktop = event_context->desktop;
-
-    tolerance = prefs_get_int_attribute_limited(
-            "options.dragtolerance","value", 0, 0, 100);
-    double const zoom_inc = prefs_get_double_attribute_limited(
-            "options.zoomincrement", "value", M_SQRT2, 1.01, 10);
-    double const acceleration = prefs_get_double_attribute_limited(
-            "options.scrollingacceleration", "value", 0, 0, 6);
-    int const key_scroll = prefs_get_int_attribute_limited(
-            "options.keyscroll", "value", 10, 0, 1000);
-    int const wheel_scroll = prefs_get_int_attribute_limited(
-            "options.wheelscroll", "value", 40, 0, 1000);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+
+    /// @todo REmove redundant /value in preference keys
+    tolerance = prefs->getIntLimited(
+            "/options/dragtolerance/value", 0, 0, 100);
+    double const zoom_inc = prefs->getDoubleLimited(
+            "/options/zoomincrement/value", M_SQRT2, 1.01, 10);
+    double const acceleration = prefs->getDoubleLimited(
+            "/options/scrollingacceleration/value", 0, 0, 6);
+    int const key_scroll = prefs->getIntLimited(
+            "/options/keyscroll/value", 10, 0, 1000);
+    int const wheel_scroll = prefs->getIntLimited(
+            "/options/wheelscroll/value", 40, 0, 1000);
 
     gint ret = FALSE;
 
@@ -603,7 +603,7 @@ static gint sp_event_context_private_root_handler(SPEventContext *event_context,
                     }
                     break;
                 case GDK_space:
-                    if (prefs_get_int_attribute("options.spacepans","value", 0) == 1) {
+                    if (prefs->getBool("/options/spacepans/value")) {
                         event_context->space_panning = true;
                         event_context->_message_context->set(Inkscape::INFORMATION_MESSAGE, _("<b>Space+mouse drag</b> to pan canvas"));
                         ret= TRUE;
@@ -652,7 +652,7 @@ static gint sp_event_context_private_root_handler(SPEventContext *event_context,
         case GDK_SCROLL:
         {
             bool ctrl = (event->scroll.state & GDK_CONTROL_MASK);
-            bool wheelzooms = (prefs_get_int_attribute("options.wheelzooms","value", 0) == 1);
+            bool wheelzooms = prefs->getBool("/options/wheelzooms/value");
             /* shift + wheel, pan left--right */
             if (event->scroll.state & GDK_SHIFT_MASK) {
                 switch (event->scroll.direction) {
@@ -738,34 +738,30 @@ sp_event_context_private_item_handler(SPEventContext *ec, SPItem *item, GdkEvent
 }
 
 /**
- * Gets called when attribute changes value.
+ * @brief An observer that relays pref changes to the derived classes
  */
-static void
-sp_ec_repr_attr_changed(Inkscape::XML::Node */*prefs_repr*/, gchar const *key, gchar const */*oldval*/, gchar const *newval,
-                        bool /*is_interactive*/, gpointer data)
-{
-    SPEventContext *ec;
-
-    ec = SP_EVENT_CONTEXT(data);
-
-    if (((SPEventContextClass *) G_OBJECT_GET_CLASS(ec))->set) {
-        ((SPEventContextClass *) G_OBJECT_GET_CLASS(ec))->set(ec, key, newval);
+class ToolPrefObserver : public Inkscape::Preferences::Observer {
+public:
+    ToolPrefObserver(Glib::ustring const &path, SPEventContext *ec) :
+        Inkscape::Preferences::Observer(path),
+        _ec(ec) {}
+    virtual void notify(Inkscape::Preferences::Entry const &val)
+    {   
+        if (((SPEventContextClass *) G_OBJECT_GET_CLASS(_ec))->set) {
+            ((SPEventContextClass *) G_OBJECT_GET_CLASS(_ec))->set(_ec,
+                const_cast<Inkscape::Preferences::Entry*>(&val));
+        }
     }
-}
-
-Inkscape::XML::NodeEventVector sp_ec_event_vector = {
-    NULL, /* Child added */
-    NULL, /* Child removed */
-    sp_ec_repr_attr_changed,
-    NULL, /* Content changed */
-    NULL /* Order changed */
+private:
+    SPEventContext * const _ec;
 };
 
 /**
  * Creates new SPEventContext object and calls its virtual setup() function.
+ * @todo This is bogus. pref_path should be a private property of the inheriting objects.
  */
 SPEventContext *
-sp_event_context_new(GType type, SPDesktop *desktop, Inkscape::XML::Node *prefs_repr, unsigned int key)
+sp_event_context_new(GType type, SPDesktop *desktop, gchar const *pref_path, unsigned int key)
 {
     g_return_val_if_fail(g_type_is_a(type, SP_TYPE_EVENT_CONTEXT), NULL);
     g_return_val_if_fail(desktop != NULL, NULL);
@@ -775,10 +771,13 @@ sp_event_context_new(GType type, SPDesktop *desktop, Inkscape::XML::Node *prefs_
     ec->desktop = desktop;
     ec->_message_context = new Inkscape::MessageContext(desktop->messageStack());
     ec->key = key;
-    ec->prefs_repr = prefs_repr;
-    if (ec->prefs_repr) {
-        Inkscape::GC::anchor(ec->prefs_repr);
-        sp_repr_add_listener(ec->prefs_repr, &sp_ec_event_vector, ec);
+    ec->pref_observer = NULL;
+    
+    if (pref_path) {
+        ec->pref_observer = new ToolPrefObserver(pref_path, ec);
+        
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        prefs->addObserver(*(ec->pref_observer));
     }
 
     if (((SPEventContextClass *) G_OBJECT_GET_CLASS(ec))->setup)
@@ -848,10 +847,11 @@ sp_event_context_read(SPEventContext *ec, gchar const *key)
     g_return_if_fail(SP_IS_EVENT_CONTEXT(ec));
     g_return_if_fail(key != NULL);
 
-    if (ec->prefs_repr) {
-        gchar const *val = ec->prefs_repr->attribute(key);
-        if (((SPEventContextClass *) G_OBJECT_GET_CLASS(ec))->set)
-            ((SPEventContextClass *) G_OBJECT_GET_CLASS(ec))->set(ec, key, val);
+    if (((SPEventContextClass *) G_OBJECT_GET_CLASS(ec))->set) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        Inkscape::Preferences::Entry val = prefs->getEntry(
+            ec->pref_observer->observed_path + '/' + key );
+        ((SPEventContextClass *) G_OBJECT_GET_CLASS(ec))->set(ec, &val);
     }
 }
 
index fbffc40656332b635292fcf6bda52d91e9070b9f..9b464b7fa8e2c751fc34425b80f5d3465d7a0221 100644 (file)
@@ -21,7 +21,8 @@
 #include <gdk/gdktypes.h>
 #include <gdk/gdkevents.h>
 
-#include <2geom/forward.h>
+#include "2geom/forward.h"
+#include "preferences.h"
 
 struct GrDrag;
 struct SPDesktop;
@@ -48,7 +49,7 @@ struct SPEventContext : public GObject {
     SPEventContext *next;
     unsigned key;
     SPDesktop *desktop;
-    Inkscape::XML::Node *prefs_repr;
+    Inkscape::Preferences::Observer *pref_observer;
     gchar const *const *cursor_shape;
     gint hot_x, hot_y; ///< indicates the cursor's hot spot
     GdkCursor *cursor;
@@ -83,7 +84,7 @@ struct SPEventContext : public GObject {
 struct SPEventContextClass : public GObjectClass {
     void (* setup)(SPEventContext *ec);
     void (* finish)(SPEventContext *ec);
-    void (* set)(SPEventContext *ec, gchar const *key, gchar const *val);
+    void (* set)(SPEventContext *ec, Inkscape::Preferences::Entry *val);
     void (* activate)(SPEventContext *ec);
     void (* deactivate)(SPEventContext *ec);
     gint (* root_handler)(SPEventContext *ec, GdkEvent *event);
@@ -95,7 +96,7 @@ struct SPEventContextClass : public GObjectClass {
 
 #define SP_EVENT_CONTEXT_STATIC 0
 
-SPEventContext *sp_event_context_new(GType type, SPDesktop *desktop, Inkscape::XML::Node *prefs_repr, unsigned key);
+SPEventContext *sp_event_context_new(GType type, SPDesktop *desktop, gchar const *pref_path, unsigned key);
 void sp_event_context_finish(SPEventContext *ec);
 void sp_event_context_read(SPEventContext *ec, gchar const *key);
 void sp_event_context_activate(SPEventContext *ec);
index ec2878f5d46108d32dce7228dcf9fd15f8c58ad8..7e40522b36f77df193eed67f0b5044c9428549be 100644 (file)
@@ -16,7 +16,7 @@
 
 
 #include "inkscape.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "dialogs/extensions.h"
 #include "extension/extension.h"
 
@@ -24,7 +24,7 @@
 
 /** The name and group of the preference to say whether the error
     dialog should be shown on startup. */
-#define PREFERENCE_ID  "dialogs.extension-error", "show-on-startup"
+#define PREFERENCE_ID  "/dialogs/extension-error/show-on-startup"
 
 namespace Inkscape {
 namespace Extension {
@@ -59,10 +59,11 @@ ErrorFileNotice::ErrorFileNotice (void) :
     Gtk::VBox * vbox = get_vbox();
 
     /* This is some filler text, needs to change before relase */
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     checkbutton = Gtk::manage(new Gtk::CheckButton(_("Show dialog on startup")));
     vbox->pack_start(*checkbutton, true, false, 5);
     checkbutton->show();
-    checkbutton->set_active(prefs_get_int_attribute(PREFERENCE_ID, 1) == 0 ? false : true);
+    checkbutton->set_active(prefs->getBool(PREFERENCE_ID, true));
 
     checkbutton->signal_toggled().connect(sigc::mem_fun(this, &ErrorFileNotice::checkbox_toggle));
 
@@ -81,7 +82,8 @@ void
 ErrorFileNotice::checkbox_toggle (void)
 {
     // std::cout << "Toggle value" << std::endl;
-    prefs_set_int_attribute(PREFERENCE_ID, checkbutton->get_active() ? 1 : 0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setBool(PREFERENCE_ID, checkbutton->get_active());
 }
 
 /** \brief Shows the dialog
@@ -92,7 +94,8 @@ ErrorFileNotice::checkbox_toggle (void)
 int
 ErrorFileNotice::run (void)
 {
-    if (prefs_get_int_attribute(PREFERENCE_ID, 1) == 0)
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (!prefs->getBool(PREFERENCE_ID, true))
         return 0;
     return Gtk::Dialog::run();
 }
index 9475b479623ed6e98865d48cd5baf03c8bf5a6e2..fc94205b64007c70d4061f0345b4c8820f24a2f3 100644 (file)
@@ -120,7 +120,7 @@ Script::resolveInterpreterExecutable(const Glib::ustring &interpNameArg)
 
     // 1.  Check preferences
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring prefInterp = prefs->getString("extensions", interp->prefstring);
+    Glib::ustring prefInterp = prefs->getString("/extensions/" + Glib::ustring(interp->prefstring));
 
     if (!prefInterp.empty()) {
         interpName = prefInterp;
index 9a5aea86cd1a343bbdf2ee521d31334e2042988e..afacbed630a288d265e9de03c74ef805849a73f9 100644 (file)
@@ -19,6 +19,7 @@
 
 
 #include "inkscape.h"
+#include <glibmm/ustring.h>
 #include <glibmm/i18n.h>
 
 #include "system.h"
@@ -118,17 +119,16 @@ static void check_extensions();
  * \brief     Examines the given string preference and checks to see
  *            that at least one of the registered extensions matches
  *            it.  If not, a default is assigned.
- * \param     pref_path        Preference path to load
- * \param     pref_attr        Attribute to load from the preference
+ * \param     pref_path        Preference path to update
  * \param     pref_default     Default string to set
  * \param     extension_family List of extensions to search
  */
 static void
-update_pref(gchar const *pref_path, gchar const *pref_attr,
+update_pref(Glib::ustring const &pref_path,
             gchar const *pref_default) // , GSList *extension_family)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring pref = prefs->getString(pref_path, pref_attr);
+    Glib::ustring pref = prefs->getString(pref_path);
     /*
     gboolean missing=TRUE;
     for (GSList *list = extension_family; list; list = g_slist_next(list)) {
@@ -141,7 +141,7 @@ update_pref(gchar const *pref_path, gchar const *pref_attr,
     }
     */
     if (!Inkscape::Extension::db.get( pref.data() ) /*missing*/) {
-        prefs->setString(pref_path, pref_attr, pref_default);
+        prefs->setString(pref_path, pref_default);
     }
 }
 
@@ -164,7 +164,7 @@ init()
     //Internal::EpsOutput::init(); // disabled, to be deleted, replaced by CairoEpsOutput
     Internal::PrintPS::init();
 #ifdef HAVE_CAIRO_PDF
-    if (prefs->getInt("options.useoldpdfexporter", "value", 1) == 1) {
+    if (prefs->getBool("/options/useoldpdfexporter/value")) {
     //g_print ("Using CairoPdfOutput: old pdf exporter\n");
     Internal::CairoPdfOutput::init();
     Internal::PrintCairoPDF::init();
@@ -268,7 +268,7 @@ init()
     /* This is a hack to deal with updating saved outdated module
      * names in the prefs...
      */
-    update_pref("dialogs.save_as", "default",
+    update_pref("/dialogs/save_as/default",
                 SP_MODULE_KEY_OUTPUT_SVG_INKSCAPE
                 // Inkscape::Extension::db.get_output_list()
         );
index 80454f9edbdda7f2782e04c15f7dc4ab1c12216e..e32012070ae6082549d8fc6d9eae1cc530a58105 100644 (file)
@@ -16,7 +16,7 @@
 #include "desktop.h"
 #include "selection.h"
 #include "helper/action.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "path-chemistry.h"
 #include "sp-item.h"
 
@@ -58,7 +58,8 @@ BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View
     float width = module->get_param_float("blur-width");
     int   steps = module->get_param_int("num-steps");
 
-    double old_offset = prefs_get_double_attribute("options.defaultoffsetwidth", "value", 1.0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    double old_offset = prefs->getDouble("/options/defaultoffsetwidth/value", 1.0);
 
     using Inkscape::Util::GSListConstIterator;
     // TODO need to properly refcount the items, at least
@@ -96,10 +97,10 @@ BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View
             if (offset < 0.0) {
                 /* Doing an inset here folks */
                 offset *= -1.0;
-                prefs_set_double_attribute("options.defaultoffsetwidth", "value", offset);
+                prefs->setDouble("/options/defaultoffsetwidth/value", offset);
                 sp_action_perform(Inkscape::Verb::get(SP_VERB_SELECTION_INSET)->get_action(desktop), NULL);
             } else if (offset > 0.0) {
-                prefs_set_double_attribute("options.defaultoffsetwidth", "value", offset);
+                prefs->setDouble("/options/defaultoffsetwidth/value", offset);
                 sp_action_perform(Inkscape::Verb::get(SP_VERB_SELECTION_OFFSET)->get_action(desktop), NULL);
             }
 
@@ -109,7 +110,7 @@ BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View
         Inkscape::GC::release(new_group);
     }
 
-    prefs_set_double_attribute("options.defaultoffsetwidth", "value", old_offset);
+    prefs->setDouble("/options/defaultoffsetwidth/value", old_offset);
 
     selection->clear();
     selection->add(items.begin(), items.end());
index fba0ab5713b7044f6429cb5bf06cbcd627869bae..01afec0fcfb09f6d4bcbe44a254c78fe437073af 100644 (file)
@@ -61,23 +61,35 @@ CairoEpsOutput::check (Inkscape::Extension::Extension * module)
 }
 
 static bool
-ps_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int level, bool texttopath, bool filtertobitmap, int resolution, bool eps = false)
+ps_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int level, bool texttopath, bool filtertobitmap, int resolution, const gchar * const exportId, bool exportDrawing, bool exportCanvas, bool eps = false)
 {
-    CairoRenderer *renderer;
-    CairoRenderContext *ctx;
-
     sp_document_ensure_up_to_date(doc);
 
-/* Start */
+    SPItem *base = NULL;
+
+    bool pageBoundingBox = TRUE;
+    if (exportId && strcmp(exportId, "")) {
+        // we want to export the given item only
+        base = SP_ITEM(doc->getObjectById(exportId));
+        pageBoundingBox = exportCanvas;
+    }
+    else {
+        // we want to export the entire document from root
+        base = SP_ITEM(sp_document_root(doc));
+        pageBoundingBox = !exportDrawing;
+    }
+
+    if (!base)
+        return false;
+
     /* Create new arena */
-    SPItem *base = SP_ITEM(sp_document_root(doc));
     NRArena *arena = NRArena::create();
     unsigned dkey = sp_item_display_key_new(1);
-    NRArenaItem *root = sp_item_invoke_show(base, arena, dkey, SP_ITEM_SHOW_DISPLAY);
+    sp_item_invoke_show(base, arena, dkey, SP_ITEM_SHOW_DISPLAY);
 
     /* Create renderer and context */
-    renderer = new CairoRenderer();
-    ctx = renderer->createContext();
+    CairoRenderer *renderer = new CairoRenderer();
+    CairoRenderContext *ctx = renderer->createContext();
     ctx->setPSLevel(level);
     ctx->setEPS(eps);
     ctx->setTextToPath(texttopath);
@@ -87,22 +99,21 @@ ps_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int l
     bool ret = ctx->setPsTarget(filename);
     if(ret) {
         /* Render document */
-        ret = renderer->setupDocument(ctx, doc, TRUE, NULL);
+        ret = renderer->setupDocument(ctx, doc, pageBoundingBox, base);
         if (ret) {
             renderer->renderItem(ctx, base);
             ret = ctx->finish();
         }
     }
-    renderer->destroyContext(ctx);
 
     /* Release arena */
     sp_item_invoke_hide(base, dkey);
     nr_object_unref((NRObject *) arena);
-/* end */
+
+    renderer->destroyContext(ctx);
     delete renderer;
 
     return ret;
-
 }
 
 
@@ -122,89 +133,51 @@ CairoPsOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc, const gc
     if (ext == NULL)
         return;
 
-    const gchar *old_level = NULL;
     const gchar *new_level = NULL;
-    int level = 1;
+    int level = CAIRO_PS_LEVEL_2;
     try {
-        old_level = ext->get_param_enum("PSlevel");
         new_level = mod->get_param_enum("PSlevel");
-        if((new_level != NULL) && (g_ascii_strcasecmp("PS2", new_level) == 0))
-            level = 0;
-//        ext->set_param_enum("PSlevel", new_level);
-    }
-    catch(...) {
-        g_warning("Parameter <PSlevel> might not exists");
-    }
+        if((new_level != NULL) && !(g_ascii_strcasecmp("PS3", new_level) == 0))
+            level = CAIRO_PS_LEVEL_3;
+    } catch(...) {}
 
-    bool old_textToPath  = FALSE;
     bool new_textToPath  = FALSE;
     try {
-        old_textToPath  = ext->get_param_bool("textToPath");
         new_textToPath  = mod->get_param_bool("textToPath");
-        ext->set_param_bool("textToPath", new_textToPath);
-    }
-    catch(...) {
-        g_warning("Parameter <textToPath> might not exists");
-    }
+    } catch(...) {}
 
-    bool old_blurToBitmap  = FALSE;
     bool new_blurToBitmap  = FALSE;
     try {
-        old_blurToBitmap  = ext->get_param_bool("blurToBitmap");
         new_blurToBitmap  = mod->get_param_bool("blurToBitmap");
-        ext->set_param_bool("blurToBitmap", new_blurToBitmap);
-    }
-    catch(...) {
-        g_warning("Parameter <blurToBitmap> might not exists");
-    }
+    } catch(...) {}
 
-    int old_bitmapResolution  = 72;
     int new_bitmapResolution  = 72;
     try {
-        old_bitmapResolution  = ext->get_param_int("resolution");
         new_bitmapResolution = mod->get_param_int("resolution");
-        ext->set_param_int("resolution", new_bitmapResolution);
-    }
-    catch(...) {
-        g_warning("Parameter <resolution> might not exists");
-    }
-
-       gchar * final_name;
-       final_name = g_strdup_printf("> %s", uri);
-       ret = ps_print_document_to_file(doc, final_name, level, new_textToPath, new_blurToBitmap, new_bitmapResolution);
-       g_free(final_name);
+    } catch(...) {}
 
+    bool new_areaCanvas  = true;
     try {
-        ext->set_param_int("resolution", old_bitmapResolution);
-    }
-    catch(...) {
-        g_warning("Parameter <resolution> might not exists");
-    }
-    try {
-        ext->set_param_bool("blurToBitmap", old_blurToBitmap);
-    }
-    catch(...) {
-        g_warning("Parameter <blurToBitmap> might not exists");
-    }
+        new_areaCanvas = mod->get_param_bool("areaCanvas");
+    } catch(...) {}
+
+    bool new_areaDrawing  = true;
     try {
-        ext->set_param_bool("textToPath", old_textToPath);
-    }
-    catch(...) {
-        g_warning("Parameter <textToPath> might not exists");
-    }
+        new_areaDrawing = mod->get_param_bool("areaDrawing");
+    } catch(...) {}
+
+    const gchar *new_exportId = NULL;
     try {
-//        ext->set_param_enum("PSlevel", old_level);
-    }
-    catch(...) {
-        g_warning("Parameter <PSlevel> might not exists");
-    }
+        new_exportId = mod->get_param_string("exportId");
+    } catch(...) {}
 
+       gchar * final_name;
+       final_name = g_strdup_printf("> %s", uri);
+       ret = ps_print_document_to_file(doc, final_name, level, new_textToPath, new_blurToBitmap, new_bitmapResolution, new_exportId, new_areaDrawing, new_areaCanvas);
+       g_free(final_name);
 
        if (!ret)
            throw Inkscape::Extension::Output::save_failed();
-
-       return;
-
 }
 
 
@@ -224,89 +197,51 @@ CairoEpsOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc, const g
     if (ext == NULL)
         return;
 
-    const gchar *old_level = NULL;
     const gchar *new_level = NULL;
-    int level = 1;
+    int level = CAIRO_PS_LEVEL_2;
     try {
-        old_level = ext->get_param_enum("PSlevel");
         new_level = mod->get_param_enum("PSlevel");
-        if((new_level != NULL) && (g_ascii_strcasecmp("PS2", new_level) == 0))
-            level = 0;
-//        ext->set_param_enum("PSlevel", new_level);
-    }
-    catch(...) {
-        g_warning("Parameter <PSlevel> might not exists");
-    }
+        if((new_level != NULL) && !(g_ascii_strcasecmp("PS3", new_level) == 0))
+            level = CAIRO_PS_LEVEL_3;
+    } catch(...) {}
 
-    bool old_textToPath  = FALSE;
     bool new_textToPath  = FALSE;
     try {
-        old_textToPath  = ext->get_param_bool("textToPath");
         new_textToPath  = mod->get_param_bool("textToPath");
-        ext->set_param_bool("textToPath", new_textToPath);
-    }
-    catch(...) {
-        g_warning("Parameter <textToPath> might not exists");
-    }
+    } catch(...) {}
 
-    bool old_blurToBitmap  = FALSE;
     bool new_blurToBitmap  = FALSE;
     try {
-        old_blurToBitmap  = ext->get_param_bool("blurToBitmap");
         new_blurToBitmap  = mod->get_param_bool("blurToBitmap");
-        ext->set_param_bool("blurToBitmap", new_blurToBitmap);
-    }
-    catch(...) {
-        g_warning("Parameter <blurToBitmap> might not exists");
-    }
+    } catch(...) {}
 
-    int old_bitmapResolution  = 72;
     int new_bitmapResolution  = 72;
     try {
-        old_bitmapResolution  = ext->get_param_int("resolution");
         new_bitmapResolution = mod->get_param_int("resolution");
-        ext->set_param_int("resolution", new_bitmapResolution);
-    }
-    catch(...) {
-        g_warning("Parameter <resolution> might not exists");
-    }
-
-       gchar * final_name;
-       final_name = g_strdup_printf("> %s", uri);
-       ret = ps_print_document_to_file(doc, final_name, level, new_textToPath, new_blurToBitmap, new_bitmapResolution, true);
-       g_free(final_name);
+    } catch(...) {}
 
+    bool new_areaCanvas  = true;
     try {
-        ext->set_param_int("resolution", old_bitmapResolution);
-    }
-    catch(...) {
-        g_warning("Parameter <resolution> might not exists");
-    }
-    try {
-        ext->set_param_bool("blurToBitmap", old_blurToBitmap);
-    }
-    catch(...) {
-        g_warning("Parameter <blurToBitmap> might not exists");
-    }
+        new_areaCanvas = mod->get_param_bool("areaCanvas");
+    } catch(...) {}
+
+    bool new_areaDrawing  = true;
     try {
-        ext->set_param_bool("textToPath", old_textToPath);
-    }
-    catch(...) {
-        g_warning("Parameter <textToPath> might not exists");
-    }
+        new_areaDrawing = mod->get_param_bool("areaDrawing");
+    } catch(...) {}
+
+    const gchar *new_exportId = NULL;
     try {
-//        ext->set_param_enum("PSlevel", old_level);
-    }
-    catch(...) {
-        g_warning("Parameter <PSlevel> might not exists");
-    }
+        new_exportId = mod->get_param_string("exportId");
+    } catch(...) {}
 
+       gchar * final_name;
+       final_name = g_strdup_printf("> %s", uri);
+       ret = ps_print_document_to_file(doc, final_name, level, new_textToPath, new_blurToBitmap, new_bitmapResolution, new_exportId, new_areaDrawing, new_areaCanvas, true);
+       g_free(final_name);
 
        if (!ret)
            throw Inkscape::Extension::Output::save_failed();
-
-       return;
-
 }
 
 
@@ -344,9 +279,12 @@ CairoPsOutput::init (void)
                 "<_item value='PS2'>" N_("PostScript level 2") "</_item>\n"
 #endif
             "</param>\n"
+                       "<param name=\"areaCanvas\" gui-text=\"" N_("Export area is whole canvas") "\" type=\"boolean\">true</param>\n"
+                       "<param name=\"areaDrawing\" gui-text=\"" N_("Export area is the drawing") "\" type=\"boolean\">true</param>\n"
                        "<param name=\"textToPath\" gui-text=\"" N_("Convert texts to paths") "\" type=\"boolean\">false</param>\n"
                        "<param name=\"blurToBitmap\" gui-text=\"" N_("Convert blur effects to bitmaps") "\" type=\"boolean\">false</param>\n"
                        "<param name=\"resolution\" gui-text=\"" N_("Preferred resolution (DPI) of bitmaps") "\" type=\"int\" min=\"72\" max=\"2400\">90</param>\n"
+                       "<param name=\"exportId\" gui-text=\"" N_("Limit export to the object with ID") "\" type=\"string\"></param>\n"
                        "<output>\n"
                                "<extension>.ps</extension>\n"
                                 "<mimetype>image/x-postscript</mimetype>\n"
@@ -378,9 +316,12 @@ CairoEpsOutput::init (void)
                 "<_item value='PS2'>" N_("PostScript level 2") "</_item>\n"
 #endif
             "</param>\n"
+                       "<param name=\"areaCanvas\" gui-text=\"" N_("Export area is whole canvas") "\" type=\"boolean\">true</param>\n"
+                       "<param name=\"areaDrawing\" gui-text=\"" N_("Export area is the drawing") "\" type=\"boolean\">true</param>\n"
                        "<param name=\"textToPath\" gui-text=\"" N_("Convert texts to paths") "\" type=\"boolean\">false</param>\n"
                        "<param name=\"blurToBitmap\" gui-text=\"" N_("Convert blur effects to bitmaps") "\" type=\"boolean\">false</param>\n"
                        "<param name=\"resolution\" gui-text=\"" N_("Preferred resolution (DPI) of bitmaps") "\" type=\"int\" min=\"72\" max=\"2400\">90</param>\n"
+                       "<param name=\"exportId\" gui-text=\"" N_("Limit export to the object with ID") "\" type=\"string\"></param>\n"
                        "<output>\n"
                                "<extension>.eps</extension>\n"
                                 "<mimetype>image/x-e-postscript</mimetype>\n"
index 4e6c74dff6fb3f60db98619228b05aa88969819f..c82cc76112a69e8be431b0b00d606a18c4a75190 100644 (file)
@@ -75,7 +75,7 @@ pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int
     /* Create new arena */
     NRArena *arena = NRArena::create();
     unsigned dkey = sp_item_display_key_new(1);
-    NRArenaItem *root = sp_item_invoke_show(base, arena, dkey, SP_ITEM_SHOW_DISPLAY);
+    sp_item_invoke_show(base, arena, dkey, SP_ITEM_SHOW_DISPLAY);
 
     /* Create renderer and context */
     CairoRenderer *renderer = new CairoRenderer();
@@ -98,7 +98,7 @@ pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int
     /* Release arena */
     sp_item_invoke_hide(base, dkey);
     nr_object_unref((NRObject *) arena);
-/* end */
+
     renderer->destroyContext(ctx);
     delete renderer;
 
@@ -134,7 +134,7 @@ CairoRendererPdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc,
 //            level = 1;
     }
     catch(...) {
-//        g_warning("Parameter <PDFversion> might not exists");
+//        g_warning("Parameter <PDFversion> might not exist");
     }
 
     bool new_textToPath  = FALSE;
@@ -142,7 +142,7 @@ CairoRendererPdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc,
         new_textToPath  = mod->get_param_bool("textToPath");
     }
     catch(...) {
-        g_warning("Parameter <textToPath> might not exists");
+        g_warning("Parameter <textToPath> might not exist");
     }
 
     bool new_blurToBitmap  = FALSE;
@@ -150,7 +150,7 @@ CairoRendererPdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc,
         new_blurToBitmap  = mod->get_param_bool("blurToBitmap");
     }
     catch(...) {
-        g_warning("Parameter <blurToBitmap> might not exists");
+        g_warning("Parameter <blurToBitmap> might not exist");
     }
 
     int new_bitmapResolution  = 72;
@@ -158,7 +158,7 @@ CairoRendererPdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc,
         new_bitmapResolution = mod->get_param_int("resolution");
     }
     catch(...) {
-        g_warning("Parameter <resolution> might not exists");
+        g_warning("Parameter <resolution> might not exist");
     }
 
     const gchar *new_exportId = NULL;
@@ -166,23 +166,23 @@ CairoRendererPdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc,
         new_exportId = mod->get_param_string("exportId");
     }
     catch(...) {
-        g_warning("Parameter <exportId> might not exists");
+        g_warning("Parameter <exportId> might not exist");
     }
 
     bool new_exportDrawing  = FALSE;
     try {
-        new_exportDrawing  = mod->get_param_bool("exportDrawing");
+        new_exportDrawing  = mod->get_param_bool("areaDrawing");
     }
     catch(...) {
-        g_warning("Parameter <exportDrawing> might not exists");
+        g_warning("Parameter <areaDrawing> might not exist");
     }
 
     bool new_exportCanvas  = FALSE;
     try {
-        new_exportCanvas  = mod->get_param_bool("exportCanvas");
+        new_exportCanvas  = mod->get_param_bool("areaCanvas");
     }
     catch(...) {
-        g_warning("Parameter <exportCanvas> might not exists");
+        g_warning("Parameter <exportCanvas> might not exist");
     }
 
     gchar * final_name;
@@ -194,8 +194,6 @@ CairoRendererPdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc,
 
     if (!ret)
         throw Inkscape::Extension::Output::save_failed();
-
-    return;
 }
 
 #include "clear-n_.h"
@@ -220,8 +218,8 @@ CairoRendererPdfOutput::init (void)
                        "<param name=\"textToPath\" gui-text=\"" N_("Convert texts to paths") "\" type=\"boolean\">false</param>\n"
                        "<param name=\"blurToBitmap\" gui-text=\"" N_("Convert filter effects to bitmaps") "\" type=\"boolean\">false</param>\n"
                        "<param name=\"resolution\" gui-text=\"" N_("Preferred resolution (DPI) of bitmaps") "\" type=\"int\" min=\"72\" max=\"2400\">90</param>\n"
-                       "<param name=\"exportDrawing\" gui-text=\"" N_("Export drawing, not page") "\" type=\"boolean\">false</param>\n"
-                       "<param name=\"exportCanvas\" gui-text=\"" N_("Export canvas") "\" type=\"boolean\">false</param>\n"
+                       "<param name=\"areaDrawing\" gui-text=\"" N_("Export drawing, not page") "\" type=\"boolean\">false</param>\n"
+                       "<param name=\"areaCanvas\" gui-text=\"" N_("Export canvas") "\" type=\"boolean\">false</param>\n"
                        "<param name=\"exportId\" gui-text=\"" N_("Limit export to the object with ID") "\" type=\"string\"></param>\n"
                        "<output>\n"
                                "<extension>.pdf</extension>\n"
index 07d799b0f35d4be38129dc58f38fc671409117d0..86e04fb548e2904feb7676102bde39f7427b208f 100644 (file)
@@ -180,7 +180,12 @@ static void sp_shape_render (SPItem *item, CairoRenderContext *ctx)
             SPMarker* marker = SP_MARKER (shape->marker[SP_MARKER_LOC_START]);
             SPItem* marker_item = sp_item_first_item_child (SP_OBJECT (shape->marker[SP_MARKER_LOC_START]));
 
-            Geom::Matrix tr(sp_shape_marker_get_transform_at_start(path_it->front()));
+            Geom::Matrix tr;
+            if (marker->orient_auto) {
+                tr = sp_shape_marker_get_transform_at_start(path_it->front());
+            } else {
+                tr = Geom::Rotate::from_degrees(marker->orient) * Geom::Translate(path_it->front().pointAt(0));
+            }
 
             if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) {
                 tr = Geom::Scale(style->stroke_width.computed) * tr;
@@ -206,7 +211,12 @@ static void sp_shape_render (SPItem *item, CairoRenderContext *ctx)
                 SPMarker* marker = SP_MARKER (shape->marker[SP_MARKER_LOC_MID]);
                 SPItem* marker_item = sp_item_first_item_child (SP_OBJECT (shape->marker[SP_MARKER_LOC_MID]));
 
-                Geom::Matrix tr(sp_shape_marker_get_transform(*curve_it1, *curve_it2));
+                Geom::Matrix tr;
+                if (marker->orient_auto) {
+                    tr = sp_shape_marker_get_transform(*curve_it1, *curve_it2);
+                } else {
+                    tr = Geom::Rotate::from_degrees(marker->orient) * Geom::Translate(curve_it1->pointAt(1));
+                }
 
                 if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) {
                     tr = Geom::Scale(style->stroke_width.computed) * tr;
@@ -236,7 +246,12 @@ static void sp_shape_render (SPItem *item, CairoRenderContext *ctx)
             }
             Geom::Curve const &lastcurve = (*path_it)[index];
 
-            Geom::Matrix tr = sp_shape_marker_get_transform_at_end(lastcurve);
+            Geom::Matrix tr;
+            if (marker->orient_auto) {
+                tr = sp_shape_marker_get_transform_at_end(lastcurve);
+            } else {
+                tr = Geom::Rotate::from_degrees(marker->orient) * Geom::Translate(lastcurve.pointAt(1));
+            }
 
             if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) {
                 tr = Geom::Scale(style->stroke_width.computed) * tr;
@@ -557,42 +572,42 @@ CairoRenderer::setupDocument(CairoRenderContext *ctx, SPDocument *doc, bool page
 {
     g_assert( ctx != NULL );
 
-    if (ctx->_vector_based_target) {
-        // width and height in pt
-        ctx->_width = sp_document_width(doc) * PT_PER_PX;
-        ctx->_height = sp_document_height(doc) * PT_PER_PX;
-    } else {
-        ctx->_width = sp_document_width(doc);
-        ctx->_height = sp_document_height(doc);
-    }
+    if (!base)
+        base = SP_ITEM(sp_document_root(doc));
 
     NRRect d;
-    if (pageBoundingBox || !base) {
+    if (pageBoundingBox) {
         d.x0 = d.y0 = 0;
-        d.x1 = ceil(ctx->_width);
-        d.y1 = ceil(ctx->_height);
+        d.x1 = ceil(sp_document_width(doc));
+        d.y1 = ceil(sp_document_height(doc));
     } else {
-        sp_item_invoke_bbox(base, &d, sp_item_i2r_affine(base), TRUE);
-        if (ctx->_vector_based_target) {
-            // convert from px to pt
-            d.x0 *= PT_PER_PX;
-            d.x1 *= PT_PER_PX;
-            d.y0 *= PT_PER_PX;
-            d.y1 *= PT_PER_PX;
-        }
+        sp_item_invoke_bbox(base, &d, sp_item_i2r_affine(base), TRUE, SPItem::RENDERING_BBOX);
     }
+
+    if (ctx->_vector_based_target) {
+        // convert from px to pt
+        d.x0 *= PT_PER_PX;
+        d.x1 *= PT_PER_PX;
+        d.y0 *= PT_PER_PX;
+        d.y1 *= PT_PER_PX;
+    }
+
+    ctx->_width = d.x1-d.x0;
+    ctx->_height = d.y1-d.y0;
+
     TRACE(("setupDocument: %f x %f\n", ctx->_width, ctx->_height));
 
-    bool ret = ctx->setupSurface(d.x1-d.x0, d.y1-d.y0);
+    bool ret = ctx->setupSurface(ctx->_width, ctx->_height);
 
-    if (ret && !pageBoundingBox && base)
+    if (ret && !pageBoundingBox)
     {
+        double high = sp_document_height(doc);
+        if (ctx->_vector_based_target)
+            high *= PT_PER_PX;
+
         Geom::Matrix tp(Geom::Translate(-d.x0 * (ctx->_vector_based_target ? PX_PER_PT : 1.0),
-                                    (d.y1 - ctx->_height) * (ctx->_vector_based_target ? PX_PER_PT : 1.0)));
+                                    (d.y1 - high) * (ctx->_vector_based_target ? PX_PER_PT : 1.0)));
         ctx->transform(&tp);
-
-        ctx->_width  = d.x1 - d.x0;
-        ctx->_height = d.y1 - d.y0;
     }
     
     return ret;
index 14effbeb7a991aaf66c554bf6e910f32b38df394..e8af0ec9d338b665b8150913e9f35cd26c12dced 100644 (file)
@@ -3,7 +3,6 @@
 #endif
 #include "document-private.h"
 #include <dir-util.h>
-#include "prefs-utils.h"
 #include "extension/system.h"
 #include "gdkpixbuf-input.h"
 #include "selection-chemistry.h"
index e28264eff9aa2166476c14103418e9ef47c7605d..f58e37173db62d7b603d9b790a1c74b931c3d5f9 100644 (file)
@@ -1210,7 +1210,9 @@ void SvgBuilder::_flushText() {
         last_delta_pos = delta_pos;
 
         // Append the character to the text buffer
-        text_buffer.append((char *)&glyph.code, 1);
+       if (0 != glyph.code[0]) {
+            text_buffer.append((char *)&glyph.code, 1);
+       }
 
         glyphs_in_a_row++;
         i++;
index ab90ddaf958b49a677943bf648bfb60beac4ccca..1dda3d73f82e4dea77009e5e1b839ac05b25056f 100644 (file)
 #include <gtkmm/box.h>
 #include <gtkmm/spinbutton.h>
 
-#include <xml/node.h>
-
+#include "xml/node.h"
 #include "../extension.h"
 #include "bool.h"
+#include "preferences.h"
 
 namespace Inkscape {
 namespace Extension {
@@ -36,7 +36,8 @@ ParamBool::ParamBool (const gchar * name, const gchar * guitext, const gchar * d
     }
 
     gchar * pref_name = this->pref_name();
-    _value = (bool)prefs_get_int_attribute(PREF_DIR, pref_name, _value);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    _value = prefs->getBool(extension_pref_root + pref_name, _value);
     g_free(pref_name);
 
     return;
@@ -57,7 +58,8 @@ ParamBool::set( bool in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/ )
     _value = in;
 
     gchar * prefname = this->pref_name();
-    prefs_set_int_attribute(PREF_DIR, prefname, _value == true ? 1 : 0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setBool(extension_pref_root + prefname, _value);
     g_free(prefname);
 
     return _value;
@@ -150,3 +152,14 @@ ParamBool::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signa
 
 }  /* namespace Extension */
 }  /* namespace Inkscape */
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 555461bc71189794545839864dcd8d08de551e4a..58db857486283a4367d58e30f722d7932e58abb2 100644 (file)
@@ -50,7 +50,7 @@ ParamColor::set( guint32 in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*
     string(value);
     
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setString(PREF_DIR, prefname, value);
+    prefs->setString(extension_pref_root + prefname, value);
     g_free(prefname);
 
     return _value;
@@ -66,7 +66,7 @@ ParamColor::ParamColor (const gchar * name, const gchar * guitext, const gchar *
 
     gchar * pref_name = this->pref_name();
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring paramval = prefs->getString(PREF_DIR, pref_name);
+    Glib::ustring paramval = prefs->getString(extension_pref_root + pref_name);
     g_free(pref_name);
 
     if (!paramval.empty())
index 6836442a198b86a3cd9bbb4e67fbb868bbb0c362..e6b44fbcb85386d7ca7bb853a5dbc934fc59bba9 100644 (file)
@@ -8,10 +8,10 @@
  */
 
 #include <gtkmm/widget.h>
-#include <xml/node.h>
-#include <document.h>
+#include "xml/node.h"
+#include "document.h"
 #include <color.h>
-#include "parameter.h"
+#include "extension/param/parameter.h"
 
 namespace Inkscape {
 namespace Extension {
index 61bfa9f5a642b065c23be4ad73a8b8ff3fa54307..656e58c491cc53ea0fcd8fa7183cbbcb8adfc610 100644 (file)
 #include <gtkmm/box.h>
 #include <gtkmm/spinbutton.h>
 #include <sstream>
-
-
 #include <glibmm/i18n.h>
 
-#include <xml/node.h>
-
-#include <extension/extension.h>
-#include <prefs-utils.h>
+#include "xml/node.h"
+#include "extension/extension.h"
 
 namespace Inkscape {
 namespace Extension {
index 33c1534341c5a71cb147ff962a2014cb29768fe0..9d324a47c71bc2c18a00c2f43e2347945205ebcb 100644 (file)
 #include <gtkmm/comboboxtext.h>
 #include <gtkmm/tooltips.h>
 #include <gtkmm/label.h>
-
 #include <glibmm/i18n.h>
 
-#include <xml/node.h>
-
-#include <extension/extension.h>
-#include <prefs-utils.h>
-#include <document-private.h>
-#include <sp-object.h>
-
+#include "xml/node.h"
+#include "extension/extension.h"
+#include "document-private.h"
+#include "sp-object.h"
 #include "enum.h"
 #include "preferences.h"
 
-/** \brief  The root directory in the preferences database for extension
-            related parameters. */
-#define PREF_DIR "extensions"
-
 namespace Inkscape {
 namespace Extension {
 
@@ -106,7 +98,7 @@ ParamComboBox::ParamComboBox (const gchar * name, const gchar * guitext, const g
 
     gchar * pref_name = this->pref_name();
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring paramval = prefs->getString(PREF_DIR, pref_name);
+    Glib::ustring paramval = prefs->getString(extension_pref_root + pref_name);
     g_free(pref_name);
 
     if (!paramval.empty())
@@ -160,7 +152,7 @@ ParamComboBox::set (const gchar * in, SPDocument * /*doc*/, Inkscape::XML::Node
         _value = g_strdup(settext->c_str());
         gchar * prefname = this->pref_name();
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString(PREF_DIR, prefname, _value);
+        prefs->setString(extension_pref_root + prefname, _value);
         g_free(prefname);
     }
 
index 1225648d6ce9886e2d69801feebe53259002c1c3..40cb81dddbf980c454239c90569c17e065d8a64d 100644 (file)
@@ -13,9 +13,9 @@
 #include <gtkmm/box.h>
 #include <gtkmm/spinbutton.h>
 
-#include <xml/node.h>
-
-#include <extension/extension.h>
+#include "xml/node.h"
+#include "extension/extension.h"
+#include "preferences.h"
 #include "float.h"
 
 namespace Inkscape {
@@ -53,7 +53,8 @@ ParamFloat::ParamFloat (const gchar * name, const gchar * guitext, const gchar *
     }
 
     gchar * pref_name = this->pref_name();
-    _value = prefs_get_double_attribute(PREF_DIR, pref_name, _value);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    _value = prefs->getDouble(extension_pref_root + pref_name, _value);
     g_free(pref_name);
 
     // std::cout << "New Float::  value: " << _value << "  max: " << _max << "  min: " << _min << std::endl;
@@ -81,7 +82,8 @@ ParamFloat::set (float in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/)
     if (_value < _min) _value = _min;
 
     gchar * prefname = this->pref_name();
-    prefs_set_double_attribute(PREF_DIR, prefname, _value);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setDouble(extension_pref_root + prefname, _value);
     g_free(prefname);
 
     return _value;
index dc523435ee043d39f54eda5c3dbe2e04f9a9c797..db7f9c67b149bd00507454020fe923789674dcee 100644 (file)
@@ -13,9 +13,9 @@
 #include <gtkmm/box.h>
 #include <gtkmm/spinbutton.h>
 
-#include <xml/node.h>
-
-#include <extension/extension.h>
+#include "xml/node.h"
+#include "extension/extension.h"
+#include "preferences.h"
 #include "int.h"
 
 namespace Inkscape {
@@ -47,8 +47,9 @@ ParamInt::ParamInt (const gchar * name, const gchar * guitext, const gchar * des
         _min = 0;
     }
 
-    gchar * pref_name = this->pref_name();
-    _value = prefs_get_int_attribute(PREF_DIR, pref_name, _value);
+    gchar *pref_name = this->pref_name();
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    _value = prefs->getInt(extension_pref_root + pref_name, _value);
     g_free(pref_name);
 
     // std::cout << "New Int::  value: " << _value << "  max: " << _max << "  min: " << _min << std::endl;
@@ -76,7 +77,8 @@ ParamInt::set (int in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/)
     if (_value < _min) _value = _min;
 
     gchar * prefname = this->pref_name();
-    prefs_set_int_attribute(PREF_DIR, prefname, _value);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(extension_pref_root + prefname, _value);
     g_free(prefname);
 
     return _value;
@@ -157,3 +159,14 @@ ParamInt::string (std::string &string)
 
 }  /* namespace Extension */
 }  /* namespace Inkscape */
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index bce6bc3d0672f47a179f5afccbdcc8c20aaeb3d1..1c30b7e0e82ac04acbd8b2e66dc4c8a70d418293 100644 (file)
@@ -223,13 +223,6 @@ ParamNotebookPage::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sig
 }
 
 
-
-
-
-
-
-
-
 ParamNotebook::ParamNotebook (const gchar * name, const gchar * guitext, const gchar * desc, const Parameter::_scope_t scope, bool gui_hidden, const gchar * gui_tip, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml) :
     Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext)
 {
@@ -264,7 +257,7 @@ ParamNotebook::ParamNotebook (const gchar * name, const gchar * guitext, const g
 
     gchar * pref_name = this->pref_name();
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring paramval = prefs->getString(PREF_DIR, pref_name);
+    Glib::ustring paramval = prefs->getString(extension_pref_root + pref_name);
     g_free(pref_name);
 
     if (!paramval.empty())
@@ -317,7 +310,8 @@ ParamNotebook::set (const int in, SPDocument * /*doc*/, Inkscape::XML::Node * /*
     _value = g_strdup(page->name());
 
     gchar * prefname = this->pref_name();
-    prefs_set_string_attribute(PREF_DIR, prefname, _value);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setString(extension_pref_root + prefname, _value);
     g_free(prefname);
 
     return _value;
@@ -434,4 +428,4 @@ ParamNotebook::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::s
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 5f434e5e13b28dd7a6aa972a5c74ce7d109c654d..2773af61dde709ad4c9ae3206b00a50392b9e0fa 100644 (file)
@@ -1,9 +1,7 @@
-/** \file
- * Parameters for extensions.
+/** @file
+ * @brief Parameters for extensions.
  */
-
-/*
- * Author:
+/* Author:
  *   Ted Gould <ted@gould.cx>
  *   Johan Engelen <johan@shouraizou.nl>
  *
@@ -386,6 +384,8 @@ Parameter::string (std::list <std::string> &list)
     return;
 }
 
+Glib::ustring const extension_pref_root = "/extensions/";
+
 }  /* namespace Extension */
 }  /* namespace Inkscape */
 
@@ -398,4 +398,4 @@ Parameter::string (std::list <std::string> &list)
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 1aeafbd7cf4bc37988974f79c2f9f4cf405409d5..54249c12eb3373a48fb28c6e10469088c5920556 100644 (file)
@@ -1,12 +1,7 @@
-#ifndef __INK_EXTENSION_PARAM_H__
-#define __INK_EXTENSION_PARAM_H__
-
-/** \file
- * Parameters for extensions.
+/** @file
+ * @brief Parameters for extensions.
  */
-
-/*
- * Authors:
+/* Authors:
  *   Ted Gould <ted@gould.cx>
  *
  * Copyright (C) 2005-2006 Authors
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
-/** \brief  The root directory in the preferences database for extension-related parameters. */
-#define PREF_DIR "extensions"
+#ifndef SEEN_INK_EXTENSION_PARAM_H__
+#define SEEN_INK_EXTENSION_PARAM_H__
 
 #include <gtkmm/widget.h>
+#include <glibmm/i18n.h>
 
 #include "xml/document.h"
 #include "xml/node.h"
 #include "document.h"
-#include <extension/extension-forward.h>
-#include "prefs-utils.h"
-
-#include <glibmm/i18n.h>
-
+#include "extension/extension-forward.h"
 #include <color.h>
 
 namespace Inkscape {
 namespace Extension {
 
+/**
+ * @brief The root directory in the preferences database for extension-related parameters
+ *
+ * The directory path has both a leading and a trailing slash, so that extension_pref_root + pref_name works
+ * without having to append a separator.
+ */
+extern Glib::ustring const extension_pref_root;
+
 /** \brief  A class to represent the parameter of an extension
 
     This is really a super class that allows them to abstract all
@@ -132,4 +132,4 @@ public:
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index c05191b58823323e47af06afeb3975f90af368e3..1e4ba3c8f26a5dfc4baf4b474be53bfab1a75023 100644 (file)
 #include <gtkmm/radiobuttongroup.h>
 #include <gtkmm/tooltips.h>
 #include <gtkmm/label.h>
-
 #include <glibmm/i18n.h>
 
-#include <xml/node.h>
-
-#include <extension/extension.h>
+#include "xml/node.h"
+#include "extension/extension.h"
 #include "preferences.h"
 #include "document-private.h"
 #include "sp-object.h"
@@ -113,7 +111,7 @@ ParamRadioButton::ParamRadioButton (const gchar * name,
 
     gchar * pref_name = this->pref_name();
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring paramval = prefs->getString(PREF_DIR, pref_name);
+    Glib::ustring paramval = prefs->getString(extension_pref_root + pref_name);
     g_free(pref_name);
 
     if (!paramval.empty())
@@ -167,7 +165,7 @@ ParamRadioButton::set (const gchar * in, SPDocument * /*doc*/, Inkscape::XML::No
         _value = g_strdup(settext->c_str());
         gchar * prefname = this->pref_name();
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString(PREF_DIR, prefname, _value);
+        prefs->setString(extension_pref_root + prefname, _value);
         g_free(prefname);
     }
 
index 56ceeaad5dd8b31b4a0ebb5ad689f841b194b2a5..e32224332e4c53e093ca35c2459fb0b473beea45 100644 (file)
@@ -13,9 +13,8 @@
 #include <gtkmm/box.h>
 #include <gtkmm/spinbutton.h>
 
-#include <xml/node.h>
-
-#include <extension/extension.h>
+#include "xml/node.h"
+#include "extension/extension.h"
 #include "string.h"
 #include "preferences.h"
 
@@ -53,7 +52,7 @@ ParamString::set (const gchar * in, SPDocument * /*doc*/, Inkscape::XML::Node *
 
     gchar * prefname = this->pref_name();
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setString(PREF_DIR, prefname, _value);
+    prefs->setString(extension_pref_root + prefname, _value);
     g_free(prefname);
 
     return _value;
@@ -80,7 +79,7 @@ ParamString::ParamString (const gchar * name, const gchar * guitext, const gchar
 
     gchar * pref_name = this->pref_name();
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring paramval = prefs->getString(PREF_DIR, pref_name);
+    Glib::ustring paramval = prefs->getString(extension_pref_root + pref_name);
     g_free(pref_name);
 
     if (!paramval.empty())
index b2f53b96714f880a5fd6766f55f04ae654086f8f..d5700bb6e47186ada7a6c6307d9781ce802ba5e9 100644 (file)
@@ -18,8 +18,8 @@
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
-/**
- * Note: This file needs to be cleaned up extensively.
+/** @file
+ * @note This file needs to be cleaned up extensively.
  * What it probably needs is to have one .h file for
  * the API, and two or more .cpp files for the implementations.
  */
@@ -28,6 +28,7 @@
 # include "config.h"
 #endif
 
+#include <gtk/gtk.h>
 #include <glib/gmem.h>
 #include <libnr/nr-pixops.h>
 
 void dump_str(gchar const *str, gchar const *prefix);
 void dump_ustr(Glib::ustring const &ustr);
 
+// what gets passed here is not actually an URI... it is an UTF-8 encoded filename (!)
+static void sp_file_add_recent(gchar const *uri)
+{
+    GtkRecentManager *recent = gtk_recent_manager_get_default();
+    gchar *fn = g_filename_from_utf8(uri, -1, NULL, NULL, NULL);
+    gchar *uri_to_add = g_filename_to_uri(fn, NULL, NULL);
+    gtk_recent_manager_add_item(recent, uri_to_add);
+    g_free(uri_to_add);
+    g_free(fn);
+}
+
 
 /*######################
 ## N E W
@@ -219,7 +231,7 @@ sp_file_open(const Glib::ustring &uri,
         sp_namedview_update_layers_from_document(desktop);
 
         if (add_to_recent) {
-            prefs_set_recent_file(SP_DOCUMENT_URI(doc), SP_DOCUMENT_NAME(doc));
+            sp_file_add_recent(SP_DOCUMENT_URI(doc));
         }
 
         return TRUE;
@@ -386,7 +398,7 @@ sp_file_open_dialog(Gtk::Window &parentWindow, gpointer /*object*/, gpointer /*d
 
     if(open_path.empty())
     {
-        Glib::ustring attr = prefs->getString("dialogs.open", "path");
+        Glib::ustring attr = prefs->getString("/dialogs/open/path");
         if (!attr.empty()) open_path = attr;
     }
 
@@ -498,7 +510,7 @@ sp_file_open_dialog(Gtk::Window &parentWindow, gpointer /*object*/, gpointer /*d
 
         open_path = Glib::path_get_dirname (fileName);
         open_path.append(G_DIR_SEPARATOR_S);
-        prefs->setString("dialogs.open", "path", open_path);
+        prefs->setString("/dialogs/open/path", open_path);
 
         sp_file_open(fileName, selection);
     }
@@ -689,7 +701,7 @@ sp_file_save_dialog(Gtk::Window &parentWindow, SPDocument *doc, bool is_copy)
     Glib::ustring default_extension;
     char *attr = (char *)repr->attribute("inkscape:output_extension");
     if (!attr) {
-        Glib::ustring attr2 = prefs->getString("dialogs.save_as", "default");
+        Glib::ustring attr2 = prefs->getString("/dialogs/save_as/default");
         if(!attr2.empty()) default_extension = attr2;
     } else {
         default_extension = attr;
@@ -710,7 +722,7 @@ sp_file_save_dialog(Gtk::Window &parentWindow, SPDocument *doc, bool is_copy)
         if (extension)
             filename_extension = extension->get_extension();
 
-        Glib::ustring attr3 = prefs->getString("dialogs.save_as", "path");
+        Glib::ustring attr3 = prefs->getString("/dialogs/save_as/path");
         if (!attr3.empty())
             save_path = attr3;
 
@@ -793,12 +805,13 @@ sp_file_save_dialog(Gtk::Window &parentWindow, SPDocument *doc, bool is_copy)
 
         success = file_save(parentWindow, doc, fileName, selectionType, TRUE, !is_copy);
 
-        if (success)
-            prefs_set_recent_file(SP_DOCUMENT_URI(doc), SP_DOCUMENT_NAME(doc));
+        if (success) {
+            sp_file_add_recent(SP_DOCUMENT_URI(doc));
+        }
 
         save_path = Glib::path_get_dirname(fileName);
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString("dialogs.save_as", "path", save_path);
+        prefs->setString("/dialogs/save_as/path", save_path);
 
         return success;
     }
@@ -987,15 +1000,15 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri,
             // object" option.
             {
                 Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-                bool const saved_pref = prefs->getBool("options.transform", "pattern", true);
-                prefs->setBool("options.transform", "pattern", true);
+                bool const saved_pref = prefs->getBool("/options/transform/pattern", true);
+                prefs->setBool("/options/transform/pattern", true);
                 sp_document_ensure_up_to_date(sp_desktop_document(desktop));
                 boost::optional<Geom::Rect> sel_bbox = selection->bounds();
                 if (sel_bbox) {
                     Geom::Point m( desktop->point() - sel_bbox->midpoint() );
                     sp_selection_move_relative(selection, m);
                 }
-                prefs->setBool("options.transform", "pattern", saved_pref);
+                prefs->setBool("/options/transform/pattern", saved_pref);
             }
         }
 
@@ -1100,7 +1113,7 @@ sp_file_export_dialog(void *widget)
     Glib::ustring default_extension;
     char *attr = (char *)repr->attribute("inkscape:output_extension");
     if (!attr) {
-        Glib::ustring attr2 = prefs->getString("dialogs.save_as", "default");
+        Glib::ustring attr2 = prefs->getString("/dialogs/save_as/default");
         if(!attr2.empty()) default_extension = attr2;
     } else {
         default_extension = attr;
@@ -1118,7 +1131,7 @@ sp_file_export_dialog(void *widget)
         if (extension)
             filename_extension = extension->get_extension();
 
-        Glib::ustring attr3 = prefs->getString("dialogs.save_as", "path");
+        Glib::ustring attr3 = prefs->getString("/dialogs/save_as/path");
         if (!attr3.empty())
             export_path = attr3;
 
@@ -1177,11 +1190,13 @@ sp_file_export_dialog(void *widget)
 
         success = file_save(doc, fileName, selectionType, TRUE, FALSE);
 
-        if (success)
-            prefs_set_recent_file(SP_DOCUMENT_URI(doc), SP_DOCUMENT_NAME(doc));
+        if (success) {
+            Glib::RefPtr<Gtk::RecentManager> recent = Gtk::RecentManager::get_default();
+            recent->add_item(SP_DOCUMENT_URI(doc));
+        }
 
         export_path = fileName;
-        prefs->setString("dialogs.save_as", "path", export_path);
+        prefs->setString("/dialogs/save_as/path", export_path);
 
         return success;
     }
@@ -1301,8 +1316,8 @@ sp_file_export_to_ocal_dialog(Gtk::Window &parentWindow)
     // Create the uri
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     Glib::ustring uri = "dav://";
-    Glib::ustring username = prefs->getString("options.ocalusername", "str");
-    Glib::ustring password = prefs->getString("options.ocalpassword", "str");
+    Glib::ustring username = prefs->getString("/options/ocalusername/str");
+    Glib::ustring password = prefs->getString("/options/ocalpassword/str");
     if (username.empty() || password.empty())
     {
         if(!gotSuccess)
@@ -1322,7 +1337,7 @@ sp_file_export_to_ocal_dialog(Gtk::Window &parentWindow)
     uri.append(":");
     uri.append(password);
     uri.append("@");
-    uri.append(prefs->getString("options.ocalurl", "str"));
+    uri.append(prefs->getString("/options/ocalurl/str"));
     uri.append("/dav.php/");
     uri.append(Glib::path_get_basename(fileName));
 
index 47e3d3d2beaad4a96846a87a55d41e4cf0c0024b..9927919765bd94df74bd6fede5608cab7fc4ae41 100644 (file)
@@ -1,21 +1,24 @@
 #define __SP_FLOOD_CONTEXT_C__
 
-/** \file
-* Bucket fill drawing context, works by bitmap filling an area on a rendered version of the current display and then tracing the result using potrace.
-*
-* Author:
-*   Lauris Kaplinski <lauris@kaplinski.com>
-*   bulia byak <buliabyak@users.sf.net>
-*   John Bintz <jcoswell@coswellproductions.org>
-*
-* Copyright (C) 2006      Johan Engelen <johan@shouraizou.nl>
-* Copyright (C) 2000-2005 authors
-* Copyright (C) 2000-2001 Ximian, Inc.
-*
-* Released under GNU GPL, read the file 'COPYING' for more information
-*/
+/** @file
+ * @brief Bucket fill drawing context, works by bitmap filling an area on a rendered version
+ * of the current display and then tracing the result using potrace.
+ */
+/* Author:
+ *   Lauris Kaplinski <lauris@kaplinski.com>
+ *   bulia byak <buliabyak@users.sf.net>
+ *   John Bintz <jcoswell@coswellproductions.org>
+ *
+ * Copyright (C) 2006      Johan Engelen <johan@shouraizou.nl>
+ * Copyright (C) 2000-2005 authors
+ * Copyright (C) 2000-2001 Ximian, Inc.
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
 
+#ifdef HAVE_CONFIG_H
 #include "config.h"
+#endif
 
 #include <gdk/gdkkeysyms.h>
 #include <queue>
@@ -40,7 +43,7 @@
 #include "object-edit.h"
 #include "xml/repr.h"
 #include "xml/node-event-vector.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "context-fns.h"
 #include "rubberband.h"
 
@@ -223,7 +226,8 @@ static void sp_flood_context_setup(SPEventContext *ec)
 
     rc->_message_context = new Inkscape::MessageContext((ec->desktop)->messageStack());
 
-    if (prefs_get_int_attribute("tools.paintbucket", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/paintbucket/selcue")) {
         rc->enableSelectionCue();
     }
 }
@@ -437,6 +441,7 @@ static void do_trace(bitmap_coords_info bci, guchar *trace_px, SPDesktop *deskto
     }
 
     Inkscape::Trace::Potrace::PotraceTracingEngine pte;
+    pte.keepGoing = 1;
     std::vector<Inkscape::Trace::TracingEngineResult> results = pte.traceGrayMap(gray_map);
     gray_map->destroy(gray_map);
 
@@ -445,7 +450,8 @@ static void do_trace(bitmap_coords_info bci, guchar *trace_px, SPDesktop *deskto
 
     long totalNodeCount = 0L;
 
-    double offset = prefs_get_double_attribute("tools.paintbucket", "offset", 0.0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    double offset = prefs->getDouble("/tools/paintbucket/offset", 0.0);
 
     for (unsigned int i=0 ; i<results.size() ; i++) {
         Inkscape::Trace::TracingEngineResult result = results[i];
@@ -453,7 +459,7 @@ static void do_trace(bitmap_coords_info bci, guchar *trace_px, SPDesktop *deskto
 
         Inkscape::XML::Node *pathRepr = xml_doc->createElement("svg:path");
         /* Set style */
-        sp_desktop_apply_style_tool (desktop, pathRepr, "tools.paintbucket", false);
+        sp_desktop_apply_style_tool (desktop, pathRepr, "/tools/paintbucket", false);
 
         Geom::PathVector pathv = sp_svg_read_pathv(result.getPathData().c_str());
         Path *path = new Path;
@@ -887,8 +893,9 @@ static void sp_flood_do_flood_fill(SPEventContext *event_context, GdkEvent *even
     bool aborted = false;
     int y_limit = height - 1;
 
-    PaintBucketChannels method = (PaintBucketChannels)prefs_get_int_attribute("tools.paintbucket", "channels", 0);
-    int threshold = prefs_get_int_attribute_limited("tools.paintbucket", "threshold", 1, 0, 100);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    PaintBucketChannels method = (PaintBucketChannels) prefs->getInt("/tools/paintbucket/channels", 0);
+    int threshold = prefs->getIntLimited("/tools/paintbucket/threshold", 1, 0, 100);
 
     switch(method) {
         case FLOOD_CHANNELS_ALPHA:
@@ -914,7 +921,7 @@ static void sp_flood_do_flood_fill(SPEventContext *event_context, GdkEvent *even
     bci.bbox = *bbox;
     bci.screen = screen;
     bci.dtc = dtc;
-    bci.radius = prefs_get_int_attribute_limited("tools.paintbucket", "autogap", 0, 0, 3);
+    bci.radius = prefs->getIntLimited("/tools/paintbucket/autogap", 0, 0, 3);
     bci.max_queue_size = (width * height) / 4;
     bci.current_step = 0;
 
@@ -1159,7 +1166,7 @@ static gint sp_flood_context_item_handler(SPEventContext *event_context, SPItem
             
             Inkscape::XML::Node *pathRepr = SP_OBJECT_REPR(item);
             /* Set style */
-            sp_desktop_apply_style_tool (desktop, pathRepr, "tools.paintbucket", false);
+            sp_desktop_apply_style_tool (desktop, pathRepr, "/tools/paintbucket", false);
             sp_document_done(sp_desktop_document(desktop), SP_VERB_CONTEXT_PAINTBUCKET, _("Set style on object"));
             ret = TRUE;
         }
@@ -1308,7 +1315,8 @@ static void sp_flood_finish(SPFloodContext *rc)
 
 void flood_channels_set_channels( gint channels )
 {
-    prefs_set_int_attribute("tools.paintbucket", "channels", channels);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt("/tools/paintbucket/channels", channels);
 }
 
 /*
diff --git a/src/fontsize-expansion.cpp b/src/fontsize-expansion.cpp
deleted file mode 100644 (file)
index 50169c3..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#include "libnr/nr-matrix-ops.h"
-
-/**
- * Returns the distance from the transformed baseline to the
- * transformation of a point at (0, 1); or 0 if \a m has no inverse.
- */
-double
-fontsize_expansion(NR::Matrix const &m)
-{
-    double const denom(hypot(m[0], m[1]));
-    if (!(denom > 1e-100)) {
-        return 0.;
-    }
-    double const numer(m.descrim2());
-    if (!(numer > 1e-100)) {
-        return 0.;
-    }
-    return numer / denom;
-}
-
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
-  indent-tabs-mode:nil
-  fill-column:99
-  End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
diff --git a/src/fontsize-expansion.h b/src/fontsize-expansion.h
deleted file mode 100644 (file)
index 2477cd4..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef INKSCAPE_FONTSIZE_EXPANSION_H
-#define INKSCAPE_FONTSIZE_EXPANSION_H
-
-#include "libnr/nr-forward.h"
-
-double fontsize_expansion(NR::Matrix const &m);
-
-
-#endif /* !INKSCAPE_FONTSIZE_EXPANSION_H */
index 7b32b37d72de67020a308fd7037478c6bf3d8d65..ce26d2c5f2908f07a184f77573359441ab0d2a6b 100644 (file)
@@ -38,7 +38,7 @@
 #include "svg/svg.h"
 #include "svg/svg-color.h"
 #include "svg/css-ostringstream.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 
 // Terminology:
@@ -240,7 +240,8 @@ SPGradient *
 sp_gradient_fork_vector_if_necessary (SPGradient *gr)
 {
     // Some people actually prefer their gradient vectors to be shared...
-    if (prefs_get_int_attribute("options.forkgradientvectors", "value", 1) == 0)
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (!prefs->getBool("/options/forkgradientvectors/value", true))
         return gr;
 
     if (SP_OBJECT_HREFCOUNT(gr) > 1) {
index 7181fab4e7a0fbe25971743869fb83a0ce8b6cd5..3741bc499a7437b0a3a7eab055fa5d25f6bb9379 100644 (file)
@@ -32,7 +32,7 @@
 #include "gradient-context.h"
 #include "gradient-chemistry.h"
 #include <glibmm/i18n.h>
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "gradient-drag.h"
 #include "gradient-chemistry.h"
 #include "xml/repr.h"
@@ -203,7 +203,8 @@ static void sp_gradient_context_setup(SPEventContext *ec)
         ((SPEventContextClass *) parent_class)->setup(ec);
     }
 
-    if (prefs_get_int_attribute("tools.gradient", "selcue", 1) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/gradient/selcue", true)) {
         ec->enableSelectionCue();
     }
 
@@ -488,11 +489,12 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
 
     SPDesktop *desktop = event_context->desktop;
     Inkscape::Selection *selection = sp_desktop_selection (desktop);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     SPGradientContext *rc = SP_GRADIENT_CONTEXT(event_context);
 
-    event_context->tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
-    double const nudge = prefs_get_double_attribute_limited("options.nudgedistance", "value", 2, 0, 1000); // in px
+    event_context->tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
+    double const nudge = prefs->getDoubleLimited("/options/nudgedistance/value", 2, 0, 1000); // in px
 
     GrDrag *drag = event_context->_grdrag;
     g_assert (drag);
@@ -516,8 +518,8 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
             } else {
                 for (GSList const* i = selection->itemList(); i != NULL; i = i->next) {
                     SPItem *item = SP_ITEM(i->data);
-                    SPGradientType new_type = (SPGradientType) prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR);
-                    guint new_fill = prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1);
+                    SPGradientType new_type = (SPGradientType) prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR);
+                    guint new_fill = prefs->getInt("/tools/gradient/newfillorstroke", 1);
 
                     SPGradient *vector = sp_gradient_vector_for_object(sp_desktop_document(desktop), desktop,                                                                                   SP_OBJECT (item), new_fill);
 
@@ -554,7 +556,7 @@ sp_gradient_context_root_handler(SPEventContext *event_context, GdkEvent *event)
                 /* Snap center to nearest magnetic point */
                 SnapManager &m = desktop->namedview->snap_manager;
                 m.setup(desktop);
-                m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, button_dt);
+                m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, button_dt);
                 rc->origin = from_2geom(button_dt);
             }
 
@@ -861,8 +863,9 @@ static void sp_gradient_drag(SPGradientContext &rc, NR::Point const pt, guint /*
     SPEventContext *ec = SP_EVENT_CONTEXT(&rc);
 
     if (!selection->isEmpty()) {
-        int type = prefs_get_int_attribute ("tools.gradient", "newgradient", 1);
-        int fill_or_stroke = prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        int type = prefs->getInt("/tools/gradient/newgradient", 1);
+        int fill_or_stroke = prefs->getInt("/tools/gradient/newfillorstroke", 1);
 
         SPGradient *vector;
         if (ec->item_to_select) {
index 994171d13a48e08c4fb64e70d26c3443a3744d09..b507ab72b51e1b477b725a834d52e0f572f5ca5a 100644 (file)
 #include "desktop-style.h"
 #include "document.h"
 #include "display/sp-ctrlline.h"
+#include "display/sp-canvas-util.h"
 #include "xml/repr.h"
 #include "svg/css-ostringstream.h"
 #include "svg/svg.h"
 #include "libnr/nr-point-fns.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-item.h"
 #include "style.h"
 #include "knot.h"
@@ -581,7 +582,7 @@ gr_knot_moved_handler(SPKnot *knot, NR::Point const *ppointer, guint state, gpoi
         SPDesktop *desktop = dragger->parent->desktop;
         SnapManager &m = desktop->namedview->snap_manager;
         m.setup(desktop);
-        Inkscape::SnappedPoint s = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(p));
+        Inkscape::SnappedPoint s = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(p));
         if (s.getSnapped()) {
             p = s.getPoint();
             sp_knot_moveto (knot, p);
@@ -614,7 +615,8 @@ gr_knot_moved_handler(SPKnot *knot, NR::Point const *ppointer, guint state, gpoi
     }
 
     if (state & GDK_CONTROL_MASK) {
-        unsigned snaps = abs(prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12));
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        unsigned snaps = abs(prefs->getInt("/options/rotationsnapsperpi/value", 12));
         /* 0 means no snapping. */
 
         // This list will store snap vectors from all draggables of dragger
@@ -1282,7 +1284,7 @@ GrDragger::GrDragger (GrDrag *parent, NR::Point p, GrDraggable *draggable)
     this->knot = sp_knot_new (parent->desktop, NULL);
     this->knot->setMode(SP_KNOT_MODE_XOR);
     this->knot->setFill(GR_KNOT_COLOR_NORMAL, GR_KNOT_COLOR_MOUSEOVER, GR_KNOT_COLOR_MOUSEOVER);
-    this->knot->setStroke(0x000000ff, 0x000000ff, 0x000000ff);
+    this->knot->setStroke(0x0000007f, 0x0000007f, 0x0000007f);
     sp_knot_update_ctrl(this->knot);
 
     // move knot to the given point
@@ -1526,6 +1528,7 @@ GrDrag::addLine (SPItem *item, NR::Point p1, NR::Point p2, guint32 rgba)
 {
     SPCanvasItem *line = sp_canvas_item_new(sp_desktop_controls(this->desktop),
                                                             SP_TYPE_CTRLLINE, NULL);
+    sp_canvas_item_move_to_z(line, 0);
     SP_CTRLLINE(line)->item = item;
     sp_ctrlline_set_coords(SP_CTRLLINE(line), p1, p2);
     if (rgba != GR_LINE_COLOR_FILL) // fill is the default, so don't set color for it to speed up redraw
index d0ba2d20ec781c509ebbc0098655a5f73749e9cf..87ec60695ab6e37722819aeee6d75693f581fdbd 100644 (file)
@@ -1,14 +1,15 @@
-/** \file
- * Interface between Inkscape code (SPItem) and graphlayout functions.
+/** @file
+ * @brief Interface between Inkscape code (SPItem) and graphlayout functions.
  */
 /*
-* Authors:
-*   Tim Dwyer <Tim.Dwyer@infotech.monash.edu.au>
-*
-* Copyright (C) 2005 Authors
-*
-* Released under GNU GPL.  Read the file 'COPYING' for more information.
-*/
+ * Authors:
+ *   Tim Dwyer <Tim.Dwyer@infotech.monash.edu.au>
+ *
+ * Copyright (C) 2005 Authors
+ *
+ * Released under GNU GPL.  Read the file 'COPYING' for more information.
+ */
+
 #include <iostream>
 #include <config.h>
 #include <map>
@@ -142,11 +143,11 @@ void graphlayout(GSList const *const items) {
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
        SimpleConstraints scx,scy;
-       double ideal_connector_length = prefs->getDouble("tools.connector", "length", 100.0);
+       double ideal_connector_length = prefs->getDouble("/tools/connector/length", 100.0);
        double directed_edge_height_modifier = 1.0;
        
-       bool directed =       prefs->getBool("tools.connector", "directedlayout");
-       bool avoid_overlaps = prefs->getBool("tools.connector", "avoidoverlaplayout");
+       bool directed =       prefs->getBool("/tools/connector/directedlayout");
+       bool avoid_overlaps = prefs->getBool("/tools/connector/avoidoverlaplayout");
 
        for (list<SPItem *>::iterator i(selected.begin());
                i != selected.end();
index d1991e75d30decdc505ed1e3170fdc900c224131..d9c57f8293914e53e0b0cb7ec818216b0b954568 100644 (file)
@@ -43,7 +43,7 @@ Inkscape::GuideSnapper::LineList Inkscape::GuideSnapper::_getSnapLines(Geom::Poi
  */
 bool Inkscape::GuideSnapper::ThisSnapperMightSnap() const
 {
-    return _snapmanager->getNamedView() == NULL ? false : (_snap_enabled && _snap_from != 0 && _snapmanager->getNamedView()->showguides);
+    return _snapmanager->getNamedView() == NULL ? false : (_snap_enabled && _snapmanager->snapprefs.getSnapModeBBoxOrNodes() && _snapmanager->getNamedView()->showguides);
 }
 
 void Inkscape::GuideSnapper::_addSnappedLine(SnappedConstraints &sc, Geom::Point const snapped_point, Geom::Coord const snapped_distance, Geom::Point const normal_to_line, Geom::Point const point_on_line) const
index dd405b7d907f874db742589554755773aa45ca07..89ab32f559dfa47679dca17d7b56cd226899a40e 100644 (file)
@@ -29,7 +29,7 @@
 #include <sp-item.h>
 #include <sp-root.h>
 #include <sp-defs.h>
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "dialogs/rdf.h"
 
 /* This is an example of how to use libpng to read and write PNG files.
@@ -409,8 +409,11 @@ sp_export_png_file(SPDocument *doc, gchar const *filename,
     }
 
     // export with maximum blur rendering quality
-    int saved_quality = prefs_get_int_attribute("options.blurquality", "value", 0);
-    prefs_set_int_attribute("options.blurquality", "value", 2);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int saved_quality = prefs->getInt("/options/blurquality/value", 0);
+    prefs->setInt("/options/blurquality/value", 2);
+    int saved_filter_quality = prefs->getInt("/options/filterquality/value", 0);
+    prefs->setInt("/options/filterquality/value", 2);
 
     sp_document_ensure_up_to_date(doc);
 
@@ -487,8 +490,9 @@ sp_export_png_file(SPDocument *doc, gchar const *filename,
     /* Free arena */
     nr_object_unref((NRObject *) arena);
 
-    // restore saved blur quality
-    prefs_set_int_attribute("options.blurquality", "value", saved_quality);
+    // restore saved blur and filter quality
+    prefs->setInt("/options/blurquality/value", saved_quality);
+    prefs->setInt("/options/filterquality/value", saved_filter_quality);
 
     return write_status;
 }
index bf3c25e94b4bc30a36194a459e9c65ade33a1fa5..51f740fb4e889c37a1d23c9d845e266eb041574d 100644 (file)
@@ -303,7 +303,7 @@ static gint inkscape_autosave(gpointer)
 
     Glib::ustring autosave_dir;
     {
-        Glib::ustring tmp = prefs->getString("options.autosave", "path");
+        Glib::ustring tmp = prefs->getString("/options/autosave/path");
         if (!tmp.empty()) {
             autosave_dir = tmp;
         } else {
@@ -322,7 +322,7 @@ static gint inkscape_autosave(gpointer)
     gchar sptstr[256];
     strftime(sptstr, 256, "%Y_%m_%d_%H_%M_%S", sptm);
 
-    gint autosave_max = prefs->getInt("options.autosave", "max", 10);
+    gint autosave_max = prefs->getInt("/options/autosave/max", 10);
 
     gint docnum = 0;
 
@@ -438,14 +438,14 @@ void inkscape_autosave_init()
         autosave_timeout_id = 0;
     }
 
-    // g_debug("options.autosave.enable = %d", prefs->getBool("options.autosave", "enable", true));
+    // g_debug("options.autosave.enable = %d", prefs->getBool("/options/autosave/enable", true));
     // Is autosave enabled?
-    if (!prefs->getBool("options.autosave", "enable", true)){
+    if (!prefs->getBool("/options/autosave/enable", true)){
         autosave_timeout_id = 0;
     } else {
         // Turn on autosave
-        guint32 timeout = prefs->getInt("options.autosave", "interval", 10) * 60;
-        // g_debug("options.autosave.interval = %d", prefs->getInt("options.autosave", "interval", 10));
+        guint32 timeout = prefs->getInt("/options/autosave/interval", 10) * 60;
+        // g_debug("options.autosave.interval = %d", prefs->getInt("/options/autosave/interval", 10));
 #if GLIB_CHECK_VERSION(2,14,0)
         autosave_timeout_id = g_timeout_add_seconds(timeout, inkscape_autosave, NULL);
 #else
@@ -772,7 +772,7 @@ inkscape_application_init (const gchar *argv0, gboolean use_gui)
 #define DEFAULT_LOG_REDIRECT false
 #endif
 
-    if (use_gui == TRUE && prefs->getBool("dialogs.debug", "redirect", DEFAULT_LOG_REDIRECT))
+    if (use_gui == TRUE && prefs->getBool("/dialogs/debug/redirect", DEFAULT_LOG_REDIRECT))
     {
         Inkscape::UI::Dialogs::DebugDialog::getInstance()->captureLogMessages();
     }
@@ -780,7 +780,7 @@ inkscape_application_init (const gchar *argv0, gboolean use_gui)
     /* Check for global remapping of Alt key */
     if(use_gui)
     {
-        inkscape_mapalt(guint(prefs->getInt("options.mapalt", "value", 0)));
+        inkscape_mapalt(guint(prefs->getInt("/options/mapalt/value", 0)));
     }
 
     /* Initialize the extensions */
@@ -825,15 +825,6 @@ bool inkscape_load_menus (Inkscape::Application */*inkscape*/)
     return false;
 }
 
-/**
- * @deprecated Use the Preferences class instead, and try not to use _getNode
- */
-Inkscape::XML::Node *inkscape_get_repr(Inkscape::Application */*inkscape*/, const gchar *key)
-{
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    return ps->_getNode(key);
-}
-
 
 void
 inkscape_selection_modified (Inkscape::Selection *selection, guint flags)
index 90737cc41b130550fcd3674b508190ed3d1049e0..ca2894227c1d8589c30cf54497058fa9a80dda63 100644 (file)
@@ -34,7 +34,6 @@ void inkscape_autosave_init();
 void inkscape_application_init (const gchar *argv0, gboolean use_gui);
 
 bool inkscape_load_config (const gchar *filename, Inkscape::XML::Document *config, const gchar *skeleton, unsigned int skel_size, const gchar *e_notreg, const gchar *e_notxml, const gchar *e_notsp, const gchar *warn);
-Inkscape::XML::Node *inkscape_get_repr (Inkscape::Application *inkscape, const gchar *key);
 
 /* Menus */
 bool inkscape_load_menus (Inkscape::Application * inkscape);
index fee18612dbab581d113cf25fad3785f90742b703..873cacc31476fdd46f1893422c460d9bf7309803 100644 (file)
@@ -555,7 +555,6 @@ void inkscape_ref (void) {}
 void inkscape_unref (void) {}
 void inkscape_add_document (SPDocument *document) {}
 void inkscape_remove_document (SPDocument *document) {}
-Inkscape::XML::Node *inkscape_get_repr (Inkscape::Application *inkscape, const gchar *key) {return NULL;}
 #endif
 
 
index 1bc00a250840e0d3f8774e9226511ef6ae66c440..8a318210396331e78530b17e987c0f7bf88c3747 100644 (file)
@@ -1,9 +1,9 @@
 #define __SP_INTERFACE_C__
 
-/**
- * Main UI stuff
- *
- * Authors:
+/** @file
+ * @brief Main UI stuff
+ */
+/* Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
  *   Frank Felfe <innerspace@iname.com>
  *   bulia byak <buliabyak@users.sf.net>
@@ -23,7 +23,7 @@
 #include "inkscape-private.h"
 #include "extension/effect.h"
 #include "widgets/icon.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "path-prefix.h"
 
 #include "shortcuts.h"
@@ -132,6 +132,7 @@ static void sp_ui_menu_item_set_sensitive(SPAction *action,
 static void sp_ui_menu_item_set_name(SPAction *action, 
                                      Glib::ustring name,
                                      void *data);
+static void sp_recent_open(GtkRecentChooser *, gpointer);
 
 SPActionEventVector menu_item_event_vector = {
     {NULL},
@@ -170,15 +171,16 @@ sp_create_window(SPViewWidget *vw, gboolean editable)
                win->signal_window_state_event().connect(sigc::mem_fun(*desktop, &SPDesktop::onWindowStateEvent));
                win->signal_focus_in_event().connect(sigc::mem_fun(*desktop_widget, &SPDesktopWidget::onFocusInEvent));
        
+       Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         gint prefs_geometry = 
-            (2==prefs_get_int_attribute("options.savewindowgeometry", "value", 0));
+            (2==prefs->getInt("/options/savewindowgeometry/value", 0));
         if (prefs_geometry) {
-            gint pw = prefs_get_int_attribute("desktop.geometry", "width", -1);
-            gint ph = prefs_get_int_attribute("desktop.geometry", "height", -1);
-            gint px = prefs_get_int_attribute("desktop.geometry", "x", -1);
-            gint py = prefs_get_int_attribute("desktop.geometry", "y", -1);
-            gint full = prefs_get_int_attribute("desktop.geometry", "fullscreen", 0);
-            gint maxed = prefs_get_int_attribute("desktop.geometry", "maximized", 0);
+            gint pw = prefs->getInt("/desktop/geometry/width", -1);
+            gint ph = prefs->getInt("/desktop/geometry/height", -1);
+            gint px = prefs->getInt("/desktop/geometry/x", -1);
+            gint py = prefs->getInt("/desktop/geometry/y", -1);
+            gint full = prefs->getBool("/desktop/geometry/fullscreen");
+            gint maxed = prefs->getBool("/desktop/geometry/maximized");
             if (pw>0 && ph>0) {
                 gint w = MIN(gdk_screen_width(), pw);
                 gint h = MIN(gdk_screen_height(), ph);
@@ -633,18 +635,20 @@ checkitem_toggled(GtkCheckMenuItem *menuitem, gpointer user_data)
     gchar const *pref = (gchar const *) user_data;
     Inkscape::UI::View::View *view = (Inkscape::UI::View::View *) g_object_get_data(G_OBJECT(menuitem), "view");
 
-    gchar *pref_path;
+    Glib::ustring pref_path;
     if (reinterpret_cast<SPDesktop*>(view)->is_focusMode()) {
-        pref_path = g_strconcat("focus.", pref, NULL);
+        pref_path = "/focus/";
     } else if (reinterpret_cast<SPDesktop*>(view)->is_fullscreen()) {
-        pref_path = g_strconcat("fullscreen.", pref, NULL);
+        pref_path = "/fullscreen/";
     } else {
-        pref_path = g_strconcat("window.", pref, NULL);
-       }
+        pref_path = "/window/";
+    }
+    pref_path += pref;
+    pref_path += "/state";
 
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     gboolean checked = gtk_check_menu_item_get_active(menuitem);
-    prefs_set_int_attribute(pref_path, "state", checked);
-       g_free(pref_path);
+    prefs->setBool(pref_path, checked);
 
     reinterpret_cast<SPDesktop*>(view)->layoutWidget();
 }
@@ -657,13 +661,16 @@ checkitem_update(GtkWidget *widget, GdkEventExpose */*event*/, gpointer user_dat
     gchar const *pref = (gchar const *) user_data;
     Inkscape::UI::View::View *view = (Inkscape::UI::View::View *) g_object_get_data(G_OBJECT(menuitem), "view");
 
-    gchar const *pref_path;
-    if ((static_cast<SPDesktop*>(view))->is_fullscreen())
-        pref_path = g_strconcat("fullscreen.", pref, NULL);
-    else
-        pref_path = g_strconcat("window.", pref, NULL);
+    Glib::ustring pref_path;
+    if ((static_cast<SPDesktop*>(view))->is_fullscreen()) {
+        pref_path = "/fullscreen/";
+    } else {
+        pref_path = "/window/";
+    }
+    pref_path += pref;
 
-    gint ison = prefs_get_int_attribute_limited(pref_path, "state", 1, 0, 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool ison = prefs->getBool(pref_path + "/state", true);
 
     g_signal_handlers_block_by_func(G_OBJECT(menuitem), (gpointer)(GCallback)checkitem_toggled, user_data);
     gtk_check_menu_item_set_active(menuitem, ison);
@@ -737,9 +744,16 @@ sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View *
 }
 
 static void
-sp_recent_open(GtkWidget */*widget*/, gchar const *uri)
+sp_recent_open(GtkRecentChooser *recent_menu, gpointer /*user_data*/)
 {
-    sp_file_open(uri, NULL);
+    // dealing with the bizarre filename convention in Inkscape for now
+    gchar *uri = gtk_recent_chooser_get_current_uri(GTK_RECENT_CHOOSER(recent_menu));
+    gchar *local_fn = g_filename_from_uri(uri, NULL, NULL);
+    gchar *utf8_fn = g_filename_to_utf8(local_fn, -1, NULL, NULL, NULL);
+    sp_file_open(utf8_fn, NULL);
+    g_free(utf8_fn);
+    g_free(local_fn);
+    g_free(uri);
 }
 
 static void
@@ -805,35 +819,6 @@ sp_menu_append_new_templates(GtkWidget *menu, Inkscape::UI::View::View *view)
     }
 }
 
-void
-sp_menu_append_recent_documents(GtkWidget *menu, Inkscape::UI::View::View* /* view */)
-{
-    gchar const **recent = prefs_get_recent_files();
-    if (recent) {
-        int i;
-
-        for (i = 0; recent[i] != NULL; i += 2) {
-            gchar const *uri = recent[i];
-            gchar const *name = recent[i + 1];
-
-            GtkWidget *item = gtk_menu_item_new_with_label(name);
-            gtk_widget_show(item);
-            g_signal_connect(G_OBJECT(item),
-                             "activate",
-                             G_CALLBACK(sp_recent_open),
-                             (gpointer)uri);
-            gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
-        }
-
-        g_free(recent);
-    } else {
-        GtkWidget *item = gtk_menu_item_new_with_label(_("None"));
-        gtk_widget_show(item);
-        gtk_widget_set_sensitive(item, FALSE);
-        gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
-    }
-}
-
 void
 sp_ui_checkboxes_menus(GtkMenu *m, Inkscape::UI::View::View *view)
 {
@@ -929,7 +914,25 @@ sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, Inkscape::UI:
             continue;
         }
         if (!strcmp(menu_pntr->name(), "recent-file-list")) {
-            sp_menu_append_recent_documents(menu, view);
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+
+            // create recent files menu
+            int max_recent = prefs->getInt("/options/maxrecentdocuments/value");
+            GtkWidget *recent_menu = gtk_recent_chooser_menu_new_for_manager(gtk_recent_manager_get_default());
+            gtk_recent_chooser_set_limit(GTK_RECENT_CHOOSER(recent_menu), max_recent);
+            // sort most recently used documents first to preserve previous behavior
+            gtk_recent_chooser_set_sort_type(GTK_RECENT_CHOOSER(recent_menu), GTK_RECENT_SORT_MRU);
+            g_signal_connect(G_OBJECT(recent_menu), "item-activated", G_CALLBACK(sp_recent_open), (gpointer) NULL);
+            
+            // add filter to only open files added by Inkscape
+            GtkRecentFilter *inkscape_only_filter = gtk_recent_filter_new();
+            gtk_recent_filter_add_application(inkscape_only_filter, "inkscape");
+            gtk_recent_chooser_add_filter(GTK_RECENT_CHOOSER(recent_menu), inkscape_only_filter);
+
+            GtkWidget *recent_item = gtk_menu_item_new_with_mnemonic(_("Open _Recent"));
+            gtk_menu_item_set_submenu(GTK_MENU_ITEM(recent_item), recent_menu);
+            
+            gtk_menu_append(GTK_MENU(menu), GTK_WIDGET(recent_item));
             continue;
         }
         if (!strcmp(menu_pntr->name(), "objects-checkboxes")) {
@@ -1188,6 +1191,7 @@ sp_ui_drag_data_received(GtkWidget *widget,
                         if (position) {
                             NR::Point nearest = get_point_on_Path(livarot_path, position->piece, position->t);
                             NR::Point delta = nearest - button_doc;
+                            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
                             delta = desktop->d2w(delta);
                             double stroke_tolerance =
                                 ( !SP_OBJECT_STYLE(item)->stroke.isNone() ?
@@ -1195,7 +1199,7 @@ sp_ui_drag_data_received(GtkWidget *widget,
                                   SP_OBJECT_STYLE (item)->stroke_width.computed *
                                   to_2geom(sp_item_i2d_affine(item)).descrim() * 0.5
                                   : 0.0)
-                                + prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100); 
+                                + prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100); 
 
                             if (NR::L2 (delta) < stroke_tolerance) {
                                 fillnotstroke = false;
@@ -1253,15 +1257,16 @@ sp_ui_drag_data_received(GtkWidget *widget,
             // To move the imported object, we must temporarily set the "transform pattern with
             // object" option.
             {
-                int const saved_pref = prefs_get_int_attribute("options.transform", "pattern", 1);
-                prefs_set_int_attribute("options.transform", "pattern", 1);
+                Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+                bool const saved_pref = prefs->getBool("/options/transform/pattern", true);
+                prefs->setBool("/options/transform/pattern", true);
                 sp_document_ensure_up_to_date(sp_desktop_document(desktop));
                 boost::optional<Geom::Rect> sel_bbox = selection->bounds();
                 if (sel_bbox) {
                     Geom::Point m( desktop->point() - sel_bbox->midpoint() );
                     sp_selection_move_relative(selection, m);
                 }
-                prefs_set_int_attribute("options.transform", "pattern", saved_pref);
+                prefs->setBool("/options/transform/pattern", saved_pref);
             }
 
             Inkscape::GC::release(newgroup);
index 029ff88fdba31943c02040c927f49e66d62dd305..96d0ae983f5be0c531c43707b31f306fd3ac18f9 100644 (file)
@@ -23,7 +23,7 @@
 #include <glibmm/ustring.h>
 #include <gtk/gtkmessagedialog.h>
 
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sys.h"
 
 #ifdef WIN32
@@ -75,9 +75,10 @@ extern guint update_in_progress;
 
 #define DEBUG_MESSAGE(key, ...) \
 {\
-    gint dump = prefs_get_int_attribute_limited("options.bulia", #key, 0, 0, 1);\
-    gint dumpD = prefs_get_int_attribute_limited("options.bulia", #key"D", 0, 0, 1);\
-    gint dumpD2 = prefs_get_int_attribute_limited("options.bulia", #key"D2", 0, 0, 1);\
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get(); \
+    gint dump = prefs->getBool("/options/bulia/" #key) ? 1 : 0;\
+    gint dumpD = prefs->getBool("/options/bulia/" #key"D") ? 1 : 0;\
+    gint dumpD2 = prefs->getBool("/options/bulia/" #key"D2") ? 1 : 0;\
     dumpD &= ( (update_in_progress == 0) || dumpD2 );\
     if ( dump )\
     {\
index 1fd6bc4b52b87c2d115cf3a7baeddb044bb8bf92..f6c82582bb412cd321c0aba63ff833e21cfa8338 100644 (file)
@@ -19,7 +19,7 @@
 #include "knotholder.h"
 #include "sp-item.h"
 #include "style.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "macros.h"
 #include <libnr/nr-matrix-ops.h>
 #include "sp-pattern.h"
@@ -93,7 +93,7 @@ KnotHolderEntity::snap_knot_position(Geom::Point const &p)
     Geom::Point s = p * i2d;
     SnapManager &m = desktop->namedview->snap_manager;
     m.setup(desktop, true, item);
-    m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, s);
+    m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, s);
     return s * i2d.inverse();
 }
 
@@ -168,7 +168,8 @@ PatternKnotHolderEntityAngle::knot_get()
 void
 PatternKnotHolderEntityAngle::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state)
 {
-    int const snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int const snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     SPPattern *pat = SP_PATTERN(SP_STYLE_FILL_SERVER(SP_OBJECT(item)->style));
 
index 59e32a56ecefc48dec723bf3bcb429c8139fa3be..741199098650d0c7f010c6f01aea7b4377fa9dad 100644 (file)
@@ -24,7 +24,7 @@
 #include "desktop-handles.h"
 #include "knot.h"
 #include "document.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "message-stack.h"
 #include "message-context.h"
 #include "event-context.h"
@@ -299,7 +299,8 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot
     }
 
     g_object_ref(knot);
-    tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
 
     switch (event->type) {
        case GDK_2BUTTON_PRESS:
index c7ba0e9045f93778b15cf6b6b7d6ce5966e5762f..3e49edac5723299ab5699850b14ab31fe6c478c1 100644 (file)
@@ -16,7 +16,7 @@
 #include "desktop.h"
 #include "desktop-handles.h"
 #include "layer-manager.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "ui/view/view.h"
 #include "selection.h"
 #include "sp-object.h"
@@ -150,7 +150,8 @@ void LayerManager::setCurrentLayer( SPObject* obj )
     if ( _desktop->currentRoot() ) {
         _desktop->setCurrentLayer( obj );
 
-        if ( prefs_get_int_attribute_limited("options.selection", "layerdeselect", 1, 0, 1) ) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        if (prefs->getBool("/options/selection/layerdeselect", true)) {
             sp_desktop_selection( _desktop )->clear();
         }
     }
index b2934c2e39ad058e328ea40c5bee9d0e43aa4d91..140157fe3db053d6ee3a39345dae0a7def19c28f 100644 (file)
@@ -6,7 +6,7 @@
  *   Diederik van Lierop <mail@diedenrezi.nl>
  *   And others...
  * 
- * Copyright (C) 1999-2007 Authors
+ * Copyright (C) 1999-2008 Authors
  *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 #include "line-snapper.h"
 #include "snapped-line.h"
 #include <gtk/gtk.h>
+#include "snap.h"
 
 Inkscape::LineSnapper::LineSnapper(SnapManager const *sm, Geom::Coord const d) : Snapper(sm, d)
 {
-
 }
 
 void Inkscape::LineSnapper::freeSnap(SnappedConstraints &sc,
-                                                    Inkscape::Snapper::PointType const &t,
+                                                    Inkscape::SnapPreferences::PointType const &t,
                                                     Geom::Point const &p,
                                                     bool const &/*f*/,
                                                     boost::optional<Geom::Rect> const &/*bbox_to_snap*/,
                                                     std::vector<SPItem const *> const */*it*/,
                                                     std::vector<Geom::Point> */*unselected_nodes*/) const
 {
-    if (_snap_enabled == false || getSnapFrom(t) == false) {
+       if (_snap_enabled == false || _snapmanager->snapprefs.getSnapFrom(t) == false) {
         return;
-    }    
+    }   
     
     /* Get the lines that we will try to snap to */
     const LineList lines = _getSnapLines(p);
@@ -58,7 +58,7 @@ void Inkscape::LineSnapper::freeSnap(SnappedConstraints &sc,
 }
 
 void Inkscape::LineSnapper::constrainedSnap(SnappedConstraints &sc,
-                                               Inkscape::Snapper::PointType const &t,
+                                               Inkscape::SnapPreferences::PointType const &t,
                                                Geom::Point const &p,
                                                bool const &/*f*/,
                                                boost::optional<Geom::Rect> const &/*bbox_to_snap*/,
@@ -66,7 +66,7 @@ void Inkscape::LineSnapper::constrainedSnap(SnappedConstraints &sc,
                                                std::vector<SPItem const *> const */*it*/) const
 
 {
-    if (_snap_enabled == false || getSnapFrom(t) == false) {
+    if (_snap_enabled == false || _snapmanager->snapprefs.getSnapFrom(t) == false) {
         return;
     }
     
index 7767fe2ea5a0f25a4fbc87313ca3399b086e9c4c..593e8bd73fcf58f2b6ea659da22f85bc0d97d247 100644 (file)
@@ -7,6 +7,9 @@
  *
  *    Authors:
  *      Carl Hetherington <inkscape@carlh.net>
+ *             Diederik van Lierop <mail@diedenrezi.nl>
+ * 
+ *       Copyright (C) 1999-2008 Authors
  *
  *    Released under GNU GPL, read the file 'COPYING' for more information.
  */
@@ -22,7 +25,7 @@ public:
   LineSnapper(SnapManager const *sm, Geom::Coord const d);
 
   void freeSnap(SnappedConstraints &sc,
-                   Inkscape::Snapper::PointType const &t,
+                   Inkscape::SnapPreferences::PointType const &t,
                    Geom::Point const &p,
                    bool const &first_point,
                    boost::optional<Geom::Rect> const &bbox_to_snap,
@@ -30,7 +33,7 @@ public:
                    std::vector<Geom::Point> *unselected_nodes) const;
   
   void constrainedSnap(SnappedConstraints &sc,
-                          Inkscape::Snapper::PointType const &t,
+                          Inkscape::SnapPreferences::PointType const &t,
                           Geom::Point const &p,
                           bool const &first_point,
                           boost::optional<Geom::Rect> const &bbox_to_snap,
index ef886a7496258cef4b7ff78b3b3ecf4d081ec381..a04100cd3c26912d7ad0e7ca2fc6273f7d1f5792 100644 (file)
@@ -491,7 +491,7 @@ Effect::getHelperPaths(SPLPEItem *lpeitem)
     std::vector<Geom::PathVector> hp_vec;
 
     if (!SP_IS_SHAPE(lpeitem)) {
-        g_print ("How to handle helperpaths for non-shapes?\n");
+        g_print ("How to handle helperpaths for non-shapes?\n"); // non-shapes are for example SPGroups.
         return hp_vec;
     }
 
index 609778b4619404fd183794de669fa5899c071f6f..8dd1354e2adb2ffb1bab29789769cd5b75108e28 100644 (file)
@@ -129,12 +129,13 @@ public:
 
     virtual void setup_nodepath(Inkscape::NodePath::Path *np);
 
+    /// /todo: is this method really necessary? it causes UI inconsistensies... (johan)
     virtual void transform_multiply(Geom::Matrix const& postmul, bool set);
 
-    // TODO: providesKnotholder() is currently used as an indicator of whether a nodepath is
+    // /TODO: providesKnotholder() is currently used as an indicator of whether a nodepath is
     // created for an item or not. When we allow both at the same time, this needs rethinking!
     bool providesKnotholder();
-    // TODO: in view of providesOwnFlashPaths() below, this is somewhat redundant
+    // /TODO: in view of providesOwnFlashPaths() below, this is somewhat redundant
     //       (but spiro lpe still needs it!)
     virtual LPEPathFlashType pathFlashType() { return DEFAULT; }
     void addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item);
index c5cde702531851fd8f6d6d634c75e59c86a98227..c3be5798155cae819908696ee15d19293343c990 100644 (file)
@@ -139,13 +139,6 @@ LPEBendPath::resetDefaults(SPItem * item)
     bend_path.set_new_value( path.toPwSb(), true );
 }
 
-void
-LPEBendPath::transform_multiply(Geom::Matrix const& postmul, bool set)
-{
-    // TODO: implement correct transformation instead of this default behavior
-    Effect::transform_multiply(postmul, set);
-}
-
 
 } // namespace LivePathEffect
 } /* namespace Inkscape */
index 20871bc0f3eafd3b5ba99e1e652d92c854c8aaa6..98421df88cc140935362d3a1072c084eeb7af4d5 100644 (file)
@@ -39,7 +39,6 @@ public:
 
     virtual void resetDefaults(SPItem * item);
 
-    virtual void transform_multiply(Geom::Matrix const& postmul, bool set);
 
 private:
     PathParam  bend_path;
index 34c17a0256f3bcdf2b4fdf9608e9cbc2fdbfb802..4404620be9d9969429a4a1c3001ced164e503e69 100644 (file)
@@ -179,6 +179,11 @@ LPECurveStitch::resetDefaults(SPItem * item)
     }
 }
 
+
+/** /todo check whether this special case is necessary. It seems to "bug" editing behavior:
+ * scaling an object with transforms preserved behaves differently from scaling with
+ * transforms optimized (difference caused by this special method).
+ */
 void
 LPECurveStitch::transform_multiply(Geom::Matrix const& postmul, bool set)
 {
index fad912df741433e7e449a03cf81db293fc5881e1..553390585d7473b6e6250173e0ae51cc12389253 100755 (executable)
@@ -248,13 +248,6 @@ LPEEnvelope::resetDefaults(SPItem * item)
     bend_path4.set_new_value( path4.toPwSb(), true );
 }
 
-void
-LPEEnvelope::transform_multiply(Geom::Matrix const& postmul, bool set)
-{
-    // TODO: implement correct transformation instead of this default behavior
-    Effect::transform_multiply(postmul, set);
-}
-
 
 } // namespace LivePathEffect
 } /* namespace Inkscape */
index 2821696749be5812c925cae700d88d0f0e74ebd9..fe1d9561d623d7387b4e0f6097f58d66f09a1392 100755 (executable)
@@ -37,8 +37,6 @@ public:
 
     virtual void resetDefaults(SPItem * item);
 
-    virtual void transform_multiply(Geom::Matrix const& postmul, bool set);
-
 private:
     PathParam  bend_path1;
     PathParam  bend_path2;
index 4504f4467ade44b4ff9f2428d2157297cafcfca2..0ff1beccf7620c32c599313113a5f4cdbdf31cc9 100644 (file)
@@ -28,6 +28,8 @@
 #include <2geom/path-intersection.h>
 #include <2geom/elliptical-arc.h>
 
+#include <exception>
+
 namespace Inkscape {
 namespace LivePathEffect {
 
@@ -171,12 +173,12 @@ namespace LPEKnotNS {
 CrossingPoints::CrossingPoints(Geom::CrossingSet const &input, std::vector<Geom::Path> const &path) : std::vector<CrossingPoint>()
 {
     using namespace Geom;
-    g_print("JF>\nCrossing set content:\n");
+//    g_print("JF>\nCrossing set content:\n");
     for( unsigned i=0; i<input.size(); i++){
         Crossings i_crossings = input[i];
         for( unsigned n=0; n<i_crossings.size(); n++ ){
             Crossing c = i_crossings[n];
-            g_print("JF> (%u,%u) at times (%f,%f) ----->",c.a,c.b,c.ta,c.tb);
+//            g_print("JF> (%u,%u) at times (%f,%f) ----->",c.a,c.b,c.ta,c.tb);
             unsigned j = c.getOther(i);
             if (i<j || (i==j && c.ta<c.tb) ){
                 CrossingPoint cp;
@@ -195,10 +197,10 @@ CrossingPoints::CrossingPoints(Geom::CrossingSet const &input, std::vector<Geom:
                 cp.nj = std::find(input[j].begin(),input[j].end(),c_bar)-input[j].begin();
                 cp.sign = 1;
                 push_back(cp);
-                g_print("i=%u, ni=%u, j=%u, nj=%u\n",cp.i,cp.ni,cp.j,cp.nj);
+//                g_print("i=%u, ni=%u, j=%u, nj=%u\n",cp.i,cp.ni,cp.j,cp.nj);
             }
             else{
-                g_print("\n");
+//                g_print("\n");
                 bool found = false;
                 for( unsigned ii=0; ii<input.size(); ii++){
                     Crossings ii_crossings = input[ii];
@@ -207,7 +209,9 @@ CrossingPoints::CrossingPoints(Geom::CrossingSet const &input, std::vector<Geom:
                         if (cc.b==c.a && cc.a==c.b && cc.ta==c.tb && cc.tb==c.ta) found = true;
                     }
                 }
-                assert( found );
+                if (!found) {
+                    throw std::exception();
+                }
             }
         }
     }
@@ -384,14 +388,14 @@ LPEKnot::doEffect_path (std::vector<Geom::Path> const &input_path)
 
     for(unsigned i=0;i<crossingTable.size();i++){
         for(unsigned j=0;j<crossingTable[i].size();j++){
-            g_print("JF>avant: %u,%u,%f,%f\n",crossingTable[i][j].a, crossingTable[i][j].b, crossingTable[i][j].ta, crossingTable[i][j].tb);
+//            g_print("JF>avant: %u,%u,%f,%f\n",crossingTable[i][j].a, crossingTable[i][j].b, crossingTable[i][j].ta, crossingTable[i][j].tb);
         }
     }
     crossingTable = crossingSet_remove_double(crossingTable);
 
     for(unsigned i=0;i<crossingTable.size();i++){
         for(unsigned j=0;j<crossingTable[i].size();j++){
-            g_print("JF>apres: %u,%u,%f,%f\n",crossingTable[i][j].a, crossingTable[i][j].b, crossingTable[i][j].ta, crossingTable[i][j].tb);
+//            g_print("JF>apres: %u,%u,%f,%f\n",crossingTable[i][j].a, crossingTable[i][j].b, crossingTable[i][j].ta, crossingTable[i][j].tb);
         }
     }
 
index 2240a0c3db206d0623ca65689ca55fdf6fb6b73e..0e5011e510616a85659165d1fdf6e7c7e5a0db04 100644 (file)
@@ -195,13 +195,6 @@ LPEPatternAlongPath::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > con
     return output;
 }
 
-void
-LPEPatternAlongPath::transform_multiply(Geom::Matrix const& postmul, bool set)
-{
-    // TODO: implement correct transformation instead of this default behavior
-    Effect::transform_multiply(postmul, set);
-}
-
 LPEFreehandShape::LPEFreehandShape(LivePathEffectObject *lpeobject) : LPEPatternAlongPath(lpeobject)
 {
 }
index 10b9e8bc28f3eb7505e4026b77b00a65ccdff052..5adc049fb699186331389f710457778ef85bf149 100644 (file)
@@ -32,8 +32,6 @@ public:
 
     virtual Geom::Piecewise<Geom::D2<Geom::SBasis> > doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in);
 
-    virtual void transform_multiply(Geom::Matrix const& postmul, bool set);
-
     PathParam  pattern;
 private:
     EnumParam<PAPCopyType> copytype;
index a95d89398c7cf318d0a1c10fef925c88e7b83740..38957a6581157b50181772485f3a5e165316921f 100644 (file)
@@ -180,17 +180,6 @@ LPESketch::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_
 
     Piecewise<D2<SBasis> > output;
 
-
-    //init random parameters.
-    parallel_offset.resetRandomizer();
-    strokelength_rdm.resetRandomizer();
-    strokeoverlap_rdm.resetRandomizer();
-    ends_tolerance.resetRandomizer();
-    tremble_size.resetRandomizer();
-    tgtlength_rdm.resetRandomizer();
-
-
-
     // some variables for futur use (for construction lines; compute arclength only once...)
     // notations will be : t = path time, s = distance from start along the path.
     Piecewise<SBasis> pathlength;
@@ -304,6 +293,18 @@ LPESketch::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_
     return output;
 }
 
+void
+LPESketch::doBeforeEffect (SPLPEItem *lpeitem)
+{
+    //init random parameters.
+    parallel_offset.resetRandomizer();
+    strokelength_rdm.resetRandomizer();
+    strokeoverlap_rdm.resetRandomizer();
+    ends_tolerance.resetRandomizer();
+    tremble_size.resetRandomizer();
+    tgtlength_rdm.resetRandomizer();
+}
+
 /* ######################## */
 
 } //namespace LivePathEffect (setq default-directory "c:/Documents And Settings/jf/Mes Documents/InkscapeSVN")
index f4881ac55d03147f13a8885913dccd7b0892720d..bca4e2447b2d0a2d5b1d6fb3fed1123a2eaf1eaf 100644 (file)
@@ -27,11 +27,10 @@ public:
     LPESketch(LivePathEffectObject *lpeobject);
     virtual ~LPESketch();
 
-//  Choose to implement one of the doEffect functions. You can delete or comment out the others.
-//    virtual void doEffect (SPCurve * curve);
-//    virtual std::vector<Geom::Path> doEffect_path (std::vector<Geom::Path> & path_in);
     virtual Geom::Piecewise<Geom::D2<Geom::SBasis> > doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in);
 
+    virtual void doBeforeEffect (SPLPEItem *lpeitem);
+
 private:
     // add the parameters for your effect here:
     //PointParam testpointA;
index 72d96f5a23fe7d869c54137e2f36e12eaf1cf49b..0f105ad608d2bae9dafb242cbd02262b8361759a 100644 (file)
@@ -305,14 +305,6 @@ LPEVonKoch::resetDefaults(SPItem * item)
     //generator.set_new_value(paths, true);
 }
 
-void
-LPEVonKoch::transform_multiply(Geom::Matrix const& postmul, bool set)
-{
-    // TODO: implement correct transformation instead of this default behavior
-    Effect::transform_multiply(postmul, set);
-}
-
-
 } // namespace LivePathEffect
 } /* namespace Inkscape */
 
index 16964f52760a531f3adce757bb1ed7a1bb1c9e3e..7862cdbb5908c8470f428af6b9b8b2718e2894e3 100644 (file)
@@ -55,8 +55,6 @@ public:
 
     virtual void doBeforeEffect(SPLPEItem * item);
 
-    virtual void transform_multiply(Geom::Matrix const& postmul, bool set);
-
     //Usefull??
     //    protected: 
     //virtual void addCanvasIndicators(SPLPEItem *lpeitem, std::vector<Geom::PathVector> &hp_vec); 
index 79e6857f0b2a41ccb696cec452b246b2ff310dfd..3b1ece2ad9583a4ea62ec61abb8d01ecb232fa67 100644 (file)
 namespace Inkscape {
 namespace LivePathEffect {
 
+/**
+ * \brief  Updates the \c boundingbox_X and \c boundingbox_Y values from the geometric bounding box of \c lpeitem.
+ *
+ * \pre   lpeitem must have an existing geometric boundingbox (usually this is guaranteed when: \code SP_SHAPE(lpeitem)->curve != NULL \endcode )
+          It's not possible to run LPEs on items without their original-d having a bbox.
+ * \param lpeitem   This is not allowed to be NULL.
+ * \param absolute  Determines whether the bbox should be calculated of the untransformed lpeitem (\c absolute = \c false)
+ *                  or of the transformed lpeitem (\c absolute = \c true) using sp_item_i2doc_affine.
+ * \post Updated values of boundingbox_X and boundingbox_Y. These intervals are set to empty intervals when the precondition is not met.
+ */
 void
 GroupBBoxEffect::original_bbox(SPLPEItem *lpeitem, bool absolute)
 {
@@ -27,9 +37,14 @@ GroupBBoxEffect::original_bbox(SPLPEItem *lpeitem, bool absolute)
         transform = Geom::identity();
     }
 
-    Geom::Rect itemBBox = *item->getBounds(transform, SPItem::GEOMETRIC_BBOX); // fixme: fix for when getBounds returns invalid Rect
-    boundingbox_X = itemBBox[Geom::X];
-    boundingbox_Y = itemBBox[Geom::Y];
+    boost::optional<Geom::Rect> bbox = item->getBounds(transform, SPItem::GEOMETRIC_BBOX);
+    if (bbox) {
+        boundingbox_X = (*bbox)[Geom::X];
+        boundingbox_Y = (*bbox)[Geom::Y];
+    } else {
+        boundingbox_X = Geom::Interval();
+        boundingbox_Y = Geom::Interval();
+    }
 }
 
 } // namespace LivePathEffect
index f522ae56ed8b1424c1c54640fae74136740b95ba..9163d1c91262b8a6335642276b5b51ba47c583a7 100644 (file)
@@ -11,8 +11,6 @@
 #include "enums.h"
 #include "live_effects/lpeobject-reference.h"
 #include "live_effects/lpeobject.h"
-
-#include "prefs-utils.h"
 #include "uri.h"
 
 namespace Inkscape {
index b001214cf29d0c40a5d16c66cb5b98d8033f13b6..8439f7086871b9f2945d180c9c18f6bc81998f6f 100644 (file)
@@ -27,7 +27,7 @@
 #include <gtk/gtk.h>
 #include "desktop.h"
 #include "message-context.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "shape-editor.h"
 #include "selection.h"
 #include "desktop-handles.h"
@@ -45,7 +45,7 @@ static void sp_lpetool_context_init(SPLPEToolContext *erc);
 static void sp_lpetool_context_dispose(GObject *object);
 
 static void sp_lpetool_context_setup(SPEventContext *ec);
-static void sp_lpetool_context_set(SPEventContext *ec, gchar const *key, gchar const *val);
+static void sp_lpetool_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *);
 static gint sp_lpetool_context_item_handler(SPEventContext *ec, SPItem *item, GdkEvent *event);
 static gint sp_lpetool_context_root_handler(SPEventContext *ec, GdkEvent *event);
 
@@ -164,13 +164,15 @@ sp_lpetool_context_setup(SPEventContext *ec)
 
 // TODO temp force:
     ec->enableSelectionCue();
+    
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     if (item) {
         lc->shape_editor->set_item(item, SH_NODEPATH);
         lc->shape_editor->set_item(item, SH_KNOTHOLDER);
     }
 
-    if (prefs_get_int_attribute("tools.lpetool", "selcue", 0) != 0) {
+    if (prefs->getBool("/tools/lpetool/selcue")) {
         ec->enableSelectionCue();
     }
 
@@ -199,18 +201,18 @@ sp_lpetool_context_selection_changed(Inkscape::Selection *selection, gpointer da
 }
 
 static void
-sp_lpetool_context_set(SPEventContext *ec, gchar const *key, gchar const *val)
+sp_lpetool_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val)
 {
     // FIXME: how to set this correcly? the value from preferences-skeleton.h doesn't seem to get
     // read (it wants to set drag = 1)
-    lpetool_parent_class->set(ec, key, "drag");
+    // lpetool_parent_class->set(ec, key, "drag");
 
-    /**
+    /*
     //pass on up to parent class to handle common attributes.
     if ( lpetool_parent_class->set ) {
         lpetool_parent_class->set(ec, key, val);
     }
-    **/
+    */
 }
 
 static gint 
@@ -279,7 +281,8 @@ sp_lpetool_context_root_handler(SPEventContext *event_context, GdkEvent *event)
 
                 using namespace Inkscape::LivePathEffect;
 
-                int mode = prefs_get_int_attribute("tools.lpetool", "mode", 0);
+                Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+                int mode = prefs->getInt("/tools/lpetool/mode");
                 EffectType type = lpesubtools[mode];
 
                 //bool over_stroke = lc->shape_editor->is_over_stroke(NR::Point(event->button.x, event->button.y), true);
@@ -419,11 +422,12 @@ void
 lpetool_get_limiting_bbox_corners(SPDocument *document, Geom::Point &A, Geom::Point &B) {
     Geom::Coord w = sp_document_width(document);
     Geom::Coord h = sp_document_height(document);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    double ulx = prefs_get_double_attribute ("tools.lpetool", "bbox_upperleftx", 0);
-    double uly = prefs_get_double_attribute ("tools.lpetool", "bbox_upperlefty", 0);
-    double lrx = prefs_get_double_attribute ("tools.lpetool", "bbox_lowerrightx", w);
-    double lry = prefs_get_double_attribute ("tools.lpetool", "bbox_lowerrighty", h);
+    double ulx = prefs->getDouble("/tools/lpetool/bbox_upperleftx", 0);
+    double uly = prefs->getDouble("/tools/lpetool/bbox_upperlefty", 0);
+    double lrx = prefs->getDouble("/tools/lpetool/bbox_lowerrightx", w);
+    double lry = prefs->getDouble("/tools/lpetool/bbox_lowerrighty", h);
 
     A = Geom::Point(ulx, uly);
     B = Geom::Point(lrx, lry);
@@ -441,7 +445,8 @@ lpetool_context_reset_limiting_bbox(SPLPEToolContext *lc)
         lc->canvas_bbox = NULL;
     }
 
-    if (prefs_get_int_attribute("tools.lpetool", "show_bbox", 1) == 0)
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (!prefs->getBool("/tools/lpetool/show_bbox", true))
         return;
 
     SPDocument *document = sp_desktop_document(lc->desktop);
@@ -479,10 +484,11 @@ set_pos_and_anchor(SPCanvasText *canvas_text, const Geom::Piecewise<Geom::D2<Geo
 void
 lpetool_create_measuring_items(SPLPEToolContext *lc, Inkscape::Selection *selection)
 {
-    bool show = prefs_get_int_attribute ("tools.lpetool", "show_measuring_info",  1) == 1 ? true : false;
     if (!selection) {
         selection = sp_desktop_selection(lc->desktop);
     }
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool show = prefs->getBool("/tools/lpetool/show_measuring_info",  true);
 
     SPPath *path;
     SPCurve *curve;
@@ -500,7 +506,7 @@ lpetool_create_measuring_items(SPLPEToolContext *lc, Inkscape::Selection *select
             if (!show)
                 sp_canvas_item_hide(SP_CANVAS_ITEM(canvas_text));
 
-            SPUnitId unitid = static_cast<SPUnitId>(prefs_get_int_attribute("tools.lpetool", "unitid", SP_UNIT_PX));
+            SPUnitId unitid = static_cast<SPUnitId>(prefs->getInt("/tools/lpetool/unitid", SP_UNIT_PX));
             SPUnit unit = sp_unit_get_by_id(unitid);
 
             lengthval = Geom::length(pwd2);
@@ -528,6 +534,7 @@ lpetool_delete_measuring_items(SPLPEToolContext *lc)
 void
 lpetool_update_measuring_items(SPLPEToolContext *lc)
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     SPPath *path;
     SPCurve *curve;
     double lengthval;
@@ -537,7 +544,7 @@ lpetool_update_measuring_items(SPLPEToolContext *lc)
         path = i->first;
         curve = sp_shape_get_curve(SP_SHAPE(path));
         Geom::Piecewise<Geom::D2<Geom::SBasis> > pwd2 = Geom::paths_to_pw(curve->get_pathvector());
-        SPUnitId unitid = static_cast<SPUnitId>(prefs_get_int_attribute("tools.lpetool", "unitid", SP_UNIT_PX));
+        SPUnitId unitid = static_cast<SPUnitId>(prefs->getInt("/tools/lpetool/unitid", SP_UNIT_PX));
         SPUnit unit = sp_unit_get_by_id(unitid);
         lengthval = Geom::length(pwd2);
         gboolean success;
index 7dcf9bf95bae13e223738fabfca65375cac7460e..03beb07348b1d1714cd36098cdb5880477f532b6 100644 (file)
@@ -141,10 +141,7 @@ enum {
     SP_ARG_EXPORT_EMF,
 #endif //WIN32
     SP_ARG_EXPORT_TEXT_TO_PATH,
-    SP_ARG_EXPORT_FONT,
-    SP_ARG_EXPORT_BBOX_PAGE,
     SP_ARG_EXTENSIONDIR,
-    SP_ARG_FIT_PAGE_TO_DRAWING,
     SP_ARG_QUERY_X,
     SP_ARG_QUERY_Y,
     SP_ARG_QUERY_WIDTH,
@@ -163,8 +160,7 @@ enum {
 int sp_main_gui(int argc, char const **argv);
 int sp_main_console(int argc, char const **argv);
 static void sp_do_export_png(SPDocument *doc);
-static void do_export_ps(SPDocument* doc, gchar const* uri, char const *mime);
-static void do_export_pdf(SPDocument* doc, gchar const* uri, char const *mime);
+static void do_export_ps_pdf(SPDocument* doc, gchar const* uri, char const *mime);
 #ifdef WIN32
 static void do_export_emf(SPDocument* doc, gchar const* uri, char const *mime);
 #endif //WIN32
@@ -195,7 +191,6 @@ static gchar *sp_export_emf = NULL;
 #endif //WIN32
 static gboolean sp_export_text_to_path = FALSE;
 static gboolean sp_export_font = FALSE;
-static gboolean sp_export_bbox_page = FALSE;
 static gboolean sp_query_x = FALSE;
 static gboolean sp_query_y = FALSE;
 static gboolean sp_query_width = FALSE;
@@ -238,7 +233,6 @@ static void resetCommandlineGlobals() {
 #endif //WIN32
         sp_export_text_to_path = FALSE;
         sp_export_font = FALSE;
-        sp_export_bbox_page = FALSE;
         sp_query_x = FALSE;
         sp_query_y = FALSE;
         sp_query_width = FALSE;
@@ -381,16 +375,6 @@ struct poptOption options[] = {
      N_("Convert text object to paths on export (EPS)"),
      NULL},
 
-    {"export-embed-fonts", 'F',
-     POPT_ARG_NONE, &sp_export_font, SP_ARG_EXPORT_FONT,
-     N_("Embed fonts on export (Type 1 only) (EPS)"),
-     NULL},
-
-    {"export-bbox-page", 'B',
-     POPT_ARG_NONE, &sp_export_bbox_page, SP_ARG_EXPORT_BBOX_PAGE,
-     N_("Export files with the bounding box set to the page size (EPS)"),
-     NULL},
-
     {"query-x", 'X',
      POPT_ARG_NONE, &sp_query_x, SP_ARG_QUERY_X,
      // TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
@@ -521,6 +505,26 @@ static int _win32_set_inkscape_env(const Glib::ustring &exePath)
 }
 #endif
 
+/**
+ * Add INKSCAPE_EXTENSIONDIR to PYTHONPATH so that extensions in users home
+ * can find inkex.py et al. (Bug #197475)
+ */
+static int set_extensions_env()
+{
+    char *oldenv = getenv("PYTHONPATH");
+    Glib::ustring tmp = INKSCAPE_EXTENSIONDIR;
+    if (oldenv != NULL) {
+#ifdef WIN32
+        tmp += ";";
+#else
+        tmp += ":";
+#endif
+        tmp += oldenv;
+    }
+    setenv("PYTHONPATH", tmp.c_str(), 1);
+    
+    return 0;
+}
 
 
 /**
@@ -552,6 +556,9 @@ main(int argc, char **argv)
     rt.setPathInfo();
 #endif
 
+    // Bug #197475
+    set_extensions_env();
+
    /**
     * Call bindtextdomain() for various machines's paths
     */
@@ -893,18 +900,18 @@ void sp_process_file_list(GSList *fl)
                 sp_repr_save_file(repr->document(), sp_export_svg, SP_SVG_NS_URI);
             }
             if (sp_export_ps) {
-                do_export_ps(doc, sp_export_ps, "image/x-postscript");
+                do_export_ps_pdf(doc, sp_export_ps, "image/x-postscript");
             }
             if (sp_export_eps) {
-                do_export_ps(doc, sp_export_eps, "image/x-e-postscript");
+                do_export_ps_pdf(doc, sp_export_eps, "image/x-e-postscript");
             }
             if (sp_export_pdf) {
-                do_export_pdf(doc, sp_export_pdf, "application/pdf");
-                }
+                do_export_ps_pdf(doc, sp_export_pdf, "application/pdf");
+            }
 #ifdef WIN32
-                if (sp_export_emf) {
-                    do_export_emf(doc, sp_export_emf, "image/x-emf");
-                }
+            if (sp_export_emf) {
+                do_export_emf(doc, sp_export_emf, "image/x-emf");
+            }
 #endif //WIN32
             if (sp_query_all) {
                 do_query_all (doc);
@@ -981,7 +988,7 @@ int sp_main_shell(char const* command_name)
                         resetCommandlineGlobals();
                         g_strfreev(argv);
                     } else {
-                        g_warning("problem parsing commandline: %s", useme);
+                        g_warning("Cannot parse commandline: %s", useme);
                     }
                 }
             }
@@ -1023,7 +1030,6 @@ int sp_main_console(int argc, char const **argv)
     } else {
         sp_process_file_list(fl); // Normal command line invokation
     }
-    inkscape_unref();
 
     return 0;
 }
@@ -1319,77 +1325,14 @@ sp_do_export_png(SPDocument *doc)
 
 
 /**
- *  Perform an export of either PS or EPS.
- *
- *  \param doc Document to export.
- *  \param uri URI to export to.
- *  \param mime MIME type to export as.
- */
-
-static void do_export_ps(SPDocument* doc, gchar const* uri, char const* mime)
-{
-    Inkscape::Extension::DB::OutputList o;
-    Inkscape::Extension::db.get_output_list(o);
-    Inkscape::Extension::DB::OutputList::const_iterator i = o.begin();
-    while (i != o.end() && strcmp( (*i)->get_mimetype(), mime ) != 0) {
-        i++;
-    }
-
-    if (i == o.end())
-    {
-        g_warning ("Could not find an extension to export to MIME type %s.", mime);
-        return;
-    }
-
-    bool old_text_to_path = false;
-    bool old_font_embedded = false;
-    bool old_bbox_page = false;
-
-    try {
-        old_text_to_path = (*i)->get_param_bool("textToPath");
-        (*i)->set_param_bool("textToPath", sp_export_text_to_path);
-    }
-    catch (...) {
-        g_warning ("Could not set export-text-to-path option for this export.");
-    }
-
-    try {
-        old_font_embedded = (*i)->get_param_bool("fontEmbedded");
-        (*i)->set_param_bool("fontEmbedded", sp_export_font);
-    }
-    catch (...) {
-        g_warning ("Could not set export-font option for this export.");
-    }
-
-    try {
-        old_bbox_page = (*i)->get_param_bool("pageBoundingBox");
-        (*i)->set_param_bool("pageBoundingBox", sp_export_bbox_page);
-    }
-    catch (...) {
-        g_warning ("Could not set export-bbox-page option for this export.");
-    }
-
-    (*i)->save(doc, uri);
-
-    try {
-        (*i)->set_param_bool("textToPath", old_text_to_path);
-        (*i)->set_param_bool("fontEmbedded", old_font_embedded);
-        (*i)->set_param_bool("pageBoundingBox", old_bbox_page);
-    }
-    catch (...) {
-
-    }
-}
-
-/**
- *  Perform a PDF export
+ *  Perform a PDF/PS/EPS export
  *
  *  \param doc Document to export.
  *  \param uri URI to export to.
  *  \param mime MIME type to export as.
  */
 
-static void do_export_pdf(SPDocument* doc, gchar const* uri, char const* mime)
+static void do_export_ps_pdf(SPDocument* doc, gchar const* uri, char const* mime)
 {
     Inkscape::Extension::DB::OutputList o;
     Inkscape::Extension::db.get_output_list(o);
@@ -1415,16 +1358,33 @@ static void do_export_pdf(SPDocument* doc, gchar const* uri, char const* mime)
         (*i)->set_param_string ("exportId", "");
     }
 
+    if (sp_export_area_canvas && sp_export_area_drawing) {
+        g_warning ("You cannot use --export-area-canvas and --export-area-drawing at the same time; only the former will take effect.");
+        sp_export_area_drawing = false;
+    }
+
     if (sp_export_area_drawing) {
-        (*i)->set_param_bool ("exportDrawing", TRUE);
+        (*i)->set_param_bool ("areaDrawing", TRUE);
     } else {
-        (*i)->set_param_bool ("exportDrawing", FALSE);
+        (*i)->set_param_bool ("areaDrawing", FALSE);
     }
 
     if (sp_export_area_canvas) {
-        (*i)->set_param_bool ("exportCanvas", TRUE);
+        if (sp_export_eps) {
+            g_warning ("EPS cannot have its bounding box extend beyond its content, so if your drawing is smaller than the canvas, --export-area-canvas will clip it to drawing.");
+        } 
+        (*i)->set_param_bool ("areaCanvas", TRUE);
     } else {
-        (*i)->set_param_bool ("exportCanvas", FALSE);
+        (*i)->set_param_bool ("areaCanvas", FALSE);
+    }
+
+    if (!sp_export_area_drawing && !sp_export_area_canvas && !sp_export_id) { 
+        // neither is set, set canvas as default for ps/pdf and drawing for eps
+        if (sp_export_eps) {
+            try {
+               (*i)->set_param_bool("areaDrawing", TRUE);
+            } catch (...) {}
+        } 
     }
 
     if (sp_export_text_to_path) {
@@ -1746,7 +1706,7 @@ sp_process_args(poptContext ctx)
     GSList *fl = NULL;
 
     gint a;
-    while ((a = poptGetNextOpt(ctx)) >= 0) {
+    while ((a = poptGetNextOpt(ctx)) != -1) {
         switch (a) {
             case SP_ARG_FILE: {
                 gchar const *fn = poptGetOptArg(ctx);
@@ -1784,6 +1744,11 @@ sp_process_args(poptContext ctx)
                 }
                 break;
             }
+            case POPT_ERROR_BADOPT: {
+                g_warning ("Invalid option %s", poptBadOption(ctx, 0));
+                exit(1);
+                break;
+            }
             default: {
                 break;
             }
index fded90c4afc6dc2c1e3b0728c8e70d5104f0bec7..37cb8223cfdebca8f6cb96b2baf0731bd846dba8 100644 (file)
@@ -37,8 +37,7 @@
 struct SPMarkerView {
        SPMarkerView *next;
        unsigned int key;
-       unsigned int size;
-       NRArenaItem *items[1];
+  std::vector<NRArenaItem *> items;
 };
 
 static void sp_marker_class_init (SPMarkerClass *klass);
@@ -479,12 +478,12 @@ sp_marker_update (SPObject *object, SPCtx *ctx, guint flags)
 
        /* As last step set additional transform of arena group */
        for (v = marker->views; v != NULL; v = v->next) {
-            for (unsigned i = 0 ; i < v->size ; i++) {
+      for (unsigned i = 0 ; i < v->items.size() ; i++) {
                 if (v->items[i]) {
                     Geom::Matrix tmp = marker->c2p;
                     nr_arena_group_set_child_transform(NR_ARENA_GROUP(v->items[i]), &tmp);
                 }
-            }
+      }
        }
 }
 
@@ -609,7 +608,7 @@ sp_marker_show_dimension (SPMarker *marker, unsigned int key, unsigned int size)
        for (view = marker->views; view != NULL; view = view->next) {
                if (view->key == key) break;
        }
-       if (view && (view->size != size)) {
+       if (view && (view->items.size() != size)) {
                /* Free old view and allocate new */
                /* Parent class ::hide method */
                ((SPItemClass *) parent_class)->hide ((SPItem *) marker, key);
@@ -617,12 +616,15 @@ sp_marker_show_dimension (SPMarker *marker, unsigned int key, unsigned int size)
                view = NULL;
        }
        if (!view) {
-               view = (SPMarkerView *)g_malloc (sizeof (SPMarkerView) + (size) * sizeof (NRArenaItem *));
-               for (i = 0; i < size; i++) view->items[i] = NULL;
+    view = (SPMarkerView *) g_new (SPMarkerView, 1);
+    new (&view->items) std::vector<NRArenaItem *>;
+    view->items.clear();
+               for (i = 0; i < size; i++) {
+        view->items.push_back(NULL);
+    }
                view->next = marker->views;
                marker->views = view;
                view->key = key;
-               view->size = size;
        }
 }
 
@@ -637,7 +639,7 @@ sp_marker_show_instance ( SPMarker *marker, NRArenaItem *parent,
 {
     for (SPMarkerView *v = marker->views; v != NULL; v = v->next) {
         if (v->key == key) {
-            if (pos >= v->size) {
+            if (pos >= v->items.size()) {
                 return NULL;
             }
             if (!v->items[pos]) {
@@ -715,16 +717,17 @@ sp_marker_view_remove (SPMarker *marker, SPMarkerView *view, unsigned int destro
                v->next = view->next;
        }
        if (destroyitems) {
-               for (i = 0; i < view->size; i++) {
+      for (i = 0; i < view->items.size(); i++) {
                        /* We have to walk through the whole array because there may be hidden items */
                        if (view->items[i]) nr_arena_item_unref (view->items[i]);
                }
        }
+  view->items.clear();
        g_free (view);
 }
 
 const gchar *
-generate_marker (GSList *reprs, NR::Rect bounds, SPDocument *document, Geom::Matrix /*transform*/, Geom::Matrix move)
+generate_marker (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Matrix /*transform*/, Geom::Matrix move)
 {
     Inkscape::XML::Document *xml_doc = sp_document_repr_doc(document);
     Inkscape::XML::Node *defsrepr = SP_OBJECT_REPR (SP_DOCUMENT_DEFS (document));
@@ -736,8 +739,8 @@ generate_marker (GSList *reprs, NR::Rect bounds, SPDocument *document, Geom::Mat
     // stroke width:
     //repr->setAttribute("markerUnits", "userSpaceOnUse");
 
-    sp_repr_set_svg_double(repr, "markerWidth", bounds.extent(NR::X));
-    sp_repr_set_svg_double(repr, "markerHeight", bounds.extent(NR::Y));
+    sp_repr_set_svg_double(repr, "markerWidth", bounds.dimensions()[Geom::X]);
+    sp_repr_set_svg_double(repr, "markerHeight", bounds.dimensions()[Geom::Y]);
 
     repr->setAttribute("orient", "auto");
 
index cc792448644c1be5606d24551d6372751646a978..8f9a2889e572a08488887eaae289484596edccb6 100644 (file)
@@ -90,7 +90,7 @@ NRArenaItem *sp_marker_show_instance (SPMarker *marker, NRArenaItem *parent,
                                      unsigned int key, unsigned int pos,
                                      Geom::Matrix const &base, float linewidth);
 void sp_marker_hide (SPMarker *marker, unsigned int key);
-const gchar *generate_marker (GSList *reprs, NR::Rect bounds, SPDocument *document, Geom::Matrix transform, Geom::Matrix move);
+const gchar *generate_marker (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Matrix transform, Geom::Matrix move);
 
 
 #endif
index 680d4f0feb95bc19f25d710d553790a109f66584..86ffa8e2119ede06294195d4a9498151f99068b2 100644 (file)
@@ -19,9 +19,7 @@ static char const menus_skeleton[] =
 "           <template-list/>\n"
 "       </submenu>\n"
 "       <verb verb-id=\"FileOpen\" />\n"
-"       <submenu name=\"" N_("Open _Recent") "\">\n"
-"           <recent-file-list/>\n"
-"       </submenu>\n"
+"       <recent-file-list/>\n"
 "       <verb verb-id=\"FileRevert\" />\n"
 "       <verb verb-id=\"FileSave\" />\n"
 "       <verb verb-id=\"FileSaveAs\" />\n"
index f16af703567f7339a0ef5aeb6841e035949ccb9e..9ff7257cef1646c91c8226a69cf1e7f8858c5a49 100644 (file)
@@ -30,7 +30,7 @@
 #include "message-context.h"
 #include "node-context.h"
 #include "pixmaps/cursor-node-d.xpm"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "xml/node-event-vector.h"
 #include "style.h"
 #include "splivarot.h"
@@ -160,11 +160,11 @@ sp_node_context_setup(SPEventContext *ec)
         nc->shape_editor->set_item(item, SH_KNOTHOLDER);
     }
 
-    if (prefs_get_int_attribute("tools.nodes", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/nodes/selcue")) {
         ec->enableSelectionCue();
     }
-
-    if (prefs_get_int_attribute("tools.nodes", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/nodes/gradientdrag")) {
         ec->enableGrDrag();
     }
 
@@ -234,9 +234,10 @@ static gint
 sp_node_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event)
 {
     gint ret = FALSE;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    if (prefs_get_int_attribute ("tools.nodes", "pathflash_enabled", 0) == 1) {
-        guint timeout = prefs_get_int_attribute("tools.nodes", "pathflash_timeout", 500);
+    if (prefs->getBool("/tools/nodes/pathflash_enabled")) {
+        guint timeout = prefs->getInt("/tools/nodes/pathflash_timeout", 500);
         if (SP_IS_LPE_ITEM(item)) {
             Inkscape::LivePathEffect::Effect *lpe = sp_lpe_item_get_current_lpe(SP_LPE_ITEM(item));
             if (lpe && (lpe->providesOwnFlashPaths() ||
@@ -260,12 +261,13 @@ sp_node_context_root_handler(SPEventContext *event_context, GdkEvent *event)
 {
     SPDesktop *desktop = event_context->desktop;
     Inkscape::Selection *selection = sp_desktop_selection (desktop);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     SPNodeContext *nc = SP_NODE_CONTEXT(event_context);
-    double const nudge = prefs_get_double_attribute_limited("options.nudgedistance", "value", 2, 0, 1000); // in px
-    event_context->tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100); // read every time, to make prefs changes really live
-    int const snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
-    double const offset = prefs_get_double_attribute_limited("options.defaultscale", "value", 2, 0, 1000);
+    double const nudge = prefs->getDoubleLimited("/options/nudgedistance/value", 2, 0, 1000); // in px
+    event_context->tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100); // read every time, to make prefs changes really live
+    int const snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
+    double const offset = prefs->getDoubleLimited("/options/defaultscale/value", 2, 0, 1000);
 
     if ( (nc->flash_tempitem) && (nc->remove_flash_counter <= 0) ) {
         desktop->remove_temporary_canvasitem(nc->flash_tempitem);
@@ -498,6 +500,13 @@ sp_node_context_root_handler(SPEventContext *event_context, GdkEvent *event)
                         ret = TRUE;
                     }
                     break;
+                case GDK_A:
+                case GDK_a:
+                    if (MOD__SHIFT_ONLY) {
+                        nc->shape_editor->set_node_type(Inkscape::NodePath::NODE_AUTO);
+                        ret = TRUE;
+                    }
+                    break;
                 case GDK_Y:
                 case GDK_y:
                     if (MOD__SHIFT_ONLY) {
index adcfd8d7679cd20456645dca98e1b6fc1185a843..bb63a014dbe485088b8a00bd6f63c7b13896e598 100644 (file)
 #include "display/sodipodi-ctrl.h"
 #include "display/sp-canvas-util.h"
 #include <glibmm/i18n.h>
-#include <2geom/pathvector.h>
-#include <2geom/sbasis-to-bezier.h>
-#include <2geom/bezier-curve.h>
-#include <2geom/hvlinesegment.h>
+#include "2geom/pathvector.h"
+#include "2geom/sbasis-to-bezier.h"
+#include "2geom/bezier-curve.h"
+#include "2geom/hvlinesegment.h"
 #include "helper/units.h"
 #include "helper/geom.h"
 #include "knot.h"
@@ -42,7 +42,7 @@
 #include "selection-chemistry.h"
 #include "selection.h"
 #include "xml/repr.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-metrics.h"
 #include "sp-path.h"
 #include "libnr/nr-matrix-ops.h"
@@ -53,7 +53,6 @@
 #include <algorithm>
 #include <cstring>
 #include <cmath>
-#include <string>
 #include "live_effects/lpeobject.h"
 #include "live_effects/lpeobject-reference.h"
 #include "live_effects/effect.h"
@@ -63,7 +62,7 @@
 #include "display/snap-indicator.h"
 #include "snapped-point.h"
 
-class Geom::Matrix;
+namespace Geom { class Matrix; }
 
 /// \todo
 /// evil evil evil. FIXME: conflict of two different Path classes!
@@ -121,6 +120,7 @@ static Inkscape::NodePath::Node *sp_nodepath_set_node_type(Inkscape::NodePath::N
 /* Adjust handle placement, if the node or the other handle is moved */
 static void sp_node_adjust_handle(Inkscape::NodePath::Node *node, gint which_adjust);
 static void sp_node_adjust_handles(Inkscape::NodePath::Node *node);
+static void sp_node_adjust_handles_auto(Inkscape::NodePath::Node *node);
 
 /* Node event callbacks */
 static void node_clicked(SPKnot *knot, guint state, gpointer data);
@@ -284,6 +284,8 @@ Inkscape::NodePath::Path *sp_nodepath_new(SPDesktop *desktop, SPObject *object,
         return NULL;
     }
 
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+
     // Set defaults
     np->desktop     = desktop;
     np->object      = object;
@@ -294,10 +296,10 @@ Inkscape::NodePath::Path *sp_nodepath_new(SPDesktop *desktop, SPObject *object,
     np->show_handles = show_handles;
     np->helper_path = NULL;
     np->helper_path_vec = new HelperPathList;
-    np->helperpath_rgba = prefs_get_int_attribute("tools.nodes", "highlight_color", 0xff0000ff);
+    np->helperpath_rgba = prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff);
     np->helperpath_width = 1.0;
     np->curve = curve->copy();
-    np->show_helperpath = (prefs_get_int_attribute ("tools.nodes", "show_helperpath",  0) == 1);
+    np->show_helperpath = prefs->getBool("/tools/nodes/show_helperpath");
     if (SP_IS_LPE_ITEM(object)) {
         Inkscape::LivePathEffect::Effect *lpe = sp_lpe_item_get_current_lpe(SP_LPE_ITEM(object));
         if (lpe && lpe->isVisible() && lpe->showOrigPath()) {
@@ -602,6 +604,9 @@ Inkscape::NodePath::NodeType * parse_nodetypes(gchar const *types, guint length)
                     case 's':
                         typestr[pos++] =Inkscape::NodePath::NODE_SMOOTH;
                         break;
+                    case 'a':
+                        typestr[pos++] =Inkscape::NodePath::NODE_AUTO;
+                        break;
                     case 'z':
                         typestr[pos++] =Inkscape::NodePath::NODE_SYMM;
                         break;
@@ -824,6 +829,9 @@ static gchar *create_typestr(Inkscape::NodePath::Path *np)
                 case Inkscape::NodePath::NODE_SMOOTH:
                     code = 's';
                     break;
+                case Inkscape::NodePath::NODE_AUTO:
+                    code = 'a';
+                    break;
                 case Inkscape::NodePath::NODE_SYMM:
                     code = 'z';
                     break;
@@ -1053,6 +1061,15 @@ static void sp_nodepath_set_line_type(Inkscape::NodePath::Node *end, NRPathcode
                     sp_nodepath_set_node_type(end, Inkscape::NodePath::NODE_CUSP);
                 }
             }
+
+            if (start->type == Inkscape::NodePath::NODE_AUTO)
+                start->type = Inkscape::NodePath::NODE_SMOOTH;
+            if (end->type == Inkscape::NodePath::NODE_AUTO)
+                end->type = Inkscape::NodePath::NODE_SMOOTH;
+    
+            sp_node_adjust_handle(start, -1);
+            sp_node_adjust_handle(end, 1);
+
         } else {
             Geom::Point delta = end->pos - start->pos;
             start->n.pos = start->pos + delta / 3;
@@ -1066,6 +1083,25 @@ static void sp_nodepath_set_line_type(Inkscape::NodePath::Node *end, NRPathcode
     }
 }
 
+static void
+sp_nodepath_update_node_knot(Inkscape::NodePath::Node *node)
+{
+    if (node->type == Inkscape::NodePath::NODE_CUSP) {
+        node->knot->setShape (SP_KNOT_SHAPE_DIAMOND);
+        node->knot->setSize (node->selected? 11 : 9);
+        sp_knot_update_ctrl(node->knot);
+    } else if (node->type == Inkscape::NodePath::NODE_AUTO) {
+        node->knot->setShape (SP_KNOT_SHAPE_CIRCLE);
+        node->knot->setSize (node->selected? 11 : 9);
+        sp_knot_update_ctrl(node->knot);
+    } else {
+        node->knot->setShape (SP_KNOT_SHAPE_SQUARE);
+        node->knot->setSize (node->selected? 9 : 7);
+        sp_knot_update_ctrl(node->knot);
+    }
+}
+
+
 /**
  * Change node type, and its handles accordingly.
  */
@@ -1082,15 +1118,7 @@ static Inkscape::NodePath::Node *sp_nodepath_set_node_type(Inkscape::NodePath::N
 
     node->type = type;
 
-    if (node->type == Inkscape::NodePath::NODE_CUSP) {
-        node->knot->setShape (SP_KNOT_SHAPE_DIAMOND);
-        node->knot->setSize (node->selected? 11 : 9);
-        sp_knot_update_ctrl(node->knot);
-    } else {
-        node->knot->setShape (SP_KNOT_SHAPE_SQUARE);
-        node->knot->setSize (node->selected? 9 : 7);
-        sp_knot_update_ctrl(node->knot);
-    }
+    sp_nodepath_update_node_knot(node);
 
     // if one of handles is mouseovered, preserve its position
     if (node->p.knot && SP_KNOT_IS_MOUSEOVER(node->p.knot)) {
@@ -1140,6 +1168,13 @@ sp_node_side_is_line (Inkscape::NodePath::Node *node, Inkscape::NodePath::NodeSi
 */
 void sp_nodepath_convert_node_type(Inkscape::NodePath::Node *node, Inkscape::NodePath::NodeType type)
 {
+    if (type == Inkscape::NodePath::NODE_AUTO) {
+        if (node->p.other != NULL)
+            node->code = NR_CURVETO;
+        if (node->n.other != NULL)
+            node->n.other->code = NR_CURVETO;
+    }
+
     if (type == Inkscape::NodePath::NODE_SYMM || type == Inkscape::NodePath::NODE_SMOOTH) {
 
 /* 
@@ -1215,28 +1250,7 @@ void sp_nodepath_convert_node_type(Inkscape::NodePath::Node *node, Inkscape::Nod
                 node->code = NR_CURVETO;
                 node->n.other->code = NR_CURVETO;
 
-                Geom::Point leg_prev = node->pos - node->p.other->pos;
-                Geom::Point leg_next = node->pos - node->n.other->pos;
-
-                double norm_leg_prev = L2(leg_prev);
-                double norm_leg_next = L2(leg_next);
-
-                Geom::Point delta;
-                if (norm_leg_next > 0.0) {
-                    delta = (norm_leg_prev / norm_leg_next) * leg_next - leg_prev;
-                    (&delta)->normalize();
-                }
-
-                if (type == Inkscape::NodePath::NODE_SYMM) {
-                    double norm_leg_avg = (norm_leg_prev + norm_leg_next) / 2;
-                    node->p.pos = node->pos + 0.3 * norm_leg_avg * delta;
-                    node->n.pos = node->pos - 0.3 * norm_leg_avg * delta;
-                } else {
-                    // length of handle is proportional to distance to adjacent node
-                    node->p.pos = node->pos + 0.3 * norm_leg_prev * delta;
-                    node->n.pos = node->pos - 0.3 * norm_leg_next * delta;
-                }
-
+                sp_node_adjust_handles_auto(node);
             } else {
                 // pull the handle opposite to line segment, making it half-smooth
                 if (p_is_line && node->n.other) {
@@ -1270,11 +1284,16 @@ void sp_nodepath_convert_node_type(Inkscape::NodePath::Node *node, Inkscape::Nod
  */
 void sp_node_moveto(Inkscape::NodePath::Node *node, Geom::Point p)
 {
-    Geom::Point delta = p - node->pos;
-    node->pos = p;
+    if (node->type == Inkscape::NodePath::NODE_AUTO) {
+        node->pos = p;
+        sp_node_adjust_handles_auto(node);
+    } else {
+        Geom::Point delta = p - node->pos;
+        node->pos = p;
 
-    node->p.pos += delta;
-    node->n.pos += delta;
+        node->p.pos += delta;
+        node->n.pos += delta;
+    }
 
     Inkscape::NodePath::Node *node_p = NULL;
     Inkscape::NodePath::Node *node_n = NULL;
@@ -1285,6 +1304,10 @@ void sp_node_moveto(Inkscape::NodePath::Node *node, Geom::Point p)
             sp_node_adjust_handle(node->p.other, -1);
             node_p = node->p.other;
         }
+        if (!node->p.other->selected && node->p.other->type == Inkscape::NodePath::NODE_AUTO) {
+            sp_node_adjust_handles_auto(node->p.other);
+            node_p = node->p.other;
+        }
     }
     if (node->n.other) {
         if (node->n.other->code == NR_LINETO) {
@@ -1292,6 +1315,10 @@ void sp_node_moveto(Inkscape::NodePath::Node *node, Geom::Point p)
             sp_node_adjust_handle(node->n.other, 1);
             node_n = node->n.other;
         }
+        if (!node->n.other->selected && node->n.other->type == Inkscape::NodePath::NODE_AUTO) {
+            sp_node_adjust_handles_auto(node->n.other);
+            node_n = node->n.other;
+        }
     }
 
     // this function is only called from batch movers that will update display at the end
@@ -1343,9 +1370,9 @@ static void sp_nodepath_selected_nodes_move(Inkscape::NodePath::Path *nodepath,
             if (constrained) {
                 Inkscape::Snapper::ConstraintLine dedicated_constraint = constraint;
                 dedicated_constraint.setPoint(n->pos);
-                s = m.constrainedSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(n->pos + delta), dedicated_constraint);
+                s = m.constrainedSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(n->pos + delta), dedicated_constraint);
             } else {
-                s = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(n->pos + delta));
+                s = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(n->pos + delta));
             }            
             if (s.getSnapped() && (s.getDistance() < best)) {
                 best = s.getDistance();
@@ -1443,7 +1470,8 @@ sp_nodepath_selected_nodes_sculpt(Inkscape::NodePath::Path *nodepath, Inkscape::
     if (pressure > 0.5)
         alpha = 1/alpha;
 
-    guint profile = prefs_get_int_attribute("tools.nodes", "sculpting_profile", SCULPT_PROFILE_BELL);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    guint profile = prefs->getInt("/tools/nodes/sculpting_profile", SCULPT_PROFILE_BELL);
 
     if (sp_nodepath_selection_get_subpath_count(nodepath) <= 1) {
         // Only one subpath has selected nodes:
@@ -2072,6 +2100,15 @@ sp_nodepath_curve_drag(Inkscape::NodePath::Path *nodepath, int node, double t, G
     g_return_if_fail(e != NULL);
     g_return_if_fail(&e->p != NULL);
 
+    if (e->type == Inkscape::NodePath::NODE_AUTO) {
+        e->type = Inkscape::NodePath::NODE_SMOOTH;
+        sp_nodepath_update_node_knot (e);
+    }
+    if (e->p.other->type == Inkscape::NodePath::NODE_AUTO) {
+        e->p.other->type = Inkscape::NodePath::NODE_SMOOTH;
+        sp_nodepath_update_node_knot (e->p.other);
+    }
+
     /* feel good is an arbitrary parameter that distributes the delta between handles
      * if t of the drag point is less than 1/6 distance form the endpoint only
      * the corresponding hadle is adjusted. This matches the behavior in GIMP
@@ -3232,6 +3269,10 @@ static void sp_node_adjust_handle(Inkscape::NodePath::Node *node, gint which_adj
 {
     g_assert(node);
 
+    // nothing to do for auto nodes (sp_node_adjust_handles() does the job)
+    if (node->type == Inkscape::NodePath::NODE_AUTO)
+        return;
+
    Inkscape::NodePath::NodeSide *me = sp_node_get_side(node, which_adjust);
    Inkscape::NodePath::NodeSide *other = sp_node_opposite_side(node, me);
 
@@ -3291,6 +3332,11 @@ static void sp_node_adjust_handles(Inkscape::NodePath::Node *node)
     if (node->p.other == NULL) return;
     if (node->n.other == NULL) return;
 
+    if (node->type == Inkscape::NodePath::NODE_AUTO) {
+        sp_node_adjust_handles_auto(node);
+        return;
+    }
+
     if (sp_node_side_is_line(node, &node->p)) {
         sp_node_adjust_handle(node, 1);
         return;
@@ -3319,6 +3365,30 @@ static void sp_node_adjust_handles(Inkscape::NodePath::Node *node)
     node->n.pos = node->pos + (nlen / (plen + nlen)) * delta;
 }
 
+static void sp_node_adjust_handles_auto(Inkscape::NodePath::Node *node)
+{
+    if (node->p.other == NULL || node->n.other == NULL) {
+        node->p.pos = node->pos;
+        node->n.pos = node->pos;
+        return;
+    }
+
+    Geom::Point leg_prev = to_2geom(node->p.other->pos - node->pos);
+    Geom::Point leg_next = to_2geom(node->n.other->pos - node->pos);
+    double norm_leg_prev = Geom::L2(leg_prev);
+    double norm_leg_next = Geom::L2(leg_next);
+    Geom::Point delta;
+    if (norm_leg_next > 0.0) {
+        delta = (norm_leg_prev / norm_leg_next) * leg_next - leg_prev;
+        delta.normalize();
+    }
+    node->p.pos = node->pos - norm_leg_prev / 3 * delta;
+    node->n.pos = node->pos + norm_leg_next / 3 * delta;
+}
+
 /**
  * Node event callback.
  */
@@ -3422,6 +3492,10 @@ gboolean node_key(GdkEvent *event)
                 sp_nodepath_set_node_type(Inkscape::NodePath::Path::active_node,Inkscape::NodePath::NODE_SMOOTH);
                 ret = TRUE;
                 break;
+            case GDK_a:
+                sp_nodepath_set_node_type(Inkscape::NodePath::Path::active_node,Inkscape::NodePath::NODE_AUTO);
+                ret = TRUE;
+                break;
             case GDK_y:
                 sp_nodepath_set_node_type(Inkscape::NodePath::Path::active_node,Inkscape::NodePath::NODE_SYMM);
                 ret = TRUE;
@@ -3451,6 +3525,8 @@ static void node_clicked(SPKnot */*knot*/, guint state, gpointer data)
                 sp_nodepath_convert_node_type (n,Inkscape::NodePath::NODE_SMOOTH);
             } else if (n->type == Inkscape::NodePath::NODE_SMOOTH) {
                 sp_nodepath_convert_node_type (n,Inkscape::NodePath::NODE_SYMM);
+            } else if (n->type == Inkscape::NodePath::NODE_SYMM) {
+                sp_nodepath_convert_node_type (n,Inkscape::NodePath::NODE_AUTO);
             } else {
                 sp_nodepath_convert_node_type (n,Inkscape::NodePath::NODE_CUSP);
             }
@@ -3757,6 +3833,12 @@ static void node_handle_grabbed(SPKnot *knot, guint state, gpointer data)
 {
    Inkscape::NodePath::Node *n = (Inkscape::NodePath::Node *) data;
 
+    // convert auto -> smooth when dragging handle
+   if (n->type == Inkscape::NodePath::NODE_AUTO) {
+        n->type = Inkscape::NodePath::NODE_SMOOTH;
+        sp_nodepath_update_node_knot (n);
+   }
+
     if (!n->selected) {
         sp_nodepath_node_select(n, (state & GDK_SHIFT_MASK), FALSE);
     }
@@ -3842,16 +3924,16 @@ static gboolean node_handle_request(SPKnot *knot, Geom::Point *p, guint state, g
                 (*p) = n->pos + (scal / linelen) * ndelta;
             }
             if ((state & GDK_SHIFT_MASK) == 0) {
-               s = m.constrainedSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(*p), Inkscape::Snapper::ConstraintLine(*p, ndelta));
+               s = m.constrainedSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(*p), Inkscape::Snapper::ConstraintLine(*p, ndelta));
             }
         } else {
                if ((state & GDK_SHIFT_MASK) == 0) {
-                       s = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(*p));
+                       s = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(*p));
                }
         }
     } else {
        if ((state & GDK_SHIFT_MASK) == 0) {
-               s = m.freeSnap(Inkscape::Snapper::SNAPPOINT_NODE, to_2geom(*p));
+               s = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, to_2geom(*p));
        }
     }
     
@@ -3870,6 +3952,7 @@ static gboolean node_handle_request(SPKnot *knot, Geom::Point *p, guint state, g
 static void node_handle_moved(SPKnot *knot, Geom::Point *p, guint state, gpointer data)
 {
    Inkscape::NodePath::Node *n = (Inkscape::NodePath::Node *) data;
+   Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
    Inkscape::NodePath::NodeSide *me;
    Inkscape::NodePath::NodeSide *other;
@@ -3891,7 +3974,7 @@ static void node_handle_moved(SPKnot *knot, Geom::Point *p, guint state, gpointe
     Radial rnew(*p - n->pos);
 
     if (state & GDK_CONTROL_MASK && rnew.a != HUGE_VAL) {
-        int const snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+        int const snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
         /* 0 interpreted as "no snapping". */
 
         // 1. Snap to the closest PI/snaps angle, starting from zero.
@@ -3970,7 +4053,7 @@ static void node_handle_moved(SPKnot *knot, Geom::Point *p, guint state, gpointe
     double degrees = 180 / M_PI * rnew.a;
     if (degrees > 180) degrees -= 360;
     if (degrees < -180) degrees += 360;
-    if (prefs_get_int_attribute("options.compassangledisplay", "value", 0) != 0)
+    if (prefs->getBool("/options/compassangledisplay/value"))
         degrees = angle_to_compass (degrees);
 
     GString *length = SP_PX_TO_METRIC_STRING(rnew.r, desktop->namedview->getDefaultMetric());
@@ -4517,7 +4600,7 @@ sp_nodepath_node_new(Inkscape::NodePath::SubPath *sp, Inkscape::NodePath::Node *
     n->knot = sp_knot_new(sp->nodepath->desktop, _("<b>Node</b>: drag to edit the path; with <b>Ctrl</b> to snap to horizontal/vertical; with <b>Ctrl+Alt</b> to snap to handles' directions"));
     sp_knot_set_position(n->knot, *pos, 0);
 
-    n->knot->setShape ((n->type == Inkscape::NodePath::NODE_CUSP)? SP_KNOT_SHAPE_DIAMOND : SP_KNOT_SHAPE_SQUARE);
+    n->knot->setShape ((n->type == Inkscape::NodePath::NODE_CUSP)? SP_KNOT_SHAPE_DIAMOND : (n->type == Inkscape::NodePath::NODE_AUTO)? SP_KNOT_SHAPE_CIRCLE : SP_KNOT_SHAPE_SQUARE);
     n->knot->setSize ((n->type == Inkscape::NodePath::NODE_CUSP)? 9 : 7);
     n->knot->setAnchor (GTK_ANCHOR_CENTER);
     n->knot->setFill(NODE_FILL, NODE_FILL_HI, NODE_FILL_HI);
@@ -4757,6 +4840,8 @@ static gchar const *sp_node_type_description(Inkscape::NodePath::Node *node)
                 case Inkscape::NodePath::NODE_SMOOTH:
                     // TRANSLATORS: "smooth" is an adjective here
                     return _("smooth");
+                case Inkscape::NodePath::NODE_AUTO:
+                    return _("auto");
                 case Inkscape::NodePath::NODE_SYMM:
                     return _("symmetric");
             }
@@ -4894,14 +4979,14 @@ void sp_nodepath_set_curve (Inkscape::NodePath::Path *np, SPCurve *curve) {
     }
 }
 
-/**
+/*
 SPCanvasItem *
 sp_nodepath_path_to_canvasitem(Inkscape::NodePath::Path *np, SPPath *path) {
     return sp_nodepath_make_helper_item(np, sp_path_get_curve_for_edit(path));
 }
-**/
+*/
 
-/**
+/*
 SPCanvasItem *
 sp_nodepath_generate_helperpath(SPDesktop *desktop, SPCurve *curve, const SPItem *item, guint32 color = 0xff0000ff) {
     SPCurve *flash_curve = curve->copy();
@@ -4919,10 +5004,11 @@ sp_nodepath_generate_helperpath(SPDesktop *desktop, SPCurve *curve, const SPItem
 
 SPCanvasItem *
 sp_nodepath_generate_helperpath(SPDesktop *desktop, SPPath *path) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     return sp_nodepath_generate_helperpath(desktop, sp_path_get_curve_for_edit(path), SP_ITEM(path),
-                                           prefs_get_int_attribute("tools.nodes", "highlight_color", 0xff0000ff));
+                                           prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff));
 }
-**/
+*/
 
 SPCanvasItem *
 sp_nodepath_helperpath_from_path(SPDesktop *desktop, SPPath *path) {
@@ -4932,7 +5018,8 @@ sp_nodepath_helperpath_from_path(SPDesktop *desktop, SPPath *path) {
     SPCanvasItem * canvasitem = sp_canvas_bpath_new(sp_desktop_tempgroup(desktop), flash_curve);
     // would be nice if its color could be XORed or something, now it is invisible for red stroked objects...
     // unless we also flash the nodes...
-    guint32 color = prefs_get_int_attribute("tools.nodes", "highlight_color", 0xff0000ff);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    guint32 color = prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff);
     sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(canvasitem), color, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT);
     sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(canvasitem), 0, SP_WIND_RULE_NONZERO);
     sp_canvas_item_show(canvasitem);
index 336c9019ce12282a7896630ad1fb12977ac384f5..4d05b9f01b4e46ef456ab95fbe40bd9a13f4e02c 100644 (file)
@@ -145,6 +145,8 @@ typedef enum {
        NODE_CUSP,
 /**  This node continuously joins two segments. */
        NODE_SMOOTH,
+/**  This node has automatic handles. */
+       NODE_AUTO,
 /**  This node is symmetric. */
        NODE_SYMM
 } NodeType;
index 63e404e4b759269304bed8707ec6ff5731eb5527..86e1f5302bfa5adea987bf0aaf42f2d507c25a2f 100644 (file)
@@ -25,7 +25,7 @@
 #include "sp-spiral.h"
 #include "sp-offset.h"
 #include "sp-flowtext.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "desktop-affine.h"
 #include "style.h"
 #include "desktop.h"
@@ -741,7 +741,8 @@ sp_genericellipse_side(SPGenericEllipse *ellipse, Geom::Point const &p)
 void
 ArcKnotHolderEntityStart::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state)
 {
-    int snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     SPGenericEllipse *ge = SP_GENERICELLIPSE(item);
     SPArc *arc = SP_ARC(item);
@@ -772,7 +773,8 @@ ArcKnotHolderEntityStart::knot_get()
 void
 ArcKnotHolderEntityEnd::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state)
 {
-    int snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     SPGenericEllipse *ge = SP_GENERICELLIPSE(item);
     SPArc *arc = SP_ARC(item);
@@ -1080,7 +1082,8 @@ public:
 void
 SpiralKnotHolderEntityInner::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state)
 {
-    int snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     SPSpiral *spiral = SP_SPIRAL(item);
 
@@ -1122,7 +1125,8 @@ SpiralKnotHolderEntityInner::knot_set(Geom::Point const &p, Geom::Point const &/
 void
 SpiralKnotHolderEntityOuter::knot_set(Geom::Point const &p, Geom::Point const &/*origin*/, guint state)
 {
-    int snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     SPSpiral *spiral = SP_SPIRAL(item);
 
index cbf31c27127cc75ebee11fc090e741bb2a7d3c3c..0458add78f65de15c2db9a85029553e00d594781 100644 (file)
@@ -25,7 +25,7 @@
 #include "sp-use.h"
 #include "display/curve.h"
 #include "inkscape.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-text.h"
 #include "sp-flowtext.h"
 #include "text-editing.h"
@@ -46,7 +46,7 @@ Inkscape::SnapCandidate::~SnapCandidate()
 Inkscape::ObjectSnapper::ObjectSnapper(SnapManager const *sm, Geom::Coord const d)
     : Snapper(sm, d), _snap_to_itemnode(true), _snap_to_itempath(true),
       _snap_to_bboxnode(true), _snap_to_bboxpath(true), _snap_to_page_border(false),
-      _strict_snapping(true), _include_item_center(false)
+      _strict_snapping(true)
 {
     _candidates = new std::vector<SnapCandidate>;
     _points_to_snap_to = new std::vector<Geom::Point>;
@@ -163,7 +163,7 @@ void Inkscape::ObjectSnapper::_findCandidates(SPObject* parent,
 }
 
 
-void Inkscape::ObjectSnapper::_collectNodes(Inkscape::Snapper::PointType const &t,
+void Inkscape::ObjectSnapper::_collectNodes(Inkscape::SnapPreferences::PointType const &t,
                                          bool const &first_point) const
 {
     // Now, let's first collect all points to snap to. If we have a whole bunch of points to snap,
@@ -175,16 +175,17 @@ void Inkscape::ObjectSnapper::_collectNodes(Inkscape::Snapper::PointType const &
          // Determine the type of bounding box we should snap to
         SPItem::BBoxType bbox_type = SPItem::GEOMETRIC_BBOX;
         
-        bool p_is_a_node = t & Inkscape::Snapper::SNAPPOINT_NODE;
-        bool p_is_a_bbox = t & Inkscape::Snapper::SNAPPOINT_BBOX;
-        bool p_is_a_guide = t & Inkscape::Snapper::SNAPPOINT_GUIDE;
+        bool p_is_a_node = t & Inkscape::SnapPreferences::SNAPPOINT_NODE;
+        bool p_is_a_bbox = t & Inkscape::SnapPreferences::SNAPPOINT_BBOX;
+        bool p_is_a_guide = t & Inkscape::SnapPreferences::SNAPPOINT_GUIDE;
         
         // A point considered for snapping should be either a node, a bbox corner or a guide. Pick only ONE!
-        g_assert(!(p_is_a_node && p_is_a_bbox || p_is_a_bbox && p_is_a_guide || p_is_a_node && p_is_a_guide));        
+        g_assert(!((p_is_a_node && p_is_a_bbox) || (p_is_a_bbox && p_is_a_guide) || (p_is_a_node && p_is_a_guide)));        
         
         if (_snap_to_bboxnode) {
-            int prefs_bbox = prefs_get_int_attribute("tools", "bounding_box", 0);
-            bbox_type = (prefs_bbox == 0)? 
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            bool prefs_bbox = prefs->getBool("/tools/bounding_box");
+            bbox_type = !prefs_bbox ? 
                 SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX;
         }
         
@@ -204,7 +205,7 @@ void Inkscape::ObjectSnapper::_collectNodes(Inkscape::Snapper::PointType const &
             //Collect all nodes so we can snap to them
             if (_snap_to_itemnode) {
                 if (!(_strict_snapping && !p_is_a_node) || p_is_a_guide) {
-                    sp_item_snappoints(root_item, _include_item_center, SnapPointsIter(*_points_to_snap_to));
+                    sp_item_snappoints(root_item, SnapPointsIter(*_points_to_snap_to), &_snapmanager->snapprefs);
                 }
             }
 
@@ -228,7 +229,7 @@ void Inkscape::ObjectSnapper::_collectNodes(Inkscape::Snapper::PointType const &
 }
 
 void Inkscape::ObjectSnapper::_snapNodes(SnappedConstraints &sc,
-                                         Inkscape::Snapper::PointType const &t,
+                                         Inkscape::SnapPreferences::PointType const &t,
                                          Geom::Point const &p,
                                          bool const &first_point,
                                          std::vector<Geom::Point> *unselected_nodes) const
@@ -258,7 +259,7 @@ void Inkscape::ObjectSnapper::_snapNodes(SnappedConstraints &sc,
 }
 
 void Inkscape::ObjectSnapper::_snapTranslatingGuideToNodes(SnappedConstraints &sc,
-                                         Inkscape::Snapper::PointType const &t,
+                                         Inkscape::SnapPreferences::PointType const &t,
                                          Geom::Point const &p,
                                          Geom::Point const &guide_normal) const
 {
@@ -275,7 +276,7 @@ void Inkscape::ObjectSnapper::_snapTranslatingGuideToNodes(SnappedConstraints &s
         Geom::Point p_proj = project_on_linesegment(*k, p, p + Geom::rot90(guide_normal));
         Geom::Coord dist = Geom::L2(*k - p_proj); // distance from node to the guide         
         Geom::Coord dist2 = Geom::L2(p - p_proj); // distance from projection of node on the guide, to the mouse location
-        if ((dist < tol && dist2 < tol || getSnapperAlwaysSnap()) && dist < s.getDistance()) {
+        if ((dist < tol && dist2 < tol) || (getSnapperAlwaysSnap() && dist < s.getDistance())) {
             s = SnappedPoint(*k, SNAPTARGET_NODE, dist, tol, getSnapperAlwaysSnap(), true);
             success = true;
         }
@@ -291,7 +292,7 @@ void Inkscape::ObjectSnapper::_snapTranslatingGuideToNodes(SnappedConstraints &s
  * Returns index of first NR_END bpath in array.
  */
 
-void Inkscape::ObjectSnapper::_collectPaths(Inkscape::Snapper::PointType const &t,
+void Inkscape::ObjectSnapper::_collectPaths(Inkscape::SnapPreferences::PointType const &t,
                                          bool const &first_point) const
 {
     // Now, let's first collect all paths to snap to. If we have a whole bunch of points to snap,
@@ -303,11 +304,12 @@ void Inkscape::ObjectSnapper::_collectPaths(Inkscape::Snapper::PointType const &
         // Determine the type of bounding box we should snap to
         SPItem::BBoxType bbox_type = SPItem::GEOMETRIC_BBOX;
         
-        bool p_is_a_node = t & Inkscape::Snapper::SNAPPOINT_NODE;
+        bool p_is_a_node = t & Inkscape::SnapPreferences::SNAPPOINT_NODE;
         
         if (_snap_to_bboxpath) {
-            int prefs_bbox = prefs_get_int_attribute("tools", "bounding_box", 0);
-            bbox_type = (prefs_bbox ==0)? 
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            int prefs_bbox = prefs->getBool("/tools/bounding_box", 0);
+            bbox_type = !prefs_bbox ? 
                 SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX;
         }
         
@@ -389,7 +391,7 @@ void Inkscape::ObjectSnapper::_collectPaths(Inkscape::Snapper::PointType const &
 }
     
 void Inkscape::ObjectSnapper::_snapPaths(SnappedConstraints &sc,
-                                     Inkscape::Snapper::PointType const &t,
+                                     Inkscape::SnapPreferences::PointType const &t,
                                      Geom::Point const &p,
                                      bool const &first_point,
                                      std::vector<Geom::Point> *unselected_nodes,
@@ -487,7 +489,7 @@ bool Inkscape::ObjectSnapper::isUnselectedNode(Geom::Point const &point, std::ve
 }
 
 void Inkscape::ObjectSnapper::_snapPathsConstrained(SnappedConstraints &sc,
-                                     Inkscape::Snapper::PointType const &t,
+                                     Inkscape::SnapPreferences::PointType const &t,
                                      Geom::Point const &p,
                                      bool const &first_point,
                                      ConstraintLine const &c) const
@@ -545,14 +547,14 @@ void Inkscape::ObjectSnapper::_snapPathsConstrained(SnappedConstraints &sc,
 
 
 void Inkscape::ObjectSnapper::freeSnap(SnappedConstraints &sc,
-                                            Inkscape::Snapper::PointType const &t,
+                                            Inkscape::SnapPreferences::PointType const &t,
                                             Geom::Point const &p,
                                             bool const &first_point,
                                             boost::optional<Geom::Rect> const &bbox_to_snap,
                                             std::vector<SPItem const *> const *it,
                                             std::vector<Geom::Point> *unselected_nodes) const
 {
-    if (_snap_enabled == false || getSnapFrom(t) == false ) {
+       if (_snap_enabled == false || _snapmanager->snapprefs.getSnapFrom(t) == false ) {
         return;
     }
 
@@ -588,14 +590,14 @@ void Inkscape::ObjectSnapper::freeSnap(SnappedConstraints &sc,
 }
 
 void Inkscape::ObjectSnapper::constrainedSnap( SnappedConstraints &sc,
-                                                  Inkscape::Snapper::PointType const &t,
+                                                  Inkscape::SnapPreferences::PointType const &t,
                                                   Geom::Point const &p,
                                                   bool const &first_point,
                                                   boost::optional<Geom::Rect> const &bbox_to_snap,
                                                   ConstraintLine const &c,
                                                   std::vector<SPItem const *> const *it) const
 {
-    if (_snap_enabled == false || getSnapFrom(t) == false) {
+    if (_snap_enabled == false || _snapmanager->snapprefs.getSnapFrom(t) == false) {
         return;
     }
 
@@ -649,7 +651,7 @@ void Inkscape::ObjectSnapper::guideSnap(SnappedConstraints &sc,
     // line, or can it be located anywhere?)
     
     _findCandidates(sp_document_root(_snapmanager->getDocument()), &it, true, Geom::Rect(p, p), snap_dim, false, Geom::identity());
-    _snapTranslatingGuideToNodes(sc, Inkscape::Snapper::SNAPPOINT_GUIDE, p, guide_normal);
+    _snapTranslatingGuideToNodes(sc, Inkscape::SnapPreferences::SNAPPOINT_GUIDE, p, guide_normal);
     // _snapRotatingGuideToNodes has not been implemented yet. 
 }
 
@@ -659,13 +661,13 @@ void Inkscape::ObjectSnapper::guideSnap(SnappedConstraints &sc,
 bool Inkscape::ObjectSnapper::ThisSnapperMightSnap() const
 {
     bool snap_to_something = _snap_to_itempath || _snap_to_itemnode || _snap_to_bboxpath || _snap_to_bboxnode || _snap_to_page_border;
-    return (_snap_enabled && _snap_from != 0 && snap_to_something);
+    return (_snap_enabled && _snapmanager->snapprefs.getSnapModeBBoxOrNodes() && snap_to_something);
 }
 
 bool Inkscape::ObjectSnapper::GuidesMightSnap() const
 {
     bool snap_to_something = _snap_to_itemnode || _snap_to_bboxnode;
-    return (_snap_enabled && (_snap_from & SNAPPOINT_GUIDE) && snap_to_something);
+    return (_snap_enabled && _snapmanager->snapprefs.getSnapModeGuide() && snap_to_something);
 }
 
 void Inkscape::ObjectSnapper::_clear_paths() const 
index c567e115be070bc43821c3222c37be5ddef1faa1..01ef8cf50958e9b97b8528e0ccd269e434396766 100644 (file)
@@ -66,9 +66,6 @@ public:
       bool getSnapToBBoxPath() const {return _snap_to_bboxpath;}
       void setSnapToPageBorder(bool s) {_snap_to_page_border = s;}
       bool getSnapToPageBorder() const {return _snap_to_page_border;}
-      void setIncludeItemCenter(bool s) {_include_item_center = s;}
-      bool getIncludeItemCenter() const {return _include_item_center;}
-      void setStrictSnapping(bool enabled) {_strict_snapping = enabled;}
       void guideSnap(SnappedConstraints &sc,
                    Geom::Point const &p,
                  Geom::Point const &guide_normal) const;
@@ -77,7 +74,7 @@ public:
       bool GuidesMightSnap() const;
   
       void freeSnap(SnappedConstraints &sc,
-                      Inkscape::Snapper::PointType const &t,
+                      Inkscape::SnapPreferences::PointType const &t,
                       Geom::Point const &p,
                       bool const &first_point,
                       boost::optional<Geom::Rect> const &bbox_to_snap,
@@ -85,7 +82,7 @@ public:
                       std::vector<Geom::Point> *unselected_nodes) const;
 
       void constrainedSnap(SnappedConstraints &sc,
-                      Inkscape::Snapper::PointType const &t,
+                      Inkscape::SnapPreferences::PointType const &t,
                       Geom::Point const &p,
                       bool const &first_point,                                                                   
                       boost::optional<Geom::Rect> const &bbox_to_snap,
@@ -107,35 +104,35 @@ private:
                        Geom::Matrix const additional_affine) const;
   
     void _snapNodes(SnappedConstraints &sc,
-                      Inkscape::Snapper::PointType const &t,
+                      Inkscape::SnapPreferences::PointType const &t,
                       Geom::Point const &p, // in desktop coordinates
                       bool const &first_point,
                       std::vector<Geom::Point> *unselected_nodes) const; // in desktop coordinates
                       
     void _snapTranslatingGuideToNodes(SnappedConstraints &sc,
-                     Inkscape::Snapper::PointType const &t,
+                     Inkscape::SnapPreferences::PointType const &t,
                      Geom::Point const &p,
                      Geom::Point const &guide_normal) const;
                      
-    void _collectNodes(Inkscape::Snapper::PointType const &t,
+    void _collectNodes(Inkscape::SnapPreferences::PointType const &t,
                   bool const &first_point) const;
   
     void _snapPaths(SnappedConstraints &sc,
-                      Inkscape::Snapper::PointType const &t, 
+                      Inkscape::SnapPreferences::PointType const &t, 
                       Geom::Point const &p,    // in desktop coordinates
                       bool const &first_point,
                       std::vector<Geom::Point> *unselected_nodes, // in desktop coordinates
                       SPPath const *selected_path) const;
                       
     void _snapPathsConstrained(SnappedConstraints &sc,
-                 Inkscape::Snapper::PointType const &t,
+                 Inkscape::SnapPreferences::PointType const &t,
                  Geom::Point const &p, // in desktop coordinates
                  bool const &first_point,
                  ConstraintLine const &c) const;
   
     bool isUnselectedNode(Geom::Point const &point, std::vector<Geom::Point> const *unselected_nodes) const;
   
-    void _collectPaths(Inkscape::Snapper::PointType const &t, 
+    void _collectPaths(Inkscape::SnapPreferences::PointType const &t, 
                   bool const &first_point) const;
                   
     void _clear_paths() const;
@@ -154,7 +151,6 @@ private:
     //snap bbox corners to nodes, or nodes to bboxes.
     //(snapping to grids and guides is not affected by this)
     bool _strict_snapping; 
-    bool _include_item_center;
 };
 
 }
index 0dd73bba961d05baa98ad174046bac825b0fddc2..0227e9caf5feaef2c283f48623737e6401257d0e 100644 (file)
 #include <2geom/pathvector.h>
 #include "path-chemistry.h"
 
-/* Helper functions for sp_selected_path_to_curves */
-static void sp_selected_path_to_curves0(SPDesktop *desktop, bool do_document_done, guint32 text_grouping_policy);
-static bool sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_select);
-
-enum {
-    /* Not used yet. This is the placeholder of Lauris's idea. */
-    SP_TOCURVE_INTERACTIVE       = 1 << 0,
-    SP_TOCURVE_GROUPING_BY_WORD  = 1 << 1,
-    SP_TOCURVE_GROUPING_BY_LINE  = 1 << 2,
-    SP_TOCURVE_GROUPING_BY_WHOLE = 1 << 3
-};
-
 void
 sp_selected_path_combine(SPDesktop *desktop)
 {
@@ -281,12 +269,6 @@ sp_selected_path_break_apart(SPDesktop *desktop)
 /* This function is an entry point from GUI */
 void
 sp_selected_path_to_curves(SPDesktop *desktop, bool interactive)
-{
-    sp_selected_path_to_curves0(desktop, interactive, interactive ? SP_TOCURVE_INTERACTIVE : 0);
-}
-
-static void
-sp_selected_path_to_curves0(SPDesktop *desktop, bool interactive, guint32 /*text_grouping_policy*/)
 {
     Inkscape::Selection *selection = sp_desktop_selection(desktop);
 
@@ -328,7 +310,7 @@ sp_selected_path_to_curves0(SPDesktop *desktop, bool interactive, guint32 /*text
     }
 }
 
-static bool
+bool
 sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_select)
 {
     bool did = false;
@@ -427,12 +409,86 @@ sp_selected_item_to_curved_repr(SPItem *item, guint32 /*text_grouping_policy*/)
     if (!item)
         return NULL;
 
+    Inkscape::XML::Document *xml_doc = SP_OBJECT_REPR(item)->document();
+
+    if (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item)) {
+        // Special treatment for text: convert each glyph to separate path, then group the paths
+        Inkscape::XML::Node *g_repr = xml_doc->createElement("svg:g");
+        g_repr->setAttribute("transform", SP_OBJECT_REPR(item)->attribute("transform"));
+        /* Mask */
+        gchar *mask_str = (gchar *) SP_OBJECT_REPR(item)->attribute("mask");
+        if ( mask_str )
+            g_repr->setAttribute("mask", mask_str);
+        /* Clip path */
+        gchar *clip_path_str = (gchar *) SP_OBJECT_REPR(item)->attribute("clip-path");
+        if ( clip_path_str )
+            g_repr->setAttribute("clip-path", clip_path_str);
+        /* Rotation center */
+        g_repr->setAttribute("inkscape:transform-center-x", SP_OBJECT_REPR(item)->attribute("inkscape:transform-center-x"), false);
+        g_repr->setAttribute("inkscape:transform-center-y", SP_OBJECT_REPR(item)->attribute("inkscape:transform-center-y"), false);
+        /* Whole text's style */
+        gchar *style_str = sp_style_write_difference(SP_OBJECT_STYLE(item),
+                                             SP_OBJECT_STYLE(SP_OBJECT_PARENT(item)));
+        g_repr->setAttribute("style", style_str);
+        g_free(style_str);
+        Inkscape::Text::Layout::iterator iter = te_get_layout(item)->begin(); 
+        do {
+            Inkscape::Text::Layout::iterator iter_next = iter;
+            iter_next.nextGlyph(); // iter_next is one glyph ahead from iter
+            if (iter == iter_next)
+                break;
+
+            /* This glyph's style */
+            SPObject const *pos_obj = 0;
+            void *rawptr = 0;
+            te_get_layout(item)->getSourceOfCharacter(iter, &rawptr);
+            if (!rawptr || !SP_IS_OBJECT(rawptr)) // no source for glyph, abort
+                break;
+            pos_obj = SP_OBJECT(rawptr);
+            while (SP_IS_STRING(pos_obj) && SP_OBJECT_PARENT(pos_obj)) {
+               pos_obj = SP_OBJECT_PARENT(pos_obj);   // SPStrings don't have style
+            }
+            gchar *style_str = sp_style_write_difference(SP_OBJECT_STYLE(pos_obj),
+                                                 SP_OBJECT_STYLE(SP_OBJECT_PARENT(pos_obj)));
+
+            // get path from iter to iter_next:
+            SPCurve *curve = te_get_layout(item)->convertToCurves(iter, iter_next);
+            iter = iter_next; // shift to next glyph
+            if (!curve) { // error converting this glyph
+                g_free (style_str);
+                continue;
+            }
+            if (curve->is_empty()) { // whitespace glyph?
+                curve->unref();
+                g_free (style_str);
+                continue;
+            }
+
+            Inkscape::XML::Node *p_repr = xml_doc->createElement("svg:path");
+
+            gchar *def_str = sp_svg_write_path(curve->get_pathvector());
+            p_repr->setAttribute("d", def_str);
+            g_free(def_str);
+            curve->unref();
+
+            p_repr->setAttribute("style", style_str);
+            g_free(style_str);
+
+            g_repr->appendChild(p_repr);
+            Inkscape::GC::release(p_repr);
+
+            if (iter == te_get_layout(item)->end())
+                break;
+
+        } while (true);
+
+        return g_repr;
+    }
+
     SPCurve *curve = NULL;
     if (SP_IS_SHAPE(item)) {
         curve = sp_shape_get_curve(SP_SHAPE(item));
-    } else if (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item)) {
-        curve = te_get_layout(item)->convertToCurves();
-    }
+    } 
 
     if (!curve)
         return NULL;
@@ -445,7 +501,6 @@ sp_selected_item_to_curved_repr(SPItem *item, guint32 /*text_grouping_policy*/)
         return NULL;
     }
 
-    Inkscape::XML::Document *xml_doc = SP_OBJECT_REPR(item)->document();
     Inkscape::XML::Node *repr = xml_doc->createElement("svg:path");
     /* Transformation */
     repr->setAttribute("transform", SP_OBJECT_REPR(item)->attribute("transform"));
index 27c3b868016381a21f5e76fa61da34addd4ff6ce..14b2b6ffbd9cec0034157b88bc80b3ff5b7e3bd1 100644 (file)
@@ -20,6 +20,7 @@ void sp_selected_path_break_apart (SPDesktop *desktop);
 void sp_selected_path_to_curves (SPDesktop *desktop, bool interactive = true);
 Inkscape::XML::Node *sp_selected_item_to_curved_repr(SPItem *item, guint32 text_grouping_policy);
 void sp_selected_path_reverse (SPDesktop *desktop);
+bool sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_select);
 
 #endif
 
index 9d11df0591a9ccdee9cf6dd3f4dc6eea8a08ab3f..eb399d191b43dfc1105bf630f9c21820b3946a53 100644 (file)
@@ -29,7 +29,7 @@
 #include "draw-anchor.h"
 #include "message-stack.h"
 #include "message-context.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-path.h"
 #include "display/curve.h"
 #include "pixmaps/cursor-pen.xpm"
@@ -49,7 +49,7 @@ static void sp_pen_context_dispose(GObject *object);
 
 static void sp_pen_context_setup(SPEventContext *ec);
 static void sp_pen_context_finish(SPEventContext *ec);
-static void sp_pen_context_set(SPEventContext *ec, gchar const *key, gchar const *val);
+static void sp_pen_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val);
 static gint sp_pen_context_root_handler(SPEventContext *ec, GdkEvent *event);
 static gint sp_pen_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event);
 
@@ -193,7 +193,8 @@ sp_pen_context_dispose(GObject *object)
 
 void
 sp_pen_context_set_polyline_mode(SPPenContext *const pc) {
-    guint mode = prefs_get_int_attribute("tools.freehand.pen", "freehand-mode", 0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    guint mode = prefs->getInt("/tools/freehand/pen/freehand-mode", 0);
     pc->polylines_only = (mode == 2 || mode == 3);
     pc->polylines_paraxial = (mode == 3);
 }
@@ -233,7 +234,8 @@ sp_pen_context_setup(SPEventContext *ec)
 
     sp_pen_context_set_polyline_mode(pc);
 
-    if (prefs_get_int_attribute("tools.freehand.pen", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/freehand/pen/selcue")) {
         ec->enableSelectionCue();
     }
 }
@@ -275,12 +277,13 @@ sp_pen_context_finish(SPEventContext *ec)
  * Callback that sets key to value in pen context.
  */
 static void
-sp_pen_context_set(SPEventContext *ec, gchar const *key, gchar const *val)
+sp_pen_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val)
 {
     SPPenContext *pc = SP_PEN_CONTEXT(ec);
+    Glib::ustring name = val->getEntryName();
 
-    if (!strcmp(key, "mode")) {
-        if ( val && !strcmp(val, "drag") ) {
+    if (name == "mode") {
+        if ( val->getString() == "drag" ) {
             pc->mode = SP_PEN_CONTEXT_MODE_DRAG;
         } else {
             pc->mode = SP_PEN_CONTEXT_MODE_CLICK;
@@ -465,7 +468,7 @@ static gint pen_handle_button_press(SPPenContext *const pc, GdkEventButton const
                         if (pc->npoints == 0) {
 
                             if (bevent.state & GDK_CONTROL_MASK) {
-                                spdc_create_single_dot(event_context, event_dt, "tools.freehand.pen", bevent.state);
+                                spdc_create_single_dot(event_context, event_dt, "/tools/freehand/pen", bevent.state);
                                 ret = TRUE;
                                 break;
                             }
@@ -597,8 +600,8 @@ pen_handle_motion_notify(SPPenContext *const pc, GdkEventMotion const &mevent)
     Geom::Point const event_w(mevent.x,
                             mevent.y);
     if (pen_within_tolerance) {
-        gint const tolerance = prefs_get_int_attribute_limited("options.dragtolerance",
-                                                               "value", 0, 0, 100);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        gint const tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
         if ( NR::LInfty( event_w - pen_drag_origin_w ) < tolerance ) {
             return FALSE;   // Do not drag if we're within tolerance from origin.
         }
@@ -962,7 +965,8 @@ static gint
 pen_handle_key_press(SPPenContext *const pc, GdkEvent *event)
 {
     gint ret = FALSE;
-    gdouble const nudge = prefs_get_double_attribute_limited("options.nudgedistance", "value", 2, 0, 1000); // in px
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gdouble const nudge = prefs->getDoubleLimited("/options/nudgedistance/value", 2, 0, 1000); // in px
 
     switch (get_group0_keyval (&event->key)) {
 
@@ -1210,7 +1214,8 @@ spdc_pen_set_angle_distance_status_message(SPPenContext *const pc, Geom::Point c
     Geom::Point rel = p - pc->p[pc_point_to_compare];
     GString *dist = SP_PX_TO_METRIC_STRING(NR::L2(rel), desktop->namedview->getDefaultMetric());
     double angle = atan2(rel[NR::Y], rel[NR::X]) * 180 / M_PI;
-    if (prefs_get_int_attribute("options.compassangledisplay", "value", 0) != 0)
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/options/compassangledisplay/value", 0) != 0)
         angle = angle_to_compass (angle);
 
     pc->_message_context->setF(Inkscape::IMMEDIATE_MESSAGE, message, angle, dist->str);
index 96313ab37411a98b4b8202889fb3d5b3b113ff5b..acc10389c1bb8c05e02553fbe8de1abd7864a780 100644 (file)
@@ -27,7 +27,7 @@
 #include "message-context.h"
 #include "modifier-fns.h"
 #include "sp-path.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "snap.h"
 #include "pixmaps/cursor-pencil.xpm"
 #include "display/bezier-utils.h"
@@ -130,7 +130,8 @@ sp_pencil_context_init(SPPencilContext *pc)
 static void
 sp_pencil_context_setup(SPEventContext *ec)
 {
-    if (prefs_get_int_attribute("tools.freehand.pencil", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/freehand/pencil/selcue")) {
         ec->enableSelectionCue();
     }
 
@@ -241,7 +242,7 @@ pencil_handle_button_press(SPPencilContext *const pc, GdkEventButton const &beve
             default:
                 /* Set first point of sequence */
                 if (bevent.state & GDK_CONTROL_MASK) {
-                    spdc_create_single_dot(event_context, from_2geom(p), "tools.freehand.pencil", bevent.state);
+                    spdc_create_single_dot(event_context, from_2geom(p), "/tools/freehand/pencil", bevent.state);
                     ret = true;
                     break;
                 }
@@ -259,7 +260,13 @@ pencil_handle_button_press(SPPencilContext *const pc, GdkEventButton const &beve
                         desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Creating new path"));
                         SnapManager &m = desktop->namedview->snap_manager;
                         m.setup(desktop);
-                        m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, p);
+                        Inkscape::SnappedPoint const s = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, p);
+                        if (s.getSnapped()) {
+                               s.getPoint(p);
+                               pc->pencil_has_snapped_before = true;
+                        } else {
+                               pc->pencil_has_snapped_before = false;
+                        }
                     } else if (selection->singleItem() && SP_IS_PATH(selection->singleItem())) {
                         desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Appending to selected path"));
                     }
@@ -309,8 +316,8 @@ pencil_handle_motion_notify(SPPencilContext *const pc, GdkEventMotion const &mev
     SPDrawAnchor *anchor = spdc_test_inside(pc, Geom::Point(mevent.x, mevent.y));
 
     if (pencil_within_tolerance) {
-        gint const tolerance = prefs_get_int_attribute_limited("options.dragtolerance",
-                                                               "value", 0, 0, 100);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        gint const tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
         if ( NR::LInfty( Geom::Point(mevent.x,mevent.y) - pencil_drag_origin_w ) < tolerance ) {
             return FALSE;   // Do not drag if we're within tolerance from origin.
         }
@@ -346,16 +353,25 @@ pencil_handle_motion_notify(SPPencilContext *const pc, GdkEventMotion const &mev
                  * fixme: I am not sure whether we want to snap to anchors
                  * in middle of freehand (Lauris)
                  */
+                SnapManager &m = dt->namedview->snap_manager;
+                
                 if (anchor) {
                     p = to_2geom(anchor->dp);
                 } else if ((mevent.state & GDK_SHIFT_MASK) == 0) {
-                    SnapManager &m = dt->namedview->snap_manager;
                     m.setup(dt);
-                    m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, p);
+                    Inkscape::SnappedPoint const s = m.freeSnap(Inkscape::SnapPreferences::SNAPPOINT_NODE, p);
+                    if (s.getSnapped()) {
+                       s.getPoint(p);
+                       pc->pencil_has_snapped_before = true;
+                    }
                 }
-                if ( pc->npoints != 0 ) { // buttonpress may have happened before we entered draw context!
-                    spdc_add_freehand_point(pc, from_2geom(p), mevent.state);
-                    ret = TRUE;
+                if ( pc->npoints != 0) { // buttonpress may have happened before we entered draw context!
+                       if (!(pc->pencil_has_snapped_before && m.snapprefs.getSnapPostponedGlobally())) {
+                           // When snapping is enabled but temporarily on hold because the mouse is moving 
+                               // fast, then we don't want to add nodes off-grid
+                               spdc_add_freehand_point(pc, from_2geom(p), mevent.state);
+                           ret = TRUE;
+                       }
                 }
 
                 if (anchor && !pc->anchor_statusbar) {
@@ -633,7 +649,8 @@ fit_and_split(SPPencilContext *pc)
 {
     g_assert( pc->npoints > 1 );
 
-    double const tol = prefs_get_double_attribute_limited("tools.freehand.pencil",                                                                             "tolerance", 10.0, 1.0, 100.0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    double const tol = prefs->getDoubleLimited("/tools/freehand/pencil/tolerance", 10.0, 1.0, 100.0);
     double const tolerance_sq = 0.02 * square( pc->desktop->w2d().descrim() * tol) 
         * exp(0.2*tol - 2);
 
index 87e9b2470483bd8b4fdd15d74433abce32d2856c..467241b17b66159d53e04fd7280a8cc28c22fef5 100644 (file)
@@ -30,6 +30,7 @@ struct SPPencilContext : public SPDrawContext {
     Geom::Point req_tangent;
 
     bool is_drawing;
+    bool pencil_has_snapped_before;
 };
 
 /// The SPPencilContext vtable (empty).
index 6cf1b3feb0723f68eb4c530d71e7c5aee83e14e4..c6b547a9e43fde41850c171e5409e2ededfc55b1 100644 (file)
@@ -276,6 +276,7 @@ static char const preferences_skeleton[] =
 "    <group id=\"compassangledisplay\" value=\"0\"/>\n"
 "    <group id=\"maskobject\" topmost=\"1\" remove=\"1\"/>\n"
 "    <group id=\"blurquality\" value=\"0\"/>\n"
+"    <group id=\"filterquality\" value=\"0\"/>\n"
 "    <group id=\"showfiltersinfobox\" value=\"1\" />\n"
 "    <group id=\"startmode\" outline=\"0\"/>\n"
 "    <group id=\"outlinemode\" value=\"0\"/>\n"
index 54ab79448b4bda1752401d14d0b0d0ba8b15c85c..e999182c7e2114944f5b08734f5740235ce9b823 100644 (file)
@@ -2,7 +2,7 @@
  * @brief  Singleton class to access the preferences file - implementation
  */
 /* Authors:
- *   Krzysztof Kosinski <tweenk.pl@gmail.com>
+ *   Krzysztof Kosiński <tweenk.pl@gmail.com>
  *
  * Copyright (C) 2008 Authors
  *
 #include "inkscape.h"
 #include "xml/repr.h"
 #include "xml/node-observer.h"
+#include "xml/node-iterators.h"
+#include "xml/attribute-record.h"
+#include <cstring>
+#include <vector>
 #include <glibmm/fileutils.h>
 #include <glibmm/i18n.h>
 #include <glib.h>
 
 namespace Inkscape {
 
+// private inner class definition
+
+/**
+ * @brief XML - prefs observer bridge
+ *
+ * This is an XML node observer that watches for changes in the XML document storing the preferences.
+ * It is used to implement preference observers.
+ */
+class Preferences::PrefNodeObserver : public XML::NodeObserver {
+public:
+    PrefNodeObserver(Observer &o, Glib::ustring const &filter) :
+        _observer(o),
+        _filter(filter)
+    {}
+    virtual ~PrefNodeObserver() {}
+    virtual void notifyAttributeChanged(XML::Node &node, GQuark name, Util::ptr_shared<char>, Util::ptr_shared<char>);
+private:
+    Observer &_observer;
+    Glib::ustring const _filter;
+};
+
+
 Preferences::Preferences() :
     _prefs_basename(PREFERENCES_FILE_NAME),
     _prefs_dir(""),
@@ -35,11 +61,11 @@ Preferences::Preferences() :
     gchar *path = profile_path(NULL);
     _prefs_dir = path;
     g_free(path);
-
+    
     path = profile_path(_prefs_basename.data());
     _prefs_filename = path;
     g_free(path);
-
+    
     _load();
 }
 
@@ -47,6 +73,12 @@ Preferences::~Preferences()
 {
     // when the preferences are unloaded, save them
     save();
+    
+    // delete all PrefNodeObservers
+    for (_ObsMap::iterator i = _observer_map.begin(); i != _observer_map.end(); ) {
+        delete (*i++).second; // avoids reference to a deleted key
+    }
+    // unref XML document
     Inkscape::GC::release(_prefs_doc);
 }
 
@@ -70,12 +102,12 @@ void Preferences::_loadDefaults()
 void Preferences::_load()
 {
     _loadDefaults();
-
+    
     Glib::ustring const not_saved = _("Inkscape will run with default settings, "
                                 "and new settings will not be saved. ");
-
+    
     // NOTE: After we upgrade to Glib 2.16, use Glib::ustring::compose
-
+    
     // 1. Does the file exist?
     if (!g_file_test(_prefs_filename.data(), G_FILE_TEST_EXISTS)) {
         // No - we need to create one.
@@ -99,7 +131,7 @@ void Preferences::_load()
                 g_mkdir(dir, 0755);
                 g_free(dir);
             }
-
+            
         } else if (!g_file_test(_prefs_dir.data(), G_FILE_TEST_IS_DIR)) {
             // The profile dir is not actually a directory
             //_errorDialog(Glib::ustring::compose(_("%1 is not a valid directory."),
@@ -121,13 +153,13 @@ void Preferences::_load()
             g_free(msg);
             return;
         }
-
+        
         // The prefs file was just created.
         // We can return now and skip the rest of the load process.
         _writable = true;
         return;
     }
-
+    
     // Yes, the pref file exists.
     // 2. Is it a regular file?
     if (!g_file_test(_prefs_filename.data(), G_FILE_TEST_IS_REGULAR)) {
@@ -139,7 +171,7 @@ void Preferences::_load()
         g_free(msg);
         return;
     }
-
+    
     // 3. Is the file readable?
     gchar *prefs_xml = NULL; gsize len = 0;
     if (!g_file_get_contents(_prefs_filename.data(), &prefs_xml, &len, NULL)) {
@@ -174,7 +206,7 @@ void Preferences::_load()
         Inkscape::GC::release(prefs_read);
         return;
     }
-
+    
     // Merge the loaded prefs with defaults.
     _prefs_doc->root()->mergeFrom(prefs_read->root(), "id");
     Inkscape::GC::release(prefs_read);
@@ -187,255 +219,281 @@ void Preferences::_load()
 void Preferences::save()
 {
     if (!_writable) return; // no-op if the prefs file is not writable
-
+    
     // sp_repr_save_file uses utf-8 instead of the glib filename encoding.
     // I don't know why filenames are kept in utf-8 in Inkscape and then
-    // converted to filename encoding when necessary through sepcial functions
+    // converted to filename encoding when necessary through special functions
     // - wouldn't it be easier to keep things in the encoding they are supposed
     // to be in?
-    Glib::ustring utf8name = Glib::filename_from_utf8(_prefs_filename);
+    Glib::ustring utf8name = Glib::filename_to_utf8(_prefs_filename);
     if (utf8name.empty()) return;
     sp_repr_save_file(_prefs_doc, utf8name.data());
 }
 
-void Preferences::addPrefsObserver(Inkscape::XML::NodeObserver *observer)
-{
-    _prefs_doc->addSubtreeObserver(*observer);
-}
-
-
 
 // Now for the meat.
-// Most of the logic is similar to former prefs-utils.cpp
-
 
 /**
- * @brief Check for the existence of a given pref key
- * @param pref_key Preference key to check
- * @return True if the key exists, false otherwise
+ * @brief Get names of all entries in the specified path
+ * @param path Preference path to query
+ * @return A vector containing all entries in the given directory
  */
-bool Preferences::exists(Glib::ustring const &pref_key)
+std::vector<Preferences::Entry> Preferences::getAllEntries(Glib::ustring const &path)
 {
-    return _getNode(pref_key) != NULL;
+    std::vector<Entry> temp;
+    Inkscape::XML::Node *node = _getNode(path, false);
+    if (!node) return temp;
+    
+    // argh - purge this Util::List nonsense from XML classes fast
+    Inkscape::Util::List<Inkscape::XML::AttributeRecord const> alist = node->attributeList();
+    for (; alist; ++alist)
+        temp.push_back( Entry(path + '/' + g_quark_to_string(alist->key), static_cast<void const*>(alist->value.pointer())) );
+    return temp;
 }
 
 /**
- * @brief Get the number of sub-preferences of a given pref
- * @param pref_key Preference key to check
- * @return Number of sub-preferences
- *
- * Note: This does not count attributes, only child preferences.
+ * @brief Get the paths to all subdirectories of the specified path
+ * @param path Preference path to query
+ * @return A vector containing absolute paths to all subdirectories in the given path
  */
-unsigned int Preferences::childCount(Glib::ustring const &pref_key)
+std::vector<Glib::ustring> Preferences::getAllDirs(Glib::ustring const &path)
 {
-    Inkscape::XML::Node *node = _getNode(pref_key);
-    return ( node ? node->childCount() : 0 );
-}
-
-/**
- * @brief Get the key of the n-th sub-preference of the specified pref
- * @param father_key Parent key
- * @param n The zero-based index of the pref key to retrieve
- * @return The key of the n-th sub-preference
- */
-Glib::ustring Preferences::getNthChild(Glib::ustring const &father_key, unsigned int n)
-{
-    Inkscape::XML::Node *node = _getNode(father_key), *child;
-    if (!node) return "";
-    child = node->nthChild(n);
-    if (!child) return "";
-    if (child->attribute("id")) {
-        Glib::ustring child_key = father_key;
-        child_key += '.';
-        child_key += child->attribute("id");
-        return child_key;
+    std::vector<Glib::ustring> temp;
+    Inkscape::XML::Node *node = _getNode(path, false);
+    if (!node) return temp;
+    
+    for (Inkscape::XML::NodeSiblingIterator i = node->firstChild(); i; ++i) {
+        temp.push_back(path + '/' + i->attribute("id"));
     }
-    return "";
+    return temp;
 }
 
+// getter methods
 
-/**
- * @brief Create the preference with the specified key
- * @return True if the node was created, false if it already existed
- *
- * This method is redundant, because the setters automatically create prefs
- * if they don't already exist. It is only left to accomodate some legacy code
- * which manipulates the DOM of the preferences file directly.
- */
-bool Preferences::create(Glib::ustring const &pref_key)
+Preferences::Entry const Preferences::getEntry(Glib::ustring const &pref_path)
 {
-    if (_getNode(pref_key)) return false;
-    _getNode(pref_key, true);
-    return true;
+    gchar const *v;
+    _getRawValue(pref_path, v);
+    return Entry(pref_path, v);
 }
 
-// getter methods
+// setter methods
 
 /**
- * @brief Get a boolean attribute of a preference
- * @param pref_key Key of he preference to retrieve
- * @param attr Attribute to retrieve
- * @param def The default value to return if the preference is not set
- * @return The retrieved value
+ * @brief Set a boolean attribute of a preference
+ * @param pref_path Path of the preference to modify
+ * @param value The new value of the pref attribute
  */
-bool Preferences::getBool(Glib::ustring const &pref_key, Glib::ustring const &attr, bool def)
+void Preferences::setBool(Glib::ustring const &pref_path, bool value)
 {
-    Inkscape::XML::Node *node = _getNode(pref_key);
-    if (!node) return def;
-    gchar const *rawstr = node->attribute(attr.data());
-    if(!rawstr || !rawstr[0]) return def;
-    Glib::ustring str = rawstr;
-
-    // This is to handle legacy preferences using ints as booleans
-    if (str == "true" || str == "1") return true;
-    return false;
+    /// @todo Boolean values should be stored as "true" and "false",
+    /// but this is not possible due to an interaction with event contexts.
+    /// Investigate this in depth.
+    _setRawValue(pref_path, ( value ? "1" : "0" ));
 }
 
-
 /**
- * @brief Get an integer attribute of a preference
- * @param pref_key Key of he preference to retrieve
- * @param attr Attribute to retrieve
- * @param def The default value to return if the preference is not set
- * @return The retrieved value
+ * @brief Set an integer attribute of a preference
+ * @param pref_path Path of the preference to modify
+ * @param value The new value of the pref attribute
  */
-int Preferences::getInt(Glib::ustring const &pref_key, Glib::ustring const &attr, int def)
+void Preferences::setInt(Glib::ustring const &pref_path, int value)
 {
-    Inkscape::XML::Node *node = _getNode(pref_key);
-    if (!node) return def;
-    gchar const *rawstr = node->attribute(attr.data());
-    if (!rawstr || !rawstr[0]) return def;
-    Glib::ustring str = rawstr;
-    // Protection against leftover getInt calls when the value is in fact a boolean
-    if (str == "true") return 1;
-    if (str == "false") return 0;
-    return atoi(str.data());
+    gchar intstr[32];
+    g_snprintf(intstr, 32, "%d", value);
+    _setRawValue(pref_path, intstr);
 }
 
-int Preferences::getIntLimited(Glib::ustring const &pref_key, Glib::ustring const &attr, int def, int min, int max)
+/**
+ * @brief Set a floating point attribute of a preference
+ * @param pref_path Path of the preference to modify
+ * @param value The new value of the pref attribute
+ */
+void Preferences::setDouble(Glib::ustring const &pref_path, double value)
 {
-    int value = getInt(pref_key, attr, def);
-    return ( value >= min && value <= max ? value : def);
+    gchar buf[G_ASCII_DTOSTR_BUF_SIZE];
+    g_ascii_dtostr(buf, G_ASCII_DTOSTR_BUF_SIZE, value);
+    _setRawValue(pref_path, buf);
 }
 
 /**
- * @brief Get a floating point attribute of a preference
- * @param pref_key Key of he preference to retrieve
- * @param attr Attribute to retrieve
- * @param def The default value to return if the preference is not set
- * @return The retrieved value
+ * @brief Set a string attribute of a preference
+ * @param pref_path Path of the preference to modify
+ * @param value The new value of the pref attribute
  */
-double Preferences::getDouble(Glib::ustring const &pref_key, Glib::ustring const &attr, double def)
+void Preferences::setString(Glib::ustring const &pref_path, Glib::ustring const &value)
 {
-    Inkscape::XML::Node *node = _getNode(pref_key);
-    if (!node) return def;
-    gchar const *str = node->attribute(attr.data());
-    if (!str) return def;
-    return g_ascii_strtod(str, NULL);
+    _setRawValue(pref_path, value.data());
 }
 
-double Preferences::getDoubleLimited(Glib::ustring const &pref_key, Glib::ustring const &attr, double def, double min, double max)
+void Preferences::setStyle(Glib::ustring const &pref_path, SPCSSAttr *style)
 {
-    double value = getDouble(pref_key, attr, def);
-    return ( value >= min && value <= max ? value : def);
+    gchar *css_str = sp_repr_css_write_string(style);
+    _setRawValue(pref_path, css_str);
+    g_free(css_str);
 }
 
-/**
- * @brief Get a string attribute of a preference
- * @param pref_key Key of he preference to retrieve
- * @param attr Attribute to retrieve
- * @param def The default value to return if the preference is not set
- * @return The retrieved value
- */
-Glib::ustring Preferences::getString(Glib::ustring const &pref_key, Glib::ustring const &attr)
+void Preferences::mergeStyle(Glib::ustring const &pref_path, SPCSSAttr *style)
 {
-    Inkscape::XML::Node *node = _getNode(pref_key);
-    if (!node) return "";
-    gchar const *str = node->attribute(attr.data());
-    if (!str) return "";
-    return Glib::ustring(str);
+    SPCSSAttr *current = getStyle(pref_path);
+    sp_repr_css_merge(current, style);
+    gchar *css_str = sp_repr_css_write_string(current);
+    _setRawValue(pref_path, css_str);
+    g_free(css_str);
+    sp_repr_css_attr_unref(current);
 }
 
 
-// setter methods
+// Observer stuff
+namespace {
 
 /**
- * @brief Set a boolean attribute of a preference
- * @param pref_key Key of the preference to modify
- * @param attr Attribute to set
- * @param value The new value of the pref attribute
+ * @brief Structure that holds additional information for registered Observers
  */
-void Preferences::setBool(Glib::ustring const &pref_key, Glib::ustring const &attr, bool value)
+struct _ObserverData {
+    Inkscape::XML::Node *_node; ///< Node at which the wrapping PrefNodeObserver is registered
+    bool _is_attr; ///< Whether this Observer watches a single attribute
+};
+
+} // anonymous namespace
+
+Preferences::Observer::Observer(Glib::ustring const &path) :
+    observed_path(path)
 {
-    /// @todo Boolean values should be stored as "true" and "false",
-    /// but this is not possible ude to an interaction with event contexts.
-    /// Investigate this in depth.
-    Inkscape::XML::Node *node = _getNode(pref_key, true);
-    node->setAttribute(attr.data(), ( value ? "1" : "0" ));
 }
 
-/**
- * @brief Set an integer attribute of a preference
- * @param pref_key Key of the preference to modify
- * @param attr Attribute to set
- * @param value The new value of the pref attribute
- */
-void Preferences::setInt(Glib::ustring const &pref_key, Glib::ustring const &attr, int value)
+Preferences::Observer::~Observer()
 {
-    Inkscape::XML::Node *node = _getNode(pref_key, true);
-    gchar intstr[32];
-    g_snprintf(intstr, 32, "%d", value);
-    node->setAttribute(attr.data(), intstr);
+    // on destruction remove observer to prevent invalid references
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->removeObserver(*this);
 }
 
-/**
- * @brief Set a floating point attribute of a preference
- * @param pref_key Key of the preference to modify
- * @param attr Attribute to set
- * @param value The new value of the pref attribute
- */
-void Preferences::setDouble(Glib::ustring const &pref_key, Glib::ustring const &attr, double value)
+void Preferences::PrefNodeObserver::notifyAttributeChanged(XML::Node &node, GQuark name, Util::ptr_shared<char>, Util::ptr_shared<char> new_value)
 {
-    Inkscape::XML::Node *node = _getNode(pref_key, true);
-    sp_repr_set_svg_double(node, attr.data(), value);
-    /*
-    gchar dblstr[32];
-    g_snprintf(dblstr, 32, "%g", value);
-    node->setAttribute(attr, dblstr);
-    */
+    // filter out attributes we don't watch
+    gchar const *attr_name = g_quark_to_string(name);
+    if ( !_filter.empty() && _filter != attr_name ) return;
+    
+    _ObserverData *d = static_cast<_ObserverData*>(Preferences::_get_pref_observer_data(_observer));
+    Glib::ustring notify_path = _observer.observed_path;
+    
+    if (!d->_is_attr) {
+        std::vector<gchar const *> path_fragments;
+        notify_path.reserve(256); // this will make appending operations faster
+        
+        // walk the XML tree, saving each of the id attributes in a vector
+        // we terminate when we hit the observer's attachment node, because the path to this node
+        // is already stored in notify_path
+        for (XML::NodeParentIterator n = &node; static_cast<XML::Node*>(n) != d->_node; ++n)
+            path_fragments.push_back(n->attribute("id"));
+        // assemble the elements into a path
+        for (std::vector<gchar const *>::reverse_iterator i = path_fragments.rbegin(); i != path_fragments.rend(); ++i) {
+            notify_path.push_back('/');
+            notify_path.append(*i);
+        }
+
+        // append attribute name
+        notify_path.push_back('/');
+        notify_path.append(attr_name);
+    }
+    
+    Entry const val = Preferences::_create_pref_value(notify_path, static_cast<void const*>(new_value.pointer()));
+    _observer.notify(val);
 }
 
 /**
- * @brief Set a string attribute of a preference
- * @param pref_key Key of the preference to modify
- * @param attr Attribute to set
- * @param value The new value of the pref attribute
+ * @brief Find the XML node to observe
  */
-void Preferences::setString(Glib::ustring const &pref_key, Glib::ustring const &attr, Glib::ustring const &value)
+XML::Node *Preferences::_findObserverNode(Glib::ustring const &pref_path, Glib::ustring &node_key, Glib::ustring &attr_key, bool create)
+{
+    // first assume that the last path element is an entry.
+    _keySplit(pref_path, node_key, attr_key);
+    
+    // find the node corresponding to the "directory".
+    Inkscape::XML::Node *node = _getNode(node_key, create), *child;
+    for (child = node->firstChild(); child; child = child->next()) {
+        // If there is a node with id corresponding to the attr key,
+        // this means that the last part of the path is actually a key (folder).
+        // Change values accordingly.
+        if (attr_key == child->attribute("id")) {
+            node = child;
+            attr_key = "";
+            node_key = pref_path;
+            break;
+        }
+    }
+    return node;
+}
+
+void Preferences::addObserver(Observer &o)
+{
+    // prevent adding the same observer twice
+    if ( _observer_map.find(&o) != _observer_map.end() ) return;
+    
+    Glib::ustring node_key, attr_key;
+    Inkscape::XML::Node *node;
+    node = _findObserverNode(o.observed_path, node_key, attr_key, false);
+    if (!node) return;
+    
+    // set additional data
+    _ObserverData *d = new _ObserverData;
+    d->_node = node;
+    d->_is_attr = !attr_key.empty();
+    o._data = static_cast<void*>(d);
+    
+    _observer_map[&o] = new PrefNodeObserver(o, attr_key);
+    
+    // if we watch a single pref, we want to receive notifications only for a single node
+    if (d->_is_attr) {
+        node->addObserver( *(_observer_map[&o]) );
+    } else {
+        node->addSubtreeObserver( *(_observer_map[&o]) );
+    }
+}
+
+void Preferences::removeObserver(Observer &o)
 {
-    Inkscape::XML::Node *node = _getNode(pref_key, true);
-    node->setAttribute(attr.data(), value.data());
+    // prevent removing an observer which was not added
+    if ( _observer_map.find(&o) == _observer_map.end() ) return;
+    Inkscape::XML::Node *node = static_cast<_ObserverData*>(o._data)->_node;
+    delete static_cast<_ObserverData*>(o._data);
+    o._data = NULL;
+    
+    node->removeSubtreeObserver( *(_observer_map[&o]) );
+    delete _observer_map[&o];
+    _observer_map.erase(&o);
 }
 
+
 /**
  * @brief Get the XML node corresponding to the given pref key
  * @param pref_key Preference key (path) to get
  * @param create Whether to create the corresponding node if it doesn't exist
+ * @param separator The character used to separate parts of the pref key
  * @return XML node corresponding to the specified key
  *
- * The separator for key components is '.' (a dot). Derived from former
- * inkscape_get_repr().
+ * Derived from former inkscape_get_repr(). Private because it assumes that the backend is
+ * a flat XML file, which may not be the case e.g. if we are using GConf (in future).
  */
 Inkscape::XML::Node *Preferences::_getNode(Glib::ustring const &pref_key, bool create)
 {
-    Inkscape::XML::Node *node = _prefs_doc->root(), *child = NULL;
-    gchar **splits = g_strsplit(pref_key.data(), ".", 0);
-    int part_i = 0;
+    // verify path
+    g_assert( pref_key.at(0) == '/' );
+    g_assert( pref_key.find('.') == Glib::ustring::npos );
 
-    while(splits[part_i]) {
+    Inkscape::XML::Node *node = _prefs_doc->root(), *child = NULL;
+    gchar **splits = g_strsplit(pref_key.data(), "/", 0);
+    
+    if ( splits == NULL ) return node;
+    
+    for (int part_i = 0; splits[part_i]; ++part_i) {
+        // skip empty path segments
+        if (!splits[part_i][0]) continue;
+        
         for (child = node->firstChild(); child; child = child->next())
             if (!strcmp(splits[part_i], child->attribute("id"))) break;
-
+        
         // If the previous loop found a matching key, child now contains the node
         // matching the processed key part. If no node was found then it is NULL.
         if (!child) {
@@ -445,7 +503,7 @@ Inkscape::XML::Node *Preferences::_getNode(Glib::ustring const &pref_key, bool c
                     child = node->document()->createElement("group");
                     child->setAttribute("id", splits[part_i]);
                     node->appendChild(child);
-
+                    
                     ++part_i;
                     node = child;
                 }
@@ -456,13 +514,99 @@ Inkscape::XML::Node *Preferences::_getNode(Glib::ustring const &pref_key, bool c
             }
         }
 
-        ++part_i;
         node = child;
     }
     g_strfreev(splits);
     return node;
 }
 
+void Preferences::_getRawValue(Glib::ustring const &path, gchar const *&result)
+{
+    // create node and attribute keys
+    Glib::ustring node_key, attr_key;
+    _keySplit(path, node_key, attr_key);
+    
+    // retrieve the attribute
+    Inkscape::XML::Node *node = _getNode(node_key, false);
+    if ( node == NULL ) {
+        result = NULL;
+    } else {
+        gchar const *attr = node->attribute(attr_key.data());
+        if ( attr == NULL ) {
+            result = NULL;
+        } else {
+            result = attr;
+        }
+    }
+}
+
+void Preferences::_setRawValue(Glib::ustring const &path, gchar const *value)
+{
+    // create node and attribute keys
+    Glib::ustring node_key, attr_key;
+    _keySplit(path, node_key, attr_key);
+    
+    // set the attribute
+    Inkscape::XML::Node *node = _getNode(node_key, true);
+    node->setAttribute(attr_key.data(), value);
+}
+
+// The _extract* methods are where the actual wrok is done - they define how preferences are stored
+// in the XML file.
+
+bool Preferences::_extractBool(Entry const &v)
+{
+    gchar const *s = static_cast<gchar const *>(v._value);
+    if ( !s[0] || !strcmp(s, "0") || !strcmp(s, "false") ) return false;
+    return true;
+}
+
+int Preferences::_extractInt(Entry const &v)
+{
+    gchar const *s = static_cast<gchar const *>(v._value);
+    if ( !strcmp(s, "true") ) return true;
+    if ( !strcmp(s, "false") ) return false;
+    return atoi(s);
+}
+
+double Preferences::_extractDouble(Entry const &v)
+{
+    gchar const *s = static_cast<gchar const *>(v._value);
+    return g_ascii_strtod(s, NULL);
+}
+
+Glib::ustring Preferences::_extractString(Entry const &v)
+{
+    return Glib::ustring(static_cast<gchar const *>(v._value));
+}
+
+SPCSSAttr *Preferences::_extractStyle(Entry const &v)
+{
+    SPCSSAttr *style = sp_repr_css_attr_new();
+    sp_repr_css_attr_add_from_string(style, static_cast<gchar const*>(v._value));
+    return style;
+}
+
+SPCSSAttr *Preferences::_extractInheritedStyle(Entry const &v)
+{
+    // This is the dirtiest extraction method. Generally we ignore whatever was in v._value
+    // and just get the style using sp_repr_css_attr_inherited. To implement this in GConf,
+    // we'll have to walk up the tree and call sp_repr_css_attr_add_from_string
+    Glib::ustring node_key, attr_key;
+    _keySplit(v._pref_path, node_key, attr_key);
+    
+    Inkscape::XML::Node *node = _getNode(node_key, false);
+    return sp_repr_css_attr_inherited(node, attr_key.data());
+}
+
+// XML backend helper: Split the path into a node key and an attribute key.
+void Preferences::_keySplit(Glib::ustring const &pref_path, Glib::ustring &node_key, Glib::ustring &attr_key)
+{
+    // everything after the last slash
+    attr_key = pref_path.substr(pref_path.rfind('/') + 1, Glib::ustring::npos);
+    // everything before the last slash
+    node_key = pref_path.substr(0, pref_path.rfind('/'));
+}
 
 void Preferences::_errorDialog(Glib::ustring const &msg, Glib::ustring const &secondary)
 {
@@ -477,12 +621,17 @@ void Preferences::_errorDialog(Glib::ustring const &msg, Glib::ustring const &se
     }
 }
 
+Preferences::Entry const Preferences::_create_pref_value(Glib::ustring const &path, void const *ptr)
+{
+    return Entry(path, ptr);
+}
+
 bool Preferences::use_gui = true;
 Preferences *Preferences::_instance = NULL;
 
 
 } // namespace Inkscape
-
 /*
   Local Variables:
   mode:c++
index b2a56308c47eaac0784399b572d9b81061a40b67..e39adc22878a15e155c19a690c9dde0a7e6a661a 100644 (file)
 
 #include <glibmm/ustring.h>
 #include <string>
+#include <map>
+#include <vector>
 #include <climits>
 #include <cfloat>
 #include "xml/xml-forward.h"
 
+class SPCSSAttr;
+
 namespace Inkscape {
 
 /**
  * @brief Preference storage class
  *
  * This is a singleton that allows one to access the user preferences stored in
- * the preferences.xml file. The preferences are stored in a tree hierarchy.
- * Each preference is identified by its key, and sections of the key
- * corresponding to the levels of the hierarchy are delimited with dots.
- * Preferences are generally typeless - it's up to the programmer to ensure
- * that a given preference is always accessed as the correct type.
+ * the preferences.xml file. The preferences are stored in a file system-like
+ * hierarchy. They are generally typeless - it's up to the programmer to ensure
+ * that a given preference is always accessed as the correct type. The backend
+ * is not guaranteed to be tolerant to type mismatches.
+ *
+ * Preferences are identified by paths similar to file system paths. Components
+ * of the path are separated by a slash (/). As an additional requirement,
+ * the path must start with a slash, and not contain a trailing slash.
+ * An example of a correct path would be "/options/some_group/some_option".
  *
  * All preferences are loaded when the first singleton pointer is requested,
  * or when the static load() method is called. Before loading, the static
  * variable @c use_gui should be set accordingly. To save the preferences,
  * the method save() or the static function unload() can be used.
  *
- * In future, this could be a virtual base from which specific backends
- * derive (e.g. GConf, Windows registry, flat XML file...)
+ * In future, this will be a virtual base from which specific backends
+ * derive (e.g. GConf, flat XML file...)
  */
 class Preferences {
 public:
+    // #############################
+    // ## inner class definitions ##
+    // #############################
+    
+    class Entry;
+    class Observer;
+    
+    /**
+     * @brief Base class for preference observers
+     * 
+     * If you want to watch for changes in the preferences, you'll have to
+     * derive a class from this one and override the notify() method.
+     */
+    class Observer {
+        friend class Preferences;
+    public:
+        /**
+         * @brief Constructor.
+         *
+         * Since each Observer is assigned to a single path, the base
+         * constructor takes this path as an argument. This prevents one from
+         * adding a single observer to multiple paths, but this is intentional
+         * to simplify the implementation of observers and notifications.
+         *
+         * After you add the object with Preferences::addObserver(), you will
+         * receive notifications for everything below the attachment point.
+         * You can also specify a single preference as the watch point.
+         * For example, watching the directory "/foo" will give you notifications
+         * about "/foo/some_pref" as well as "/foo/some_dir/other_pref".
+         * Watching the preference "/options/some_group/some_option" will only
+         * generate notifications when this single preference changes.
+         *
+         * @param path Preference path the observer should watch
+         */
+        Observer(Glib::ustring const &path);
+        virtual ~Observer();
+        /**
+         * @brief Notification about a preference change
+         * @param new_val  Entry object containing information about
+         *                 the modified preference
+         */
+        virtual void notify(Preferences::Entry const &new_val) = 0;
+        
+        Glib::ustring const observed_path; ///< Path which the observer watches
+    private:
+        void *_data; ///< additional data used by the implementation while the observer is active
+    };
+    
+    
+    /**
+     * @brief Data type representing a typeless value of a preference
+     *
+     * This is passed to the observer in the notify() method.
+     * To retrieve useful data from it, use its member functions. Setting
+     * any preference using the Preferences class invalidates this object,
+     * so use its get methods before doing so.
+     */
+    class Entry {
+    friend class Preferences; // Preferences class has to access _value
+    public:
+        ~Entry() {}
+        Entry(Entry const &other) : _pref_path(other._pref_path), _value(other._value) {}
+        /**
+         * @brief Check whether the received entry is valid.
+         * @return If false, the default value will be returned by the getters.
+         */
+        bool isValid() const { return _value != NULL; }
+        
+        /**
+         * @brief Interpret the preference as a Boolean value.
+         * @param def Default value if the preference is not set
+         */
+        inline bool getBool(bool def=false) const;
+        /**
+         * @brief Interpret the preference as an integer.
+         * @param def Default value if the preference is not set
+         */
+        inline int getInt(int def=0) const;
+        /**
+         * @brief Interpret the preference as a limited integer.
+         *
+         * This method will return the default value if the interpreted value is
+         * larger than @c max or smaller than @c min. Do not use to store
+         * Boolean values as integers.
+         *
+         * @param def Default value if the preference is not set
+         * @param min Minimum value allowed to return
+         * @param max Maximum value allowed to return
+         */
+        inline int getIntLimited(int def=0, int min=INT_MIN, int max=INT_MAX) const;
+        /**
+         * @brief Interpret the preference as a floating point value.
+         * @param def Default value if the preference is not set
+         */
+        inline double getDouble(double def=0.0) const;
+        /**
+         * @brief Interpret the preference as a limited floating point value.
+         *
+         * This method will return the default value if the interpreted value is
+         * larger than @c max or smaller than @c min.
+         *
+         * @param def Default value if the preference is not set
+         * @param min Minimum value allowed to return
+         * @param max Maximum value allowed to return
+         */
+        inline double getDoubleLimited(double def=0.0, double min=DBL_MIN, double max=DBL_MAX) const;
+        /**
+         * @brief Interpret the preference as an UTF-8 string.
+         *
+         * To store a filename, convert it using Glib::filename_to_utf8().
+         */
+        inline Glib::ustring getString() const;
+        /**
+         * @brief Interpret the preference as a CSS style.
+         * @return A CSS style that has to be unrefed when no longer necessary.
+         */
+        inline SPCSSAttr *getStyle() const;
+        /**
+         * @brief Interpret the preference as a CSS style with directory-based
+         *        inheritance
+         *
+         * This function will look up the preferences with the same entry name
+         * in ancestor directories and return the inherited CSS style.
+         *
+         * @return Inherited CSS style that has to be unrefed after use.
+         */
+        inline SPCSSAttr *getInheritedStyle() const;
+        
+        /**
+         * @brief Get the full path of the preference described by this Entry.
+         */
+        Glib::ustring const &getPath() const { return _pref_path; }
+        /**
+         * @brief Get the last component of the preference's path
+         *
+         * E.g. For "/options/some_group/some_option" it will return "some_option".
+         */
+        Glib::ustring getEntryName() const;
+    private:
+        Entry(Glib::ustring const &path, void const *v) : _pref_path(path), _value(v) {}
+        
+        Glib::ustring _pref_path;
+        void const *_value;
+    };
+
     // utility methods
+    
+    /**
+     * @name Save preferences to the disk.
+     * @{
+     */
+    
+    /**
+     * @brief Save all preferences to the hard disk.
+     *
+     * For some backends, the preferences may be saved as they are modified.
+     * Not calling this method doesn't guarantee the preferences are unmodified
+     * the next time Inkscape runs.
+     */
     void save();
+    /**
+     * @brief Check whether saving the preferences will have any effect.
+     */
     bool isWritable() { return _writable; }
+    /*@}*/
+
+    /**
+     * @name Iterate over directories and entries.
+     * @{
+     */
+
+    /**
+     * @brief Get all entries from the specified directory
+     *
+     * This method will return a vector populated with preference entries
+     * from the specified directory. Subdirectories will not be represented.
+     */
+    std::vector<Entry> getAllEntries(Glib::ustring const &path);
+    /**
+     * @brief Get all subdirectories of the specified directory
+     *
+     * This will return a vector populated with full paths to the subdirectories
+     * present in the specified @c path.
+     */
+    std::vector<Glib::ustring> getAllDirs(Glib::ustring const &path);
+    /*@}*/
     
-    // some helpers
-    bool exists(Glib::ustring const &pref_key);
-    unsigned int childCount(Glib::ustring const &pref_key);
-    Glib::ustring getNthChild(Glib::ustring const &father_path, unsigned int n);
-    bool create(Glib::ustring const &pref_key);
-    
-    // getter methods
-    // Note that default values supplied as arguments are last-chance,
-    // and are overridden by those in preferences-defaults.h
-    bool getBool(Glib::ustring const &pref_path, Glib::ustring const &attr, bool def=false);
-    int getInt(Glib::ustring const &pref_path, Glib::ustring const &attr, int def=0);
-    int getIntLimited(Glib::ustring const &pref_path, Glib::ustring const &attr, int def=0, int min=INT_MIN, int max=INT_MAX);
-    double getDouble(Glib::ustring const &pref_path, Glib::ustring const &attr, double def=0.0);
-    double getDoubleLimited(Glib::ustring const &pref_path, Glib::ustring const &attr, double def=0.0, double min=DBL_MIN, double max=DBL_MAX);
-    Glib::ustring getString(Glib::ustring const &pref_path, Glib::ustring const &attr);
-    
-    // setter methods
-    void setBool(Glib::ustring const &pref_path, Glib::ustring const &attr, bool value);
-    void setInt(Glib::ustring const &pref_path, Glib::ustring const &attr, int value);
-    void setDouble(Glib::ustring const &pref_path, Glib::ustring const &attr, double value);
-    void setString(Glib::ustring const &pref_path, Glib::ustring const &attr, Glib::ustring const &value);
-    
-    // do not use this - it is only temporarily public to ease porting old code to this class
-    XML::Node *_getNode(Glib::ustring const &pref_path, bool create=false);
+    /**
+     * @name Retrieve data from the preference storage.
+     * @{
+     */
+    /**
+     * @brief Retrieve a Boolean value
+     * @param pref_path Path to the retrieved preference
+     * @param def The default value to return if the preference is not set
+     */
+    bool getBool(Glib::ustring const &pref_path, bool def=false) {
+        return getEntry(pref_path).getBool(def);
+    }
+    /**
+     * @brief Retrieve an integer
+     * @param pref_path Path to the retrieved preference
+     * @param def The default value to return if the preference is not set
+     */
+    int getInt(Glib::ustring const &pref_path, int def=0) {
+        return getEntry(pref_path).getInt(def);
+    }
+    /**
+     * @brief Retrieve a limited integer
+     *
+     * The default value is returned if the actual value is larger than @c max
+     * or smaller than @c min. Do not use to store Boolean values.
+     *
+     * @param pref_path Path to the retrieved preference
+     * @param def The default value to return if the preference is not set
+     * @param min Minimum value to return
+     * @param max Maximum value to return
+     */
+    int getIntLimited(Glib::ustring const &pref_path, int def=0, int min=INT_MIN, int max=INT_MAX) {
+        return getEntry(pref_path).getIntLimited(def, min, max);
+    }
+    double getDouble(Glib::ustring const &pref_path, double def=0.0) {
+        return getEntry(pref_path).getDouble(def);
+    }
+    /**
+     * @brief Retrieve a limited floating point value
+     *
+     * The default value is returned if the actual value is larger than @c max
+     * or smaller than @c min.
+     *
+     * @param pref_path Path to the retrieved preference
+     * @param def The default value to return if the preference is not set
+     * @param min Minimum value to return
+     * @param max Maximum value to return
+     */
+    double getDoubleLimited(Glib::ustring const &pref_path, double def=0.0, double min=DBL_MIN, double max=DBL_MAX) {
+        return getEntry(pref_path).getDoubleLimited(def, min, max);
+    }
+    /**
+     * @brief Retrieve an UTF-8 string
+     * @param pref_path Path to the retrieved preference
+     */
+    Glib::ustring getString(Glib::ustring const &pref_path) {
+        return getEntry(pref_path).getString();
+    }
+    /**
+     * @brief Retrieve a CSS style
+     * @param pref_path Path to the retrieved preference
+     * @return A CSS style that has to be unrefed after use.
+     */
+    SPCSSAttr *getStyle(Glib::ustring const &pref_path) {
+        return getEntry(pref_path).getStyle();
+    }
+    /**
+     * @brief Retrieve an inherited CSS style
+     *
+     * This method will look up preferences with the same entry name in ancestor
+     * directories and return a style obtained by inheriting properties from
+     * ancestor styles.
+     *
+     * @param pref_path Path to the retrieved preference
+     * @return An inherited CSS style that has to be unrefed after use.
+     */
+    SPCSSAttr *getInheritedStyle(Glib::ustring const &pref_path) {
+        return getEntry(pref_path).getInheritedStyle();
+    }
+    /**
+     * @brief Retrieve a preference entry without specifying its type
+     */
+    Entry const getEntry(Glib::ustring const &pref_path);
+    /*@}*/
     
-    // used for some obscure purpose in sp_desktop_widget_init
-    void addPrefsObserver(XML::NodeObserver *observer);
+    /**
+     * @name Update preference values.
+     * @{
+     */
 
-    // singleton accessor
+    /**
+     * @brief Set a Boolean value
+     */
+    void setBool(Glib::ustring const &pref_path, bool value);
+    /**
+     * @brief Set an integer value
+     */
+    void setInt(Glib::ustring const &pref_path, int value);
+    /**
+     * @brief Set a floating point value
+     */
+    void setDouble(Glib::ustring const &pref_path, double value);
+    /**
+     * @brief Set an UTF-8 string value
+     */
+    void setString(Glib::ustring const &pref_path, Glib::ustring const &value);
+    /**
+     * @brief Set a CSS style
+     */
+    void setStyle(Glib::ustring const &pref_path, SPCSSAttr *style);
+    /**
+     * @brief Merge a CSS style with the current preference value
+     *
+     * This method is similar to setStyle(), except that it merges the style
+     * rather than replacing it. This means that if @c style doesn't have
+     * a property set, it is left unchanged in the style stored in
+     * the preferences.
+     */
+    void mergeStyle(Glib::ustring const &pref_path, SPCSSAttr *style);
+    /*@}*/
+
+    /**
+     * @name Receive notifications about preference changes.
+     * @{
+     */
+    /**
+     * @brief Register a preference observer
+     */
+    void addObserver(Observer &);
+    /**
+     * @brief Remove an observer an prevent further notifications to it.
+     */
+    void removeObserver(Observer &);
+    /*@}*/
+
+    /**
+     * @name Access and manipulate the Preferences object.
+     */
+     
+    /**
+     * @brief Access the singleton Preferences object.
+     */
     static Preferences *get() {
         if (!_instance) _instance = new Preferences();
         return _instance;
     }
+    /**
+     * @brief Load the preferences.
+     *
+     * This method is automatically called from get(). It exists to supress
+     * possible compiler warnings over unused variables.
+     */
     static void load() {
         if (!_instance) _instance = new Preferences();
     }
+    /**
+     * @brief Unload all preferences and store them on the hard disk.
+     *
+     * This deletes the singleton object. Calling get() after this function is
+     */
     static void unload() {
         if(_instance)
         {
@@ -87,15 +402,40 @@ public:
             _instance = NULL;
         }
     }
-    // this is a static member to reduce dependency bloat for this class
-    static bool use_gui; ///< Whether to use GUI error notifications
+
+    /**
+     * @brief Whether to use GUI error notifications
+     *
+     * Set this to false when running Inkscape in command-line mode.
+     * Preference-related warnings will be printed to the console.
+     */
+    static bool use_gui;
+    /*@}*/
+    
+protected:
+    /* helper methods used by Entry
+     * This will enable using the same Entry class with different backends.
+     * For now, however, those methods are not virtual. These methods assume
+     * that v._value is not NULL
+     */
+    bool _extractBool(Entry const &v);
+    int _extractInt(Entry const &v);
+    double _extractDouble(Entry const &v);
+    Glib::ustring _extractString(Entry const &v);
+    SPCSSAttr *_extractStyle(Entry const &v);
+    SPCSSAttr *_extractInheritedStyle(Entry const &v);
     
 private:
     Preferences();
     ~Preferences();
     void _load();
     void _loadDefaults();
+    void _getRawValue(Glib::ustring const &path, gchar const *&result);
+    void _setRawValue(Glib::ustring const &path, gchar const *value);
     void _errorDialog(Glib::ustring const &, Glib::ustring const &);
+    void _keySplit(Glib::ustring const &pref_path, Glib::ustring &node_key, Glib::ustring &attr_key);
+    XML::Node *_getNode(Glib::ustring const &pref_path, bool create=false);
+    XML::Node *_findObserverNode(Glib::ustring const &pref_path, Glib::ustring &node_key, Glib::ustring &attr_key, bool create);
     
     // disable copying
     Preferences(Preferences const &);
@@ -107,9 +447,86 @@ private:
     bool _writable; ///< Will the preferences be saved at exit?
     XML::Document *_prefs_doc; ///< XML document storing all the preferences
     
+    /// Wrapper class for XML node observers
+    class PrefNodeObserver;
+    
+    typedef std::map<Observer *, PrefNodeObserver *> _ObsMap;
+    /// Map that keeps track of wrappers assigned to PrefObservers
+    _ObsMap _observer_map;
+    
+    // privilege escalation methods for PrefNodeObserver
+    static Entry const _create_pref_value(Glib::ustring const &, void const *ptr);
+    static void *_get_pref_observer_data(Observer &o) { return o._data; }
+    
     static Preferences *_instance;
+    
+friend class PrefNodeObserver;
+friend class Entry;
 };
 
+/* Trivial inline Preferences::Entry functions.
+ * In fact only the _extract* methods do something, the rest is delegation
+ * to avoid duplication of code. There should be no performance hit if
+ * compiled with -finline-functions.
+ */
+
+inline bool Preferences::Entry::getBool(bool def) const
+{
+    if (!this->isValid()) return def;
+    return Inkscape::Preferences::get()->_extractBool(*this);
+}
+
+inline int Preferences::Entry::getInt(int def) const
+{
+    if (!this->isValid()) return def;
+    return Inkscape::Preferences::get()->_extractInt(*this);
+}
+
+inline int Preferences::Entry::getIntLimited(int def, int min, int max) const
+{
+    if (!this->isValid()) return def;
+    int val = Inkscape::Preferences::get()->_extractInt(*this);
+    return ( val >= min && val <= max ? val : def );
+}
+
+inline double Preferences::Entry::getDouble(double def) const
+{
+    if (!this->isValid()) return def;
+    return Inkscape::Preferences::get()->_extractDouble(*this);
+}
+
+inline double Preferences::Entry::getDoubleLimited(double def, double min, double max) const
+{
+    if (!this->isValid()) return def;
+    double val = Inkscape::Preferences::get()->_extractDouble(*this);
+    return ( val >= min && val <= max ? val : def );
+}
+
+inline Glib::ustring Preferences::Entry::getString() const
+{
+    if (!this->isValid()) return "";
+    return Inkscape::Preferences::get()->_extractString(*this);
+}
+
+inline SPCSSAttr *Preferences::Entry::getStyle() const
+{
+    if (!this->isValid()) return NULL;
+    return Inkscape::Preferences::get()->_extractStyle(*this);
+}
+
+inline SPCSSAttr *Preferences::Entry::getInheritedStyle() const
+{
+    if (!this->isValid()) return NULL;
+    return Inkscape::Preferences::get()->_extractInheritedStyle(*this);
+}
+
+inline Glib::ustring Preferences::Entry::getEntryName() const
+{
+    Glib::ustring path_base = _pref_path;
+    path_base.erase(0, path_base.rfind('/') + 1);
+    return path_base;
+}
+
 } // namespace Inkscape
 
 #endif // INKSCAPE_PREFSTORE_H
diff --git a/src/prefs-utils.cpp b/src/prefs-utils.cpp
deleted file mode 100644 (file)
index 004626a..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Utility functions for reading and setting preferences
- *
- * Authors:
- *   bulia byak <bulia@dr.com>
- *
- * Copyright (C) 2003 authors
- *
- * Released under GNU GPL, read the file 'COPYING' for more information
- */
-
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include "prefs-utils.h"
-#include "inkscape.h"
-#include "xml/repr.h"
-
-
-void
-prefs_set_recent_file(gchar const *uri, gchar const *name)
-{
-    unsigned const max_documents = prefs_get_int_attribute("options.maxrecentdocuments", "value", 20);
-
-    if (uri != NULL) {
-        Inkscape::XML::Node *recent = inkscape_get_repr(INKSCAPE, "documents.recent");
-        if (recent) {
-            // remove excess recent files
-            if (recent->childCount() >= max_documents) {
-                Inkscape::XML::Node *child = recent->firstChild();
-                // count to the last
-                for (unsigned i = 0; child && i + 1 < max_documents; ++i) {
-                    child = child->next();
-                }
-                // remove all after the last
-                while (child) {
-                    Inkscape::XML::Node *next = child->next();
-                    sp_repr_unparent(child);
-                    child = next;
-                }
-            }
-
-            if (max_documents > 0) {
-                Inkscape::XML::Node *child = sp_repr_lookup_child(recent, "uri", uri);
-                if (child) {
-                    recent->changeOrder(child, NULL);
-                } else {
-                    child = recent->document()->createElement("document");
-                    child->setAttribute("uri", uri);
-                    recent->addChild(child, NULL);
-                }
-                child->setAttribute("name", name);
-            }
-        }
-    }
-}
-
-gchar const **
-prefs_get_recent_files()
-{
-    Inkscape::XML::Node *recent = inkscape_get_repr(INKSCAPE, "documents.recent");
-    if (recent) {
-        unsigned const docs = recent->childCount();
-        gchar const **datalst = (gchar const **) g_malloc(sizeof(gchar *) * ((docs * 2) + 1));
-
-        gint i;
-        Inkscape::XML::Node *child;
-        for (i = 0, child = recent->firstChild();
-             child != NULL;
-             child = child->next(), i += 2)
-        {
-            gchar const *uri = child->attribute("uri");
-            gchar const *name = child->attribute("name");
-            datalst[i]     = uri;
-            datalst[i + 1] = name;
-        }
-
-        datalst[i] = NULL;
-        return datalst;
-    }
-
-    return NULL;
-}
-
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
-  indent-tabs-mode:nil
-  fill-column:99
-  End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
diff --git a/src/prefs-utils.h b/src/prefs-utils.h
deleted file mode 100644 (file)
index 60eb694..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Utility functions for reading and setting preferences
- *
- * Authors:
- *   bulia byak <bulia@dr.com>
- *
- * Copyright (C) 2003 authors
- *
- * Released under GNU GPL, read the file 'COPYING' for more information
- */
-
-#ifndef SEEN_PREFS_UTILS_H
-#define SEEN_PREFS_UTILS_H
-
-#include <glib/gtypes.h>
-#include <glib/gslist.h>
-#include "preferences.h"
-
-inline bool pref_path_exists(gchar const *path){
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    return ps->exists(path);
-}
-
-inline unsigned pref_path_number_of_children(gchar const *path){
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    return ps->childCount(path);
-}
-
-inline void
-prefs_set_int_attribute(gchar const *path, gchar const *attr, long long int value)
-{
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    ps->setInt(path, attr, value);
-}
-
-inline int
-prefs_get_int_attribute(gchar const *path, gchar const *attr, long long int def)
-{
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    return ps->getInt(path, attr, def);
-}
-
-inline int
-prefs_get_int_attribute_limited(gchar const *path, gchar const *attr, long long int def, long long int min, long long int max)
-{
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    return ps->getIntLimited(path, attr, def, min, max);
-}
-
-inline void
-prefs_set_double_attribute(gchar const *path, gchar const *attr, double value)
-{
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    ps->setDouble(path, attr, value);
-}
-
-inline double
-prefs_get_double_attribute(gchar const *path, gchar const *attr, double def)
-{
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    return ps->getDouble(path, attr, def);
-}
-
-inline double
-prefs_get_double_attribute_limited(gchar const *path, gchar const *attr, double def, double min, double max)
-{
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    return ps->getDoubleLimited(path, attr, def, min, max);
-}
-
-inline void
-prefs_set_string_attribute(gchar const *path, gchar const *attr, gchar const *value)
-{
-    Inkscape::Preferences *ps = Inkscape::Preferences::get();
-    ps->setString(path, attr, value);
-}
-
-/// @todo Reimplement using Gtk::RecentManager
-void prefs_set_recent_file(const gchar * uri, const gchar * name);
-const gchar ** prefs_get_recent_files(void);
-
-#endif /* !SEEN_PREFS_UTILS_H */
-
-/*
-  Local Variables:
-  mode:c++
-  c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
-  indent-tabs-mode:nil
-  fill-column:99
-  End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 56d74d90152ec67eff2d0d76a910f54bd1e56d8f..93e7e8470905f4c7ace2660ad4577b3b01d60b14 100644 (file)
@@ -39,7 +39,7 @@
 #include "object-edit.h"
 #include "xml/repr.h"
 #include "xml/node-event-vector.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "context-fns.h"
 
 //static const double goldenratio = 1.61803398874989484820; // golden ratio
@@ -49,7 +49,7 @@ static void sp_rect_context_init(SPRectContext *rect_context);
 static void sp_rect_context_dispose(GObject *object);
 
 static void sp_rect_context_setup(SPEventContext *ec);
-static void sp_rect_context_set(SPEventContext *ec, gchar const *key, gchar const *val);
+static void sp_rect_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val);
 
 static gint sp_rect_context_root_handler(SPEventContext *event_context, GdkEvent *event);
 static gint sp_rect_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event);
@@ -218,31 +218,29 @@ static void sp_rect_context_setup(SPEventContext *ec)
     sp_event_context_read(ec, "rx");
     sp_event_context_read(ec, "ry");
 
-    if (prefs_get_int_attribute("tools.shapes", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/shapes/selcue")) {
         ec->enableSelectionCue();
     }
 
-    if (prefs_get_int_attribute("tools.shapes", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/shapes/gradientdrag")) {
         ec->enableGrDrag();
     }
 
     rc->_message_context = new Inkscape::MessageContext((ec->desktop)->messageStack());
 }
 
-static void sp_rect_context_set(SPEventContext *ec, gchar const *key, gchar const *val)
+static void sp_rect_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val)
 {
     SPRectContext *rc = SP_RECT_CONTEXT(ec);
 
     /* fixme: Proper error handling for non-numeric data.  Use a locale-independent function like
      * g_ascii_strtod (or a thin wrapper that does the right thing for invalid values inf/nan). */
-    if ( strcmp(key, "rx") == 0 ) {
-        rc->rx = ( val
-                         ? g_ascii_strtod (val, NULL)
-                         : 0.0 );
-    } else if ( strcmp(key, "ry") == 0 ) {
-        rc->ry = ( val
-                         ? g_ascii_strtod (val, NULL)
-                         : 0.0 );
+    Glib::ustring name = val->getEntryName();
+    if ( name == "rx" ) {
+        rc->rx = val->getDoubleLimited(); // prevents NaN and +/-Inf from messing up
+    } else if ( name == "ry" ) {
+        rc->ry = val->getDoubleLimited();
     }
 }
 
@@ -279,8 +277,9 @@ static gint sp_rect_context_root_handler(SPEventContext *event_context, GdkEvent
     Inkscape::Selection *selection = sp_desktop_selection (desktop);
 
     SPRectContext *rc = SP_RECT_CONTEXT(event_context);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    event_context->tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
+    event_context->tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
 
     gint ret = FALSE;
     switch (event->type) {
@@ -306,7 +305,7 @@ static gint sp_rect_context_root_handler(SPEventContext *event_context, GdkEvent
             /* Snap center */
             SnapManager &m = desktop->namedview->snap_manager;
             m.setup(desktop);
-            m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, button_dt);
+            m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, button_dt);
             rc->center = from_2geom(button_dt);
             
             sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate),
@@ -476,7 +475,7 @@ static void sp_rect_drag(SPRectContext &rc, NR::Point const pt, guint state)
         Inkscape::XML::Node *repr = xml_doc->createElement("svg:rect");
 
         /* Set style */
-        sp_desktop_apply_style_tool (desktop, repr, "tools.shapes.rect", false);
+        sp_desktop_apply_style_tool (desktop, repr, "/tools/shapes/rect", false);
 
         rc.item = (SPItem *) desktop->currentLayer()->appendChildRepr(repr);
         Inkscape::GC::release(repr);
index 661f0a2e46d8fff1a11daf50d7a2dcdfd4cc9acb..241802a8763fb46670c122535173eedefeb428a5 100644 (file)
@@ -23,7 +23,7 @@
 #include "text-editing.h"
 #include "sp-text.h"
 #include "sp-flowtext.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "selcue.h"
 
 Inkscape::SelCue::SelCue(SPDesktop *desktop)
@@ -70,15 +70,16 @@ void Inkscape::SelCue::_updateItemBboxes()
     }
     _text_baselines.clear();
 
-    gint mode = prefs_get_int_attribute ("options.selcue", "value", MARK);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gint mode = prefs->getInt("/options/selcue/value", MARK);
     if (mode == NONE) {
         return;
     }
 
     g_return_if_fail(_selection != NULL);
 
-    int prefs_bbox = prefs_get_int_attribute("tools", "bounding_box", 0);
-    SPItem::BBoxType bbox_type = (prefs_bbox ==0)
+    int prefs_bbox = prefs->getBool("/tools/bounding_box");
+    SPItem::BBoxType bbox_type = !prefs_bbox 
         SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX;
     
     for (GSList const *l = _selection->itemList(); l != NULL; l = l->next) {
index 374bf0810d82d7a76a4334d706f2cd67e1468afb..b726243f9c50f903769995de501852d5a73e6e5f 100644 (file)
@@ -35,7 +35,7 @@
 #include "desktop.h"
 #include "desktop-handles.h"
 #include "sp-root.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "tools-switch.h"
 #include "message-stack.h"
 #include "selection-describer.h"
@@ -47,7 +47,7 @@ static void sp_select_context_init(SPSelectContext *select_context);
 static void sp_select_context_dispose(GObject *object);
 
 static void sp_select_context_setup(SPEventContext *ec);
-static void sp_select_context_set(SPEventContext *ec, gchar const *key, gchar const *val);
+static void sp_select_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val);
 static gint sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event);
 static gint sp_select_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEvent *event);
 
@@ -179,18 +179,20 @@ sp_select_context_setup(SPEventContext *ec)
     sp_event_context_read(ec, "show");
     sp_event_context_read(ec, "transform");
 
-    if (prefs_get_int_attribute("tools.select", "gradientdrag", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/select/gradientdrag")) {
         ec->enableGrDrag();
     }
 }
 
 static void
-sp_select_context_set(SPEventContext *ec, gchar const *key, gchar const *val)
+sp_select_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val)
 {
     SPSelectContext *sc = SP_SELECT_CONTEXT(ec);
+    Glib::ustring path = val->getEntryName();
 
-    if (!strcmp(key, "show")) {
-        if (val && !strcmp(val, "outline")) {
+    if (path == "show") {
+        if (val->getString() == "outline") {
             sc->_seltrans->setShow(Inkscape::SelTrans::SHOW_OUTLINE);
         } else {
             sc->_seltrans->setShow(Inkscape::SelTrans::SHOW_CONTENT);
@@ -293,7 +295,8 @@ sp_select_context_item_handler(SPEventContext *event_context, SPItem *item, GdkE
     SPSelectContext *sc = SP_SELECT_CONTEXT(event_context);
     Inkscape::SelTrans *seltrans = sc->_seltrans;
 
-    tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
 
     // make sure we still have valid objects to move around
     if (sc->item && SP_OBJECT_DOCUMENT( SP_OBJECT(sc->item))==NULL) {
@@ -400,10 +403,12 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
     SPSelectContext *sc = SP_SELECT_CONTEXT(event_context);
     Inkscape::SelTrans *seltrans = sc->_seltrans;
     Inkscape::Selection *selection = sp_desktop_selection(desktop);
-    gdouble const nudge = prefs_get_double_attribute_limited("options.nudgedistance", "value", 2, 0, 1000); // in px
-    gdouble const offset = prefs_get_double_attribute_limited("options.defaultscale", "value", 2, 0, 1000);
-    tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
-    int const snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+
+    gdouble const nudge = prefs->getDoubleLimited("/options/nudgedistance/value", 2, 0, 1000); // in px
+    gdouble const offset = prefs->getDoubleLimited("/options/defaultscale/value", 2, 0, 1000);
+    tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
+    int const snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     // make sure we still have valid objects to move around
     if (sc->item && SP_OBJECT_DOCUMENT( SP_OBJECT(sc->item))==NULL) {
index d58f7ff25606cf4a0af56b1349a5cf01ab797677..08449720d627800fb3d2c9abc4bbb0db7cf9ee48 100644 (file)
@@ -260,7 +260,7 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone)
     std::vector<const gchar *> old_ids;
     std::vector<const gchar *> new_ids;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    bool relink_clones = prefs->getBool("options.relinkclonesonduplicate", "value");
+    bool relink_clones = prefs->getBool("/options/relinkclonesonduplicate/value");
 
     while (reprs) {
         Inkscape::XML::Node *old_repr = (Inkscape::XML::Node *) reprs->data;
@@ -368,9 +368,9 @@ void sp_edit_select_all_full (SPDesktop *dt, bool force_all_layers, bool invert)
     g_return_if_fail(SP_IS_GROUP(dt->currentLayer()));
     
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    PrefsSelectionContext inlayer = (PrefsSelectionContext) prefs->getInt("options.kbselection", "inlayer", PREFS_SELECTION_LAYER);
-    bool onlyvisible = prefs->getBool("options.kbselection", "onlyvisible", true);
-    bool onlysensitive = prefs->getBool("options.kbselection", "onlysensitive", true);
+    PrefsSelectionContext inlayer = (PrefsSelectionContext) prefs->getInt("/options/kbselection/inlayer", PREFS_SELECTION_LAYER);
+    bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true);
+    bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true);
 
     GSList *items = NULL;
 
@@ -1182,7 +1182,7 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Matrix cons
 
         // "clones are unmoved when original is moved" preference
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        int compensation = prefs->getInt("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+        int compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
         bool prefs_unmoved = (compensation == SP_CLONE_COMPENSATION_UNMOVED);
         bool prefs_parallel = (compensation == SP_CLONE_COMPENSATION_PARALLEL);
 
@@ -1610,9 +1610,9 @@ sp_selection_item_next(SPDesktop *desktop)
     Inkscape::Selection *selection = sp_desktop_selection(desktop);
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    PrefsSelectionContext inlayer = (PrefsSelectionContext)prefs->getInt("options.kbselection", "inlayer", PREFS_SELECTION_LAYER);
-    bool onlyvisible = prefs->getBool("options.kbselection", "onlyvisible", true);
-    bool onlysensitive = prefs->getBool("options.kbselection", "onlysensitive", true);
+    PrefsSelectionContext inlayer = (PrefsSelectionContext)prefs->getInt("/options/kbselection/inlayer", PREFS_SELECTION_LAYER);
+    bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true);
+    bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true);
 
     SPObject *root;
     if (PREFS_SELECTION_ALL != inlayer) {
@@ -1640,9 +1640,9 @@ sp_selection_item_prev(SPDesktop *desktop)
     Inkscape::Selection *selection = sp_desktop_selection(desktop);
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    PrefsSelectionContext inlayer = (PrefsSelectionContext) prefs->getInt("options.kbselection", "inlayer", PREFS_SELECTION_LAYER);
-    bool onlyvisible = prefs->getBool("options.kbselection", "onlyvisible", true);
-    bool onlysensitive = prefs->getBool("options.kbselection", "onlysensitive", true);
+    PrefsSelectionContext inlayer = (PrefsSelectionContext) prefs->getInt("/options/kbselection/inlayer", PREFS_SELECTION_LAYER);
+    bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true);
+    bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true);
 
     SPObject *root;
     if (PREFS_SELECTION_ALL != inlayer) {
@@ -1710,8 +1710,8 @@ void sp_selection_edit_clip_or_mask(SPDesktop * dt, bool clip)
                             // take colors from prefs (same as used in outline mode)
                             Inkscape::Preferences *prefs = Inkscape::Preferences::get();
                             np->helperpath_rgba = clip ? 
-                                prefs->getInt("options.wireframecolors", "clips", 0x00ff00ff) : 
-                                prefs->getInt("options.wireframecolors", "masks", 0x0000ffff);
+                                prefs->getInt("/options/wireframecolors/clips", 0x00ff00ff) : 
+                                prefs->getInt("/options/wireframecolors/masks", 0x0000ffff);
                             np->helperpath_width = 1.0;
                             sp_nodepath_show_helperpath(np, true);
                         }
@@ -2044,7 +2044,7 @@ sp_select_clone_original(SPDesktop *desktop)
 
     if (original) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        bool highlight = prefs->getBool("options.highlightoriginal", "value");
+        bool highlight = prefs->getBool("/options/highlightoriginal/value");
         if (highlight) {
             boost::optional<Geom::Rect> a = item->getBounds(sp_item_i2d_affine(item));
             boost::optional<Geom::Rect> b = original->getBounds(sp_item_i2d_affine(original));
@@ -2119,7 +2119,7 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply)
         repr_copies = g_slist_prepend (repr_copies, dup);
     }
 
-    NR::Rect bounds(desktop->dt2doc(r->min()), desktop->dt2doc(r->max()));
+    Geom::Rect bounds(desktop->dt2doc(r->min()), desktop->dt2doc(r->max()));
 
     if (apply) {
         // delete objects so that their clones don't get alerted; this object will be restored shortly
@@ -2133,8 +2133,8 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply)
     // without disturbing clones.
     // See ActorAlign::on_button_click() in src/ui/dialog/align-and-distribute.cpp
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    int saved_compensation = prefs->getInt("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
-    prefs->setInt("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+    int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
+    prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
 
     gchar const *mark_id = generate_marker(repr_copies, bounds, doc,
                                            ( Geom::Matrix(Geom::Translate(desktop->dt2doc(
@@ -2145,7 +2145,7 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply)
     (void)mark_id;
 
     // restore compensation setting
-    prefs->setInt("options.clonecompensation", "value", saved_compensation);
+    prefs->setInt("/options/clonecompensation/value", saved_compensation);
 
 
     g_slist_free (items);
@@ -2184,8 +2184,8 @@ void sp_selection_to_guides(SPDesktop *desktop)
     }
     
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    bool deleteitem = !prefs->getBool("tools", "cvg_keep_objects", 0);
-    bool wholegroups = prefs->getBool("tools", "cvg_convert_whole_groups", 0);
+    bool deleteitem = !prefs->getBool("/tools/cvg_keep_objects", 0);
+    bool wholegroups = prefs->getBool("/tools/cvg_convert_whole_groups", 0);
 
     for (GSList const *i = items; i != NULL; i = i->next) {
         sp_selection_to_guides_recursive(SP_ITEM(i->data), deleteitem, wholegroups);
@@ -2257,8 +2257,8 @@ sp_selection_tile(SPDesktop *desktop, bool apply)
     // without disturbing clones.
     // See ActorAlign::on_button_click() in src/ui/dialog/align-and-distribute.cpp
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    int saved_compensation = prefs->getInt("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
-    prefs->setInt("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+    int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
+    prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
 
     gchar const *pat_id = pattern_tile(repr_copies, bounds, doc,
                                        ( NR::Matrix(Geom::Translate(desktop->dt2doc(NR::Point(r->min()[NR::X],
@@ -2267,7 +2267,7 @@ sp_selection_tile(SPDesktop *desktop, bool apply)
                                        parent_transform * move);
 
     // restore compensation setting
-    prefs->setInt("options.clonecompensation", "value", saved_compensation);
+    prefs->setInt("/options/clonecompensation/value", saved_compensation);
 
     if (apply) {
         Inkscape::XML::Node *rect = xml_doc->createElement("svg:rect");
@@ -2499,8 +2499,8 @@ sp_selection_create_bitmap_copy (SPDesktop *desktop)
     // Calculate resolution
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     double res;
-    int const prefs_res = prefs->getInt("options.createbitmap", "resolution", 0);
-    int const prefs_min = prefs->getInt("options.createbitmap", "minsize", 0);
+    int const prefs_res = prefs->getInt("/options/createbitmap/resolution", 0);
+    int const prefs_min = prefs->getInt("/options/createbitmap/minsize", 0);
     if (0 < prefs_res) {
         // If it's given explicitly in prefs, take it
         res = prefs_res;
@@ -2532,11 +2532,11 @@ sp_selection_create_bitmap_copy (SPDesktop *desktop)
 
     // Find out if we have to run an external filter
     gchar const *run = NULL;
-    Glib::ustring filter = prefs->getString("options.createbitmap", "filter");
+    Glib::ustring filter = prefs->getString("/options/createbitmap/filter");
     if (!filter.empty()) {
         // filter command is given;
         // see if we have a parameter to pass to it
-        Glib::ustring param1 = prefs->getString("options.createbitmap", "filter_param1");
+        Glib::ustring param1 = prefs->getString("/options/createbitmap/filter_param1");
         if (!param1.empty()) {
             if (param1[param1.length() - 1] == '%') {
                 // if the param string ends with %, interpret it as a percentage of the image's max dimension
@@ -2678,8 +2678,8 @@ sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_to_la
     GSList *apply_to_items = NULL;
     GSList *items_to_delete = NULL;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    bool topmost = prefs->getBool("options.maskobject", "topmost", true);
-    bool remove_original = prefs->getBool("options.maskobject", "remove", true);
+    bool topmost = prefs->getBool("/options/maskobject/topmost", true);
+    bool remove_original = prefs->getBool("/options/maskobject/remove", true);
 
     if (apply_to_layer) {
         // all selected items are used for mask, which is applied to a layer
@@ -2782,7 +2782,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) {
     }
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    bool remove_original = prefs->getBool("options.maskobject", "remove", true);
+    bool remove_original = prefs->getBool("/options/maskobject/remove", true);
     sp_document_ensure_up_to_date(doc);
 
     gchar const *attributeName = apply_clip_path ? "clip-path" : "mask";
index bd695ff8b3c85f3da3697e9a4726a3ef2825e85d..4ed6c0842b92ba71d7fa884fd171deb8ef77b01e 100644 (file)
@@ -379,7 +379,7 @@ Inkscape::XML::Node *Selection::singleRepr() {
 NRRect *Selection::bounds(NRRect *bbox, SPItem::BBoxType type) const
 {
     g_return_val_if_fail (bbox != NULL, NULL);
-    bounds(bbox, type);
+    *bbox = NRRect(bounds(type));
     return bbox;
 }
 
@@ -441,15 +441,20 @@ boost::optional<Geom::Point> Selection::center() const {
 /**
  * Compute the list of points in the selection that are to be considered for snapping.
  */
-std::vector<Geom::Point> Selection::getSnapPoints(bool includeItemCenter) const {
+std::vector<Geom::Point> Selection::getSnapPoints(SnapPreferences const *snapprefs) const {
     GSList const *items = const_cast<Selection *>(this)->itemList();
+    
+    SnapPreferences snapprefs_dummy = *snapprefs; // create a local copy of the snapping prefs
+    snapprefs_dummy.setIncludeItemCenter(false); // locally disable snapping to the item center
+    
     std::vector<Geom::Point> p;
     for (GSList const *iter = items; iter != NULL; iter = iter->next) {
         SPItem *this_item = SP_ITEM(iter->data);
-        sp_item_snappoints(this_item, false, SnapPointsIter(p));
+        sp_item_snappoints(this_item, SnapPointsIter(p), &snapprefs_dummy);
+       
         //Include the transformation origin for snapping
-        //For a group only the group's origin is considered
-        if (includeItemCenter) {
+        //For a selection or group only the overall origin is considered
+        if (snapprefs != NULL && snapprefs->getIncludeItemCenter()) {
                p.push_back(this_item->getCenter());
         }  
     }
@@ -457,12 +462,12 @@ std::vector<Geom::Point> Selection::getSnapPoints(bool includeItemCenter) const
     return p;
 }
 
-std::vector<Geom::Point> Selection::getSnapPointsConvexHull() const {
+std::vector<Geom::Point> Selection::getSnapPointsConvexHull(SnapPreferences const *snapprefs) const {
     GSList const *items = const_cast<Selection *>(this)->itemList();
 
     std::vector<Geom::Point> p;
     for (GSList const *iter = items; iter != NULL; iter = iter->next) {
-               sp_item_snappoints(SP_ITEM(iter->data), false, SnapPointsIter(p));
+               sp_item_snappoints(SP_ITEM(iter->data), SnapPointsIter(p), snapprefs);
     }
 
     std::vector<Geom::Point> pHull;
@@ -521,31 +526,31 @@ SPObject *Selection::_objectForXMLNode(Inkscape::XML::Node *repr) const {
 }
 
 guint Selection::numberOfLayers() {
-      GSList const *items = const_cast<Selection *>(this)->itemList();
-       GSList *layers = NULL;
-       for (GSList const *iter = items; iter != NULL; iter = iter->next) {
-               SPObject *layer = desktop()->layerForObject(SP_OBJECT(iter->data));
-               if (g_slist_find (layers, layer) == NULL) {
-                       layers = g_slist_prepend (layers, layer);
-               }
-       }
-       guint ret = g_slist_length (layers);
-       g_slist_free (layers);
-       return ret;
+    GSList const *items = const_cast<Selection *>(this)->itemList();
+    GSList *layers = NULL;
+    for (GSList const *iter = items; iter != NULL; iter = iter->next) {
+        SPObject *layer = desktop()->layerForObject(SP_OBJECT(iter->data));
+        if (g_slist_find (layers, layer) == NULL) {
+            layers = g_slist_prepend (layers, layer);
+        }
+    }
+    guint ret = g_slist_length (layers);
+    g_slist_free (layers);
+    return ret;
 }
 
 guint Selection::numberOfParents() {
-      GSList const *items = const_cast<Selection *>(this)->itemList();
-       GSList *parents = NULL;
-       for (GSList const *iter = items; iter != NULL; iter = iter->next) {
-               SPObject *parent = SP_OBJECT_PARENT(iter->data);
-               if (g_slist_find (parents, parent) == NULL) {
-                       parents = g_slist_prepend (parents, parent);
-               }
-       }
-       guint ret = g_slist_length (parents);
-       g_slist_free (parents);
-       return ret;
+    GSList const *items = const_cast<Selection *>(this)->itemList();
+    GSList *parents = NULL;
+    for (GSList const *iter = items; iter != NULL; iter = iter->next) {
+        SPObject *parent = SP_OBJECT_PARENT(iter->data);
+        if (g_slist_find (parents, parent) == NULL) {
+            parents = g_slist_prepend (parents, parent);
+        }
+    }
+    guint ret = g_slist_length (parents);
+    g_slist_free (parents);
+    return ret;
 }
 
 }
index 6ae462fc36c9b57ce534a252a2d1cd3b8db98e52..88e8ae90de21810118c23daf7cf35bbf581ce78b 100644 (file)
@@ -268,13 +268,13 @@ public:
      * @brief Gets the selection's snap points.
      * @return Selection's snap points
      */
-    std::vector<Geom::Point> getSnapPoints(bool includeItemCenter) const;
+    std::vector<Geom::Point> getSnapPoints(SnapPreferences const *snapprefs) const;
 
     /**
      * @brief Gets the snap points of a selection that form a convex hull.
      * @return Selection's convex hull points
      */
-    std::vector<Geom::Point> getSnapPointsConvexHull() const;
+    std::vector<Geom::Point> getSnapPointsConvexHull(SnapPreferences const *snapprefs) const;
 
     /**
      * @brief Connects a slot to be notified of selection changes
index 6ae7948f1eee14c2d5d7d3d82c8566f5bcc15ff6..0b1c4f5c97bafafccbc7437dcf4ffa8dfc392317 100644 (file)
@@ -1,9 +1,7 @@
-#define __SELTRANS_C__
-
-/*
- * Helper object for transforming selected items
- *
- * Authors:
+/** @file
+ * @brief Helper object for transforming selected items
+ */
+/* Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
  *   bulia byak <buliabyak@users.sf.net>
  *   Carl Hetherington <inkscape@carlh.net>
@@ -41,7 +39,7 @@
 #include "verbs.h"
 #include <glibmm/i18n.h>
 #include "display/sp-ctrlline.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "xml/repr.h"
 #include "mod360.h"
 #include <2geom/angle.h>
@@ -101,8 +99,9 @@ Inkscape::SelTrans::SelTrans(SPDesktop *desktop) :
     _stamp_cache(NULL),
     _message_context(desktop->messageStack())
 {
-    int prefs_bbox = prefs_get_int_attribute("tools", "bounding_box", 0);
-    _snap_bbox_type = (prefs_bbox ==0)?
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int prefs_bbox = prefs->getBool("/tools/bounding_box");
+    _snap_bbox_type = !prefs_bbox ?
         SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX;
 
     g_return_if_fail(desktop != NULL);
@@ -287,8 +286,8 @@ void Inkscape::SelTrans::grab(Geom::Point const &p, gdouble x, gdouble y, bool s
     // Next, get all points to consider for snapping
     SnapManager const &m = _desktop->namedview->snap_manager;
     _snap_points.clear();
-    _snap_points = selection->getSnapPoints(m.getIncludeItemCenter());
-    std::vector<Geom::Point> snap_points_hull = selection->getSnapPointsConvexHull();
+    _snap_points = selection->getSnapPoints(&m.snapprefs);
+    std::vector<Geom::Point> snap_points_hull = selection->getSnapPointsConvexHull(&m.snapprefs);
     if (_snap_points.size() > 100) {
         /* Snapping a huge number of nodes will take way too long, so limit the number of snappable nodes
         An average user would rarely ever try to snap such a large number of nodes anyway, because
@@ -815,9 +814,10 @@ gboolean Inkscape::SelTrans::handleRequest(SPKnot *knot, Geom::Point *position,
 void Inkscape::SelTrans::_selChanged(Inkscape::Selection */*selection*/)
 {
     if (!_grabbed) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         // reread in case it changed on the fly:
-        int prefs_bbox = prefs_get_int_attribute("tools", "bounding_box", 0);
-         _snap_bbox_type = (prefs_bbox ==0)?
+        int prefs_bbox = prefs->getBool("/tools/bounding_box");
+         _snap_bbox_type = !prefs_bbox ?
             SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX;
         //SPItem::APPROXIMATE_BBOX will be replaced by SPItem::VISUAL_BBOX, as soon as the latter is implemented properly
 
@@ -932,8 +932,8 @@ gboolean Inkscape::SelTrans::scaleRequest(Geom::Point &pt, guint state)
             }
 
             // Snap along a suitable constraint vector from the origin.
-            bb = m.constrainedSnapScale(Snapper::SNAPPOINT_BBOX, _bbox_points, default_scale, _origin_for_bboxpoints);
-            sn = m.constrainedSnapScale(Snapper::SNAPPOINT_NODE, _snap_points, geom_scale, _origin_for_specpoints);
+            bb = m.constrainedSnapScale(SnapPreferences::SNAPPOINT_BBOX, _bbox_points, default_scale, _origin_for_bboxpoints);
+            sn = m.constrainedSnapScale(SnapPreferences::SNAPPOINT_NODE, _snap_points, geom_scale, _origin_for_specpoints);
 
             /* Choose the smaller difference in scale.  Since s[X] == s[Y] we can
             ** just compare difference in s[X].
@@ -942,8 +942,8 @@ gboolean Inkscape::SelTrans::scaleRequest(Geom::Point &pt, guint state)
             sd = sn.getSnapped() ? fabs(sn.getTransformation()[Geom::X] - geom_scale[Geom::X]) : NR_HUGE;
         } else {
             /* Scale aspect ratio is unlocked */
-            bb = m.freeSnapScale(Snapper::SNAPPOINT_BBOX, _bbox_points, default_scale, _origin_for_bboxpoints);
-            sn = m.freeSnapScale(Snapper::SNAPPOINT_NODE, _snap_points, geom_scale, _origin_for_specpoints);
+            bb = m.freeSnapScale(SnapPreferences::SNAPPOINT_BBOX, _bbox_points, default_scale, _origin_for_bboxpoints);
+            sn = m.freeSnapScale(SnapPreferences::SNAPPOINT_NODE, _snap_points, geom_scale, _origin_for_specpoints);
 
             /* Pick the snap that puts us closest to the original scale */
             bd = bb.getSnapped() ? fabs(Geom::L2(bb.getTransformation()) - Geom::L2(Geom::Point(default_scale[Geom::X], default_scale[Geom::Y]))) : NR_HUGE;
@@ -1031,8 +1031,8 @@ gboolean Inkscape::SelTrans::stretchRequest(SPSelTransHandle const &handle, Geom
 
         bool symmetrical = state & GDK_CONTROL_MASK;
 
-        bb = m.constrainedSnapStretch(Snapper::SNAPPOINT_BBOX, _bbox_points, Geom::Coord(default_scale[axis]), _origin_for_bboxpoints, Geom::Dim2(axis), symmetrical);
-        sn = m.constrainedSnapStretch(Snapper::SNAPPOINT_NODE, _snap_points, Geom::Coord(geom_scale[axis]), _origin_for_specpoints, Geom::Dim2(axis), symmetrical);
+        bb = m.constrainedSnapStretch(SnapPreferences::SNAPPOINT_BBOX, _bbox_points, Geom::Coord(default_scale[axis]), _origin_for_bboxpoints, Geom::Dim2(axis), symmetrical);
+        sn = m.constrainedSnapStretch(SnapPreferences::SNAPPOINT_NODE, _snap_points, Geom::Coord(geom_scale[axis]), _origin_for_specpoints, Geom::Dim2(axis), symmetrical);
 
         if (bb.getSnapped()) {
             // We snapped the bbox (which is either visual or geometric)
@@ -1129,8 +1129,9 @@ gboolean Inkscape::SelTrans::skewRequest(SPSelTransHandle const &handle, Geom::P
     double radians = atan(skew[dim_a] / scale[dim_a]);
 
     if (state & GDK_CONTROL_MASK) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         // Snap to defined angle increments
-        int snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+        int snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
         if (snaps) {
             double sections = floor(radians * snaps / M_PI + .5);
             if (fabs(sections) >= snaps / 2) {
@@ -1148,7 +1149,7 @@ gboolean Inkscape::SelTrans::skewRequest(SPSelTransHandle const &handle, Geom::P
         Inkscape::Snapper::ConstraintLine const constraint(component_vectors[dim_b]);
         // When skewing, we cannot snap the corners of the bounding box, see the comment in "constrainedSnapSkew" for details
         Geom::Point const s(skew[dim_a], scale[dim_a]);
-        Inkscape::SnappedPoint sn = m.constrainedSnapSkew(Inkscape::Snapper::SNAPPOINT_NODE, _snap_points, constraint, s, _origin, Geom::Dim2(dim_b));
+        Inkscape::SnappedPoint sn = m.constrainedSnapSkew(Inkscape::SnapPreferences::SNAPPOINT_NODE, _snap_points, constraint, s, _origin, Geom::Dim2(dim_b));
 
         if (sn.getSnapped()) {
             // We snapped something, so change the skew to reflect it
@@ -1198,7 +1199,8 @@ gboolean Inkscape::SelTrans::rotateRequest(Geom::Point &pt, guint state)
      *    the handle; otherwise it will be relative to the center as set for the selection
      */
 
-    int snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     // rotate affine in rotate
     Geom::Point const d1 = _point - _origin;
@@ -1250,7 +1252,7 @@ gboolean Inkscape::SelTrans::centerRequest(Geom::Point &pt, guint state)
 {
     SnapManager &m = _desktop->namedview->snap_manager;
     m.setup(_desktop);
-    m.freeSnapReturnByRef(Snapper::SNAPPOINT_NODE, pt);
+    m.freeSnapReturnByRef(SnapPreferences::SNAPPOINT_NODE, pt);
 
     if (state & GDK_CONTROL_MASK) {
         if ( fabs(_point[Geom::X] - pt[Geom::X]) > fabs(_point[Geom::Y] - pt[Geom::Y]) ) {
@@ -1358,7 +1360,7 @@ void Inkscape::SelTrans::moveTo(Geom::Point const &xy, guint state)
         ** FIXME: this will snap to more than just the grid, nowadays.
         */
 
-        m.freeSnapReturnByRef(Snapper::SNAPPOINT_NODE, dxy);
+        m.freeSnapReturnByRef(SnapPreferences::SNAPPOINT_NODE, dxy);
 
     } else if (!shift) {
 
@@ -1380,12 +1382,12 @@ void Inkscape::SelTrans::moveTo(Geom::Point const &xy, guint state)
                 // the constraint-line once. The constraint lines are parallel, but might not be colinear.
                 // Therefore we will have to set the point through which the constraint-line runs
                 // individually for each point to be snapped; this will be handled however by _snapTransformed()
-                s.push_back(m.constrainedSnapTranslation(Inkscape::Snapper::SNAPPOINT_BBOX,
+                s.push_back(m.constrainedSnapTranslation(Inkscape::SnapPreferences::SNAPPOINT_BBOX,
                                                          _bbox_points,
                                                          Inkscape::Snapper::ConstraintLine(component_vectors[dim]),
                                                          dxy));
 
-                s.push_back(m.constrainedSnapTranslation(Inkscape::Snapper::SNAPPOINT_NODE,
+                s.push_back(m.constrainedSnapTranslation(Inkscape::SnapPreferences::SNAPPOINT_NODE,
                                                          _snap_points,
                                                          Inkscape::Snapper::ConstraintLine(component_vectors[dim]),
                                                          dxy));
@@ -1399,8 +1401,8 @@ void Inkscape::SelTrans::moveTo(Geom::Point const &xy, guint state)
                g_get_current_time(&starttime); */
 
             /* Snap to things with no constraint */
-                       s.push_back(m.freeSnapTranslation(Inkscape::Snapper::SNAPPOINT_BBOX, _bbox_points, dxy));
-               s.push_back(m.freeSnapTranslation(Inkscape::Snapper::SNAPPOINT_NODE, _snap_points, dxy));
+                       s.push_back(m.freeSnapTranslation(Inkscape::SnapPreferences::SNAPPOINT_BBOX, _bbox_points, dxy));
+               s.push_back(m.freeSnapTranslation(Inkscape::SnapPreferences::SNAPPOINT_NODE, _snap_points, dxy));
 
                /*g_get_current_time(&endtime);
                double elapsed = ((((double)endtime.tv_sec - starttime.tv_sec) * G_USEC_PER_SEC + (endtime.tv_usec - starttime.tv_usec))) / 1000.0;
@@ -1471,7 +1473,8 @@ Geom::Point Inkscape::SelTrans::_getGeomHandlePos(Geom::Point const &visual_hand
     Geom::Point normalized_handle_pos = (visual_handle_pos - new_bbox.min()) * Geom::Scale(new_bbox.dimensions()).inverse();
 
     // Calculate the absolute affine while taking into account the scaling of the stroke width
-    int transform_stroke = prefs_get_int_attribute ("options.transform", "stroke", 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool transform_stroke = prefs->getBool("/options/transform/stroke", true);
     Geom::Matrix abs_affine = get_scale_transform_with_stroke (*_bbox, _strokewidth, transform_stroke,
                     new_bbox.min()[Geom::X], new_bbox.min()[Geom::Y], new_bbox.max()[Geom::X], new_bbox.max()[Geom::Y]);
 
@@ -1510,11 +1513,12 @@ Geom::Point Inkscape::SelTrans::_calcAbsAffineDefault(Geom::Scale const default_
     Geom::Point new_bbox_min = _approximate_bbox->min() * abs_affine;
     Geom::Point new_bbox_max = _approximate_bbox->max() * abs_affine;
 
-    int transform_stroke = false;
+    bool transform_stroke = false;
     gdouble strokewidth = 0;
 
     if ( _snap_bbox_type != SPItem::GEOMETRIC_BBOX) {
-        transform_stroke = prefs_get_int_attribute ("options.transform", "stroke", 1);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        transform_stroke = prefs->getBool("/options/transform/stroke", true);
         strokewidth = _strokewidth;
     }
 
@@ -1531,14 +1535,14 @@ Geom::Point Inkscape::SelTrans::_calcAbsAffineGeom(Geom::Scale const geom_scale)
     _relative_affine = Geom::Matrix(geom_scale);
     _absolute_affine = Geom::Translate(-_origin_for_specpoints) * _relative_affine * Geom::Translate(_origin_for_specpoints);
 
-    bool const transform_stroke = prefs_get_int_attribute ("options.transform", "stroke", 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool const transform_stroke = prefs->getBool("/options/transform/stroke", true);
     Geom::Rect visual_bbox = get_visual_bbox(_geometric_bbox, _absolute_affine, _strokewidth, transform_stroke);
 
     // return the new handle position
     return visual_bbox.min() + visual_bbox.dimensions() * Geom::Scale(_handle_x, _handle_y);
 }
 
-
 /*
   Local Variables:
   mode:c++
@@ -1548,4 +1552,4 @@ Geom::Point Inkscape::SelTrans::_calcAbsAffineGeom(Geom::Scale const geom_scale)
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 4fe1130bcd48347c66afe8cffcf501f33bfb61c4..04f40929bec2cbfd328b89ee199d59b8d8234ab4 100644 (file)
@@ -25,7 +25,7 @@
 #include "live_effects/parameter/pointparam-knotholder.h"
 #include "nodepath.h"
 #include "xml/node-event-vector.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "object-edit.h"
 #include "style.h"
 #include "display/curve.h"
@@ -241,7 +241,8 @@ void ShapeEditor::set_item(SPItem *item, SubType type, bool keep_knotholder) {
         switch(type) {
             case SH_NODEPATH:
                 if (SP_IS_LPE_ITEM(item)) {
-                    this->nodepath = sp_nodepath_new(desktop, item, (prefs_get_int_attribute("tools.nodes", "show_handles", 1) != 0));
+                    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+                    this->nodepath = sp_nodepath_new(desktop, item, (prefs->getBool("/tools/nodes/show_handles", true)));
                 }
                 if (this->nodepath) {
                     this->nodepath->shape_editor = this;
@@ -286,8 +287,9 @@ void ShapeEditor::set_item_lpe_path_parameter(SPItem *item, SPObject *lpeobject,
     this->grab_node = -1;
 
     if (lpeobject) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         this->nodepath = sp_nodepath_new( desktop, lpeobject,
-                                          (prefs_get_int_attribute("tools.nodes", "show_handles", 1) != 0),
+                                          (prefs->getInt("/tools/nodes/show_handles", true)),
                                           key, item);
         if (this->nodepath) {
             this->nodepath->shape_editor = this;
@@ -377,13 +379,14 @@ bool ShapeEditor::is_over_stroke (Geom::Point event_p, bool remember) {
 
     delta = desktop->d2w(delta);
 
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     double stroke_tolerance =
         (( !SP_OBJECT_STYLE(item)->stroke.isNone() ?
            desktop->current_zoom() *
            SP_OBJECT_STYLE (item)->stroke_width.computed * 0.5 *
            to_2geom(sp_item_i2d_affine(item)).descrim()
          : 0.0)
-         + prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100)) / to_2geom(sp_item_i2d_affine(item)).descrim();
+         + prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100)) / to_2geom(sp_item_i2d_affine(item)).descrim();
     bool close = (Geom::L2 (delta) < stroke_tolerance);
 
     if (remember && close) {
diff --git a/src/snap-preferences.cpp b/src/snap-preferences.cpp
new file mode 100644 (file)
index 0000000..f1ad0fd
--- /dev/null
@@ -0,0 +1,124 @@
+#define __SNAPPREFERENCES_CPP__
+
+/**
+ *  \file snap-preferences.cpp
+ *  \brief Storing of snapping preferences
+ *
+ * Authors:
+ *   Diederik van Lierop <mail@diedenrezi.nl>
+ *
+ * Copyright (C) 2008 Authors
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#include "inkscape.h"
+#include "snap-preferences.h"
+
+Inkscape::SnapPreferences::PointType const Inkscape::SnapPreferences::SNAPPOINT_NODE  = 0x1;
+Inkscape::SnapPreferences::PointType const Inkscape::SnapPreferences::SNAPPOINT_BBOX  = 0x2;
+Inkscape::SnapPreferences::PointType const Inkscape::SnapPreferences::SNAPPOINT_GUIDE = 0x4;
+
+
+Inkscape::SnapPreferences::SnapPreferences() :
+       _include_item_center(false),
+    _snap_enabled_globally(true)
+{
+       setSnapFrom(SNAPPOINT_BBOX | SNAPPOINT_NODE, true); //Snap any point. In v0.45 and earlier, this was controlled in the preferences tab
+}
+
+/*
+ *  The snappers have too many parameters to adjust individually. Therefore only
+ *  two snapping modes are presented to the user: snapping bounding box corners (to 
+ *  other bounding boxes, grids or guides), and/or snapping nodes (to other nodes,
+ *  paths, grids or guides). To select either of these modes (or both), use the 
+ *  methods defined below: setSnapModeBBox() and setSnapModeNode().
+ * 
+ * */
+
+
+void Inkscape::SnapPreferences::setSnapModeBBox(bool enabled)
+{
+       if (enabled) {
+        _snap_from |= Inkscape::SnapPreferences::SNAPPOINT_BBOX;
+    } else {
+        _snap_from &= ~Inkscape::SnapPreferences::SNAPPOINT_BBOX;
+    }
+}
+
+bool Inkscape::SnapPreferences::getSnapModeBBox() const
+{
+       return (_snap_from & Inkscape::SnapPreferences::SNAPPOINT_BBOX);
+}
+
+void Inkscape::SnapPreferences::setSnapModeNode(bool enabled)
+{
+       if (enabled) {
+        _snap_from |= Inkscape::SnapPreferences::SNAPPOINT_NODE;
+    } else {
+        _snap_from &= ~Inkscape::SnapPreferences::SNAPPOINT_NODE;
+    }
+}
+
+bool Inkscape::SnapPreferences::getSnapModeNode() const
+{
+       return (_snap_from & Inkscape::SnapPreferences::SNAPPOINT_NODE);
+}
+
+bool Inkscape::SnapPreferences::getSnapModeBBoxOrNodes() const
+{
+       return (_snap_from & (Inkscape::SnapPreferences::SNAPPOINT_BBOX | Inkscape::SnapPreferences::SNAPPOINT_NODE) );
+}
+
+bool Inkscape::SnapPreferences::getSnapModeAny() const
+{
+       return (_snap_from != 0);
+}
+
+void Inkscape::SnapPreferences::setSnapModeGuide(bool enabled)
+{
+       if (enabled) {
+        _snap_from |= Inkscape::SnapPreferences::SNAPPOINT_GUIDE;
+    } else {
+        _snap_from &= ~Inkscape::SnapPreferences::SNAPPOINT_GUIDE;
+    }
+}
+
+bool Inkscape::SnapPreferences::getSnapModeGuide() const
+{
+       return (_snap_from & Inkscape::SnapPreferences::SNAPPOINT_GUIDE);
+}
+
+/**
+ *  Turn on/off snapping of specific point types.
+ *  \param t Point type.
+ *  \param s true to snap to this point type, otherwise false;
+ */
+void Inkscape::SnapPreferences::setSnapFrom(PointType t, bool s)
+{
+    if (s) {
+        _snap_from |= t;
+    } else {
+        _snap_from &= ~t;
+    }
+}
+
+/**
+ *  \param t Point type.
+ *  \return true if snapper will snap this type of point, otherwise false.
+ */
+bool Inkscape::SnapPreferences::getSnapFrom(PointType t) const
+{
+    return (_snap_from & t);
+}
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
diff --git a/src/snap-preferences.h b/src/snap-preferences.h
new file mode 100644 (file)
index 0000000..d98cd7c
--- /dev/null
@@ -0,0 +1,81 @@
+#ifndef SNAPPREFERENCES_H_
+#define SNAPPREFERENCES_H_
+
+/**
+ *  \file snap-preferences.cpp
+ *  \brief Storing of snapping preferences
+ *
+ * Authors:
+ *   Diederik van Lierop <mail@diedenrezi.nl>
+ *
+ * Copyright (C) 2008 Authors
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+namespace Inkscape
+{
+
+class SnapPreferences
+{
+public:
+       SnapPreferences();
+       
+       /// Point types to snap.
+    typedef int PointType;
+    static const PointType SNAPPOINT_NODE;
+    static const PointType SNAPPOINT_BBOX;
+    static const PointType SNAPPOINT_GUIDE;
+
+    void setSnapModeBBox(bool enabled);
+    void setSnapModeNode(bool enabled);
+    void setSnapModeGuide(bool enabled);
+    bool getSnapModeBBox() const;
+    bool getSnapModeNode() const;
+    bool getSnapModeBBoxOrNodes() const;
+    bool getSnapModeAny() const;
+    bool getSnapModeGuide() const;
+
+    void setSnapIntersectionGG(bool enabled) {_intersectionGG = enabled;}
+    void setSnapIntersectionCS(bool enabled) {_intersectionCS = enabled;}
+    void setSnapSmoothNodes(bool enabled) {_smoothNodes = enabled;}
+    bool getSnapIntersectionGG() const {return _intersectionGG;}
+    bool getSnapIntersectionCS() const {return _intersectionCS;}    
+    bool getSnapSmoothNodes() const {return _smoothNodes;}
+    
+    void setIncludeItemCenter(bool enabled) {_include_item_center = enabled;}
+    bool getIncludeItemCenter() const {return _include_item_center;}
+    
+    void setSnapEnabledGlobally(bool enabled) {_snap_enabled_globally = enabled;}        
+    bool getSnapEnabledGlobally() const {return _snap_enabled_globally;}    
+    
+    void setSnapPostponedGlobally(bool postponed) {_snap_postponed_globally = postponed;}
+    bool getSnapPostponedGlobally() const {return _snap_postponed_globally;}
+    
+    void setSnapFrom(PointType t, bool s);
+    bool getSnapFrom(PointType t) const;
+       
+private:
+    bool _include_item_center; //If true, snapping nodes will also snap the item's center
+    bool _intersectionGG;
+    bool _intersectionCS;
+    bool _smoothNodes;
+    bool _snap_enabled_globally; // Toggles ALL snapping
+    bool _snap_postponed_globally; // Hold all snapping temporarily when the mouse is moving fast
+    PointType _snap_from; ///< bitmap of point types that we will snap from
+        
+};
+
+}
+#endif /*SNAPPREFERENCES_H_*/
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 202dd8e92a308687d001cd3bb4d76698d12a0789..6fa99f288aed7c8effad600a96d58742733fdc76 100644 (file)
@@ -46,13 +46,11 @@ using std::vector;
 SnapManager::SnapManager(SPNamedView const *v) :
     guide(this, 0),
     object(this, 0),
-    _named_view(v),
-    _include_item_center(false),
-    _snap_enabled_globally(true)
+    snapprefs(),
+    _named_view(v)    
 {    
 }
 
-
 /**
  *  \return List of snappers that we use.
  */
@@ -93,9 +91,9 @@ SnapManager::getGridSnappers() const
  * \return true if one of the snappers will try to snap something.
  */
 
-bool SnapManager::SomeSnapperMightSnap() const
+bool SnapManager::someSnapperMightSnap() const
 {
-    if (!_snap_enabled_globally) {
+    if ( !snapprefs.getSnapEnabledGlobally() || snapprefs.getSnapPostponedGlobally() ) {
         return false;
     }
     
@@ -108,67 +106,6 @@ bool SnapManager::SomeSnapperMightSnap() const
     return (i != s.end());
 }
 
-/*
- *  The snappers have too many parameters to adjust individually. Therefore only
- *  two snapping modes are presented to the user: snapping bounding box corners (to 
- *  other bounding boxes, grids or guides), and/or snapping nodes (to other nodes,
- *  paths, grids or guides). To select either of these modes (or both), use the 
- *  methods defined below: setSnapModeBBox() and setSnapModeNode().
- * 
- * */
-
-
-void SnapManager::setSnapModeBBox(bool enabled)
-{
-    //The default values are being set in sp_namedview_set() (in sp-namedview.cpp)
-    guide.setSnapFrom(Inkscape::Snapper::SNAPPOINT_BBOX, enabled);
-    
-    for ( GSList const *l = _named_view->grids; l != NULL; l = l->next) {
-        Inkscape::CanvasGrid *grid = (Inkscape::CanvasGrid*) l->data;
-        grid->snapper->setSnapFrom(Inkscape::Snapper::SNAPPOINT_BBOX, enabled);
-    }
-    
-    object.setSnapFrom(Inkscape::Snapper::SNAPPOINT_BBOX, enabled);
-    //object.setSnapToBBoxNode(enabled); // On second thought, these should be controlled
-    //object.setSnapToBBoxPath(enabled); // separately by the snapping prefs dialog
-    object.setStrictSnapping(true); //don't snap bboxes to nodes/paths and vice versa    
-}
-
-bool SnapManager::getSnapModeBBox() const
-{
-    return guide.getSnapFrom(Inkscape::Snapper::SNAPPOINT_BBOX);
-}
-
-void SnapManager::setSnapModeNode(bool enabled)
-{
-    guide.setSnapFrom(Inkscape::Snapper::SNAPPOINT_NODE, enabled);
-    
-    for ( GSList const *l = _named_view->grids; l != NULL; l = l->next) {
-        Inkscape::CanvasGrid *grid = (Inkscape::CanvasGrid*) l->data;
-        grid->snapper->setSnapFrom(Inkscape::Snapper::SNAPPOINT_NODE, enabled);
-    }
-        
-    object.setSnapFrom(Inkscape::Snapper::SNAPPOINT_NODE, enabled);
-    //object.setSnapToItemNode(enabled); // On second thought, these should be controlled
-    //object.setSnapToItemPath(enabled); // separately by the snapping prefs dialog 
-    object.setStrictSnapping(true);
-}
-
-bool SnapManager::getSnapModeNode() const
-{
-    return guide.getSnapFrom(Inkscape::Snapper::SNAPPOINT_NODE);
-}
-
-void SnapManager::setSnapModeGuide(bool enabled)
-{
-    object.setSnapFrom(Inkscape::Snapper::SNAPPOINT_GUIDE, enabled);
-}
-
-bool SnapManager::getSnapModeGuide() const
-{
-    return object.getSnapFrom(Inkscape::Snapper::SNAPPOINT_GUIDE);
-}
-
 /**
  *  Try to snap a point to any of the specified snappers.
  *
@@ -180,7 +117,7 @@ bool SnapManager::getSnapModeGuide() const
  *  \return Snapped point.
  */
 
-void SnapManager::freeSnapReturnByRef(Inkscape::Snapper::PointType point_type,
+void SnapManager::freeSnapReturnByRef(Inkscape::SnapPreferences::PointType point_type,
                                              Geom::Point &p,
                                              bool first_point,
                                              boost::optional<Geom::Rect> const &bbox_to_snap) const
@@ -200,12 +137,12 @@ void SnapManager::freeSnapReturnByRef(Inkscape::Snapper::PointType point_type,
  *  \return Snapped point.
  */
 
-Inkscape::SnappedPoint SnapManager::freeSnap(Inkscape::Snapper::PointType point_type,
+Inkscape::SnappedPoint SnapManager::freeSnap(Inkscape::SnapPreferences::PointType point_type,
                                              Geom::Point const &p,
                                              bool first_point,
                                              boost::optional<Geom::Rect> const &bbox_to_snap) const
 {
-    if (!SomeSnapperMightSnap()) {
+    if (!someSnapperMightSnap()) {
         return Inkscape::SnappedPoint(p, Inkscape::SNAPTARGET_UNDEFINED, NR_HUGE, 0, false, false);
     }
     
@@ -241,7 +178,7 @@ Inkscape::SnappedPoint SnapManager::freeSnap(Inkscape::Snapper::PointType point_
 // PS: Wether we really find a multiple also depends on the snapping range!
 Geom::Point SnapManager::multipleOfGridPitch(Geom::Point const &t) const
 {
-    if (!_snap_enabled_globally) 
+    if (!snapprefs.getSnapEnabledGlobally()) // No need to check for snapprefs.getSnapPostponedGlobally() here 
         return t;
     
     //FIXME: this code should actually do this: add new grid snappers that are active for this desktop. now it just adds all gridsnappers
@@ -269,7 +206,7 @@ Geom::Point SnapManager::multipleOfGridPitch(Geom::Point const &t) const
                 Geom::Point const t_offset = from_2geom(t) + grid->origin;
                 SnappedConstraints sc;    
                 // Only the first three parameters are being used for grid snappers
-                snapper->freeSnap(sc, Inkscape::Snapper::SNAPPOINT_NODE, t_offset, TRUE, boost::optional<Geom::Rect>(), NULL, NULL);
+                snapper->freeSnap(sc, Inkscape::SnapPreferences::SNAPPOINT_NODE, t_offset, TRUE, boost::optional<Geom::Rect>(), NULL, NULL);
                 // Find the best snap for this grid, including intersections of the grid-lines
                 Inkscape::SnappedPoint s = findBestSnap(t_offset, sc, false);
                 if (s.getSnapped() && (s.getDistance() < nearest_distance)) {
@@ -299,7 +236,7 @@ Geom::Point SnapManager::multipleOfGridPitch(Geom::Point const &t) const
  *  \return Snapped point.
  */
 
-void SnapManager::constrainedSnapReturnByRef(Inkscape::Snapper::PointType point_type,
+void SnapManager::constrainedSnapReturnByRef(Inkscape::SnapPreferences::PointType point_type,
                                                     Geom::Point &p,
                                                     Inkscape::Snapper::ConstraintLine const &constraint,
                                                     bool first_point,
@@ -321,13 +258,13 @@ void SnapManager::constrainedSnapReturnByRef(Inkscape::Snapper::PointType point_
  *  \return Snapped point.
  */
 
-Inkscape::SnappedPoint SnapManager::constrainedSnap(Inkscape::Snapper::PointType point_type,
+Inkscape::SnappedPoint SnapManager::constrainedSnap(Inkscape::SnapPreferences::PointType point_type,
                                                     Geom::Point const &p,
                                                     Inkscape::Snapper::ConstraintLine const &constraint,
                                                     bool first_point,
                                                     boost::optional<Geom::Rect> const &bbox_to_snap) const
 {
-    if (!SomeSnapperMightSnap()) {
+    if (!someSnapperMightSnap()) {
         return Inkscape::SnappedPoint(p, Inkscape::SNAPTARGET_UNDEFINED, NR_HUGE, 0, false, false);
     }
     
@@ -358,8 +295,8 @@ void SnapManager::guideSnap(Geom::Point &p, Geom::Point const &guide_normal) con
 {
     // This method is used to snap a guide to nodes, while dragging the guide around
     
-    if (!(object.GuidesMightSnap() && _snap_enabled_globally)) {
-        return;
+    if ( !(object.GuidesMightSnap() && snapprefs.getSnapEnabledGlobally()) || snapprefs.getSnapPostponedGlobally() ) {
+       return;
     }
     
     SnappedConstraints sc;
@@ -387,7 +324,7 @@ void SnapManager::guideSnap(Geom::Point &p, Geom::Point const &guide_normal) con
  */
 
 Inkscape::SnappedPoint SnapManager::_snapTransformed(
-    Inkscape::Snapper::PointType type,
+    Inkscape::SnapPreferences::PointType type,
     std::vector<Geom::Point> const &points,
     bool constrained,
     Inkscape::Snapper::ConstraintLine const &constraint,
@@ -405,7 +342,7 @@ Inkscape::SnappedPoint SnapManager::_snapTransformed(
     /* Quick check to see if we have any snappers that are enabled
     ** Also used to globally disable all snapping 
     */
-    if (SomeSnapperMightSnap() == false) {
+    if (someSnapperMightSnap() == false) {
         g_assert(points.size() > 0);
         return Inkscape::SnappedPoint();
     }
@@ -653,7 +590,7 @@ Inkscape::SnappedPoint SnapManager::_snapTransformed(
  *  \return Snapped translation, if a snap occurred, and a flag indicating whether a snap occurred.
  */
 
-Inkscape::SnappedPoint SnapManager::freeSnapTranslation(Inkscape::Snapper::PointType point_type,
+Inkscape::SnappedPoint SnapManager::freeSnapTranslation(Inkscape::SnapPreferences::PointType point_type,
                                                         std::vector<Geom::Point> const &p,
                                                         Geom::Point const &tr) const
 {
@@ -673,7 +610,7 @@ Inkscape::SnappedPoint SnapManager::freeSnapTranslation(Inkscape::Snapper::Point
  *  \return Snapped translation, if a snap occurred, and a flag indicating whether a snap occurred.
  */
 
-Inkscape::SnappedPoint SnapManager::constrainedSnapTranslation(Inkscape::Snapper::PointType point_type,
+Inkscape::SnappedPoint SnapManager::constrainedSnapTranslation(Inkscape::SnapPreferences::PointType point_type,
                                                                std::vector<Geom::Point> const &p,
                                                                Inkscape::Snapper::ConstraintLine const &constraint,
                                                                Geom::Point const &tr) const
@@ -693,7 +630,7 @@ Inkscape::SnappedPoint SnapManager::constrainedSnapTranslation(Inkscape::Snapper
  *  \return Snapped scale, if a snap occurred, and a flag indicating whether a snap occurred.
  */
 
-Inkscape::SnappedPoint SnapManager::freeSnapScale(Inkscape::Snapper::PointType point_type,
+Inkscape::SnappedPoint SnapManager::freeSnapScale(Inkscape::SnapPreferences::PointType point_type,
                                                   std::vector<Geom::Point> const &p,
                                                   Geom::Scale const &s,
                                                   Geom::Point const &o) const
@@ -714,7 +651,7 @@ Inkscape::SnappedPoint SnapManager::freeSnapScale(Inkscape::Snapper::PointType p
  *  \return Snapped scale, if a snap occurred, and a flag indicating whether a snap occurred.
  */
 
-Inkscape::SnappedPoint SnapManager::constrainedSnapScale(Inkscape::Snapper::PointType point_type,
+Inkscape::SnappedPoint SnapManager::constrainedSnapScale(Inkscape::SnapPreferences::PointType point_type,
                                                          std::vector<Geom::Point> const &p,
                                                          Geom::Scale const &s,
                                                          Geom::Point const &o) const
@@ -737,7 +674,7 @@ Inkscape::SnappedPoint SnapManager::constrainedSnapScale(Inkscape::Snapper::Poin
  *  \return Snapped stretch, if a snap occurred, and a flag indicating whether a snap occurred.
  */
 
-Inkscape::SnappedPoint SnapManager::constrainedSnapStretch(Inkscape::Snapper::PointType point_type,
+Inkscape::SnappedPoint SnapManager::constrainedSnapStretch(Inkscape::SnapPreferences::PointType point_type,
                                                             std::vector<Geom::Point> const &p,
                                                             Geom::Coord const &s,
                                                             Geom::Point const &o,
@@ -760,7 +697,7 @@ Inkscape::SnappedPoint SnapManager::constrainedSnapStretch(Inkscape::Snapper::Po
  *  \return Snapped skew, if a snap occurred, and a flag indicating whether a snap occurred.
  */
 
-Inkscape::SnappedPoint SnapManager::constrainedSnapSkew(Inkscape::Snapper::PointType point_type,
+Inkscape::SnappedPoint SnapManager::constrainedSnapSkew(Inkscape::SnapPreferences::PointType point_type,
                                                  std::vector<Geom::Point> const &p,
                                                  Inkscape::Snapper::ConstraintLine const &constraint,
                                                  Geom::Point const &s,  
@@ -774,7 +711,7 @@ Inkscape::SnappedPoint SnapManager::constrainedSnapSkew(Inkscape::Snapper::Point
        // NOT the case for example when rotating or skewing. The bounding box itself cannot possibly rotate or skew,
        // so it's corners have a different transformation. The snappers cannot handle this, therefore snapping
        // of bounding boxes is not allowed here.
-       g_assert(!(point_type & Inkscape::Snapper::SNAPPOINT_BBOX));
+       g_assert(!(point_type & Inkscape::SnapPreferences::SNAPPOINT_BBOX));
        return _snapTransformed(point_type, p, true, constraint, SKEW, s, o, d, false);
 }
 
@@ -805,7 +742,7 @@ Inkscape::SnappedPoint SnapManager::findBestSnap(Geom::Point const &p, SnappedCo
         sp_list.push_back(Inkscape::SnappedPoint(closestCurve));
     }
     
-    if (_intersectionCS) {
+    if (snapprefs.getSnapIntersectionCS()) {
         // search for the closest snapped intersection of curves
         Inkscape::SnappedPoint closestCurvesIntersection;
         if (getClosestIntersectionCS(sc.curves, p, closestCurvesIntersection)) {
@@ -849,7 +786,7 @@ Inkscape::SnappedPoint SnapManager::findBestSnap(Geom::Point const &p, SnappedCo
         }
         
         // search for the closest snapped intersection of grid with guide lines
-        if (_intersectionGG) {
+        if (snapprefs.getSnapIntersectionGG()) {
             Inkscape::SnappedPoint closestGridGuidePoint;
             if (getClosestIntersectionSL(sc.grid_lines, sc.guide_lines, closestGridGuidePoint)) {
                 closestGridGuidePoint.setTarget(Inkscape::SNAPTARGET_GRID_GUIDE_INTERSECTION);
index df08602746c3609ed214ac3cadd403ab8f8cdc8a..624f7adac7cc43774d6365d189831806344c577e 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "guide-snapper.h"
 #include "object-snapper.h"
+#include "snap-preferences.h"
 
 class SPNamedView;
 
@@ -45,19 +46,19 @@ public:
 
     typedef std::list<const Inkscape::Snapper*> SnapperList;
 
-    bool SomeSnapperMightSnap() const;
+    bool someSnapperMightSnap() const;
     
     void setup(SPDesktop const *desktop, bool snapindicator = true, SPItem const *item_to_ignore = NULL, std::vector<Geom::Point> *unselected_nodes = NULL);
     void setup(SPDesktop const *desktop, bool snapindicator, std::vector<SPItem const *> &items_to_ignore, std::vector<Geom::Point> *unselected_nodes = NULL);
 
     // freeSnapReturnByRef() is preferred over freeSnap(), because it only returns a 
     // point if snapping has occured (by overwriting p); otherwise p is untouched    
-    void freeSnapReturnByRef(Inkscape::Snapper::PointType point_type,
+    void freeSnapReturnByRef(Inkscape::SnapPreferences::PointType point_type,
                       Geom::Point &p,
                       bool first_point = true,
                       boost::optional<Geom::Rect> const &bbox_to_snap = boost::optional<Geom::Rect>()) const;
     
-    Inkscape::SnappedPoint freeSnap(Inkscape::Snapper::PointType point_type,
+    Inkscape::SnappedPoint freeSnap(Inkscape::SnapPreferences::PointType point_type,
                                     Geom::Point const &p,
                                     bool first_point = true,
                                     boost::optional<Geom::Rect> const &bbox_to_snap = boost::optional<Geom::Rect>() ) const;
@@ -66,13 +67,13 @@ public:
     
     // constrainedSnapReturnByRef() is preferred over constrainedSnap(), because it only returns a 
     // point, by overwriting p, if snapping has occured; otherwise p is untouched
-    void constrainedSnapReturnByRef(Inkscape::Snapper::PointType point_type,
+    void constrainedSnapReturnByRef(Inkscape::SnapPreferences::PointType point_type,
                              Geom::Point &p,
                              Inkscape::Snapper::ConstraintLine const &constraint,
                              bool first_point = true,
                              boost::optional<Geom::Rect> const &bbox_to_snap = boost::optional<Geom::Rect>()) const;
     
-    Inkscape::SnappedPoint constrainedSnap(Inkscape::Snapper::PointType point_type,
+    Inkscape::SnappedPoint constrainedSnap(Inkscape::SnapPreferences::PointType point_type,
                                            Geom::Point const &p,
                                            Inkscape::Snapper::ConstraintLine const &constraint,
                                            bool first_point = true,
@@ -80,33 +81,33 @@ public:
                                            
     void guideSnap(Geom::Point &p, Geom::Point const &guide_normal) const;
 
-    Inkscape::SnappedPoint freeSnapTranslation(Inkscape::Snapper::PointType point_type,
+    Inkscape::SnappedPoint freeSnapTranslation(Inkscape::SnapPreferences::PointType point_type,
                                                std::vector<Geom::Point> const &p,
                                                Geom::Point const &tr) const;
 
-    Inkscape::SnappedPoint constrainedSnapTranslation(Inkscape::Snapper::PointType point_type,
+    Inkscape::SnappedPoint constrainedSnapTranslation(Inkscape::SnapPreferences::PointType point_type,
                                                       std::vector<Geom::Point> const &p,
                                                       Inkscape::Snapper::ConstraintLine const &constraint,
                                                       Geom::Point const &tr) const;
 
-    Inkscape::SnappedPoint freeSnapScale(Inkscape::Snapper::PointType point_type,
+    Inkscape::SnappedPoint freeSnapScale(Inkscape::SnapPreferences::PointType point_type,
                                          std::vector<Geom::Point> const &p,
                                          Geom::Scale const &s,
                                          Geom::Point const &o) const;
 
-    Inkscape::SnappedPoint constrainedSnapScale(Inkscape::Snapper::PointType point_type,
+    Inkscape::SnappedPoint constrainedSnapScale(Inkscape::SnapPreferences::PointType point_type,
                                                 std::vector<Geom::Point> const &p,
                                                 Geom::Scale const &s,
                                                 Geom::Point const &o) const;
 
-    Inkscape::SnappedPoint constrainedSnapStretch(Inkscape::Snapper::PointType point_type,
+    Inkscape::SnappedPoint constrainedSnapStretch(Inkscape::SnapPreferences::PointType point_type,
                                                   std::vector<Geom::Point> const &p,
                                                   Geom::Coord const &s,
                                                   Geom::Point const &o,
                                                   Geom::Dim2 d,
                                                   bool uniform) const;
 
-    Inkscape::SnappedPoint constrainedSnapSkew(Inkscape::Snapper::PointType point_type,
+    Inkscape::SnappedPoint constrainedSnapSkew(Inkscape::SnapPreferences::PointType point_type,
                                                std::vector<Geom::Point> const &p,
                                                Inkscape::Snapper::ConstraintLine const &constraint,
                                                Geom::Point const &s, // s[0] = skew factor, s[1] = scale factor
@@ -115,6 +116,7 @@ public:
                                         
     Inkscape::GuideSnapper guide;      ///< guide snapper
     Inkscape::ObjectSnapper object;    ///< snapper to other objects
+    Inkscape::SnapPreferences snapprefs;
 
     SnapperList getSnappers() const;
     SnapperList getGridSnappers() const;
@@ -123,64 +125,24 @@ public:
     SPNamedView const *getNamedView() const {return _named_view;}
     SPDocument *getDocument() const;
     
-    void setSnapModeBBox(bool enabled);
-    void setSnapModeNode(bool enabled);
-    void setSnapModeGuide(bool enabled);
-    bool getSnapModeBBox() const;
-    bool getSnapModeNode() const;
-    bool getSnapModeGuide() const;
-    
-    void setSnapIntersectionGG(bool enabled) {_intersectionGG = enabled;}
-    void setSnapIntersectionCS(bool enabled) {_intersectionCS = enabled;}
-    bool getSnapIntersectionGG() {return _intersectionGG;}
-    bool getSnapIntersectionCS() {return _intersectionCS;}    
-
-    void setIncludeItemCenter(bool enabled)    {
-        _include_item_center = enabled;
-        // also store a local copy in the object-snapper instead of passing it through many functions
-        object.setIncludeItemCenter(enabled);
-       }
-    
-    bool getIncludeItemCenter() const {
-        return _include_item_center;
-    }
-    
-    void setSnapEnabledGlobally(bool enabled) {
-        _snap_enabled_globally = enabled;   
-    }
-        
-    bool getSnapEnabledGlobally() const {
-        return _snap_enabled_globally;   
-    }
-    
-    void toggleSnapEnabledGlobally() {
-        _snap_enabled_globally = !_snap_enabled_globally;   
-    }
-        
 protected:
     SPNamedView const *_named_view;
 
 private:
-
-    enum Transformation {
+       enum Transformation {
         TRANSLATION,
         SCALE,
         STRETCH,
         SKEW
     };
     
-    bool _include_item_center; //If true, snapping nodes will also snap the item's center
-    bool _intersectionGG;
-    bool _intersectionCS;
-    bool _snap_enabled_globally; //Toggles ALL snapping
-    
     std::vector<SPItem const *> *_items_to_ignore;
     SPItem const *_item_to_ignore;
     SPDesktop const *_desktop;
     bool _snapindicator;
     std::vector<Geom::Point> *_unselected_nodes;                                    
     
-    Inkscape::SnappedPoint _snapTransformed(Inkscape::Snapper::PointType type,
+    Inkscape::SnappedPoint _snapTransformed(Inkscape::SnapPreferences::PointType type,
                                             std::vector<Geom::Point> const &points,
                                             bool constrained,
                                             Inkscape::Snapper::ConstraintLine const &constraint,
index 51ffaa42de7869b58af83d00222d217679865881..7e45681602f293e19f8774a5b234f8913014ece1 100644 (file)
 #include "inkscape.h"
 #include "desktop.h"
 
-Inkscape::Snapper::PointType const Inkscape::Snapper::SNAPPOINT_BBOX = 0x1;
-Inkscape::Snapper::PointType const Inkscape::Snapper::SNAPPOINT_NODE = 0x2;
-Inkscape::Snapper::PointType const Inkscape::Snapper::SNAPPOINT_GUIDE = 0x4;
-
 /**
  *  Construct new Snapper for named view.
  *  \param nv Named view.
  *  \param d Snap tolerance.
  */
-Inkscape::Snapper::Snapper(SnapManager const *sm, Geom::Coord const t) : _snapmanager(sm), _snap_enabled(true), _snapper_tolerance(t)
+Inkscape::Snapper::Snapper(SnapManager const *sm, Geom::Coord const t) : 
+       _snapmanager(sm), 
+       _snap_enabled(true),
+       _snapper_tolerance(t)
 {
     g_assert(_snapmanager != NULL);
-    
-    setSnapFrom(SNAPPOINT_BBOX | SNAPPOINT_NODE, true); //Snap any point. In v0.45 and earlier, this was controlled in the preferences tab
 }
 
 /**
@@ -52,29 +49,6 @@ bool Inkscape::Snapper::getSnapperAlwaysSnap() const
     return _snapper_tolerance == 10000; //TODO: Replace this threshold of 10000 by a constant; see also tolerance-slider.cpp
 }
 
-/**
- *  Turn on/off snapping of specific point types.
- *  \param t Point type.
- *  \param s true to snap to this point type, otherwise false;
- */
-void Inkscape::Snapper::setSnapFrom(PointType t, bool s)
-{
-    if (s) {
-        _snap_from |= t;
-    } else {
-        _snap_from &= ~t;
-    }
-}
-
-/**
- *  \param t Point type.
- *  \return true if snapper will snap this type of point, otherwise false.
- */
-bool Inkscape::Snapper::getSnapFrom(PointType t) const
-{
-    return (_snap_from & t);
-}
-
 /**
  *  \param s true to enable this snapper, otherwise false.
  */
index 97068bf101b09b1b601f1da5f341a2dfacc3ebee..7ad548ab401b377aef828868aff4591364920dc6 100644 (file)
@@ -21,6 +21,7 @@
 #include "snapped-point.h"
 #include "snapped-line.h"
 #include "snapped-curve.h"
+#include "snap-preferences.h"
 
 struct SnappedConstraints {
     std::list<Inkscape::SnappedPoint> points;
@@ -40,19 +41,10 @@ namespace Inkscape
 class Snapper
 {
 public:
-    Snapper() {}
-    Snapper(SnapManager const *sm, ::Geom::Coord const d);
-    virtual ~Snapper() {}
-
-    /// Point types to snap.
-    typedef int PointType;
-    static const PointType SNAPPOINT_NODE;
-    static const PointType SNAPPOINT_BBOX;
-    static const PointType SNAPPOINT_GUIDE;
-
-    void setSnapFrom(PointType t, bool s);
-    bool getSnapFrom(PointType t) const;
-
+       Snapper() {}
+       Snapper(SnapManager const *sm, ::Geom::Coord const t);
+       virtual ~Snapper() {}
+       
     void setSnapperTolerance(Geom::Coord t);
     Geom::Coord getSnapperTolerance() const; //returns the tolerance of the snapper in screen pixels (i.e. independent of zoom)
     bool getSnapperAlwaysSnap() const; //if true, then the snapper will always snap, regardless of its tolerance
@@ -60,13 +52,14 @@ public:
     /**
     *  \return true if this Snapper will snap at least one kind of point.
     */
-    virtual bool ThisSnapperMightSnap() const {return (_snap_enabled && _snap_from != 0);} // will likely be overridden by derived classes
+    //virtual bool ThisSnapperMightSnap() const;
+    virtual bool ThisSnapperMightSnap() const {return _snap_enabled;} // will likely be overridden by derived classes
 
     void setEnabled(bool s);
     bool getEnabled() const {return _snap_enabled;}
 
     virtual void freeSnap(SnappedConstraints &/*sc*/,
-                          PointType const &/*t*/,
+                          SnapPreferences::PointType const &/*t*/,
                           Geom::Point const &/*p*/,
                           bool const &/*first_point*/,
                           boost::optional<Geom::Rect> const &/*bbox_to_snap*/,
@@ -104,7 +97,7 @@ public:
     };
 
     virtual void constrainedSnap(SnappedConstraints &/*sc*/,
-                                 PointType const &/*t*/,
+                                                        SnapPreferences::PointType const &/*t*/,
                                  Geom::Point const &/*p*/,
                                  bool const &/*first_point*/,
                                  boost::optional<Geom::Rect> const &/*bbox_to_snap*/,
@@ -112,15 +105,14 @@ public:
                                  std::vector<SPItem const *> const */*it*/) const {};
 
 protected:
-       SnapManager const *_snapmanager;                
-       int _snap_from; ///< bitmap of point types that we will snap from
-    bool _snap_enabled; ///< true if this snapper is enabled, otherwise false
+       SnapManager const *_snapmanager;
+       
+       bool _snap_enabled; ///< true if this snapper is enabled, otherwise false
 
 private:
        Geom::Coord _snapper_tolerance;   ///< snap tolerance in desktop coordinates
                                     // must be private to enforce the usage of getTolerance(), which retrieves
                                     // the tolerance in screen pixels (making it zoom independent)
-
 };
 
 }
index a9833e05385941e143be6ac05f771f1b4cad1a2a..e1284f61ec0d1838dfe98f04e617b6d39c191716 100644 (file)
@@ -72,7 +72,7 @@ static void sp_genericellipse_init(SPGenericEllipse *ellipse);
 
 static void sp_genericellipse_update(SPObject *object, SPCtx *ctx, guint flags);
 
-static void sp_genericellipse_snappoints(SPItem const *item, SnapPointsIter p);
+static void sp_genericellipse_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 
 static void sp_genericellipse_set_shape(SPShape *shape);
 static void sp_genericellipse_update_patheffect (SPLPEItem *lpeitem, bool write);
@@ -248,7 +248,7 @@ static void sp_genericellipse_set_shape(SPShape *shape)
     curve->unref();
 }
 
-static void sp_genericellipse_snappoints(SPItem const *item, SnapPointsIter p)
+static void sp_genericellipse_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
     g_assert(item != NULL);
     g_assert(SP_IS_GENERICELLIPSE(item));
@@ -859,11 +859,11 @@ sp_arc_position_set(SPArc *arc, gdouble x, gdouble y, gdouble rx, gdouble ry)
     ge->rx.computed = rx;
     ge->ry.computed = ry;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    if (prefs->getDouble("tools.shapes.arc", "start", 0.0) != 0)
-        ge->start = prefs->getDouble("tools.shapes.arc", "start", 0.0);
-    if (prefs->getDouble("tools.shapes.arc", "end", 0.0) != 0)
-        ge->end = prefs->getDouble("tools.shapes.arc", "end", 0.0);
-    if (!prefs->getBool("tools.shapes.arc", "open"))
+    if (prefs->getDouble("/tools/shapes/arc/start", 0.0) != 0)
+        ge->start = prefs->getDouble("/tools/shapes/arc/start", 0.0);
+    if (prefs->getDouble("/tools/shapes/arc/end", 0.0) != 0)
+        ge->end = prefs->getDouble("/tools/shapes/arc/end", 0.0);
+    if (!prefs->getBool("/tools/shapes/arc/open"))
         ge->closed = 1;
     else
         ge->closed = 0;
index dcaa59ea02d70585d56966a1bae1869bf6f5bc85..83c13ca05bc00baf3814fd9c70eaa6c836b2748d 100644 (file)
@@ -363,7 +363,7 @@ sp_flowtext_print(SPItem *item, SPPrintContext *ctx)
     dbox.y0 = 0.0;
     dbox.x1 = sp_document_width(SP_OBJECT_DOCUMENT(item));
     dbox.y1 = sp_document_height(SP_OBJECT_DOCUMENT(item));
-    NR::Matrix const ctm (sp_item_i2d_affine(item));
+    Geom::Matrix const ctm (sp_item_i2d_affine(item));
 
     group->layout.print(ctx, &pbox, &dbox, &bbox, ctm);
 }
@@ -533,9 +533,9 @@ SPFlowtext::getAsText()
     Inkscape::XML::Node *repr = xml_doc->createElement("svg:text");
     repr->setAttribute("xml:space", "preserve");
     repr->setAttribute("style", SP_OBJECT_REPR(this)->attribute("style"));
-    NR::Point anchor_point = this->layout.characterAnchorPoint(this->layout.begin());
-    sp_repr_set_svg_double(repr, "x", anchor_point[NR::X]);
-    sp_repr_set_svg_double(repr, "y", anchor_point[NR::Y]);
+    Geom::Point anchor_point = this->layout.characterAnchorPoint(this->layout.begin());
+    sp_repr_set_svg_double(repr, "x", anchor_point[Geom::X]);
+    sp_repr_set_svg_double(repr, "y", anchor_point[Geom::Y]);
 
     for (Inkscape::Text::Layout::iterator it = this->layout.begin() ; it != this->layout.end() ; ) {
         Inkscape::XML::Node *line_tspan = xml_doc->createElement("svg:tspan");
@@ -547,7 +547,7 @@ SPFlowtext::getAsText()
         while (it != it_line_end) {
 
             Inkscape::XML::Node *span_tspan = xml_doc->createElement("svg:tspan");
-            NR::Point anchor_point = this->layout.characterAnchorPoint(it);
+            Geom::Point anchor_point = this->layout.characterAnchorPoint(it);
             // use kerning to simulate justification and whatnot
             Inkscape::Text::Layout::iterator it_span_end = it;
             it_span_end.nextStartOfSpan();
@@ -574,9 +574,9 @@ SPFlowtext::getAsText()
                 attrs.dx[0] = 0.0;
             TextTagAttributes(attrs).writeTo(span_tspan);
             if (set_x)
-                sp_repr_set_svg_double(span_tspan, "x", anchor_point[NR::X]);  // FIXME: this will pick up the wrong end of counter-directional runs
+                sp_repr_set_svg_double(span_tspan, "x", anchor_point[Geom::X]);  // FIXME: this will pick up the wrong end of counter-directional runs
             if (set_y)
-                sp_repr_set_svg_double(span_tspan, "y", anchor_point[NR::Y]);
+                sp_repr_set_svg_double(span_tspan, "y", anchor_point[Geom::Y]);
 
             SPObject *source_obj = 0;
             void *rawptr = 0;
@@ -672,7 +672,7 @@ bool SPFlowtext::has_internal_frame()
 }
 
 
-SPItem *create_flowtext_with_internal_frame (SPDesktop *desktop, NR::Point p0, NR::Point p1)
+SPItem *create_flowtext_with_internal_frame (SPDesktop *desktop, Geom::Point p0, Geom::Point p1)
 {
     SPDocument *doc = sp_desktop_document (desktop);
 
@@ -695,14 +695,14 @@ SPItem *create_flowtext_with_internal_frame (SPDesktop *desktop, NR::Point p0, N
 
     p0 = sp_desktop_dt2root_xy_point(desktop, p0);
     p1 = sp_desktop_dt2root_xy_point(desktop, p1);
-    using NR::X;
-    using NR::Y;
-    NR::Coord const x0 = MIN(p0[X], p1[X]);
-    NR::Coord const y0 = MIN(p0[Y], p1[Y]);
-    NR::Coord const x1 = MAX(p0[X], p1[X]);
-    NR::Coord const y1 = MAX(p0[Y], p1[Y]);
-    NR::Coord const w  = x1 - x0;
-    NR::Coord const h  = y1 - y0;
+    using Geom::X;
+    using Geom::Y;
+    Geom::Coord const x0 = MIN(p0[X], p1[X]);
+    Geom::Coord const y0 = MIN(p0[Y], p1[Y]);
+    Geom::Coord const x1 = MAX(p0[X], p1[X]);
+    Geom::Coord const y1 = MAX(p0[Y], p1[Y]);
+    Geom::Coord const w  = x1 - x0;
+    Geom::Coord const h  = y1 - y0;
 
     sp_rect_position_set(SP_RECT(rect), x0, y0, w, h);
     SP_OBJECT(rect)->updateRepr();
index 144157dc97cefe2dca5060a6f3a8b7ff4d3d2bb4..8889c7a563fc74ed939fbcc71320e2cc70f8c31c 100644 (file)
@@ -7,7 +7,7 @@
 #include "sp-item.h"
 
 #include "display/nr-arena-forward.h"
-
+#include <2geom/forward.h>
 #include "libnrtype/Layout-TNG.h"
 
 #define SP_TYPE_FLOWTEXT            (sp_flowtext_get_type ())
@@ -32,9 +32,9 @@ struct SPFlowtext : public SPItem {
     Inkscape::Text::Layout layout;
 
     /** discards the NRArena objects representing this text. */
-       void _clearFlow(NRArenaGroup* in_arena);
+    void _clearFlow(NRArenaGroup* in_arena);
 
-       double par_indent;
+    double par_indent;
 
 private:
     /** Recursively walks the xml tree adding tags and their contents. */
@@ -47,12 +47,12 @@ private:
 };
 
 struct SPFlowtextClass {
-       SPItemClass parent_class;
+    SPItemClass parent_class;
 };
 
 GType sp_flowtext_get_type (void);
 
-SPItem *create_flowtext_with_internal_frame (SPDesktop *desktop, NR::Point p1, NR::Point p2);
+SPItem *create_flowtext_with_internal_frame (SPDesktop *desktop, Geom::Point p1, Geom::Point p2);
 
 #endif
 
index 561e0e62cb44a9e96aeff4779276ed27c1563b24..bbb85cb781656e70e5e2570a36443b2b78e40bb3 100644 (file)
@@ -114,7 +114,7 @@ static void sp_guide_class_init(SPGuideClass *gc)
 
 static void sp_guide_init(SPGuide *guide)
 {
-    guide->normal_to_line = component_vectors[NR::Y];
+    guide->normal_to_line = component_vectors[Geom::Y];
     guide->point_on_line = Geom::Point(0.,0.);
     guide->color = 0x0000ff7f;
     guide->hicolor = 0xff00007f;
@@ -185,9 +185,9 @@ static void sp_guide_set(SPObject *object, unsigned int key, const gchar *value)
         {
             if (value && !strcmp(value, "horizontal")) {
                 /* Visual representation of a horizontal line, constrain vertically (y coordinate). */
-                guide->normal_to_line = component_vectors[NR::Y];
+                guide->normal_to_line = component_vectors[Geom::Y];
             } else if (value && !strcmp(value, "vertical")) {
-                guide->normal_to_line = component_vectors[NR::X];
+                guide->normal_to_line = component_vectors[Geom::X];
             } else if (value) {
                 gchar ** strarray = g_strsplit(value, ",", 2);
                 double newx, newy;
@@ -200,11 +200,11 @@ static void sp_guide_set(SPObject *object, unsigned int key, const gchar *value)
                     guide->normal_to_line = direction;
                 } else {
                     // default to vertical line for bad arguments
-                    guide->normal_to_line = component_vectors[NR::X];
+                    guide->normal_to_line = component_vectors[Geom::X];
                 }
             } else {
                 // default to vertical line for bad arguments
-                guide->normal_to_line = component_vectors[NR::X];
+                guide->normal_to_line = component_vectors[Geom::X];
             }
             sp_guide_set_normal(*guide, guide->normal_to_line, false);
         }
@@ -332,7 +332,7 @@ void sp_guide_sensitize(SPGuide *guide, SPCanvas *canvas, gboolean sensitive)
     g_assert_not_reached();
 }
 
-Geom::Point sp_guide_position_from_pt(SPGuide const *guide, NR::Point const &pt)
+Geom::Point sp_guide_position_from_pt(SPGuide const *guide, Geom::Point const &pt)
 {
     return -(pt - guide->point_on_line);
 }
@@ -409,17 +409,17 @@ void sp_guide_set_normal(SPGuide const &guide, Geom::Point const normal_to_line,
  */
 char *sp_guide_description(SPGuide const *guide)
 {
-    using NR::X;
-    using NR::Y;
+    using Geom::X;
+    using Geom::Y;
             
     GString *position_string_x = SP_PX_TO_METRIC_STRING(guide->point_on_line[X], SP_ACTIVE_DESKTOP->namedview->getDefaultMetric());
     GString *position_string_y = SP_PX_TO_METRIC_STRING(guide->point_on_line[Y], SP_ACTIVE_DESKTOP->namedview->getDefaultMetric());
 
-    if ( guide->normal_to_line ==  component_vectors[X] ||
-         guide->normal_to_line == -component_vectors[X]) {
+    if ( are_near(guide->normal_to_line, component_vectors[X]) ||
+         are_near(guide->normal_to_line, -component_vectors[X]) ) {
         return g_strdup_printf(_("vertical, at %s"), position_string_x->str);
-    } else if ( guide->normal_to_line == component_vectors[Y] ||
-                guide->normal_to_line == -component_vectors[Y]) {
+    } else if ( are_near(guide->normal_to_line, component_vectors[Y]) ||
+                are_near(guide->normal_to_line, -component_vectors[Y]) ) {
         return g_strdup_printf(_("horizontal, at %s"), position_string_y->str);
     } else {
         double const radians = guide->angle();
index 78c795f837f245d53bf3e7c61b19988e7f79791d..593e4583f57af9041bd4f9f012974626892be068 100644 (file)
@@ -14,7 +14,7 @@
 #include <vector>
 
 #include "display/display-forward.h"
-#include "libnr/nr-point.h"
+#include <2geom/point.h>
 #include "sp-object.h"
 #include "sp-guide-attachment.h"
 
@@ -26,7 +26,7 @@
 
 /* Represents the constraint on p that dot(g.direction, p) == g.position. */
 struct SPGuide : public SPObject {
-    NR::Point normal_to_line;
+    Geom::Point normal_to_line;
     Geom::Point point_on_line;
 
     guint32 color;
@@ -53,7 +53,7 @@ void sp_guide_show(SPGuide *guide, SPCanvasGroup *group, GCallback handler);
 void sp_guide_hide(SPGuide *guide, SPCanvas *canvas);
 void sp_guide_sensitize(SPGuide *guide, SPCanvas *canvas, gboolean sensitive);
 
-Geom::Point sp_guide_position_from_pt(SPGuide const *guide, NR::Point const &pt);
+Geom::Point sp_guide_position_from_pt(SPGuide const *guide, Geom::Point const &pt);
 double sp_guide_distance_from_pt(SPGuide const *guide, Geom::Point const &pt);
 void sp_guide_moveto(SPGuide const &guide, Geom::Point const point_on_line, bool const commit);
 void sp_guide_set_normal(SPGuide const &guide, Geom::Point const normal_to_line, bool const commit);
index 57f8804d9b3b287be279177670a11a89b17e1e31..c9ee2563288812931e90602e032013846c0d27d1 100644 (file)
@@ -53,7 +53,7 @@
 #include "color-profile.h"
 //#define DEBUG_LCMS
 #ifdef DEBUG_LCMS
-#include "prefs-utils.h"
+#include "preferences.h"
 #include <gtk/gtkmessagedialog.h>
 #endif // DEBUG_LCMS
 #endif // ENABLE_LCMS
@@ -74,7 +74,7 @@ static Inkscape::XML::Node *sp_image_write (SPObject *object, Inkscape::XML::Doc
 static void sp_image_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &transform, unsigned const flags);
 static void sp_image_print (SPItem * item, SPPrintContext *ctx);
 static gchar * sp_image_description (SPItem * item);
-static void sp_image_snappoints(SPItem const *item, SnapPointsIter p);
+static void sp_image_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 static NRArenaItem *sp_image_show (SPItem *item, NRArena *arena, unsigned int key, unsigned int flags);
 static Geom::Matrix sp_image_set_transform (SPItem *item, Geom::Matrix const &xform);
 static void sp_image_set_curve(SPImage *image);
@@ -102,10 +102,11 @@ extern "C"
 extern guint update_in_progress;
 #define DEBUG_MESSAGE(key, ...) \
 {\
-    gint dump = prefs_get_int_attribute_limited("options.scislac", #key, 0, 0, 1);\
-    gint dumpD = prefs_get_int_attribute_limited("options.scislac", #key"D", 0, 0, 1);\
-    gint dumpD2 = prefs_get_int_attribute_limited("options.scislac", #key"D2", 0, 0, 1);\
-    dumpD &= ( (update_in_progress == 0) || dumpD2 );\
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();\
+    bool dump = prefs->getBool("/options/scislac/" #key);\
+    bool dumpD = prefs->getBool("/options/scislac/" #key "D");\
+    bool dumpD2 = prefs->getBool("/options/scislac/" #key "D2");\
+    dumpD &&= ( (update_in_progress == 0) || dumpD2 );\
     if ( dump )\
     {\
         g_message( __VA_ARGS__ );\
@@ -1293,7 +1294,7 @@ sp_image_update_canvas_image (SPImage *image)
        }
 }
 
-static void sp_image_snappoints(SPItem const *item, SnapPointsIter p)
+static void sp_image_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
     /* An image doesn't have any nodes to snap, but still we want to be able snap one image 
     to another. Therefore we will create some snappoints at the corner, similar to a rect. If
index 45410960ce82978345526511305a401cab410601..d0338f369ecc8bba93bd5d6632f308ddd062b97f 100644 (file)
@@ -34,7 +34,6 @@
 #include "sp-item-transform.h"
 #include "sp-root.h"
 #include "sp-use.h"
-#include "prefs-utils.h"
 #include "sp-clippath.h"
 #include "sp-mask.h"
 #include "sp-path.h"
@@ -69,7 +68,7 @@ static gchar * sp_group_description (SPItem * item);
 static Geom::Matrix sp_group_set_transform(SPItem *item, Geom::Matrix const &xform);
 static NRArenaItem *sp_group_show (SPItem *item, NRArena *arena, unsigned int key, unsigned int flags);
 static void sp_group_hide (SPItem * item, unsigned int key);
-static void sp_group_snappoints (SPItem const *item, SnapPointsIter p);
+static void sp_group_snappoints (SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 
 static void sp_group_update_patheffect(SPLPEItem *lpeitem, bool write);
 static void sp_group_perform_patheffect(SPGroup *group, SPGroup *topgroup);
@@ -79,105 +78,105 @@ static SPLPEItemClass * parent_class;
 GType
 sp_group_get_type (void)
 {
-       static GType group_type = 0;
-       if (!group_type) {
-               GTypeInfo group_info = {
-                       sizeof (SPGroupClass),
-                       NULL,   /* base_init */
-                       NULL,   /* base_finalize */
-                       (GClassInitFunc) sp_group_class_init,
-                       NULL,   /* class_finalize */
-                       NULL,   /* class_data */
-                       sizeof (SPGroup),
-                       16,     /* n_preallocs */
-                       (GInstanceInitFunc) sp_group_init,
-                       NULL,   /* value_table */
-               };
-               group_type = g_type_register_static (SP_TYPE_LPE_ITEM, "SPGroup", &group_info, (GTypeFlags)0);
-       }
-       return group_type;
+    static GType group_type = 0;
+    if (!group_type) {
+        GTypeInfo group_info = {
+            sizeof (SPGroupClass),
+            NULL,      /* base_init */
+            NULL,      /* base_finalize */
+            (GClassInitFunc) sp_group_class_init,
+            NULL,      /* class_finalize */
+            NULL,      /* class_data */
+            sizeof (SPGroup),
+            16,        /* n_preallocs */
+            (GInstanceInitFunc) sp_group_init,
+            NULL,      /* value_table */
+        };
+        group_type = g_type_register_static (SP_TYPE_LPE_ITEM, "SPGroup", &group_info, (GTypeFlags)0);
+    }
+    return group_type;
 }
 
 static void
 sp_group_class_init (SPGroupClass *klass)
 {
-       GObjectClass * object_class;
-       SPObjectClass * sp_object_class;
-       SPItemClass * item_class;
-       SPLPEItemClass * lpe_item_class;
-
-       object_class = (GObjectClass *) klass;
-       sp_object_class = (SPObjectClass *) klass;
-       item_class = (SPItemClass *) klass;
-       lpe_item_class = (SPLPEItemClass *) klass;
-
-       parent_class = (SPLPEItemClass *)g_type_class_ref (SP_TYPE_LPE_ITEM);
-
-       object_class->dispose = sp_group_dispose;
-
-       sp_object_class->child_added = sp_group_child_added;
-       sp_object_class->remove_child = sp_group_remove_child;
-       sp_object_class->order_changed = sp_group_order_changed;
-       sp_object_class->update = sp_group_update;
-       sp_object_class->modified = sp_group_modified;
-       sp_object_class->set = sp_group_set;
-       sp_object_class->write = sp_group_write;
-       sp_object_class->release = sp_group_release;
-       sp_object_class->build = sp_group_build;
-
-       item_class->bbox = sp_group_bbox;
-       item_class->print = sp_group_print;
-       item_class->description = sp_group_description;
+    GObjectClass * object_class;
+    SPObjectClass * sp_object_class;
+    SPItemClass * item_class;
+    SPLPEItemClass * lpe_item_class;
+
+    object_class = (GObjectClass *) klass;
+    sp_object_class = (SPObjectClass *) klass;
+    item_class = (SPItemClass *) klass;
+    lpe_item_class = (SPLPEItemClass *) klass;
+
+    parent_class = (SPLPEItemClass *)g_type_class_ref (SP_TYPE_LPE_ITEM);
+
+    object_class->dispose = sp_group_dispose;
+
+    sp_object_class->child_added = sp_group_child_added;
+    sp_object_class->remove_child = sp_group_remove_child;
+    sp_object_class->order_changed = sp_group_order_changed;
+    sp_object_class->update = sp_group_update;
+    sp_object_class->modified = sp_group_modified;
+    sp_object_class->set = sp_group_set;
+    sp_object_class->write = sp_group_write;
+    sp_object_class->release = sp_group_release;
+    sp_object_class->build = sp_group_build;
+
+    item_class->bbox = sp_group_bbox;
+    item_class->print = sp_group_print;
+    item_class->description = sp_group_description;
         item_class->set_transform = sp_group_set_transform;
-       item_class->show = sp_group_show;
-       item_class->hide = sp_group_hide;
-       item_class->snappoints = sp_group_snappoints;
+    item_class->show = sp_group_show;
+    item_class->hide = sp_group_hide;
+    item_class->snappoints = sp_group_snappoints;
 
-       lpe_item_class->update_patheffect = sp_group_update_patheffect;
+    lpe_item_class->update_patheffect = sp_group_update_patheffect;
 }
 
 static void
 sp_group_init (SPGroup *group)
 {
-       group->_layer_mode = SPGroup::GROUP;
+    group->_layer_mode = SPGroup::GROUP;
     group->group = new CGroup(group);
-       new (&group->_display_modes) std::map<unsigned int, SPGroup::LayerMode>();
+    new (&group->_display_modes) std::map<unsigned int, SPGroup::LayerMode>();
 }
 
 static void sp_group_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
 {
-       sp_object_read_attr(object, "inkscape:groupmode");
+    sp_object_read_attr(object, "inkscape:groupmode");
 
-       if (((SPObjectClass *)parent_class)->build) {
-               ((SPObjectClass *)parent_class)->build(object, document, repr);
-       }
+    if (((SPObjectClass *)parent_class)->build) {
+        ((SPObjectClass *)parent_class)->build(object, document, repr);
+    }
 }
 
 static void sp_group_release(SPObject *object) {
-       if ( SP_GROUP(object)->_layer_mode == SPGroup::LAYER ) {
-               sp_document_remove_resource(SP_OBJECT_DOCUMENT(object), "layer", object);
-       }
-       if (((SPObjectClass *)parent_class)->release) {
-               ((SPObjectClass *)parent_class)->release(object);
-       }
+    if ( SP_GROUP(object)->_layer_mode == SPGroup::LAYER ) {
+        sp_document_remove_resource(SP_OBJECT_DOCUMENT(object), "layer", object);
+    }
+    if (((SPObjectClass *)parent_class)->release) {
+        ((SPObjectClass *)parent_class)->release(object);
+    }
 }
 
 static void
 sp_group_dispose(GObject *object)
 {
-       SP_GROUP(object)->_display_modes.~map();
+    SP_GROUP(object)->_display_modes.~map();
     delete SP_GROUP(object)->group;
 }
 
 static void
 sp_group_child_added (SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref)
 {
-       SPItem *item;
+    SPItem *item;
 
-       item = SP_ITEM (object);
+    item = SP_ITEM (object);
 
-       if (((SPObjectClass *) (parent_class))->child_added)
-               (* ((SPObjectClass *) (parent_class))->child_added) (object, child, ref);
+    if (((SPObjectClass *) (parent_class))->child_added)
+        (* ((SPObjectClass *) (parent_class))->child_added) (object, child, ref);
 
     SP_GROUP(object)->group->onChildAdded(child);
 }
@@ -187,8 +186,8 @@ sp_group_child_added (SPObject *object, Inkscape::XML::Node *child, Inkscape::XM
 static void
 sp_group_remove_child (SPObject * object, Inkscape::XML::Node * child)
 {
-       if (((SPObjectClass *) (parent_class))->remove_child)
-               (* ((SPObjectClass *) (parent_class))->remove_child) (object, child);
+    if (((SPObjectClass *) (parent_class))->remove_child)
+        (* ((SPObjectClass *) (parent_class))->remove_child) (object, child);
 
     SP_GROUP(object)->group->onChildRemoved(child);
 }
@@ -196,8 +195,8 @@ sp_group_remove_child (SPObject * object, Inkscape::XML::Node * child)
 static void
 sp_group_order_changed (SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref)
 {
-       if (((SPObjectClass *) (parent_class))->order_changed)
-               (* ((SPObjectClass *) (parent_class))->order_changed) (object, child, old_ref, new_ref);
+    if (((SPObjectClass *) (parent_class))->order_changed)
+        (* ((SPObjectClass *) (parent_class))->order_changed) (object, child, old_ref, new_ref);
 
     SP_GROUP(object)->group->onOrderChanged(child, old_ref, new_ref);
 }
@@ -309,22 +308,22 @@ sp_group_set_transform(SPItem *item, Geom::Matrix const &xform)
 }
 
 static void sp_group_set(SPObject *object, unsigned key, char const *value) {
-       SPGroup *group = SP_GROUP(object);
-
-       switch (key) {
-               case SP_ATTR_INKSCAPE_GROUPMODE:
-                       if ( value && !strcmp(value, "layer") ) {
-                               group->setLayerMode(SPGroup::LAYER);
-                       } else {
-                               group->setLayerMode(SPGroup::GROUP);
-                       }
-                   break;
-               default: {
-                       if (((SPObjectClass *) (parent_class))->set) {
-                               (* ((SPObjectClass *) (parent_class))->set)(object, key, value);
-                       }
-               }
-       }
+    SPGroup *group = SP_GROUP(object);
+
+    switch (key) {
+        case SP_ATTR_INKSCAPE_GROUPMODE:
+            if ( value && !strcmp(value, "layer") ) {
+                group->setLayerMode(SPGroup::LAYER);
+            } else {
+                group->setLayerMode(SPGroup::GROUP);
+            }
+            break;
+        default: {
+            if (((SPObjectClass *) (parent_class))->set) {
+                (* ((SPObjectClass *) (parent_class))->set)(object, key, value);
+            }
+        }
+    }
 }
 
 static NRArenaItem *
@@ -339,39 +338,39 @@ sp_group_hide (SPItem *item, unsigned int key)
     SP_GROUP(item)->group->hide(key);
 }
 
-static void sp_group_snappoints (SPItem const *item, SnapPointsIter p)
+static void sp_group_snappoints (SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
-       for (SPObject const *o = sp_object_first_child(SP_OBJECT(item));
-            o != NULL;
-            o = SP_OBJECT_NEXT(o))
-       {
-               if (SP_IS_ITEM(o)) {
-            sp_item_snappoints(SP_ITEM(o), false, p);
-               }
-       }
+    for (SPObject const *o = sp_object_first_child(SP_OBJECT(item));
+         o != NULL;
+         o = SP_OBJECT_NEXT(o))
+    {
+        if (SP_IS_ITEM(o)) {
+            sp_item_snappoints(SP_ITEM(o), p, snapprefs);
+        }
+    }
 }
 
 
 void
 sp_item_group_ungroup (SPGroup *group, GSList **children, bool do_done)
 {
-       g_return_if_fail (group != NULL);
-       g_return_if_fail (SP_IS_GROUP (group));
+    g_return_if_fail (group != NULL);
+    g_return_if_fail (SP_IS_GROUP (group));
 
-       SPDocument *doc = SP_OBJECT_DOCUMENT (group);
-       SPObject *root = SP_DOCUMENT_ROOT (doc);
-       SPObject *defs = SP_OBJECT (SP_ROOT (root)->defs);
+    SPDocument *doc = SP_OBJECT_DOCUMENT (group);
+    SPObject *root = SP_DOCUMENT_ROOT (doc);
+    SPObject *defs = SP_OBJECT (SP_ROOT (root)->defs);
 
-       SPItem *gitem = SP_ITEM (group);
-       Inkscape::XML::Node *grepr = SP_OBJECT_REPR (gitem);
+    SPItem *gitem = SP_ITEM (group);
+    Inkscape::XML::Node *grepr = SP_OBJECT_REPR (gitem);
 
-       g_return_if_fail (!strcmp (grepr->name(), "svg:g") || !strcmp (grepr->name(), "svg:a") || !strcmp (grepr->name(), "svg:switch"));
+    g_return_if_fail (!strcmp (grepr->name(), "svg:g") || !strcmp (grepr->name(), "svg:a") || !strcmp (grepr->name(), "svg:switch"));
 
       // this converts the gradient/pattern fill/stroke on the group, if any, to userSpaceOnUse
       sp_item_adjust_paint_recursive (gitem, NR::identity(), NR::identity(), false);
 
-       SPItem *pitem = SP_ITEM (SP_OBJECT_PARENT (gitem));
-       Inkscape::XML::Node *prepr = SP_OBJECT_REPR (pitem);
+    SPItem *pitem = SP_ITEM (SP_OBJECT_PARENT (gitem));
+    Inkscape::XML::Node *prepr = SP_OBJECT_REPR (pitem);
 
         if (SP_IS_BOX3D(gitem)) {
             group = box3d_convert_to_group(SP_BOX3D(gitem));
@@ -380,122 +379,122 @@ sp_item_group_ungroup (SPGroup *group, GSList **children, bool do_done)
 
         sp_lpe_item_remove_all_path_effects(SP_LPE_ITEM(group), false);
 
-       /* Step 1 - generate lists of children objects */
-       GSList *items = NULL;
-       GSList *objects = NULL;
-       for (SPObject *child = sp_object_first_child(SP_OBJECT(group)) ; child != NULL; child = SP_OBJECT_NEXT(child) ) {
-
-               if (SP_IS_ITEM (child)) {
-
-                       SPItem *citem = SP_ITEM (child);
-
-                       /* Merging of style */
-                       // this converts the gradient/pattern fill/stroke, if any, to userSpaceOnUse; we need to do
-                       // it here _before_ the new transform is set, so as to use the pre-transform bbox
-                       sp_item_adjust_paint_recursive (citem, NR::identity(), NR::identity(), false);
-
-                       sp_style_merge_from_dying_parent(SP_OBJECT_STYLE(child), SP_OBJECT_STYLE(gitem));
-                       /*
-                        * fixme: We currently make no allowance for the case where child is cloned
-                        * and the group has any style settings.
-                        *
-                        * (This should never occur with documents created solely with the current
-                        * version of inkscape without using the XML editor: we usually apply group
-                        * style changes to children rather than to the group itself.)
-                        *
-                        * If the group has no style settings, then
-                        * sp_style_merge_from_dying_parent should be a no-op.  Otherwise (i.e. if
-                        * we change the child's style to compensate for its parent going away)
-                        * then those changes will typically be reflected in any clones of child,
-                        * whereas we'd prefer for Ungroup not to affect the visual appearance.
-                        *
-                        * The only way of preserving styling appearance in general is for child to
-                        * be put into a new group -- a somewhat surprising response to an Ungroup
-                        * command.  We could add a new groupmode:transparent that would mostly
-                        * hide the existence of such groups from the user (i.e. editing behaves as
-                        * if the transparent group's children weren't in a group), though that's
-                        * extra complication & maintenance burden and this case is rare.
-                        */
-
-                       child->updateRepr();
-
-                       Inkscape::XML::Node *nrepr = SP_OBJECT_REPR (child)->duplicate(prepr->document());
-
-                       // Merging transform
-                       Geom::Matrix ctrans;
-                       Geom::Matrix const g(gitem->transform);
-                       if (SP_IS_USE(citem) && sp_use_get_original (SP_USE(citem)) &&
-                                       SP_OBJECT_PARENT (sp_use_get_original (SP_USE(citem))) == SP_OBJECT(group)) {
-                               // make sure a clone's effective transform is the same as was under group
-                               ctrans = g.inverse() * citem->transform * g;
-                       } else {
-                               ctrans = citem->transform * g;
-                       }
-
-                       // FIXME: constructing a transform that would fully preserve the appearance of a
-                       // textpath if it is ungrouped with its path seems to be impossible in general
-                       // case. E.g. if the group was squeezed, to keep the ungrouped textpath squeezed
-                       // as well, we'll need to relink it to some "virtual" path which is inversely
-                       // stretched relative to the actual path, and then squeeze the textpath back so it
-                       // would both fit the actual path _and_ be squeezed as before. It's a bummer.
-
-                       // This is just a way to temporarily remember the transform in repr. When repr is
-                       // reattached outside of the group, the transform will be written more properly
-                       // (i.e. optimized into the object if the corresponding preference is set)
-                       gchar *affinestr=sp_svg_transform_write(ctrans);
-                       nrepr->setAttribute("transform", affinestr);
+    /* Step 1 - generate lists of children objects */
+    GSList *items = NULL;
+    GSList *objects = NULL;
+    for (SPObject *child = sp_object_first_child(SP_OBJECT(group)) ; child != NULL; child = SP_OBJECT_NEXT(child) ) {
+
+        if (SP_IS_ITEM (child)) {
+
+            SPItem *citem = SP_ITEM (child);
+
+            /* Merging of style */
+            // this converts the gradient/pattern fill/stroke, if any, to userSpaceOnUse; we need to do
+            // it here _before_ the new transform is set, so as to use the pre-transform bbox
+            sp_item_adjust_paint_recursive (citem, NR::identity(), NR::identity(), false);
+
+            sp_style_merge_from_dying_parent(SP_OBJECT_STYLE(child), SP_OBJECT_STYLE(gitem));
+            /*
+             * fixme: We currently make no allowance for the case where child is cloned
+             * and the group has any style settings.
+             *
+             * (This should never occur with documents created solely with the current
+             * version of inkscape without using the XML editor: we usually apply group
+             * style changes to children rather than to the group itself.)
+             *
+             * If the group has no style settings, then
+             * sp_style_merge_from_dying_parent should be a no-op.  Otherwise (i.e. if
+             * we change the child's style to compensate for its parent going away)
+             * then those changes will typically be reflected in any clones of child,
+             * whereas we'd prefer for Ungroup not to affect the visual appearance.
+             *
+             * The only way of preserving styling appearance in general is for child to
+             * be put into a new group -- a somewhat surprising response to an Ungroup
+             * command.  We could add a new groupmode:transparent that would mostly
+             * hide the existence of such groups from the user (i.e. editing behaves as
+             * if the transparent group's children weren't in a group), though that's
+             * extra complication & maintenance burden and this case is rare.
+             */
+
+            child->updateRepr();
+
+            Inkscape::XML::Node *nrepr = SP_OBJECT_REPR (child)->duplicate(prepr->document());
+
+            // Merging transform
+            Geom::Matrix ctrans;
+            Geom::Matrix const g(gitem->transform);
+            if (SP_IS_USE(citem) && sp_use_get_original (SP_USE(citem)) &&
+                    SP_OBJECT_PARENT (sp_use_get_original (SP_USE(citem))) == SP_OBJECT(group)) {
+                // make sure a clone's effective transform is the same as was under group
+                ctrans = g.inverse() * citem->transform * g;
+            } else {
+                ctrans = citem->transform * g;
+            }
+
+            // FIXME: constructing a transform that would fully preserve the appearance of a
+            // textpath if it is ungrouped with its path seems to be impossible in general
+            // case. E.g. if the group was squeezed, to keep the ungrouped textpath squeezed
+            // as well, we'll need to relink it to some "virtual" path which is inversely
+            // stretched relative to the actual path, and then squeeze the textpath back so it
+            // would both fit the actual path _and_ be squeezed as before. It's a bummer.
+
+            // This is just a way to temporarily remember the transform in repr. When repr is
+            // reattached outside of the group, the transform will be written more properly
+            // (i.e. optimized into the object if the corresponding preference is set)
+            gchar *affinestr=sp_svg_transform_write(ctrans);
+            nrepr->setAttribute("transform", affinestr);
                         g_free(affinestr);
 
-                       items = g_slist_prepend (items, nrepr);
+            items = g_slist_prepend (items, nrepr);
 
-               } else {
-                       Inkscape::XML::Node *nrepr = SP_OBJECT_REPR (child)->duplicate(prepr->document());
-                       objects = g_slist_prepend (objects, nrepr);
-               }
-       }
+        } else {
+            Inkscape::XML::Node *nrepr = SP_OBJECT_REPR (child)->duplicate(prepr->document());
+            objects = g_slist_prepend (objects, nrepr);
+        }
+    }
 
-       /* Step 2 - clear group */
-       // remember the position of the group
-       gint pos = SP_OBJECT_REPR(group)->position();
+    /* Step 2 - clear group */
+    // remember the position of the group
+    gint pos = SP_OBJECT_REPR(group)->position();
 
-       // the group is leaving forever, no heir, clones should take note; its children however are going to reemerge
-       SP_OBJECT (group)->deleteObject(true, false);
+    // the group is leaving forever, no heir, clones should take note; its children however are going to reemerge
+    SP_OBJECT (group)->deleteObject(true, false);
 
-       /* Step 3 - add nonitems */
-       if (objects) {
-           Inkscape::XML::Node *last_def = SP_OBJECT_REPR(defs)->lastChild();
-           while (objects) {
+    /* Step 3 - add nonitems */
+    if (objects) {
+        Inkscape::XML::Node *last_def = SP_OBJECT_REPR(defs)->lastChild();
+        while (objects) {
                 Inkscape::XML::Node *repr = (Inkscape::XML::Node *) objects->data;
                 if (!sp_repr_is_meta_element(repr))
                     SP_OBJECT_REPR(defs)->addChild(repr, last_def);
                 Inkscape::GC::release(repr);
-               objects = g_slist_remove (objects, objects->data);
-           }
-       }
-
-       /* Step 4 - add items */
-       while (items) {
-               Inkscape::XML::Node *repr = (Inkscape::XML::Node *) items->data;
-               // add item
+        objects = g_slist_remove (objects, objects->data);
+        }
+    }
+
+    /* Step 4 - add items */
+    while (items) {
+        Inkscape::XML::Node *repr = (Inkscape::XML::Node *) items->data;
+        // add item
                 prepr->appendChild(repr);
-               // restore position; since the items list was prepended (i.e. reverse), we now add
-               // all children at the same pos, which inverts the order once again
-               repr->setPosition(pos > 0 ? pos : 0);
+        // restore position; since the items list was prepended (i.e. reverse), we now add
+        // all children at the same pos, which inverts the order once again
+        repr->setPosition(pos > 0 ? pos : 0);
 
-               // fill in the children list if non-null
-               SPItem *item = (SPItem *) doc->getObjectByRepr(repr);
+        // fill in the children list if non-null
+        SPItem *item = (SPItem *) doc->getObjectByRepr(repr);
 
-               sp_item_write_transform(item, repr, item->transform, NULL, false);
+        sp_item_write_transform(item, repr, item->transform, NULL, false);
 
-               Inkscape::GC::release(repr);
-               if (children && SP_IS_ITEM (item))
-                       *children = g_slist_prepend (*children, item);
+        Inkscape::GC::release(repr);
+        if (children && SP_IS_ITEM (item))
+            *children = g_slist_prepend (*children, item);
 
-               items = g_slist_remove (items, items->data);
-       }
+        items = g_slist_remove (items, items->data);
+    }
 
-       if (do_done)
-               sp_document_done (doc, SP_VERB_NONE, _("Ungroup"));
+    if (do_done)
+        sp_document_done (doc, SP_VERB_NONE, _("Ungroup"));
 }
 
 /*
@@ -506,72 +505,72 @@ GSList *
 sp_item_group_item_list (SPGroup * group)
 {
         GSList *s;
-       SPObject *o;
+    SPObject *o;
 
-       g_return_val_if_fail (group != NULL, NULL);
-       g_return_val_if_fail (SP_IS_GROUP (group), NULL);
+    g_return_val_if_fail (group != NULL, NULL);
+    g_return_val_if_fail (SP_IS_GROUP (group), NULL);
 
-       s = NULL;
+    s = NULL;
 
-       for ( o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) {
-               if (SP_IS_ITEM (o)) {
-                       s = g_slist_prepend (s, o);
-               }
-       }
+    for ( o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) {
+        if (SP_IS_ITEM (o)) {
+            s = g_slist_prepend (s, o);
+        }
+    }
 
-       return g_slist_reverse (s);
+    return g_slist_reverse (s);
 }
 
 SPObject *
 sp_item_group_get_child_by_name (SPGroup *group, SPObject *ref, const gchar *name)
 {
-       SPObject *child;
-       child = (ref) ? SP_OBJECT_NEXT(ref) : sp_object_first_child(SP_OBJECT(group));
-       while ( child && strcmp (SP_OBJECT_REPR(child)->name(), name) ) {
-               child = SP_OBJECT_NEXT(child);
-       }
-       return child;
+    SPObject *child;
+    child = (ref) ? SP_OBJECT_NEXT(ref) : sp_object_first_child(SP_OBJECT(group));
+    while ( child && strcmp (SP_OBJECT_REPR(child)->name(), name) ) {
+        child = SP_OBJECT_NEXT(child);
+    }
+    return child;
 }
 
 void SPGroup::setLayerMode(LayerMode mode) {
-       if ( _layer_mode != mode ) {
-               if ( mode == LAYER ) {
-                       sp_document_add_resource(SP_OBJECT_DOCUMENT(this), "layer", this);
-               } else {
-                       sp_document_remove_resource(SP_OBJECT_DOCUMENT(this), "layer", this);
-               }
-               _layer_mode = mode;
-               _updateLayerMode();
-       }
+    if ( _layer_mode != mode ) {
+        if ( mode == LAYER ) {
+            sp_document_add_resource(SP_OBJECT_DOCUMENT(this), "layer", this);
+        } else {
+            sp_document_remove_resource(SP_OBJECT_DOCUMENT(this), "layer", this);
+        }
+        _layer_mode = mode;
+        _updateLayerMode();
+    }
 }
 
 SPGroup::LayerMode SPGroup::layerDisplayMode(unsigned int dkey) const {
-       std::map<unsigned int, LayerMode>::const_iterator iter;
-       iter = _display_modes.find(dkey);
-       if ( iter != _display_modes.end() ) {
-               return (*iter).second;
-       } else {
-               return GROUP;
-       }
+    std::map<unsigned int, LayerMode>::const_iterator iter;
+    iter = _display_modes.find(dkey);
+    if ( iter != _display_modes.end() ) {
+        return (*iter).second;
+    } else {
+        return GROUP;
+    }
 }
 
 void SPGroup::setLayerDisplayMode(unsigned int dkey, SPGroup::LayerMode mode) {
-       if ( layerDisplayMode(dkey) != mode ) {
-               _display_modes[dkey] = mode;
-               _updateLayerMode(dkey);
-       }
+    if ( layerDisplayMode(dkey) != mode ) {
+        _display_modes[dkey] = mode;
+        _updateLayerMode(dkey);
+    }
 }
 
 void SPGroup::_updateLayerMode(unsigned int display_key) {
-       SPItemView *view;
-       for ( view = this->display ; view ; view = view->next ) {
-               if ( !display_key || view->key == display_key ) {
-                       NRArenaGroup *arena_group=NR_ARENA_GROUP(view->arenaitem);
-                       if (arena_group) {
-                               nr_arena_group_set_transparent(arena_group, effectiveLayerMode(view->key) == SPGroup::LAYER);
-                       }
-               }
-       }
+    SPItemView *view;
+    for ( view = this->display ; view ; view = view->next ) {
+        if ( !display_key || view->key == display_key ) {
+            NRArenaGroup *arena_group=NR_ARENA_GROUP(view->arenaitem);
+            if (arena_group) {
+                nr_arena_group_set_transparent(arena_group, effectiveLayerMode(view->key) == SPGroup::LAYER);
+            }
+        }
+    }
 }
 
 void SPGroup::translateChildItems(Geom::Translate const &tr)
@@ -654,7 +653,7 @@ void CGroup::onUpdate(SPCtx *ctx, unsigned int flags) {
     if (flags & SP_OBJECT_STYLE_MODIFIED_FLAG) {
       SPObject *object = SP_OBJECT(_group);
       for (SPItemView *v = SP_ITEM(_group)->display; v != NULL; v = v->next) {
-       nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object));
+    nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object));
       }
     }
 
@@ -685,7 +684,7 @@ void CGroup::onModified(guint flags) {
     if (flags & SP_OBJECT_STYLE_MODIFIED_FLAG) {
       SPObject *object = SP_OBJECT(_group);
       for (SPItemView *v = SP_ITEM(_group)->display; v != NULL; v = v->next) {
-       nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object));
+    nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object));
       }
     }
 
@@ -832,7 +831,7 @@ sp_group_update_patheffect (SPLPEItem *lpeitem, bool write)
             }
         }
     }
-    
+
     if (sp_lpe_item_has_path_effect(lpeitem) && sp_lpe_item_path_effects_enabled(lpeitem)) {
         for (PathEffectList::iterator it = lpeitem->path_effect_list->begin(); it != lpeitem->path_effect_list->end(); it++)
         {
@@ -841,7 +840,7 @@ sp_group_update_patheffect (SPLPEItem *lpeitem, bool write)
                 lpeobj->get_lpe()->doBeforeEffect(lpeitem);
             }
         }
-        
+
         sp_group_perform_patheffect(SP_GROUP(lpeitem), SP_GROUP(lpeitem));
     }
 }
@@ -856,16 +855,19 @@ sp_group_perform_patheffect(SPGroup *group, SPGroup *topgroup)
             sp_group_perform_patheffect(SP_GROUP(subitem), topgroup);
         } else if (SP_IS_SHAPE(subitem)) {
             SPCurve * c = sp_shape_get_curve(SP_SHAPE(subitem));
-            sp_lpe_item_perform_path_effect(SP_LPE_ITEM(topgroup), c);
-            sp_shape_set_curve(SP_SHAPE(subitem), c, TRUE);
-            
-            Inkscape::XML::Node *repr = SP_OBJECT_REPR(subitem);
-            gchar *str = sp_svg_write_path(c->get_pathvector());
-            repr->setAttribute("d", str);
-            g_free(str);
-
-            c->unref();
+            // only run LPEs when the shape has a curve defined
+            if (c) {
+                sp_lpe_item_perform_path_effect(SP_LPE_ITEM(topgroup), c);
+                sp_shape_set_curve(SP_SHAPE(subitem), c, TRUE);
+
+                Inkscape::XML::Node *repr = SP_OBJECT_REPR(subitem);
+
+                gchar *str = sp_svg_write_path(c->get_pathvector());
+                repr->setAttribute("d", str);
+                g_free(str);
+
+                c->unref();
+            }
         }
     }
 }
index a51674c3ac267aff47ef113a25f278a5a1b7d0d3..5cc1692216de354f596a490c686bbe9a20a96420 100644 (file)
@@ -25,7 +25,7 @@ void sp_item_notify_moveto(SPItem &item, SPGuide const &mv_g, int const snappoin
     g_return_if_fail( dir_lensq != 0 );
 
     std::vector<Geom::Point> snappoints;
-    sp_item_snappoints(&item, true, SnapPointsIter(snappoints));
+    sp_item_snappoints(&item, SnapPointsIter(snappoints), NULL);
     g_return_if_fail( snappoint_ix < int(snappoints.size()) );
 
     double const pos0 = dot(dir, snappoints[snappoint_ix]);
index d10e1d5435b1c274bddf0239dea449c2d2adf2b4..6d7ab2fda8937880b8e013ce5071450fcddc5c7d 100644 (file)
@@ -15,7 +15,7 @@ void sp_item_rm_unsatisfied_cns(SPItem &item)
         return;
     }
     std::vector<Geom::Point> snappoints;
-    sp_item_snappoints(&item, true, SnapPointsIter(snappoints));
+    sp_item_snappoints(&item, SnapPointsIter(snappoints), NULL);
     for (unsigned i = item.constraints.size(); i--;) {
         g_assert( i < item.constraints.size() );
         SPGuideConstraint const &cn = item.constraints[i];
index 55846f4b76a431c6788c1d47c4a7db0704de9a00..f7329bd45a2096907bba6349b653cbb92e1c734f 100644 (file)
@@ -10,7 +10,7 @@ using std::vector;
 void sp_item_update_cns(SPItem &item, SPDesktop const &desktop)
 {
     std::vector<Geom::Point> snappoints;
-    sp_item_snappoints(&item, true, SnapPointsIter(snappoints));
+    sp_item_snappoints(&item, SnapPointsIter(snappoints), NULL);
     /* TODO: Implement the ordering. */
     vector<SPGuideConstraint> found_cns;
     satisfied_guide_cns(desktop, snappoints, found_cns);
index c993a6163a9ca6ba44e744f0d0a5fa6323f8e3ac..99f543328d98ba1b0702583c28343f142b2553c4 100644 (file)
@@ -49,7 +49,7 @@
 #include "sp-pattern.h"
 #include "sp-switch.h"
 #include "gradient-chemistry.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "conn-avoid-ref.h"
 #include "conditions.h"
 #include "sp-filter-reference.h"
@@ -90,7 +90,7 @@ static void sp_item_update(SPObject *object, SPCtx *ctx, guint flags);
 static Inkscape::XML::Node *sp_item_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
 
 static gchar *sp_item_private_description(SPItem *item);
-static void sp_item_private_snappoints(SPItem const *item, SnapPointsIter p);
+static void sp_item_private_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 
 static SPItemView *sp_item_view_new_prepend(SPItemView *list, SPItem *item, unsigned flags, unsigned key, NRArenaItem *arenaitem);
 static SPItemView *sp_item_view_list_remove(SPItemView *list, SPItemView *view);
@@ -721,6 +721,10 @@ sp_item_write(SPObject *const object, Inkscape::XML::Document *xml_doc, Inkscape
     return repr;
 }
 
+/**
+ * \return  There is no guarantee that the return value will contain a rectangle.
+            If this item does not have a boundingbox, it might well be empty.
+ */
 boost::optional<Geom::Rect> SPItem::getBounds(Geom::Matrix const &transform,
                                       SPItem::BBoxType type,
                                       unsigned int /*dkey*/) const
@@ -746,7 +750,10 @@ sp_item_invoke_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &transf
 /** Calls \a item's subclass' bounding box method; clips it by the bbox of clippath, if any; and
  * unions the resulting bbox with \a bbox. If \a clear is true, empties \a bbox first. Passes the
  * transform and the flags to the actual bbox methods. Note that many of subclasses (e.g. groups,
- * clones), in turn, call this function in their bbox methods. */
+ * clones), in turn, call this function in their bbox methods. 
+ * \retval bbox  Note that there is no guarantee that bbox will contain a rectangle when the
+ *               function returns. If this item does not have a boundingbox, this might well be empty.
+ */
 void
 sp_item_invoke_bbox_full(SPItem const *item, boost::optional<Geom::Rect> &bbox, Geom::Matrix const &transform, unsigned const flags, unsigned const clear)
 {
@@ -931,7 +938,7 @@ boost::optional<Geom::Rect> sp_item_bbox_desktop(SPItem *item, SPItem::BBoxType
     return rect;
 }
 
-static void sp_item_private_snappoints(SPItem const *item, SnapPointsIter p)
+static void sp_item_private_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
        /* This will only be called if the derived class doesn't override this.
         * see for example sp_genericellipse_snappoints in sp-ellipse.cpp        
@@ -952,7 +959,7 @@ static void sp_item_private_snappoints(SPItem const *item, SnapPointsIter p)
       
 }
 
-void sp_item_snappoints(SPItem const *item, bool includeItemCenter, SnapPointsIter p)
+void sp_item_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
        g_assert (item != NULL);
     g_assert (SP_IS_ITEM(item));
@@ -960,11 +967,11 @@ void sp_item_snappoints(SPItem const *item, bool includeItemCenter, SnapPointsIt
     // Get the snappoints of the item
     SPItemClass const &item_class = *(SPItemClass const *) G_OBJECT_GET_CLASS(item);
     if (item_class.snappoints) {
-        item_class.snappoints(item, p);
+        item_class.snappoints(item, p, snapprefs);
     }
 
     // Get the snappoints at the item's center
-    if (includeItemCenter) {
+    if (snapprefs != NULL && snapprefs->getIncludeItemCenter()) {
        *p = item->getCenter();
     }    
     
@@ -981,7 +988,7 @@ void sp_item_snappoints(SPItem const *item, bool includeItemCenter, SnapPointsIt
                    if (SP_IS_ITEM(child)) {
                        std::vector<Geom::Point> p_clip_or_mask;                            
                        // Please note the recursive call here!
-                       sp_item_snappoints(SP_ITEM(child), includeItemCenter, SnapPointsIter(p_clip_or_mask));
+                       sp_item_snappoints(SP_ITEM(child), SnapPointsIter(p_clip_or_mask), snapprefs);
                        // Take into account the transformation of the item being clipped or masked
                        for (std::vector<Geom::Point>::const_iterator p_orig = p_clip_or_mask.begin(); p_orig != p_clip_or_mask.end(); p_orig++) {
                        // All snappoints are in desktop coordinates, but the item's transformation is
@@ -1409,26 +1416,27 @@ sp_item_write_transform(SPItem *item, Inkscape::XML::Node *repr, Geom::Matrix co
         advertized_transform = sp_item_transform_repr (item).inverse() * transform;
     }
 
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     if (compensate) {
 
          // recursively compensate for stroke scaling, depending on user preference
-        if (prefs_get_int_attribute("options.transform", "stroke", 1) == 0) {
+        if (!prefs->getBool("/options/transform/stroke", true)) {
             double const expansion = 1. / advertized_transform.descrim();
             sp_item_adjust_stroke_width_recursive(item, expansion);
         }
 
         // recursively compensate rx/ry of a rect if requested
-        if (prefs_get_int_attribute("options.transform", "rectcorners", 1) == 0) {
+        if (!prefs->getBool("/options/transform/rectcorners", true)) {
             sp_item_adjust_rects_recursive(item, advertized_transform);
         }
 
         // recursively compensate pattern fill if it's not to be transformed
-        if (prefs_get_int_attribute("options.transform", "pattern", 1) == 0) {
+        if (!prefs->getBool("/options/transform/pattern", true)) {
             sp_item_adjust_paint_recursive (item, advertized_transform.inverse(), Geom::identity(), true);
         }
         /// \todo FIXME: add the same else branch as for gradients below, to convert patterns to userSpaceOnUse as well
         /// recursively compensate gradient fill if it's not to be transformed
-        if (prefs_get_int_attribute("options.transform", "gradient", 1) == 0) {
+        if (!prefs->getBool("/options/transform/gradient", true)) {
             sp_item_adjust_paint_recursive (item, advertized_transform.inverse(), Geom::identity(), false);
         } else {
             // this converts the gradient/pattern fill/stroke, if any, to userSpaceOnUse; we need to do
@@ -1438,7 +1446,7 @@ sp_item_write_transform(SPItem *item, Inkscape::XML::Node *repr, Geom::Matrix co
 
     } // endif(compensate)
 
-    gint preserve = prefs_get_int_attribute("options.preservetransform", "value", 0);
+    gint preserve = prefs->getBool("/options/preservetransform/value", 0);
     Geom::Matrix transform_attr (transform);
     if ( // run the object's set_transform (i.e. embed transform) only if:
          ((SPItemClass *) G_OBJECT_GET_CLASS(item))->set_transform && // it does have a set_transform method
@@ -1727,7 +1735,8 @@ sp_item_convert_to_guides(SPItem *item) {
     SPNamedView *nv = sp_desktop_namedview(dt);
     (void)nv;
 
-    int prefs_bbox = prefs_get_int_attribute("tools", "bounding_box", 0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int prefs_bbox = prefs->getInt("/tools/bounding_box", 0);
     SPItem::BBoxType bbox_type = (prefs_bbox ==0)? 
         SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX;
 
index a900c4b877fb297ab09f2a8f0c95efb9f30a6cd6..cd0a376bb4296486b1c087aab4938e2f2548d5fd 100644 (file)
@@ -25,6 +25,7 @@
 #include <libnr/nr-rect.h>
 #include <2geom/forward.h>
 #include <libnr/nr-convert2geom.h>
+#include <snap-preferences.h>
 
 class SPGuideConstraint;
 struct SPClipPathReference;
@@ -195,7 +196,7 @@ struct SPItemClass {
     /** Write to an iterator the points that should be considered for snapping
      * as the item's `nodes'.
      */
-    void (* snappoints) (SPItem const *item, SnapPointsIter p);
+    void (* snappoints) (SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
     
     /** Apply the transform optimally, and return any residual transformation */
     Geom::Matrix (* set_transform)(SPItem *item, Geom::Matrix const &transform);
@@ -228,7 +229,7 @@ unsigned int sp_item_display_key_new(unsigned int numkeys);
 NRArenaItem *sp_item_invoke_show(SPItem *item, NRArena *arena, unsigned int key, unsigned int flags);
 void sp_item_invoke_hide(SPItem *item, unsigned int key);
 
-void sp_item_snappoints(SPItem const *item, bool includeItemCenter, SnapPointsIter p);
+void sp_item_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 
 void sp_item_adjust_pattern(SPItem *item, /* Geom::Matrix const &premul, */ Geom::Matrix const &postmul, bool set = false);
 void sp_item_adjust_gradient(SPItem *item, /* Geom::Matrix const &premul, */ Geom::Matrix const &postmul, bool set = false);
index 5ab9e27d6993aed2e1edb112ada43df13e6f1108..0fe02e01dbc23f3211bd6a5363120b7c1acd72ca 100644 (file)
@@ -309,11 +309,17 @@ void sp_lpe_item_perform_path_effect(SPLPEItem *lpeitem, SPCurve *curve) {
         {
             LivePathEffectObject *lpeobj = (*it)->lpeobject;
             if (!lpeobj) {
+                /** \todo Investigate the cause of this.
+                 * For example, this happens when copy pasting an object with LPE applied. Probably because the object is pasted while the effect is not yet pasted to defs, and cannot be found.
+                 */
                 g_warning("sp_lpe_item_perform_path_effect - NULL lpeobj in list!");
                 return;
             }
             Inkscape::LivePathEffect::Effect *lpe = lpeobj->get_lpe();
             if (!lpe) {
+                /** \todo Investigate the cause of this.
+                 * Not sure, but I think this can happen when an unknown effect type is specified...
+                 */
                 g_warning("sp_lpe_item_perform_path_effect - lpeobj without lpe!");
                 return;
             }
@@ -335,8 +341,10 @@ void sp_lpe_item_perform_path_effect(SPLPEItem *lpeitem, SPCurve *curve) {
                 }
                 catch (std::exception & e) {
                     g_warning("Exception during LPE %s execution. \n %s", lpe->getName().c_str(), e.what());
-                    SP_ACTIVE_DESKTOP->messageStack()->flash( Inkscape::WARNING_MESSAGE,
-                        _("An exception occurred during execution of the Path Effect.") );
+                    if (SP_ACTIVE_DESKTOP && SP_ACTIVE_DESKTOP->messageStack()) {
+                        SP_ACTIVE_DESKTOP->messageStack()->flash( Inkscape::WARNING_MESSAGE,
+                                        _("An exception occurred during execution of the Path Effect.") );
+                    }
                 }
             }
         }
@@ -362,11 +370,13 @@ sp_lpe_item_update_patheffect (SPLPEItem *lpeitem, bool wholetree, bool write)
     PathEffectList lpelist = sp_lpe_item_get_effect_list(lpeitem);
     std::list<Inkscape::LivePathEffect::LPEObjectReference *>::iterator i;
     for (i = lpelist.begin(); i != lpelist.end(); ++i) {
-        Inkscape::LivePathEffect::Effect *lpe = (*i)->lpeobject->get_lpe();
-        if (dynamic_cast<Inkscape::LivePathEffect::LPEPathLength *>(lpe)) {
-            if (!lpe->isVisible()) {
-                // we manually disable text for LPEPathLength
-                dynamic_cast<Inkscape::LivePathEffect::LPEPathLength *>(lpe)->hideCanvasText();
+        if ((*i)->lpeobject) {
+            Inkscape::LivePathEffect::Effect *lpe = (*i)->lpeobject->get_lpe();
+            if (dynamic_cast<Inkscape::LivePathEffect::LPEPathLength *>(lpe)) {
+                if (!lpe->isVisible()) {
+                    // we manually disable text for LPEPathLength
+                    dynamic_cast<Inkscape::LivePathEffect::LPEPathLength *>(lpe)->hideCanvasText();
+                }
             }
         }
     }
index 006e3a140e2796fc7e1f0cddda2bce7a62972388..a73c178c75134719d8211a39308b3bcb97b78ddc 100644 (file)
@@ -30,7 +30,7 @@
 #include "sp-guide.h"
 #include "sp-item-group.h"
 #include "sp-namedview.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "desktop.h"
 #include "conn-avoid-ref.h" // for defaultConnSpacing.
 
@@ -251,6 +251,7 @@ static void sp_namedview_build(SPObject *object, SPDocument *document, Inkscape:
     sp_object_read_attr(object, "inkscape:snap-nodes");
     sp_object_read_attr(object, "inkscape:snap-guide");
     sp_object_read_attr(object, "inkscape:snap-center");
+    sp_object_read_attr(object, "inkscape:snap-smooth-nodes");
     sp_object_read_attr(object, "inkscape:snap-intersection-grid-guide");
     sp_object_read_attr(object, "inkscape:snap-intersection-paths");
     sp_object_read_attr(object, "inkscape:object-paths");
@@ -454,7 +455,7 @@ static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *va
             object->requestModified(SP_OBJECT_MODIFIED_FLAG);
             break;
     case SP_ATTR_INKSCAPE_SNAP_GLOBAL:
-            nv->snap_manager.setSnapEnabledGlobally(value ? sp_str_to_bool(value) : TRUE);
+            nv->snap_manager.snapprefs.setSnapEnabledGlobally(value ? sp_str_to_bool(value) : TRUE);
             object->requestModified(SP_OBJECT_MODIFIED_FLAG);
             break;
     case SP_ATTR_INKSCAPE_SNAP_INDICATOR:
@@ -462,27 +463,31 @@ static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *va
             object->requestModified(SP_OBJECT_MODIFIED_FLAG);
             break;
     case SP_ATTR_INKSCAPE_SNAP_BBOX:
-            nv->snap_manager.setSnapModeBBox(value ? sp_str_to_bool(value) : FALSE);
+            nv->snap_manager.snapprefs.setSnapModeBBox(value ? sp_str_to_bool(value) : FALSE);
             object->requestModified(SP_OBJECT_MODIFIED_FLAG);
             break;
     case SP_ATTR_INKSCAPE_SNAP_NODES:
-            nv->snap_manager.setSnapModeNode(value ? sp_str_to_bool(value) : TRUE);
+            nv->snap_manager.snapprefs.setSnapModeNode(value ? sp_str_to_bool(value) : TRUE);
             object->requestModified(SP_OBJECT_MODIFIED_FLAG);
             break;
     case SP_ATTR_INKSCAPE_SNAP_CENTER:
-            nv->snap_manager.setIncludeItemCenter(value ? sp_str_to_bool(value) : FALSE);
+            nv->snap_manager.snapprefs.setIncludeItemCenter(value ? sp_str_to_bool(value) : FALSE);
             object->requestModified(SP_OBJECT_MODIFIED_FLAG);
             break;
+    case SP_ATTR_INKSCAPE_SNAP_SMOOTH_NODES:
+            nv->snap_manager.snapprefs.setSnapSmoothNodes(value ? sp_str_to_bool(value) : FALSE);
+            object->requestModified(SP_OBJECT_MODIFIED_FLAG);
+            break;           
     case SP_ATTR_INKSCAPE_SNAP_GUIDE:
-            nv->snap_manager.setSnapModeGuide(value ? sp_str_to_bool(value) : FALSE);
+            nv->snap_manager.snapprefs.setSnapModeGuide(value ? sp_str_to_bool(value) : FALSE);
             object->requestModified(SP_OBJECT_MODIFIED_FLAG);
             break;
     case SP_ATTR_INKSCAPE_SNAP_INTERS_GRIDGUIDE:
-            nv->snap_manager.setSnapIntersectionGG(value ? sp_str_to_bool(value) : TRUE);
+            nv->snap_manager.snapprefs.setSnapIntersectionGG(value ? sp_str_to_bool(value) : TRUE);
             object->requestModified(SP_OBJECT_MODIFIED_FLAG);
             break;
     case SP_ATTR_INKSCAPE_SNAP_INTERS_PATHS:
-            nv->snap_manager.setSnapIntersectionCS(value ? sp_str_to_bool(value) : FALSE);
+            nv->snap_manager.snapprefs.setSnapIntersectionCS(value ? sp_str_to_bool(value) : FALSE);
             object->requestModified(SP_OBJECT_MODIFIED_FLAG);
             break;
     case SP_ATTR_INKSCAPE_OBJECT_PATHS:
@@ -582,22 +587,12 @@ sp_namedview_add_grid(SPNamedView *nv, Inkscape::XML::Node *repr, SPDesktop *des
     if (!grid) {
         //create grid object
         Inkscape::GridType gridtype = Inkscape::CanvasGrid::getGridTypeFromSVGName(repr->attribute("type"));
-        SPDocument *doc = NULL;
-        if (desktop)
-            doc = sp_desktop_document(desktop);
-        else
-            doc = sp_desktop_document(static_cast<SPDesktop*>(nv->views->data));
-        if (!doc) {
+        if (!nv->document) {
             g_warning("sp_namedview_add_grid - how come doc is null here?!");
             return NULL;
         }
-        grid = Inkscape::CanvasGrid::NewGrid(nv, repr, doc, gridtype);
+        grid = Inkscape::CanvasGrid::NewGrid(nv, repr, nv->document, gridtype);
         nv->grids = g_slist_append(nv->grids, grid);
-        //Initialize the snapping parameters for the new grid
-        bool enabled_node = nv->snap_manager.getSnapModeNode();
-        bool enabled_bbox = nv->snap_manager.getSnapModeBBox();
-        grid->snapper->setSnapFrom(Inkscape::Snapper::SNAPPOINT_NODE, enabled_node);
-        grid->snapper->setSnapFrom(Inkscape::Snapper::SNAPPOINT_BBOX, enabled_bbox);
     }
 
     if (!desktop) {
@@ -742,8 +737,8 @@ void SPNamedView::show(SPDesktop *desktop)
 void sp_namedview_window_from_document(SPDesktop *desktop)
 {
     SPNamedView *nv = desktop->namedview;
-    gint geometry_from_file =
-        (1==prefs_get_int_attribute("options.savewindowgeometry", "value", 0));
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool geometry_from_file = prefs->getBool("/options/savewindowgeometry/value");
 
     // restore window size and position stored with the document
     if (geometry_from_file) {
@@ -810,8 +805,8 @@ void sp_namedview_update_layers_from_document (SPDesktop *desktop)
 
 void sp_namedview_document_from_window(SPDesktop *desktop)
 {
-    gint save_geometry_in_file =
-        (1==prefs_get_int_attribute("options.savewindowgeometry", "value", 0));
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool save_geometry_in_file = prefs->getBool("/options/savewindowgeometry/value", 0);
     Inkscape::XML::Node *view = SP_OBJECT_REPR(desktop->namedview);
     Geom::Rect const r = desktop->get_display_area();
 
index 877bc6823523abf946586c67e8209d8372076c24..c91b0ad0dcacfcbca7ee6e30b5e2d24183e35de9 100644 (file)
@@ -31,7 +31,7 @@
 #include "livarot/Shape.h"
 
 #include "enums.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-text.h"
 #include "sp-offset.h"
 #include "sp-use-reference.h"
@@ -83,7 +83,7 @@ static void sp_offset_update (SPObject * object, SPCtx * ctx, guint flags);
 static void sp_offset_release (SPObject * object);
 
 static gchar *sp_offset_description (SPItem * item);
-static void sp_offset_snappoints(SPItem const *item, SnapPointsIter p);
+static void sp_offset_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 static void sp_offset_set_shape (SPShape * shape);
 
 static void refresh_offset_source(SPOffset* offset);
@@ -241,7 +241,7 @@ sp_offset_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *rep
         gchar const *oldA = object->repr->attribute("inkscape:href");
         if (oldA) {
             size_t lA = strlen(oldA);
-            char *nA=(char*)malloc((lA+1)*sizeof(char));
+            char *nA=(char*)malloc((1+lA+1)*sizeof(char));
             memcpy(nA+1,oldA,lA*sizeof(char));
             nA[0]='#';
             nA[lA+1]=0;
@@ -718,10 +718,10 @@ sp_offset_set_shape(SPShape *shape)
 /**
  * Virtual snappoints function.
  */
-static void sp_offset_snappoints(SPItem const *item, SnapPointsIter p)
+static void sp_offset_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
     if (((SPItemClass *) parent_class)->snappoints) {
-        ((SPItemClass *) parent_class)->snappoints (item, p);
+        ((SPItemClass *) parent_class)->snappoints (item, p, snapprefs);
     }
 }
 
@@ -885,7 +885,7 @@ sp_offset_distance_to_original (SPOffset * offset, NR::Point px)
                     }
                     while (cb >= 0 && pb >= 0 && pb != fb);
                 }
-           }
+            }
         }
         // loop over the edges to try to improve the distance
         for (int i = 0; i < theRes->numberOfEdges(); i++)
@@ -895,7 +895,7 @@ sp_offset_distance_to_original (SPOffset * offset, NR::Point px)
             NR::Point nx = ex - sx;
             double len = sqrt (dot(nx,nx));
             if (len > 0.0001)
-           {
+            {
                 NR::Point   pxsx=px-sx;
                 double ab = dot(nx,pxsx);
                 if (ab > 0 && ab < len * len)
@@ -908,7 +908,7 @@ sp_offset_distance_to_original (SPOffset * offset, NR::Point px)
                         arSet = true;
                     }
                 }
-           }
+            }
         }
         if (arSet || ptSet)
         {
@@ -1023,7 +1023,8 @@ sp_offset_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, SPOffset *offse
 static void
 sp_offset_move_compensate(Geom::Matrix const *mp, SPItem */*original*/, SPOffset *self)
 {
-    guint mode = prefs_get_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_PARALLEL);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    guint mode = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_PARALLEL);
     if (mode == SP_CLONE_COMPENSATION_NONE) return;
 
     Geom::Matrix m(*mp);
@@ -1055,7 +1056,8 @@ sp_offset_move_compensate(Geom::Matrix const *mp, SPItem */*original*/, SPOffset
 static void
 sp_offset_delete_self(SPObject */*deleted*/, SPOffset *offset)
 {
-    guint const mode = prefs_get_int_attribute("options.cloneorphans", "value", SP_CLONE_ORPHANS_UNLINK);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    guint const mode = prefs->getInt("/options/cloneorphans/value", SP_CLONE_ORPHANS_UNLINK);
 
     if (mode == SP_CLONE_ORPHANS_UNLINK) {
         // leave it be. just forget about the source
index 1ccffd0fff06e07f2e015228ae74d62f7167a2fa..0e1a9d4e54a13729daee25d11c50aca5b8c848fe 100644 (file)
@@ -4,7 +4,7 @@
 /** \file
  * SPOffset class.
  *
- * Authors:  
+ * Authors:
  *   Mitsuru Oka <oka326@parkcity.ne.jp>
  *   Lauris Kaplinski <lauris@kaplinski.com>
  * (of the sp-spiral.h upon which this file was created)
@@ -31,52 +31,52 @@ class SPUseReference;
 /**
  * SPOffset class.
  *
- * An offset is defined by curve and radius. The original curve is kept as 
- * a path in a sodipodi:original attribute. It's not possible to change 
+ * An offset is defined by curve and radius. The original curve is kept as
+ * a path in a sodipodi:original attribute. It's not possible to change
  * the original curve.
  *
  * SPOffset is a derivative of SPShape, much like the SPSpiral or SPRect.
- * The goal is to have a source shape (= originalPath), an offset (= radius) 
- * and compute the offset of the source by the radius. To get it to work, 
- * one needs to know what the source is and what the radius is, and how it's 
- * stored in the xml representation. The object itself is a "path" element, 
- * to get lots of shape functionality for free. The source is the easy part: 
- * it's stored in a "inkscape:original" attribute in the path. In case of 
+ * The goal is to have a source shape (= originalPath), an offset (= radius)
+ * and compute the offset of the source by the radius. To get it to work,
+ * one needs to know what the source is and what the radius is, and how it's
+ * stored in the xml representation. The object itself is a "path" element,
+ * to get lots of shape functionality for free. The source is the easy part:
+ * it's stored in a "inkscape:original" attribute in the path. In case of
  * "linked" offset, as they've been dubbed, there is an additional
- * "inkscape:href" that contains the id of an element of the svg. 
- * When built, the object will attach a listener vector to that object and 
- * rebuild the "inkscape:original" whenever the href'd object changes. This 
- * is of course grossly inefficient, and also does not react to changes 
- * to the href'd during context stuff (like changing the shape of a star by 
- * dragging control points) unless the path of that object is changed during 
- * the context (seems to be the case for SPEllipse). The computation of the 
- * offset is done in sp_offset_set_shape(), a function that is called whenever 
+ * "inkscape:href" that contains the id of an element of the svg.
+ * When built, the object will attach a listener vector to that object and
+ * rebuild the "inkscape:original" whenever the href'd object changes. This
+ * is of course grossly inefficient, and also does not react to changes
+ * to the href'd during context stuff (like changing the shape of a star by
+ * dragging control points) unless the path of that object is changed during
+ * the context (seems to be the case for SPEllipse). The computation of the
+ * offset is done in sp_offset_set_shape(), a function that is called whenever
  * a change occurs to the offset (change of source or change of radius).
- * just like the sp-star and other, this path derivative can make control 
- * points, or more precisely one control point, that's enough to define the 
+ * just like the sp-star and other, this path derivative can make control
+ * points, or more precisely one control point, that's enough to define the
  * radius (look in object-edit).
  */
 struct SPOffset : public SPShape {
-  void *originalPath; ///< will be a livarot Path, just don't declare it here to please the gcc linker
-  char *original;     ///< SVG description of the source path
-  float rad;          ///< offset radius
-
-  /// for interactive setting of the radius
-  bool knotSet;
-  NR::Point knot;
-       
-       bool           sourceDirty;
-       bool           isUpdating;
-
-       gchar                                    *sourceHref;
-       SPUseReference *sourceRef;
-  Inkscape::XML::Node         *sourceRepr; ///< the repr associated with that id
-       SPObject                         *sourceObject;
-       
-        sigc::connection _modified_connection;
-       sigc::connection _delete_connection;
-       sigc::connection _changed_connection;
-       sigc::connection _transformed_connection;
+    void *originalPath; ///< will be a livarot Path, just don't declare it here to please the gcc linker
+    char *original;     ///< SVG description of the source path
+    float rad;          ///< offset radius
+
+    /// for interactive setting of the radius
+    bool knotSet;
+    NR::Point knot;
+
+    bool sourceDirty;
+    bool isUpdating;
+
+    gchar                *sourceHref;
+    SPUseReference       *sourceRef;
+    Inkscape::XML::Node  *sourceRepr; ///< the repr associated with that id
+    SPObject             *sourceObject;
+
+    sigc::connection _modified_connection;
+    sigc::connection _delete_connection;
+    sigc::connection _changed_connection;
+    sigc::connection _transformed_connection;
 };
 
 /// The SPOffset vtable.
index 16e3bec400b4442bc9a61e28253ba54dbeae1b2b..404612be3a06483750c5aad7c13e23618c7ec42a 100644 (file)
@@ -42,7 +42,6 @@
 #include "inkscape.h"
 #include "style.h"
 #include "message-stack.h"
-#include "prefs-utils.h"
 #include "selection.h"
 
 #define noPATH_VERBOSE
@@ -383,34 +382,34 @@ sp_path_set_transform(SPItem *item, Geom::Matrix const &xform)
     return Geom::identity();
 }
 
+
 static void
 sp_path_update_patheffect(SPLPEItem *lpeitem, bool write)
 {
     SPShape * const shape = (SPShape *) lpeitem;
     SPPath * const path = (SPPath *) lpeitem;
 
-    if (sp_lpe_item_has_path_effect(lpeitem) && sp_lpe_item_path_effects_enabled(lpeitem)) {
-        if (path->original_curve) {
-            SPCurve *curve = path->original_curve->copy();
-            sp_shape_set_curve_insync(shape, curve, TRUE);
-            sp_lpe_item_perform_path_effect(SP_LPE_ITEM(shape), curve);
-            SP_OBJECT(shape)->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
-            curve->unref();
-
-            if (write) {
-                // could also do SP_OBJECT(shape)->updateRepr();  but only the d attribute needs updating.
-                Inkscape::XML::Node *repr = SP_OBJECT_REPR(shape);
-                if ( shape->curve != NULL ) {
-                    gchar *str = sp_svg_write_path(shape->curve->get_pathvector());
-                    repr->setAttribute("d", str);
-                    g_free(str);
-                } else {
-                    repr->setAttribute("d", NULL);
-                }
+    if (path->original_curve) {
+        // if a path does not have an lpeitem applied, then reset the curve to the original_curve.
+        // This is very important for LPEs on groups to work properly!
+        SPCurve *curve = path->original_curve->copy();
+        sp_shape_set_curve_insync(shape, curve, TRUE);
+        sp_lpe_item_perform_path_effect(SP_LPE_ITEM(shape), curve);
+        SP_OBJECT(shape)->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);        // this might be optimized in future for the case when this path is in a group with lpe applied (and will therefore have its curve change again when the group LPE is applied)
+        curve->unref();
+
+        if (write) {
+            // could also do SP_OBJECT(shape)->updateRepr();  but only the d attribute needs updating.
+            Inkscape::XML::Node *repr = SP_OBJECT_REPR(shape);
+            if ( shape->curve != NULL ) {
+                gchar *str = sp_svg_write_path(shape->curve->get_pathvector());
+                repr->setAttribute("d", str);
+                g_free(str);
+            } else {
+                repr->setAttribute("d", NULL);
             }
         }
     }
-    // else: do nothing.
 }
 
 
index 36e64614e6b00e6626af2ab0d103c3b6a074a66b..ab0ea3d72795a652038f2009b8512f2244a1326f 100644 (file)
@@ -30,7 +30,7 @@
 #include <glibmm/i18n.h>
 #include "xml/repr.h"
 #include "sp-guide.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 #define noRECT_VERBOSE
 
@@ -47,7 +47,7 @@ static Geom::Matrix sp_rect_set_transform(SPItem *item, Geom::Matrix const &xfor
 static void sp_rect_convert_to_guides(SPItem *item);
 
 static void sp_rect_set_shape(SPShape *shape);
-static void sp_rect_snappoints(SPItem const *item, SnapPointsIter p);
+static void sp_rect_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 
 static SPShapeClass *parent_class;
 
@@ -546,7 +546,7 @@ sp_rect_get_visible_height(SPRect *rect)
 /**
  * Sets the snappoint p to the unrounded corners of the rectangle
  */
-static void sp_rect_snappoints(SPItem const *item, SnapPointsIter p)
+static void sp_rect_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
     /* This method overrides sp_shape_snappoints, which is the default for any shape. The default method
     returns all eight points along the path of a rounded rectangle, but not the real corners. Snapping
@@ -572,7 +572,8 @@ void
 sp_rect_convert_to_guides(SPItem *item) {
     SPRect *rect = SP_RECT(item);
 
-    if (prefs_get_int_attribute("tools.shapes.rect", "convertguides", 1) == 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (!prefs->getBool("/tools/shapes/rect/convertguides", true)) {
         sp_item_convert_to_guides(SP_ITEM(rect));
         return;
     }
index bdffd821cf22f02546d34478261868b219e85135..fb3bb9e6a7ce8af9d12ae35ad48062b8ebdd7e91 100644 (file)
@@ -37,7 +37,7 @@
 #include "style.h"
 #include "marker.h"
 #include "sp-path.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "attributes.h"
 
 #include "live_effects/lpeobject.h"
@@ -67,7 +67,7 @@ static void sp_shape_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &
 void sp_shape_print (SPItem * item, SPPrintContext * ctx);
 static NRArenaItem *sp_shape_show (SPItem *item, NRArena *arena, unsigned int key, unsigned int flags);
 static void sp_shape_hide (SPItem *item, unsigned int key);
-static void sp_shape_snappoints (SPItem const *item, SnapPointsIter p);
+static void sp_shape_snappoints (SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 
 static void sp_shape_update_marker_view (SPShape *shape, NRArenaItem *ai);
 
@@ -251,7 +251,6 @@ sp_shape_update (SPObject *object, SPCtx *ctx, unsigned int flags)
      * that the appropriate marker objects are present (or absent) to
      * match the style.
      */
-    /* TODO:  It would be nice if this could be done at an earlier level */
     for (int i = 0 ; i < SP_MARKER_LOC_QTY ; i++) {
         sp_shape_set_marker (object, i, object->style->marker[i].value);
          }
@@ -287,7 +286,6 @@ sp_shape_update (SPObject *object, SPCtx *ctx, unsigned int flags)
     if (sp_shape_has_markers (shape)) {
         /* Dimension marker views */
         for (SPItemView *v = item->display; v != NULL; v = v->next) {
-
             for (int i = 0 ; i < SP_MARKER_LOC_QTY ; i++) {
                 if (shape->marker[i]) {
                     sp_marker_show_dimension ((SPMarker *) shape->marker[i],
@@ -477,7 +475,6 @@ sp_shape_modified (SPObject *object, unsigned int flags)
 static void sp_shape_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &transform, unsigned const flags)
 {
     SPShape const *shape = SP_SHAPE (item);
-
     if (shape->curve) {
 
         NRRect  cbbox;
@@ -612,7 +609,8 @@ sp_shape_print (SPItem *item, SPPrintContext *ctx)
 
        if (!shape->curve) return;
 
-        gint add_comments = prefs_get_int_attribute_limited ("printing.debug", "add-label-comments", 0, 0, 1);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        gint add_comments = prefs->getBool("/printing/debug/add-label-comments");
         if (add_comments) {
             gchar * comment = g_strdup_printf("begin '%s'",
                                               SP_OBJECT(item)->defaultLabel());
@@ -731,39 +729,47 @@ sp_shape_print (SPItem *item, SPPrintContext *ctx)
 static NRArenaItem *
 sp_shape_show (SPItem *item, NRArena *arena, unsigned int /*key*/, unsigned int /*flags*/)
 {
-       SPObject *object = SP_OBJECT(item);
-       SPShape *shape = SP_SHAPE(item);
+    SPObject *object = SP_OBJECT(item);
+    SPShape *shape = SP_SHAPE(item);
+
+    NRArenaItem *arenaitem = NRArenaShape::create(arena);
+    NRArenaShape * const s = NR_ARENA_SHAPE(arenaitem);
+    nr_arena_shape_set_style(s, object->style);
+    nr_arena_shape_set_path(s, shape->curve, false);
+    boost::optional<Geom::Rect> paintbox = item->getBounds(Geom::identity());
+    if (paintbox) {
+        s->setPaintBox(*paintbox);
+    }
 
-       NRArenaItem *arenaitem = NRArenaShape::create(arena);
-        NRArenaShape * const s = NR_ARENA_SHAPE(arenaitem);
-       nr_arena_shape_set_style(s, object->style);
-       nr_arena_shape_set_path(s, shape->curve, false);
-        boost::optional<Geom::Rect> paintbox = item->getBounds(Geom::identity());
-        if (paintbox) {
-            s->setPaintBox(*paintbox);
-        }
+    /* This stanza checks that an object's marker style agrees with
+     * the marker objects it has allocated.  sp_shape_set_marker ensures
+     * that the appropriate marker objects are present (or absent) to
+     * match the style.
+     */
+    for (int i = 0 ; i < SP_MARKER_LOC_QTY ; i++) {
+        sp_shape_set_marker (object, i, object->style->marker[i].value);
+         }
 
-        if (sp_shape_has_markers (shape)) {
+    if (sp_shape_has_markers (shape)) {
 
-            /* Dimension the marker views */
-            if (!arenaitem->key) {
-                NR_ARENA_ITEM_SET_KEY (arenaitem, sp_item_display_key_new (SP_MARKER_LOC_QTY));
-            }
+        /* provide key and dimension the marker views */
+        if (!arenaitem->key) {
+            NR_ARENA_ITEM_SET_KEY (arenaitem, sp_item_display_key_new (SP_MARKER_LOC_QTY));
+        }
 
-            for (int i = 0; i < SP_MARKER_LOC_QTY; i++) {
-                if (shape->marker[i]) {
-                    sp_marker_show_dimension ((SPMarker *) shape->marker[i],
-                                              NR_ARENA_ITEM_GET_KEY (arenaitem) + i - SP_MARKER_LOC,
-                                              sp_shape_number_of_markers (shape, i));
-               }
+        for (int i = 0; i < SP_MARKER_LOC_QTY; i++) {
+            if (shape->marker[i]) {
+                sp_marker_show_dimension ((SPMarker *) shape->marker[i],
+                                          NR_ARENA_ITEM_GET_KEY (arenaitem) + i - SP_MARKER_LOC,
+                                          sp_shape_number_of_markers (shape, i));
             }
+        }
 
+        /* Update marker views */
+        sp_shape_update_marker_view (shape, arenaitem);
+    }
 
-            /* Update marker views */
-            sp_shape_update_marker_view (shape, arenaitem);
-       }
-
-       return arenaitem;
+    return arenaitem;
 }
 
 /**
@@ -1019,7 +1025,7 @@ sp_shape_set_curve_insync (SPShape *shape, SPCurve *curve, unsigned int owner)
 /**
  * Return all nodes in a path that are to be considered for snapping
  */
-static void sp_shape_snappoints(SPItem const *item, SnapPointsIter p)
+static void sp_shape_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
     g_assert(item != NULL);
     g_assert(SP_IS_SHAPE(item));
@@ -1050,14 +1056,11 @@ static void sp_shape_snappoints(SPItem const *item, SnapPointsIter p)
 
             Geom::NodeType nodetype = Geom::get_nodetype(*curve_it1, *curve_it2);
 
-            // Only add cusp nodes. TODO: Shouldn't this be a preference instead?
-            if (nodetype == Geom::NODE_NONE) {
+            // Depending on the snapping preferences, either add only cusp nodes, or add add both cusp and smooths nodes
+            if (snapprefs->getSnapSmoothNodes() || nodetype == Geom::NODE_NONE || nodetype == Geom::NODE_CUSP) {
                 *p = from_2geom(curve_it1->finalPoint() * i2d);
             }
-            if (nodetype == Geom::NODE_CUSP) {
-                *p = from_2geom(curve_it1->finalPoint() * i2d);
-            }
-
+            
             ++curve_it1;
             ++curve_it2;
         }
index 7b741a940cb80d9230ce3e6789ad54361895754b..9a3708d4b3a55e888fab51479636075ad19b40aa 100644 (file)
@@ -36,7 +36,7 @@ static void sp_spiral_set (SPObject *object, unsigned int key, const gchar *valu
 static void sp_spiral_update (SPObject *object, SPCtx *ctx, guint flags);
 
 static gchar * sp_spiral_description (SPItem * item);
-static void sp_spiral_snappoints(SPItem const *item, SnapPointsIter p);
+static void sp_spiral_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 
 static void sp_spiral_set_shape (SPShape *shape);
 static void sp_spiral_update_patheffect (SPLPEItem *lpeitem, bool write);
@@ -494,10 +494,10 @@ sp_spiral_position_set       (SPSpiral          *spiral,
 /**
  * Virtual snappoints callback.
  */
-static void sp_spiral_snappoints(SPItem const *item, SnapPointsIter p)
+static void sp_spiral_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
        if (((SPItemClass *) parent_class)->snappoints) {
-               ((SPItemClass *) parent_class)->snappoints (item, p);
+               ((SPItemClass *) parent_class)->snappoints (item, p, snapprefs);
        }
 }
 
index d86e3de489c694a206254d6f2de89f0c7bbb82ab..f5649e19f059b531c35a2770b8203458d0e8a303 100644 (file)
@@ -39,7 +39,7 @@ static void sp_star_set (SPObject *object, unsigned int key, const gchar *value)
 static void sp_star_update (SPObject *object, SPCtx *ctx, guint flags);
 
 static gchar * sp_star_description (SPItem * item);
-static void sp_star_snappoints(SPItem const *item, SnapPointsIter p);
+static void sp_star_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 
 static void sp_star_set_shape (SPShape *shape);
 static void sp_star_update_patheffect (SPLPEItem *lpeitem, bool write);
@@ -520,10 +520,10 @@ sp_star_position_set (SPStar *star, gint sides, NR::Point center, gdouble r1, gd
 
 /* fixme: We should use all corners of star (Lauris) */
 
-static void sp_star_snappoints(SPItem const *item, SnapPointsIter p)
+static void sp_star_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
        if (((SPItemClass *) parent_class)->snappoints) {
-               ((SPItemClass *) parent_class)->snappoints (item, p);
+               ((SPItemClass *) parent_class)->snappoints (item, p, snapprefs);
        }
 }
 
index dd57428ef914877edc58da707e64634a3a420f9e..eae9dd08877684e503b2c048699db969da626078 100644 (file)
@@ -74,7 +74,7 @@ static void sp_text_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &t
 static NRArenaItem *sp_text_show (SPItem *item, NRArena *arena, unsigned key, unsigned flags);
 static void sp_text_hide (SPItem *item, unsigned key);
 static char *sp_text_description (SPItem *item);
-static void sp_text_snappoints(SPItem const *item, SnapPointsIter p);
+static void sp_text_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 static Geom::Matrix sp_text_set_transform(SPItem *item, Geom::Matrix const &xform);
 static void sp_text_print (SPItem *item, SPPrintContext *gpc);
 
@@ -428,7 +428,7 @@ sp_text_description(SPItem *item)
     return ret;
 }
 
-static void sp_text_snappoints(SPItem const *item, SnapPointsIter p)
+static void sp_text_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
     // the baseline anchor of the first char
     Inkscape::Text::Layout const *layout = te_get_layout((SPItem *) item);
index 347a824270d2b32b2aa3a9197a1ea031b95bc355..b2188c0d5e0d220f6c415a75c65e71ccfd3e329f 100644 (file)
@@ -16,7 +16,7 @@
 
 #include "display/curve.h"
 #include "livarot/Path.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-shape.h"
 #include "sp-text.h"
 #include "uri.h"
@@ -141,7 +141,8 @@ sp_usepath_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, SPUsePath *off
 static void
 sp_usepath_move_compensate(Geom::Matrix const *mp, SPItem *original, SPUsePath *self)
 {
-    guint mode = prefs_get_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_PARALLEL);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    guint mode = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_PARALLEL);
     if (mode == SP_CLONE_COMPENSATION_NONE) {
         return;
     }
@@ -183,7 +184,8 @@ sp_usepath_move_compensate(Geom::Matrix const *mp, SPItem *original, SPUsePath *
 static void
 sp_usepath_delete_self(SPObject */*deleted*/, SPUsePath *offset)
 {
-    guint const mode = prefs_get_int_attribute("options.cloneorphans", "value", SP_CLONE_ORPHANS_UNLINK);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    guint const mode = prefs->getInt("/options/cloneorphans/value", SP_CLONE_ORPHANS_UNLINK);
 
     if (mode == SP_CLONE_ORPHANS_UNLINK) {
         // leave it be. just forget about the source
index 12066f925636db48eaead4199ea447b98012f742..91b90502a260699040f042be79adfa40b9c0a70f 100644 (file)
@@ -32,7 +32,7 @@
 #include "uri.h"
 #include "print.h"
 #include "xml/repr.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "style.h"
 #include "sp-symbol.h"
 #include "sp-use.h"
@@ -52,7 +52,7 @@ static void sp_use_update(SPObject *object, SPCtx *ctx, guint flags);
 static void sp_use_modified(SPObject *object, guint flags);
 
 static void sp_use_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &transform, unsigned const flags);
-static void sp_use_snappoints(SPItem const *item, SnapPointsIter p);
+static void sp_use_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs);
 static void sp_use_print(SPItem *item, SPPrintContext *ctx);
 static gchar *sp_use_description(SPItem *item);
 static NRArenaItem *sp_use_show(SPItem *item, NRArena *arena, unsigned key, unsigned flags);
@@ -471,7 +471,8 @@ sp_use_move_compensate(Geom::Matrix const *mp, SPItem */*original*/, SPUse *self
         return;
     }
 
-    guint mode = prefs_get_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_PARALLEL);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    guint mode = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_PARALLEL);
     // user wants no compensation
     if (mode == SP_CLONE_COMPENSATION_NONE)
         return;
@@ -556,7 +557,8 @@ sp_use_delete_self(SPObject */*deleted*/, SPUse *self)
         return;
     }
 
-    guint const mode = prefs_get_int_attribute("options.cloneorphans", "value",
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    guint const mode = prefs->getInt("/options/cloneorphans/value",
                                                SP_CLONE_ORPHANS_UNLINK);
 
     if (mode == SP_CLONE_ORPHANS_UNLINK) {
@@ -739,7 +741,7 @@ sp_use_get_original(SPUse *use)
 }
 
 static void
-sp_use_snappoints(SPItem const *item, SnapPointsIter p)
+sp_use_snappoints(SPItem const *item, SnapPointsIter p, Inkscape::SnapPreferences const *snapprefs)
 {
     g_assert (item != NULL);
     g_assert (SP_IS_ITEM(item));
@@ -751,7 +753,7 @@ sp_use_snappoints(SPItem const *item, SnapPointsIter p)
     
     SPItemClass const &item_class = *(SPItemClass const *) G_OBJECT_GET_CLASS(root);
     if (item_class.snappoints) {
-        item_class.snappoints(root, p);
+        item_class.snappoints(root, p, snapprefs);
     }
 }
 
index 1e341e3d1812b3ea6062b2df73c19a570277ae55..57ff802095c4baf7a0a91c7140d897d5efbae1c1 100644 (file)
 #include "object-edit.h"
 #include "xml/repr.h"
 #include "xml/node-event-vector.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "context-fns.h"
 
 static void sp_spiral_context_class_init(SPSpiralContextClass * klass);
 static void sp_spiral_context_init(SPSpiralContext *spiral_context);
 static void sp_spiral_context_dispose(GObject *object);
 static void sp_spiral_context_setup(SPEventContext *ec);
-static void sp_spiral_context_set(SPEventContext *ec, gchar const *key, gchar const *val);
+static void sp_spiral_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val);
 
 static gint sp_spiral_context_root_handler(SPEventContext *event_context, GdkEvent *event);
 
@@ -217,11 +217,11 @@ sp_spiral_context_setup(SPEventContext *ec)
     sc->sel_changed_connection.disconnect();
     sc->sel_changed_connection = selection->connectChanged(sigc::bind(sigc::ptr_fun(&sp_spiral_context_selection_changed), (gpointer)sc));
 
-    if (prefs_get_int_attribute("tools.shapes", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/shapes/selcue")) {
         ec->enableSelectionCue();
     }
-
-    if (prefs_get_int_attribute("tools.shapes", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/shapes/gradientdrag")) {
         ec->enableGrDrag();
     }
 
@@ -229,19 +229,17 @@ sp_spiral_context_setup(SPEventContext *ec)
 }
 
 static void
-sp_spiral_context_set(SPEventContext *ec, gchar const *key, gchar const *val)
+sp_spiral_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val)
 {
     SPSpiralContext *sc = SP_SPIRAL_CONTEXT(ec);
-
-    if (!strcmp(key, "expansion")) {
-        sc->exp = (val) ? g_ascii_strtod(val, NULL) : 1.0;
-        sc->exp = CLAMP(sc->exp, 0.0, 1000.0);
-    } else if (!strcmp(key, "revolution")) {
-        sc->revo = (val) ? g_ascii_strtod(val, NULL) : 3.0;
-        sc->revo = CLAMP(sc->revo, 0.05, 40.0);
-    } else if (!strcmp(key, "t0")) {
-        sc->t0 = (val) ? g_ascii_strtod(val, NULL) : 0.0;
-        sc->t0 = CLAMP(sc->t0, 0.0, 0.999);
+    Glib::ustring name = val->getEntryName();
+
+    if (name == "expansion") {
+        sc->exp = CLAMP(val->getDouble(), 0.0, 1000.0);
+    } else if (name == "revolution") {
+        sc->revo = CLAMP(val->getDouble(3.0), 0.05, 40.0);
+    } else if (name == "t0") {
+        sc->t0 = CLAMP(val->getDouble(), 0.0, 0.999);
     }
 }
 
@@ -254,7 +252,8 @@ sp_spiral_context_root_handler(SPEventContext *event_context, GdkEvent *event)
     Inkscape::Selection *selection = sp_desktop_selection (desktop);
     SPSpiralContext *sc = SP_SPIRAL_CONTEXT(event_context);
 
-    event_context->tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    event_context->tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
 
     gint ret = FALSE;
 
@@ -268,7 +267,7 @@ sp_spiral_context_root_handler(SPEventContext *event_context, GdkEvent *event)
                 SnapManager &m = desktop->namedview->snap_manager;
                 m.setup(desktop);
                 Geom::Point pt2g = to_2geom(sc->center);
-                m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, pt2g);
+                m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g);
                 sc->center = from_2geom(pt2g);
 
                 sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate),
@@ -299,7 +298,7 @@ sp_spiral_context_root_handler(SPEventContext *event_context, GdkEvent *event)
                 
                 SnapManager &m = desktop->namedview->snap_manager;
                 m.setup(desktop, true, sc->item);
-                m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, motion_dt);
+                m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, motion_dt);
                 sp_spiral_drag(sc, from_2geom(motion_dt), event->motion.state);
 
                 gobble_motion_events(GDK_BUTTON1_MASK);
@@ -415,7 +414,8 @@ sp_spiral_drag(SPSpiralContext *sc, Geom::Point p, guint state)
 {
     SPDesktop *desktop = SP_EVENT_CONTEXT(sc)->desktop;
 
-    int const snaps = prefs_get_int_attribute("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int const snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     if (!sc->item) {
 
@@ -429,7 +429,7 @@ sp_spiral_drag(SPSpiralContext *sc, Geom::Point p, guint state)
         repr->setAttribute("sodipodi:type", "spiral");
 
         /* Set style */
-        sp_desktop_apply_style_tool(desktop, repr, "tools.shapes.spiral", false);
+        sp_desktop_apply_style_tool(desktop, repr, "/tools/shapes/spiral", false);
 
         sc->item = (SPItem *) desktop->currentLayer()->appendChildRepr(repr);
         Inkscape::GC::release(repr);
@@ -442,7 +442,7 @@ sp_spiral_drag(SPSpiralContext *sc, Geom::Point p, guint state)
     SnapManager &m = desktop->namedview->snap_manager;
     m.setup(desktop, true, sc->item);
     Geom::Point pt2g = to_2geom(p);
-    m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, pt2g);
+    m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g);
 
     Geom::Point const p0 = to_2geom(sp_desktop_dt2root_xy_point(desktop, sc->center));
     Geom::Point const p1 = to_2geom(sp_desktop_dt2root_xy_point(desktop, from_2geom(pt2g)));        
index dc19ac761f6e5be1184d347b793236da3712a8bb..a3a4ce59ff1d9d28fbf17ea98ba3dd37eaca25bc 100644 (file)
@@ -41,7 +41,7 @@
 #include "display/canvas-bpath.h"
 #include "display/curve.h"
 #include <glibmm/i18n.h>
-#include "prefs-utils.h"
+#include "preferences.h"
 
 #include "xml/repr.h"
 #include "xml/repr-sorting.h"
@@ -958,14 +958,16 @@ sp_selected_path_outline(SPDesktop *desktop)
 void
 sp_selected_path_offset(SPDesktop *desktop)
 {
-    double prefOffset = prefs_get_double_attribute("options.defaultoffsetwidth", "value", 1.0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    double prefOffset = prefs->getDouble("/options/defaultoffsetwidth/value", 1.0);
 
     sp_selected_path_do_offset(desktop, true, prefOffset);
 }
 void
 sp_selected_path_inset(SPDesktop *desktop)
 {
-    double prefOffset = prefs_get_double_attribute("options.defaultoffsetwidth", "value", 1.0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    double prefOffset = prefs->getDouble("/options/defaultoffsetwidth/value", 1.0);
 
     sp_selected_path_do_offset(desktop, false, prefOffset);
 }
@@ -1090,9 +1092,8 @@ sp_selected_path_create_offset_object(SPDesktop *desktop, int expand, bool updat
         }
 
         {
-            double prefOffset = 1.0;
-            prefOffset = prefs_get_double_attribute("options.defaultoffsetwidth", "value", prefOffset);
-            o_width = prefOffset;
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            o_width = prefs->getDouble("/options/defaultoffsetwidth/value", 1.0);
         }
 
         if (o_width < 0.01)
@@ -1635,65 +1636,66 @@ sp_selected_path_simplify_items(SPDesktop *desktop,
                                 float angleLimit, bool breakableAngles,
                                 bool modifySelection)
 {
-  bool simplifyIndividualPaths =
-    (bool) prefs_get_int_attribute("options.simplifyindividualpaths", "value", 0);
-  
-  gchar *simplificationType;
-  if (simplifyIndividualPaths) {
-      simplificationType = _("Simplifying paths (separately):");
-  } else {
-      simplificationType = _("Simplifying paths:");
-  }
-
-  bool didSomething = false;
-
-  boost::optional<Geom::Rect> selectionBbox = selection->bounds();
-  if (!selectionBbox) {
-    return false;
-  }
-  gdouble selectionSize  = L2(selectionBbox->dimensions());
-
-  gdouble simplifySize  = selectionSize;
-  
-  int pathsSimplified = 0;
-  int totalPathCount  = g_slist_length(items);
-  
-  // set "busy" cursor
-  desktop->setWaitingCursor();
-  
-  for (; items != NULL; items = items->next) {
-      SPItem *item = (SPItem *) items->data;
-      
-      if (!(SP_IS_GROUP(item) || SP_IS_SHAPE(item) || SP_IS_TEXT(item)))
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool simplifyIndividualPaths = prefs->getBool("/options/simplifyindividualpaths/value");
+
+    gchar *simplificationType;
+    if (simplifyIndividualPaths) {
+        simplificationType = _("Simplifying paths (separately):");
+    } else {
+        simplificationType = _("Simplifying paths:");
+    }
+
+    bool didSomething = false;
+
+    boost::optional<Geom::Rect> selectionBbox = selection->bounds();
+    if (!selectionBbox) {
+        return false;
+    }
+    gdouble selectionSize  = L2(selectionBbox->dimensions());
+
+    gdouble simplifySize  = selectionSize;
+
+    int pathsSimplified = 0;
+    int totalPathCount  = g_slist_length(items);
+
+    // set "busy" cursor
+    desktop->setWaitingCursor();
+
+    for (; items != NULL; items = items->next) {
+        SPItem *item = (SPItem *) items->data;
+
+        if (!(SP_IS_GROUP(item) || SP_IS_SHAPE(item) || SP_IS_TEXT(item)))
           continue;
 
-      if (simplifyIndividualPaths) {
-          boost::optional<Geom::Rect> itemBbox = item->getBounds(sp_item_i2d_affine(item));
-          if (itemBbox) {
-              simplifySize      = L2(itemBbox->dimensions());
-          } else {
-              simplifySize      = 0;
-          }
-      }
-
-      pathsSimplified++;
-
-      if (pathsSimplified % 20 == 0) {
-        gchar *message = g_strdup_printf(_("%s <b>%d</b> of <b>%d</b> paths simplified..."), simplificationType, pathsSimplified, totalPathCount);
-        desktop->messageStack()->flash(Inkscape::IMMEDIATE_MESSAGE, message);
-      }
-
-      didSomething |= sp_selected_path_simplify_item(desktop, selection, item,
-                          threshold, justCoalesce, angleLimit, breakableAngles, simplifySize, modifySelection);
-  }
-
-  desktop->clearWaitingCursor();
-
-  if (pathsSimplified > 20) {
-    desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, g_strdup_printf(_("<b>%d</b> paths simplified."), pathsSimplified));
-  }
-  
-  return didSomething;
+        if (simplifyIndividualPaths) {
+            boost::optional<Geom::Rect> itemBbox = item->getBounds(sp_item_i2d_affine(item));
+            if (itemBbox) {
+                simplifySize      = L2(itemBbox->dimensions());
+            } else {
+                simplifySize      = 0;
+            }
+        }
+
+        pathsSimplified++;
+
+        if (pathsSimplified % 20 == 0) {
+            gchar *message = g_strdup_printf(_("%s <b>%d</b> of <b>%d</b> paths simplified..."),
+                simplificationType, pathsSimplified, totalPathCount);
+            desktop->messageStack()->flash(Inkscape::IMMEDIATE_MESSAGE, message);
+        }
+
+        didSomething |= sp_selected_path_simplify_item(desktop, selection, item,
+            threshold, justCoalesce, angleLimit, breakableAngles, simplifySize, modifySelection);
+    }
+
+    desktop->clearWaitingCursor();
+
+    if (pathsSimplified > 20) {
+        desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, g_strdup_printf(_("<b>%d</b> paths simplified."), pathsSimplified));
+    }
+
+    return didSomething;
 }
 
 void
@@ -1732,10 +1734,10 @@ static gdouble simplifyMultiply = 1.0;
 void
 sp_selected_path_simplify(SPDesktop *desktop)
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     gdouble simplifyThreshold =
-        prefs_get_double_attribute("options.simplifythreshold", "value", 0.003);
-    bool simplifyJustCoalesce =
-        (bool) prefs_get_int_attribute("options.simplifyjustcoalesce", "value", 0);
+        prefs->getDouble("/options/simplifythreshold/value", 0.003);
+    bool simplifyJustCoalesce = prefs->getBool("/options/simplifyjustcoalesce/value", 0);
 
     //Get the current time
     GTimeVal currentTimeVal;
index 97577bcbae0b0bc053c790fa54a8952bc9eb7d79..6bb0a6f2d50e5874712f9275674b64a66e00cf1e 100644 (file)
@@ -38,7 +38,7 @@
 #include "pixmaps/cursor-star.xpm"
 #include "sp-metrics.h"
 #include <glibmm/i18n.h>
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "xml/repr.h"
 #include "xml/node-event-vector.h"
 #include "object-edit.h"
@@ -51,7 +51,7 @@ static void sp_star_context_init (SPStarContext * star_context);
 static void sp_star_context_dispose (GObject *object);
 
 static void sp_star_context_setup (SPEventContext *ec);
-static void sp_star_context_set (SPEventContext *ec, const gchar *key, const gchar *val);
+static void sp_star_context_set (SPEventContext *ec, Inkscape::Preferences::Entry *val);
 static gint sp_star_context_root_handler (SPEventContext *ec, GdkEvent *event);
 
 static void sp_star_drag (SPStarContext * sc, NR::Point p, guint state);
@@ -226,11 +226,12 @@ sp_star_context_setup (SPEventContext *ec)
     sc->sel_changed_connection.disconnect();
     sc->sel_changed_connection = selection->connectChanged(sigc::bind(sigc::ptr_fun(&sp_star_context_selection_changed), (gpointer)sc));
 
-    if (prefs_get_int_attribute("tools.shapes", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/shapes/selcue")) {
         ec->enableSelectionCue();
     }
 
-    if (prefs_get_int_attribute("tools.shapes", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/shapes/gradientdrag")) {
         ec->enableGrDrag();
     }
 
@@ -238,24 +239,21 @@ sp_star_context_setup (SPEventContext *ec)
 }
 
 static void
-sp_star_context_set (SPEventContext *ec, const gchar *key, const gchar *val)
+sp_star_context_set (SPEventContext *ec, Inkscape::Preferences::Entry *val)
 {
     SPStarContext *sc = SP_STAR_CONTEXT (ec);
-    if (!strcmp (key, "magnitude")) {
-        sc->magnitude = (val) ? atoi (val) : 5;
-        sc->magnitude = CLAMP (sc->magnitude, 3, 1024);
-    } else if (!strcmp (key, "proportion")) {
-        sc->proportion = (val) ? g_ascii_strtod (val, NULL) : 0.5;
-        sc->proportion = CLAMP (sc->proportion, 0.01, 2.0);
-    } else if (!strcmp (key, "isflatsided")) {
-        if (val && !strcmp(val, "true"))
-            sc->isflatsided = true;
-        else
-            sc->isflatsided = false;
-    } else if (!strcmp (key, "rounded")) {
-        sc->rounded = (val) ? g_ascii_strtod (val, NULL) : 0.0;
-    } else if (!strcmp (key, "randomized")) {
-        sc->randomized = (val) ? g_ascii_strtod (val, NULL) : 0.0;
+    Glib::ustring path = val->getEntryName();
+    
+    if (path == "magnitude") {
+        sc->magnitude = CLAMP (val->getInt(5), 3, 1024);
+    } else if (path == "proportion") {
+        sc->proportion = CLAMP (val->getDouble(0.5), 0.01, 2.0);
+    } else if (path == "isflatsided") {
+        sc->isflatsided = val->getBool();
+    } else if (path == "rounded") {
+        sc->rounded = val->getDouble();
+    } else if (path == "randomized") {
+        sc->randomized = val->getDouble();
     }
 }
 
@@ -265,10 +263,11 @@ static gint sp_star_context_root_handler(SPEventContext *event_context, GdkEvent
 
     SPDesktop *desktop = event_context->desktop;
     Inkscape::Selection *selection = sp_desktop_selection (desktop);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     SPStarContext *sc = SP_STAR_CONTEXT (event_context);
 
-    event_context->tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
+    event_context->tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
 
     gint ret = FALSE;
 
@@ -284,7 +283,7 @@ static gint sp_star_context_root_handler(SPEventContext *event_context, GdkEvent
             SnapManager &m = desktop->namedview->snap_manager;
             m.setup(desktop, true);
             Geom::Point pt2g = to_2geom(sc->center);
-            m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, pt2g);
+            m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g);
             sc->center = from_2geom(pt2g);
 
             sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate),
@@ -426,7 +425,8 @@ static void sp_star_drag(SPStarContext *sc, NR::Point p, guint state)
 {
     SPDesktop *desktop = SP_EVENT_CONTEXT(sc)->desktop;
 
-    int const snaps = prefs_get_int_attribute ("options.rotationsnapsperpi", "value", 12);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int const snaps = prefs->getInt("/options/rotationsnapsperpi/value", 12);
 
     if (!sc->item) {
 
@@ -440,7 +440,7 @@ static void sp_star_drag(SPStarContext *sc, NR::Point p, guint state)
         repr->setAttribute("sodipodi:type", "star");
 
         /* Set style */
-        sp_desktop_apply_style_tool(desktop, repr, "tools.shapes.star", false);
+        sp_desktop_apply_style_tool(desktop, repr, "/tools/shapes/star", false);
 
         sc->item = SP_ITEM(desktop->currentLayer()->appendChildRepr(repr));
         Inkscape::GC::release(repr);
@@ -454,7 +454,7 @@ static void sp_star_drag(SPStarContext *sc, NR::Point p, guint state)
     SnapManager &m = desktop->namedview->snap_manager;
     m.setup(desktop, true, sc->item);
     Geom::Point pt2g = to_2geom(p);
-    m.freeSnapReturnByRef(Inkscape::Snapper::SNAPPOINT_NODE, pt2g);    
+    m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g);    
     
     Geom::Point const p0 = to_2geom(sp_desktop_dt2root_xy_point(desktop, sc->center));
     Geom::Point const p1 = to_2geom(sp_desktop_dt2root_xy_point(desktop, from_2geom(pt2g)));
index 9667648006691ef69b49e07faa91721230eb1bb6..a5b25e6ffa8a2861e8c3b373a239cdbe69d32a2a 100644 (file)
@@ -1,9 +1,9 @@
 #define __SP_STYLE_C__
 
-/** \file
- * SVG stylesheets implementation.
- *
- * Authors:
+/** @file
+ * @brief SVG stylesheets implementation.
+ */
+/* Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
  *   Peter Moulder <pmoulder@mail.csse.monash.edu.au>
  *   bulia byak <buliabyak@users.sf.net>
 #include "style.h"
 #include "svg/css-ostringstream.h"
 #include "xml/repr.h"
+#include "xml/simple-document.h"
 #include "unit-constants.h"
 #include "2geom/isnan.h"
 #include "macros.h"
+#include "preferences.h"
 
 #include "sp-filter-reference.h"
 
@@ -790,15 +792,33 @@ sp_style_read_from_object(SPStyle *style, SPObject *object)
 
 
 /**
- * Read style properties from repr only.
+ * Read style properties from preferences.
+ * @param style The style to write to
+ * @param path Preferences directory from which the style should be read
  */
 void
-sp_style_read_from_repr(SPStyle *style, Inkscape::XML::Node *repr)
+sp_style_read_from_prefs(SPStyle *style, Glib::ustring const &path)
 {
     g_return_if_fail(style != NULL);
-    g_return_if_fail(repr != NULL);
+    g_return_if_fail(path != "");
+    
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    sp_style_read(style, NULL, repr);
+    // not optimal: we reconstruct the node based on the prefs, then pass it to
+    // sp_style_read for actual processing.
+    Inkscape::XML::SimpleDocument *tempdoc = new Inkscape::XML::SimpleDocument;
+    Inkscape::XML::Node *tempnode = tempdoc->createElement("temp");
+    
+    std::vector<Inkscape::Preferences::Entry> attrs = prefs->getAllEntries(path);
+    for (std::vector<Inkscape::Preferences::Entry>::iterator i = attrs.begin(); i != attrs.end(); ++i) {
+        tempnode->setAttribute(i->getEntryName().data(), i->getString().data());
+    }
+
+    sp_style_read(style, NULL, tempnode);
+    
+    Inkscape::GC::release(tempnode);
+    Inkscape::GC::release(tempdoc);
+    delete tempdoc;
 }
 
 
index 47ba6955e6a2d09388270d78895915633f7f5364..d5ccc4901ac5553d0fe6c29db161d30894a43d77 100644 (file)
@@ -3,8 +3,8 @@
 
 /** \file
  * SPStyle - a style object for SPItem objects
- *
- * Authors:
+ */
+/* Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
  *
  * Copyright (C) 2001-2002 Lauris Kaplinski
@@ -382,7 +382,7 @@ SPStyle *sp_style_unref(SPStyle *style);
 
 void sp_style_read_from_object(SPStyle *style, SPObject *object);
 
-void sp_style_read_from_repr(SPStyle *style, Inkscape::XML::Node *repr);
+void sp_style_read_from_prefs(SPStyle *style, Glib::ustring const &path);
 
 void sp_style_merge_from_style_string(SPStyle *style, gchar const *p);
 
index c406e70a571083b18996d8c94cce54308967bebb..bd86d54775df1282f8b6fd8883a38992339619ca 100644 (file)
@@ -100,7 +100,7 @@ SPSVGView::doRescale (bool event)
     }
 
     if (_drawing) {
-        sp_canvas_item_affine_absolute (_drawing, NR::Matrix(Geom::Scale(_hscale, _vscale)));
+        sp_canvas_item_affine_absolute (_drawing, Geom::Scale(_hscale, _vscale));
     }
 
     if (event) {
index 362eb7662ffca771509e75c5d02239776c314ce8..a6eb2783e3c3e834354d2185686df5066ee178f2 100644 (file)
@@ -1,6 +1,6 @@
 #include "svg/css-ostringstream.h"
 #include "svg/strip-trailing-zeros.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include <glib/gmessages.h>
 #include <glib/gstrfuncs.h>
 
@@ -14,7 +14,8 @@ Inkscape::CSSOStringStream::CSSOStringStream()
     /* This one is (currently) needed though, as we currently use ostr.precision as a sort of
        variable for storing the desired precision: see our two precision methods and our operator<<
        methods for float and double. */
-    ostr.precision(prefs_get_int_attribute("options.svgoutput", "numericprecision", 8));
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    ostr.precision(prefs->getInt("/options/svgoutput/numericprecision", 8));
 }
 
 static void
index 6f6a1f20f4a2b66545058a2cbc21b9bdcb78f882..c0e33fddd8a529e6da29233fd857ce9c854ee619 100644 (file)
@@ -15,7 +15,7 @@
 #include "svg/path-string.h"
 #include "svg/stringstream.h"
 #include "svg/svg.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include <algorithm>
 
 // 1<=numericprecision<=16, doubles are only accurate upto (slightly less than) 16 digits (and less than one digit doesn't make sense)
@@ -27,11 +27,12 @@ int Inkscape::SVG::PathString::numericprecision;
 int Inkscape::SVG::PathString::minimumexponent;
 
 Inkscape::SVG::PathString::PathString() :
-    allow_relative_coordinates(0 != prefs_get_int_attribute("options.svgoutput", "allowrelativecoordinates", 1)),
-    force_repeat_commands(0 != prefs_get_int_attribute("options.svgoutput", "forcerepeatcommands", 0))
+    allow_relative_coordinates(Inkscape::Preferences::get()->getBool("/options/svgoutput/allowrelativecoordinates", true)),
+    force_repeat_commands(Inkscape::Preferences::get()->getBool("/options/svgoutput/forcerepeatcommands"))
 {
-    numericprecision = std::max<int>(minprec,std::min<int>(maxprec,prefs_get_int_attribute("options.svgoutput", "numericprecision", 8)));
-    minimumexponent = prefs_get_int_attribute("options.svgoutput", "minimumexponent", -8);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    numericprecision = std::max<int>(minprec,std::min<int>(maxprec, prefs->getInt("/options/svgoutput/numericprecision", 8)));
+    minimumexponent = prefs->getInt("/options/svgoutput/minimumexponent", -8);
 }
 
 void Inkscape::SVG::PathString::_appendOp(char abs_op, char rel_op) {
index 62e20961aee4a71903404bc4033076e885d5740b..6b9e512a144d23797a8cc7cf9be452aeac74db38 100644 (file)
@@ -1,6 +1,6 @@
 #include "svg/stringstream.h"
 #include "svg/strip-trailing-zeros.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include <2geom/point.h>
 
 Inkscape::SVGOStringStream::SVGOStringStream()
@@ -13,7 +13,8 @@ Inkscape::SVGOStringStream::SVGOStringStream()
     /* This one is (currently) needed though, as we currently use ostr.precision as a sort of
        variable for storing the desired precision: see our two precision methods and our operator<<
        methods for float and double. */
-    ostr.precision(prefs_get_int_attribute("options.svgoutput", "numericprecision", 8));
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    ostr.precision(prefs->getInt("/options/svgoutput/numericprecision", 8));
 }
 
 Inkscape::SVGOStringStream &
index 2445135c3833fe710e23ca51b20ce21d3e691764..2b9a79d3d106b497b72688c68b145bae62db4aea 100644 (file)
@@ -28,7 +28,7 @@
 #include <2geom/angle.h>
 #include <libnr/nr-convert2geom.h>
 #include "svg.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 #ifndef M_PI
 # define M_PI 3.14159265358979323846
@@ -194,15 +194,14 @@ sp_svg_transform_write(NR::Matrix const &transform)
 gchar *
 sp_svg_transform_write(NR::Matrix const *transform)
 {
-       double e;
-
        if (!transform) {
                return NULL;
        }
+       Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-       e = 0.000001 * NR::expansion(*transform);
-       int prec = prefs_get_int_attribute("options.svgoutput", "numericprecision", 8);
-       int min_exp = prefs_get_int_attribute("options.svgoutput", "minimumexponent", -8);
+       double e = 0.000001 * NR::expansion(*transform);
+       int prec = prefs->getInt("/options/svgoutput/numericprecision", 8);
+       int min_exp = prefs->getInt("/options/svgoutput/minimumexponent", -8);
 
        /* fixme: We could use t1 * t1 + t2 * t2 here instead */
        if (NR_DF_TEST_CLOSE ((*transform)[1], 0.0, e) && NR_DF_TEST_CLOSE ((*transform)[2], 0.0, e)) {
index dbefa1af5a485e40d7357898758f91f4bb899dd9..d249c675c9bfeeb8a3db60ed97a0a2100d8e1192 100644 (file)
@@ -2,7 +2,7 @@
 #include <cassert>
 #include <cstdlib>
 
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "svg/svg-color.h"
 #include "svg/svg-icc-color.h"
 
@@ -18,12 +18,13 @@ class SVGColorTest : public CxxTest::TestSuite
 public:
     void check_rgb24(unsigned const rgb24)
     {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         char css[8];
-        prefs_set_int_attribute("options.svgoutput", "usenamedcolors", 0);
+        prefs->setBool("/options/svgoutput/usenamedcolors", false);
         sp_svg_write_color(css, sizeof(css), rgb24 << 8);
         TS_ASSERT_EQUALS(sp_svg_read_color(css, 0xff),
                          rgb24 << 8);
-        prefs_set_int_attribute("options.svgoutput", "usenamedcolors", 1);
+        prefs->setBool("/options/svgoutput/usenamedcolors", true);
         sp_svg_write_color(css, sizeof(css), rgb24 << 8);
         TS_ASSERT_EQUALS(sp_svg_read_color(css, 0xff),
                          rgb24 << 8);
index e1f87fdb9fc189fb1685943e3969c417fe116431..9040d6e4389ae02a900ae6338304c98ede446bdc 100644 (file)
@@ -32,7 +32,7 @@
 #include <errno.h>
 
 #include "strneq.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "svg-color.h"
 #include "svg-icc-color.h"
 
@@ -431,8 +431,9 @@ sp_svg_write_color(gchar *buf, unsigned const buflen, guint32 const rgba32)
 {
     g_assert(8 <= buflen);
 
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     unsigned const rgb24 = rgba32 >> 8;
-    if (prefs_get_int_attribute("options.svgoutput", "usenamedcolors", 0)) {
+    if (prefs->getBool("/options/svgoutput/usenamedcolors")) {
         rgb24_to_css(buf, rgb24);
     } else {
         g_snprintf(buf, buflen, "#%06x", rgb24);
index 32a2ed2319d6162262da7246fbaf85ca0095b091..7358c6d6917c79e11631cc719b2681c9697b9e36 100644 (file)
@@ -3,7 +3,7 @@
 #include "2geom/curves.h"\r
 #include "2geom/pathvector.h"\r
 #include "svg/svg.h"\r
-#include "prefs-utils.h"\r
+#include "preferences.h"\r
 #include "streq.h"\r
 #include <stdio.h>\r
 #include <string>\r
@@ -391,11 +391,12 @@ public:
     void testMinexpPrecision() {\r
         Geom::PathVector pv;\r
         char * path_str;\r
-        // Default values\r
-        prefs_set_int_attribute("options.svgoutput", "allowrelativecoordinates", 1);\r
-        prefs_set_int_attribute("options.svgoutput", "forcerepeatcommands", 0);\r
-        prefs_set_int_attribute("options.svgoutput", "numericprecision", 8);\r
-        prefs_set_int_attribute("options.svgoutput", "minimumexponent", -8);\r
+        // Default values
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();\r
+        prefs->setBool("/options/svgoutput/allowrelativecoordinates", true);\r
+        prefs->setBool("/options/svgoutput/forcerepeatcommands", false);\r
+        prefs->setInt("/options/svgoutput/numericprecision", 8);\r
+        prefs->setInt("/options/svgoutput/minimumexponent", -8);\r
         pv = sp_svg_read_pathv("M 123456781,1.23456781e-8 L 123456782,1.23456782e-8 L 123456785,1.23456785e-8 L 10123456400,1.23456785e-8 L 123456789,1.23456789e-8 L 123456789,101.234564e-8 L 123456789,1.23456789e-8");\r
         path_str = sp_svg_write_path(pv);\r
         TS_ASSERT_RELATION( streq_rel , "m 123456780,1.2345678e-8 0,0 10,1e-15 9999999210,0 -9999999210,0 0,9.99999921e-7 0,-9.99999921e-7" , path_str );\r
index 08f0cf0d9fef000a70cf61a02253a5669bba40e9..e277ff58492713224ddd39720c3fab090d9bc3d1 100644 (file)
@@ -44,7 +44,7 @@
 #include "object-edit.h"
 #include "xml/repr.h"
 #include "xml/node-event-vector.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "rubberband.h"
 #include "sp-metrics.h"
 #include "context-fns.h"
@@ -137,7 +137,7 @@ sp_text_context_init(SPTextContext *tc)
     tc->imc = NULL;
 
     tc->text = NULL;
-    tc->pdoc = NR::Point(0, 0);
+    tc->pdoc = Geom::Point(0, 0);
     new (&tc->text_sel_start) Inkscape::Text::Layout::iterator();
     new (&tc->text_sel_end) Inkscape::Text::Layout::iterator();
     new (&tc->text_selection_quads) std::vector<SPCanvasItem*>();
@@ -285,10 +285,11 @@ sp_text_context_setup(SPEventContext *ec)
 
     sp_text_context_selection_changed(sp_desktop_selection(desktop), tc);
 
-    if (prefs_get_int_attribute("tools.text", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/text/selcue")) {
         ec->enableSelectionCue();
     }
-    if (prefs_get_int_attribute("tools.text", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/text/gradientdrag")) {
         ec->enableGrDrag();
     }
 }
@@ -360,12 +361,12 @@ sp_text_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEve
         case GDK_BUTTON_PRESS:
             if (event->button.button == 1 && !event_context->space_panning) {
                 // find out clicked item, disregarding groups
-                item_ungrouped = desktop->item_at_point(NR::Point(event->button.x, event->button.y), TRUE);
+                item_ungrouped = desktop->item_at_point(Geom::Point(event->button.x, event->button.y), TRUE);
                 if (SP_IS_TEXT(item_ungrouped) || SP_IS_FLOWTEXT(item_ungrouped)) {
                     sp_desktop_selection(desktop)->set(item_ungrouped);
                     if (tc->text) {
                         // find out click point in document coordinates
-                        NR::Point p = desktop->w2d(NR::Point(event->button.x, event->button.y));
+                        Geom::Point p = desktop->w2d(Geom::Point(event->button.x, event->button.y));
                         // set the cursor closest to that point
                         tc->text_sel_start = tc->text_sel_end = sp_te_get_position_by_coords(tc->text, p);
                         // update display
@@ -413,7 +414,7 @@ sp_text_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEve
                 Inkscape::Text::Layout const *layout = te_get_layout(tc->text);
                 if (!layout) break;
                 // find out click point in document coordinates
-                NR::Point p = desktop->w2d(NR::Point(event->button.x, event->button.y));
+                Geom::Point p = desktop->w2d(Geom::Point(event->button.x, event->button.y));
                 // set the cursor closest to that point
                 Inkscape::Text::Layout::iterator new_end = sp_te_get_position_by_coords(tc->text, p);
                 if (tc->dragging == 2) {
@@ -442,7 +443,7 @@ sp_text_context_item_handler(SPEventContext *event_context, SPItem *item, GdkEve
                 break;
             }
             // find out item under mouse, disregarding groups
-            item_ungrouped = desktop->item_at_point(NR::Point(event->button.x, event->button.y), TRUE);
+            item_ungrouped = desktop->item_at_point(Geom::Point(event->button.x, event->button.y), TRUE);
             if (SP_IS_TEXT(item_ungrouped) || SP_IS_FLOWTEXT(item_ungrouped)) {
                 sp_canvas_item_show(tc->indicator);
                 boost::optional<Geom::Rect> ibbox = sp_item_bbox_desktop(item_ungrouped);
@@ -490,10 +491,10 @@ sp_text_context_setup_text(SPTextContext *tc)
     rtext->setAttribute("xml:space", "preserve"); // we preserve spaces in the text objects we create
 
     /* Set style */
-    sp_desktop_apply_style_tool(SP_EVENT_CONTEXT_DESKTOP(ec), rtext, "tools.text", true);
+    sp_desktop_apply_style_tool(SP_EVENT_CONTEXT_DESKTOP(ec), rtext, "/tools/text", true);
 
-    sp_repr_set_svg_double(rtext, "x", tc->pdoc[NR::X]);
-    sp_repr_set_svg_double(rtext, "y", tc->pdoc[NR::Y]);
+    sp_repr_set_svg_double(rtext, "x", tc->pdoc[Geom::X]);
+    sp_repr_set_svg_double(rtext, "y", tc->pdoc[Geom::Y]);
 
     /* Create <tspan> */
     Inkscape::XML::Node *rtspan = xml_doc->createElement("svg:tspan");
@@ -604,7 +605,8 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
 
     sp_text_context_validate_cursor_iterators(tc);
 
-    event_context->tolerance = prefs_get_int_attribute_limited("options.dragtolerance", "value", 0, 0, 100);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    event_context->tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
 
     switch (event->type) {
         case GDK_BUTTON_PRESS:
@@ -619,7 +621,7 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
                 event_context->yp = (gint) event->button.y;
                 event_context->within_tolerance = true;
 
-                NR::Point const button_pt(event->button.x, event->button.y);
+                Geom::Point const button_pt(event->button.x, event->button.y);
                 tc->p0 = desktop->w2d(button_pt);
                 Inkscape::Rubberband::get(desktop)->start(desktop, tc->p0);
                 sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate),
@@ -654,15 +656,15 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
                 // motion notify coordinates as given (no snapping back to origin)
                 event_context->within_tolerance = false;
 
-                NR::Point const motion_pt(event->motion.x, event->motion.y);
-                NR::Point const p = desktop->w2d(motion_pt);
+                Geom::Point const motion_pt(event->motion.x, event->motion.y);
+                Geom::Point const p = desktop->w2d(motion_pt);
 
                 Inkscape::Rubberband::get(desktop)->move(p);
                 gobble_motion_events(GDK_BUTTON1_MASK);
 
                 // status text
-                GString *xs = SP_PX_TO_METRIC_STRING(fabs((p - tc->p0)[NR::X]), desktop->namedview->getDefaultMetric());
-                GString *ys = SP_PX_TO_METRIC_STRING(fabs((p - tc->p0)[NR::Y]), desktop->namedview->getDefaultMetric());
+                GString *xs = SP_PX_TO_METRIC_STRING(fabs((p - tc->p0)[Geom::X]), desktop->namedview->getDefaultMetric());
+                GString *ys = SP_PX_TO_METRIC_STRING(fabs((p - tc->p0)[Geom::Y]), desktop->namedview->getDefaultMetric());
                 event_context->_message_context->setF(Inkscape::IMMEDIATE_MESSAGE, _("<b>Flowed text frame</b>: %s &#215; %s"), xs->str, ys->str);
                 g_string_free(xs, FALSE);
                 g_string_free(ys, FALSE);
@@ -682,7 +684,7 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
                 if (tc->creating && event_context->within_tolerance) {
                     /* Button 1, set X & Y & new item */
                     sp_desktop_selection(desktop)->clear();
-                    NR::Point dtp = desktop->w2d(NR::Point(event->button.x, event->button.y));
+                    Geom::Point dtp = desktop->w2d(Geom::Point(event->button.x, event->button.y));
                     tc->pdoc = sp_desktop_dt2root_xy_point(desktop, dtp);
 
                     tc->show = TRUE;
@@ -694,19 +696,19 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
                     // Cursor height is defined by the new text object's font size; it needs to be set
                     // articifically here, for the text object does not exist yet:
                     double cursor_height = sp_desktop_get_font_size_tool(desktop);
-                    sp_ctrlline_set_coords(SP_CTRLLINE(tc->cursor), dtp, dtp + NR::Point(0, cursor_height));
+                    sp_ctrlline_set_coords(SP_CTRLLINE(tc->cursor), dtp, dtp + Geom::Point(0, cursor_height));
                     event_context->_message_context->set(Inkscape::NORMAL_MESSAGE, _("Type text; <b>Enter</b> to start new line.")); // FIXME:: this is a copy of a string from _update_cursor below, do not desync
 
                     event_context->within_tolerance = false;
                 } else if (tc->creating) {
-                    NR::Point const button_pt(event->button.x, event->button.y);
-                    NR::Point p1 = desktop->w2d(button_pt);
+                    Geom::Point const button_pt(event->button.x, event->button.y);
+                    Geom::Point p1 = desktop->w2d(button_pt);
                     double cursor_height = sp_desktop_get_font_size_tool(desktop);
-                    if (fabs(p1[NR::Y] - tc->p0[NR::Y]) > cursor_height) {
+                    if (fabs(p1[Geom::Y] - tc->p0[Geom::Y]) > cursor_height) {
                         // otherwise even one line won't fit; most probably a slip of hand (even if bigger than tolerance)
                         SPItem *ft = create_flowtext_with_internal_frame (desktop, tc->p0, p1);
                         /* Set style */
-                        sp_desktop_apply_style_tool(desktop, SP_OBJECT_REPR(ft), "tools.text", true);
+                        sp_desktop_apply_style_tool(desktop, SP_OBJECT_REPR(ft), "/tools/text", true);
                         sp_desktop_selection(desktop)->set(ft);
                         desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Flowed text is created."));
                         sp_document_done(sp_desktop_document(desktop), SP_VERB_CONTEXT_TEXT,
@@ -1020,9 +1022,9 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
                                         gint mul = 1 + gobble_key_events(
                                             get_group0_keyval(&event->key), 0); // with any mask
                                         if (MOD__SHIFT)
-                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, NR::Point(mul*-10, 0));
+                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, Geom::Point(mul*-10, 0));
                                         else
-                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, NR::Point(mul*-1, 0));
+                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, Geom::Point(mul*-1, 0));
                                         sp_text_context_update_cursor(tc);
                                         sp_text_context_update_text_selection(tc);
                                         sp_document_maybe_done(sp_desktop_document(desktop), "kern:left", SP_VERB_CONTEXT_TEXT,
@@ -1045,9 +1047,9 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
                                         gint mul = 1 + gobble_key_events(
                                             get_group0_keyval(&event->key), 0); // with any mask
                                         if (MOD__SHIFT)
-                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, NR::Point(mul*10, 0));
+                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, Geom::Point(mul*10, 0));
                                         else
-                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, NR::Point(mul*1, 0));
+                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, Geom::Point(mul*1, 0));
                                         sp_text_context_update_cursor(tc);
                                         sp_text_context_update_text_selection(tc);
                                         sp_document_maybe_done(sp_desktop_document(desktop), "kern:right", SP_VERB_CONTEXT_TEXT,
@@ -1070,9 +1072,9 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
                                         gint mul = 1 + gobble_key_events(
                                             get_group0_keyval(&event->key), 0); // with any mask
                                         if (MOD__SHIFT)
-                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, NR::Point(0, mul*-10));
+                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, Geom::Point(0, mul*-10));
                                         else
-                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, NR::Point(0, mul*-1));
+                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, Geom::Point(0, mul*-1));
                                         sp_text_context_update_cursor(tc);
                                         sp_text_context_update_text_selection(tc);
                                         sp_document_maybe_done(sp_desktop_document(desktop), "kern:up", SP_VERB_CONTEXT_TEXT,
@@ -1096,9 +1098,9 @@ sp_text_context_root_handler(SPEventContext *const event_context, GdkEvent *cons
                                         gint mul = 1 + gobble_key_events(
                                             get_group0_keyval(&event->key), 0); // with any mask
                                         if (MOD__SHIFT)
-                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, NR::Point(0, mul*10));
+                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, Geom::Point(0, mul*10));
                                         else
-                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, NR::Point(0, mul*1));
+                                            sp_te_adjust_kerning_screen(tc->text, tc->text_sel_start, tc->text_sel_end, desktop, Geom::Point(0, mul*1));
                                         sp_text_context_update_cursor(tc);
                                         sp_text_context_update_text_selection(tc);
                                         sp_document_maybe_done(sp_desktop_document(desktop), "kern:down", SP_VERB_CONTEXT_TEXT,
@@ -1584,7 +1586,7 @@ sp_text_context_update_cursor(SPTextContext *tc,  bool scroll_to_see)
         // scroll to show cursor
         if (scroll_to_see) {
             Geom::Point const center = SP_EVENT_CONTEXT(tc)->desktop->get_display_area().midpoint();
-            if (NR::L2(d0 - center) > NR::L2(d1 - center))
+            if (Geom::L2(d0 - center) > Geom::L2(d1 - center))
                 // unlike mouse moves, here we must scroll all the way at first shot, so we override the autoscrollspeed
                 SP_EVENT_CONTEXT(tc)->desktop->scroll_to_point(d0, 1.0);
             else
index 8441cb04be3204f5487ad5d348114b4da70e858c..b9068e4976a12af2fafa9522899f72ac0be9265d 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "event-context.h"
 #include <display/display-forward.h>
-#include <libnr/nr-point.h>
+#include <2geom/point.h>
 #include "libnrtype/Layout-TNG.h"
 
 #define SP_TYPE_TEXT_CONTEXT (sp_text_context_get_type ())
@@ -35,48 +35,48 @@ class SPCanvasArena;
 
 struct SPTextContext : public SPEventContext {
 
-       sigc::connection sel_changed_connection;
-       sigc::connection sel_modified_connection;
-       sigc::connection style_set_connection;
-       sigc::connection style_query_connection;
+    sigc::connection sel_changed_connection;
+    sigc::connection sel_modified_connection;
+    sigc::connection style_set_connection;
+    sigc::connection style_query_connection;
 
-       GtkIMContext *imc;
+    GtkIMContext *imc;
 
-       SPItem *text; // the text we're editing, or NULL if none selected
+    SPItem *text; // the text we're editing, or NULL if none selected
 
-       /* Text item position in root coordinates */
-       NR::Point pdoc;
-       /* Insertion point position */
-       Inkscape::Text::Layout::iterator text_sel_start;
-       Inkscape::Text::Layout::iterator text_sel_end;
+    /* Text item position in root coordinates */
+    Geom::Point pdoc;
+    /* Insertion point position */
+    Inkscape::Text::Layout::iterator text_sel_start;
+    Inkscape::Text::Layout::iterator text_sel_end;
 
-       gchar uni[9];
-       bool unimode;
-       guint unipos;
+    gchar uni[9];
+    bool unimode;
+    guint unipos;
 
-       SPCanvasItem *cursor;
-       SPCanvasItem *indicator;
-       SPCanvasItem *frame; // hiliting the first frame of flowtext; FIXME: make this a list to accommodate arbitrarily many chained shapes
-       std::vector<SPCanvasItem*> text_selection_quads;
-       gint timeout;
-       guint show : 1;
-       guint phase : 1;
-       guint nascent_object : 1; // true if we're clicked on canvas to put cursor, but no text typed yet so ->text is still NULL
+    SPCanvasItem *cursor;
+    SPCanvasItem *indicator;
+    SPCanvasItem *frame; // hiliting the first frame of flowtext; FIXME: make this a list to accommodate arbitrarily many chained shapes
+    std::vector<SPCanvasItem*> text_selection_quads;
+    gint timeout;
+    guint show : 1;
+    guint phase : 1;
+    guint nascent_object : 1; // true if we're clicked on canvas to put cursor, but no text typed yet so ->text is still NULL
 
-       guint over_text : 1; // true if cursor is over a text object
+    guint over_text : 1; // true if cursor is over a text object
 
-       guint dragging : 2; // dragging selection over text
+    guint dragging : 2; // dragging selection over text
 
-       guint creating : 1; // dragging rubberband to create flowtext
-       SPCanvasItem *grabbed; // we grab while we are creating, to get events even if the mouse goes out of the window
-       NR::Point p0; // initial point if the flowtext rect
+    guint creating : 1; // dragging rubberband to create flowtext
+    SPCanvasItem *grabbed; // we grab while we are creating, to get events even if the mouse goes out of the window
+    Geom::Point p0; // initial point if the flowtext rect
 
-       /* Preedit String */
-       gchar* preedit_string;
+    /* Preedit String */
+    gchar* preedit_string;
 };
 
 struct SPTextContextClass {
-       SPEventContextClass parent_class;
+    SPEventContextClass parent_class;
 };
 
 /* Standard Gtk function */
index 11b0f0fe491203317bd6a1743e1fcfb08056602a..be427715ecb144746571d1d3d6c1b8244c0c4b9c 100644 (file)
@@ -105,7 +105,7 @@ sp_te_get_cursor_coords (SPItem const *item, Inkscape::Text::Layout::iterator co
     Inkscape::Text::Layout const *layout = te_get_layout(item);
     double height, rotation;
     layout->queryCursorShape(position, p0, height, rotation);
-    p1 = Geom::Point(p0[NR::X] + height * sin(rotation), p0[NR::Y] - height * cos(rotation));
+    p1 = Geom::Point(p0[Geom::X] + height * sin(rotation), p0[Geom::Y] - height * cos(rotation));
 }
 
 SPStyle const * sp_te_style_at_position(SPItem const *text, Inkscape::Text::Layout::iterator const &position)
index da03ab7bf2b5be53bc197648c98583256d5b6873..f10b86f6404c1110a1af7d948043d14bff2457c3 100644 (file)
 
 static char const *const tool_names[] = {
     NULL,
-    "tools.select",
-    "tools.nodes",
-    "tools.tweak",
-    "tools.shapes.rect",
-    "tools.shapes.3dbox",
-    "tools.shapes.arc",
-    "tools.shapes.star",
-    "tools.shapes.spiral",
-    "tools.freehand.pencil",
-    "tools.freehand.pen",
-    "tools.calligraphic",
-    "tools.text",
-    "tools.gradient",
-    "tools.zoom",
-    "tools.dropper",
-    "tools.connector",
-    "tools.paintbucket",
-    "tools.eraser",
-    "tools.lpetool",
-    NULL
-};
-
-static char const *const tool_ids[] = {
-    NULL,
-    "select",
-    "nodes",
-    "tweak",
-    "rect",
-    "3dbox",
-    "arc",
-    "star",
-    "spiral",
-    "pencil",
-    "pen",
-    "calligraphic",
-    "text",
-    "gradient",
-    "zoom",
-    "dropper",
-    "connector",
-    "paintbucket",
-    "eraser",
-    "lpetool",
+    "/tools/select",
+    "/tools/nodes",
+    "/tools/tweak",
+    "/tools/shapes/rect",
+    "/tools/shapes/3dbox",
+    "/tools/shapes/arc",
+    "/tools/shapes/star",
+    "/tools/shapes/spiral",
+    "/tools/freehand/pencil",
+    "/tools/freehand/pen",
+    "/tools/calligraphic",
+    "/tools/text",
+    "/tools/gradient",
+    "/tools/zoom",
+    "/tools/dropper",
+    "/tools/connector",
+    "/tools/paintbucket",
+    "/tools/eraser",
+    "/tools/lpetool",
     NULL
 };
 
 static int
-tools_id2num(char const *id)
+tools_prefpath2num(char const *id)
 {
     int i = 1;
-    while (tool_ids[i]) {
-        if (strcmp(tool_ids[i], id) == 0)
+    while (tool_names[i]) {
+        if (strcmp(tool_names[i], id) == 0)
             return i;
         else i++;
     }
@@ -121,16 +97,16 @@ tools_id2num(char const *id)
 int
 tools_isactive(SPDesktop *dt, unsigned num)
 {
-    g_assert( num < G_N_ELEMENTS(tool_ids) );
+    g_assert( num < G_N_ELEMENTS(tool_names) );
     if (SP_IS_EVENT_CONTEXT(dt->event_context))
-        return (!strcmp(dt->event_context->prefs_repr->attribute("id"), tool_ids[num]));
+        return dt->event_context->pref_observer->observed_path == tool_names[num];
     else return FALSE;
 }
 
 int
 tools_active(SPDesktop *dt)
 {
-    return (tools_id2num(dt->event_context->prefs_repr->attribute("id")));
+    return tools_prefpath2num(dt->event_context->pref_observer->observed_path.data());
 }
 
 void
index df10ca7a1605a391bdc332ebf021c920314e2753..f8e88b53ad63d27f985d663435889cb5c2e079cc 100644 (file)
@@ -70,7 +70,7 @@
 #include "livarot/Shape.h"
 #include <2geom/isnan.h>
 #include <2geom/transforms.h>
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "style.h"
 #include "box3d.h"
 #include "sp-item-transform.h"
@@ -89,7 +89,7 @@ static void sp_tweak_context_init(SPTweakContext *ddc);
 static void sp_tweak_context_dispose(GObject *object);
 
 static void sp_tweak_context_setup(SPEventContext *ec);
-static void sp_tweak_context_set(SPEventContext *ec, gchar const *key, gchar const *val);
+static void sp_tweak_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val);
 static gint sp_tweak_context_root_handler(SPEventContext *ec, GdkEvent *event);
 
 static SPEventContextClass *parent_class;
@@ -274,9 +274,8 @@ sp_tweak_context_style_set(SPCSSAttr const *css, SPTweakContext *tc)
     if (tc->mode == TWEAK_MODE_COLORPAINT) { // intercept color setting only in this mode
         // we cannot store properties with uris
         css = sp_css_attr_unset_uris ((SPCSSAttr *) css);
-
-        sp_repr_css_change (inkscape_get_repr (INKSCAPE, "tools.tweak"), (SPCSSAttr *) css, "style");
-
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        prefs->setStyle("/tools/tweak/style", const_cast<SPCSSAttr*>(css));
         return true;
     }
     return false;
@@ -325,44 +324,42 @@ sp_tweak_context_setup(SPEventContext *ec)
     tc->style_set_connection = ec->desktop->connectSetStyle( // catch style-setting signal in this tool
         sigc::bind(sigc::ptr_fun(&sp_tweak_context_style_set), tc)
     );
-
-    if (prefs_get_int_attribute("tools.tweak", "selcue", 0) != 0) {
+    
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/tweak/selcue")) {
         ec->enableSelectionCue();
     }
 
-    if (prefs_get_int_attribute("tools.tweak", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/tweak/gradientdrag")) {
         ec->enableGrDrag();
     }
 }
 
 static void
-sp_tweak_context_set(SPEventContext *ec, gchar const *key, gchar const *val)
+sp_tweak_context_set(SPEventContext *ec, Inkscape::Preferences::Entry *val)
 {
     SPTweakContext *tc = SP_TWEAK_CONTEXT(ec);
+    Glib::ustring path = val->getEntryName();
 
-    if (!strcmp(key, "width")) {
-        double const dval = ( val ? g_ascii_strtod (val, NULL) : 0.1 );
-        tc->width = CLAMP(dval, -1000.0, 1000.0);
-    } else if (!strcmp(key, "mode")) {
-        gint64 const dval = ( val ? g_ascii_strtoll (val, NULL, 10) : 0 );
-        tc->mode = dval;
+    if (path == "width") {
+        tc->width = CLAMP(val->getDouble(0.1), -1000.0, 1000.0);
+    } else if (path == "mode") {
+        tc->mode = val->getInt();
         sp_tweak_update_cursor(tc, false);
-    } else if (!strcmp(key, "fidelity")) {
-        double const dval = ( val ? g_ascii_strtod (val, NULL) : 0.0 );
-        tc->fidelity = CLAMP(dval, 0.0, 1.0);
-    } else if (!strcmp(key, "force")) {
-        double const dval = ( val ? g_ascii_strtod (val, NULL) : 1.0 );
-        tc->force = CLAMP(dval, 0, 1.0);
-    } else if (!strcmp(key, "usepressure")) {
-        tc->usepressure = (val && strcmp(val, "0"));
-    } else if (!strcmp(key, "doh")) {
-        tc->do_h = (val && strcmp(val, "0"));
-    } else if (!strcmp(key, "dos")) {
-        tc->do_s = (val && strcmp(val, "0"));
-    } else if (!strcmp(key, "dol")) {
-        tc->do_l = (val && strcmp(val, "0"));
-    } else if (!strcmp(key, "doo")) {
-        tc->do_o = (val && strcmp(val, "0"));
+    } else if (path == "fidelity") {
+        tc->fidelity = CLAMP(val->getDouble(), 0.0, 1.0);
+    } else if (path == "force") {
+        tc->force = CLAMP(val->getDouble(1.0), 0, 1.0);
+    } else if (path == "usepressure") {
+        tc->usepressure = val->getBool();
+    } else if (path == "doh") {
+        tc->do_h = val->getBool();
+    } else if (path == "dos") {
+        tc->do_s = val->getBool();
+    } else if (path == "dol") {
+        tc->do_l = val->getBool();
+    } else if (path == "doo") {
+        tc->do_o = val->getBool();
     }
 }
 
@@ -411,6 +408,19 @@ sp_tweak_dilate_recursive (Inkscape::Selection *selection, SPItem *item, Geom::P
         selection->add(item);
     }
 
+    if (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item)) {
+        GSList *items = g_slist_prepend (NULL, item);
+        GSList *selected = NULL;
+        GSList *to_select = NULL;
+        SPDocument *doc = SP_OBJECT_DOCUMENT(item);
+        sp_item_list_to_curves (items, &selected, &to_select);
+        g_slist_free (items);
+        SPObject* newObj = doc->getObjectByRepr((Inkscape::XML::Node *) to_select->data);
+        g_slist_free (to_select);
+        item = (SPItem *) newObj;
+        selection->add(item);
+    }
+
     if (SP_IS_GROUP(item) && !SP_IS_BOX3D(item)) {
         for (SPObject *child = sp_object_first_child(SP_OBJECT(item)) ; child != NULL; child = SP_OBJECT_NEXT(child) ) {
             if (SP_IS_ITEM(child)) {
@@ -520,7 +530,7 @@ sp_tweak_dilate_recursive (Inkscape::Selection *selection, SPItem *item, Geom::P
                 }
             }
 
-        } else if (SP_IS_PATH(item) || SP_IS_SHAPE(item) || SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item)) {
+        } else if (SP_IS_PATH(item) || SP_IS_SHAPE(item)) {
 
         Inkscape::XML::Node *newrepr = NULL;
         gint pos = 0;
@@ -1038,10 +1048,28 @@ sp_tweak_dilate (SPTweakContext *tc, NR::Point event_p, NR::Point p, NR::Point v
     SPItem *item_at_point = SP_EVENT_CONTEXT(tc)->desktop->item_at_point(event_p, TRUE);
 
     bool do_fill = false, do_stroke = false, do_opacity = false;
-    guint32 fill_goal = sp_desktop_get_color_tool(desktop, "tools.tweak", true, &do_fill);
-    guint32 stroke_goal = sp_desktop_get_color_tool(desktop, "tools.tweak", false, &do_stroke);
-    double opacity_goal = sp_desktop_get_master_opacity_tool(desktop, "tools.tweak", &do_opacity);
+    guint32 fill_goal = sp_desktop_get_color_tool(desktop, "/tools/tweak", true, &do_fill);
+    guint32 stroke_goal = sp_desktop_get_color_tool(desktop, "/tools/tweak", false, &do_stroke);
+    double opacity_goal = sp_desktop_get_master_opacity_tool(desktop, "/tools/tweak", &do_opacity);
     if (reverse) {
+#if 0
+        // HSL inversion 
+        float hsv[3];
+        float rgb[3];
+        sp_color_rgb_to_hsv_floatv (hsv, 
+                                    SP_RGBA32_R_F(fill_goal),
+                                    SP_RGBA32_G_F(fill_goal),
+                                    SP_RGBA32_B_F(fill_goal));
+        sp_color_hsv_to_rgb_floatv (rgb, hsv[0]<.5? hsv[0]+.5 : hsv[0]-.5, 1 - hsv[1], 1 - hsv[2]);
+        fill_goal = SP_RGBA32_F_COMPOSE(rgb[0], rgb[1], rgb[2], 1);
+        sp_color_rgb_to_hsv_floatv (hsv, 
+                                    SP_RGBA32_R_F(stroke_goal),
+                                    SP_RGBA32_G_F(stroke_goal),
+                                    SP_RGBA32_B_F(stroke_goal));
+        sp_color_hsv_to_rgb_floatv (rgb, hsv[0]<.5? hsv[0]+.5 : hsv[0]-.5, 1 - hsv[1], 1 - hsv[2]);
+        stroke_goal = SP_RGBA32_F_COMPOSE(rgb[0], rgb[1], rgb[2], 1);
+#else
+        // RGB inversion 
         fill_goal = SP_RGBA32_U_COMPOSE(
             (255 - SP_RGBA32_R_U(fill_goal)),
             (255 - SP_RGBA32_G_U(fill_goal)),
@@ -1052,6 +1080,7 @@ sp_tweak_dilate (SPTweakContext *tc, NR::Point event_p, NR::Point p, NR::Point v
             (255 - SP_RGBA32_G_U(stroke_goal)),
             (255 - SP_RGBA32_B_U(stroke_goal)),
             (255 - SP_RGBA32_A_U(stroke_goal)));
+#endif
         opacity_goal = 1 - opacity_goal;
     }
 
@@ -1111,11 +1140,12 @@ sp_tweak_switch_mode (SPTweakContext *tc, gint mode, bool with_shift)
 void
 sp_tweak_switch_mode_temporarily (SPTweakContext *tc, gint mode, bool with_shift)
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
    // Juggling about so that prefs have the old value but tc->mode and the button show new mode:
-   gint now_mode = prefs_get_int_attribute("tools.tweak", "mode", 0);
+   gint now_mode = prefs->getInt("/tools/tweak/mode", 0);
    SP_EVENT_CONTEXT(tc)->desktop->setToolboxSelectOneValue ("tweak_tool_mode", mode);
    // button has changed prefs, restore
-   prefs_set_int_attribute("tools.tweak", "mode", now_mode);
+   prefs->setInt("/tools/tweak/mode", now_mode);
    // changing prefs changed tc->mode, restore back :)
    tc->mode = mode;
    sp_tweak_update_cursor (tc, with_shift);
@@ -1453,7 +1483,8 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
         }
         break;
 
-    case GDK_KEY_RELEASE:
+    case GDK_KEY_RELEASE: {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         switch (get_group0_keyval(&event->key)) {
             case GDK_Shift_L:
             case GDK_Shift_R:
@@ -1461,13 +1492,14 @@ sp_tweak_context_root_handler(SPEventContext *event_context,
                 break;
             case GDK_Control_L:
             case GDK_Control_R:
-                sp_tweak_switch_mode (tc, prefs_get_int_attribute("tools.tweak", "mode", 0), MOD__SHIFT);
+                sp_tweak_switch_mode (tc, prefs->getInt("/tools/tweak/mode"), MOD__SHIFT);
                 tc->_message_context->clear();
                 break;
             default:
-                sp_tweak_switch_mode (tc, prefs_get_int_attribute("tools.tweak", "mode", 0), MOD__SHIFT);
+                sp_tweak_switch_mode (tc, prefs->getInt("/tools/tweak/mode"), MOD__SHIFT);
                 break;
         }
+    }
 
     default:
         break;
index 09521008bef951fb523ca0db0999b244fce11e98..e76af958fb86d1f710085286ad40058c0fbbd8f4 100644 (file)
@@ -863,7 +863,7 @@ bool ClipboardManagerImpl::_pasteImage()
     strftime(image_filename, 128, "inkscape_pasted_image_%Y%m%d_%H%M%S.png", localtime( &rawtime ));
     /// @todo Check whether the encoding is correct here
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    std::string save_folder = Glib::filename_from_utf8(prefs->getString("dialogs.save_as", "path"));
+    std::string save_folder = Glib::filename_from_utf8(prefs->getString("/dialogs/save_as/path"));
 
     gchar *image_path = g_build_filename(save_folder.data(), image_filename, NULL);
     img->save(image_path, "png");
index aa93ffed9da47b9857f20f55b8918a914b0b59b3..98ad9dc7bf8110d02b97857b2b34127fd82e8744 100644 (file)
@@ -50,11 +50,13 @@ sp_object_menu(SPObject *object, SPDesktop *desktop, GtkMenu *menu)
 #include "document.h"
 #include "desktop-handles.h"
 #include "selection.h"
-
+#include "selection-chemistry.h"
 #include "dialogs/item-properties.h"
 #include "dialogs/object-attributes.h"
 
 #include "sp-path.h"
+#include "sp-clippath.h"
+#include "sp-mask.h"
 
 
 static void sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *menu);
@@ -85,7 +87,10 @@ sp_object_type_menu(GType type, SPObject *object, SPDesktop *desktop, GtkMenu *m
 static void sp_item_properties(GtkMenuItem *menuitem, SPItem *item);
 static void sp_item_select_this(GtkMenuItem *menuitem, SPItem *item);
 static void sp_item_create_link(GtkMenuItem *menuitem, SPItem *item);
-
+static void sp_set_mask(GtkMenuItem *menuitem, SPItem *item);
+static void sp_release_mask(GtkMenuItem *menuitem, SPItem *item);
+static void sp_set_clip(GtkMenuItem *menuitem, SPItem *item);
+static void sp_release_clip(GtkMenuItem *menuitem, SPItem *item);
 /* Generate context menu item section */
 
 static void
@@ -123,6 +128,51 @@ sp_item_menu(SPObject *object, SPDesktop *desktop, GtkMenu *m)
     gtk_widget_set_sensitive(w, !SP_IS_ANCHOR(item));
     gtk_widget_show(w);
     gtk_menu_append(GTK_MENU(m), w);
+    /* Set mask */
+    w = gtk_menu_item_new_with_mnemonic(_("Set Mask"));
+    gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+    gtk_signal_connect(GTK_OBJECT(w), "activate", GTK_SIGNAL_FUNC(sp_set_mask), item);
+    if ((item && item->mask_ref && item->mask_ref->getObject()) || (item->clip_ref && item->clip_ref->getObject())) {
+        gtk_widget_set_sensitive(w, FALSE);
+    } else {
+        gtk_widget_set_sensitive(w, TRUE);
+    }
+    gtk_widget_show(w);
+    gtk_menu_append(GTK_MENU(m), w);
+    /* Release mask */
+    w = gtk_menu_item_new_with_mnemonic(_("Release Mask"));
+    gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+    gtk_signal_connect(GTK_OBJECT(w), "activate", GTK_SIGNAL_FUNC(sp_release_mask), item);
+    if (item && item->mask_ref && item->mask_ref->getObject()) {
+        gtk_widget_set_sensitive(w, TRUE);
+    } else {
+        gtk_widget_set_sensitive(w, FALSE);
+    }
+    gtk_widget_show(w);
+    gtk_menu_append(GTK_MENU(m), w);
+    /* Set Clip */
+    w = gtk_menu_item_new_with_mnemonic(_("Set Clip"));
+    gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+    gtk_signal_connect(GTK_OBJECT(w), "activate", GTK_SIGNAL_FUNC(sp_set_clip), item);
+    if ((item && item->mask_ref && item->mask_ref->getObject()) || (item->clip_ref && item->clip_ref->getObject())) {
+        gtk_widget_set_sensitive(w, FALSE);
+    } else {
+        gtk_widget_set_sensitive(w, TRUE);
+    }
+    gtk_widget_show(w);
+    gtk_menu_append(GTK_MENU(m), w);
+    /* Release Clip */
+    w = gtk_menu_item_new_with_mnemonic(_("Release Clip"));
+    gtk_object_set_data(GTK_OBJECT(w), "desktop", desktop);
+    gtk_signal_connect(GTK_OBJECT(w), "activate", GTK_SIGNAL_FUNC(sp_release_clip), item);
+    if (item && item->clip_ref && item->clip_ref->getObject()) {
+        gtk_widget_set_sensitive(w, TRUE);
+    } else {
+        gtk_widget_set_sensitive(w, FALSE);
+    }
+    gtk_widget_show(w);
+    gtk_menu_append(GTK_MENU(m), w);
+
 }
 
 static void
@@ -140,6 +190,63 @@ sp_item_properties(GtkMenuItem *menuitem, SPItem *item)
     sp_item_dialog();
 }
 
+
+static void
+sp_set_mask(GtkMenuItem *menuitem, SPItem *item)
+{
+    SPDesktop *desktop;
+
+    g_assert(SP_IS_ITEM(item));
+
+    desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+    g_return_if_fail(desktop != NULL);
+
+       sp_selection_set_mask(desktop, false, false);
+}
+
+
+static void
+sp_release_mask(GtkMenuItem *menuitem, SPItem *item)
+{
+    SPDesktop *desktop;
+
+    g_assert(SP_IS_ITEM(item));
+
+    desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+    g_return_if_fail(desktop != NULL);
+
+    sp_selection_unset_mask(desktop, false);
+}
+
+
+static void
+sp_set_clip(GtkMenuItem *menuitem, SPItem *item)
+{
+    SPDesktop *desktop;
+
+    g_assert(SP_IS_ITEM(item));
+
+    desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+    g_return_if_fail(desktop != NULL);
+
+       sp_selection_set_mask(desktop, true, false);
+}
+
+
+static void
+sp_release_clip(GtkMenuItem *menuitem, SPItem *item)
+{
+    SPDesktop *desktop;
+
+    g_assert(SP_IS_ITEM(item));
+
+    desktop = (SPDesktop*)gtk_object_get_data(GTK_OBJECT(menuitem), "desktop");
+    g_return_if_fail(desktop != NULL);
+
+    sp_selection_unset_mask(desktop, true);
+}
+
+
 static void
 sp_item_select_this(GtkMenuItem *menuitem, SPItem *item)
 {
@@ -322,12 +429,12 @@ sp_image_image_properties(GtkMenuItem */*menuitem*/, SPAnchor *anchor)
 static gchar* getImageEditorName() {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     gchar* value = 0;
-    Glib::ustring choices = prefs->getString("options.bitmapeditor", "choices");
+    Glib::ustring choices = prefs->getString("/options/bitmapeditor/choices");
     if (!choices.empty()) {
         gchar** splits = g_strsplit(choices.data(), ",", 0);
         gint numIems = g_strv_length(splits);
 
-        int setting = prefs->getIntLimited("options.bitmapeditor", "value", 0, 0, numIems);
+        int setting = prefs->getIntLimited("/options/bitmapeditor/value", 0, 0, numIems);
         value = g_strdup(splits[setting]);
 
         g_strfreev(splits);
index 9a17ed20cabded833c3dfd9bf9b70e8970899911..261a586b4012422fa76c0a47a468842cb6cffdd9 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief AboutBox - the Inkscape about dialog
- *
- * Authors:
+/** @file
+ * @brief Inkscape About box - implementation
+ */
+/* Authors:
  *   Derek P. Moore <derekm@hackunix.org>
  *   MenTaLguY <mental@rydia.net>
  *   Kees Cook <kees@outflux.net>
index ebd7e0a53b67eb760b161d615e0df6a424cb66e8..622b1324fe031e2be0464f8e3ca2b168a1c88c82 100644 (file)
@@ -1,10 +1,10 @@
-/**
- * \brief About Widget - Adds the "about" doc to the Gnome::UI::About Class
+/** @file
+ * @brief Inkscape About box
  *
  * The standard Gnome::UI::About class doesn't include a place to stuff
  * a renderable View that holds the classic Inkscape "about.svg".
- *
- * Author:
+ */
+/* Author:
  *   Kees Cook <kees@outflux.net>
  *
  * Copyright (C) 2005 Kees Cook
index b8b59230aa068b1d0910a47ab7db32a4fad33902..367a744c7d64680a14891c2c2f35ad757b31d976 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Align and Distribute dialog
- *
- * Authors:
+/** @file
+ * @brief Align and Distribute dialog - implementation
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Aubanel MONNIER <aubi@libertysurf.fr>
  *   Frank Felfe <innerspace@iname.com>
@@ -39,7 +39,7 @@
 #include "desktop-handles.h"
 #include "macros.h"
 #include "sp-item-transform.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "enums.h"
 
 #include "sp-text.h"
@@ -122,7 +122,8 @@ private :
         Inkscape::Selection *selection = sp_desktop_selection(desktop);
         if (!selection) return;
 
-        bool sel_as_group = (prefs_get_int_attribute("dialogs.align", "sel-as-groups", 0) != 0);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        bool sel_as_group = prefs->getBool("/dialogs/align/sel-as-groups");
 
         using Inkscape::Util::GSListConstIterator;
         std::list<SPItem *> selected;
@@ -211,8 +212,8 @@ private :
         // a selected original, they will be unmoved too, possibly contrary to user's
         // expecation. However this is a minor point compared to making align/distribute always
         // work as expected, and "unmoved" is the default option anyway.
-        int saved_compensation = prefs_get_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
-        prefs_set_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+        int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
+        prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
 
         bool changed = false;
         boost::optional<Geom::Rect> b;
@@ -239,7 +240,7 @@ private :
         }
 
         // restore compensation setting
-        prefs_set_int_attribute("options.clonecompensation", "value", saved_compensation);
+        prefs->setInt("/options/clonecompensation/value", saved_compensation);
 
         if (changed) {
             sp_document_done ( sp_desktop_document (desktop) , SP_VERB_DIALOG_ALIGN_DISTRIBUTE,
@@ -339,8 +340,9 @@ private :
         std::sort(sorted.begin(), sorted.end());
 
         // see comment in ActionAlign above
-        int saved_compensation = prefs_get_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
-        prefs_set_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
+        prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
 
         unsigned int len = sorted.size();
         bool changed = false;
@@ -397,7 +399,7 @@ private :
         }
 
         // restore compensation setting
-        prefs_set_int_attribute("options.clonecompensation", "value", saved_compensation);
+        prefs->setInt("/options/clonecompensation/value", saved_compensation);
 
         if (changed) {
             sp_document_done ( sp_desktop_document (desktop), SP_VERB_DIALOG_ALIGN_DISTRIBUTE,
@@ -497,8 +499,9 @@ private :
         if (!_dialog.getDesktop()) return;
 
         // see comment in ActionAlign above
-        int saved_compensation = prefs_get_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
-        prefs_set_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
+        prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
 
         // xGap and yGap are the minimum space required between bounding rectangles.
         double const xGap = removeOverlapXGap.get_value();
@@ -507,7 +510,7 @@ private :
                       xGap, yGap);
 
         // restore compensation setting
-        prefs_set_int_attribute("options.clonecompensation", "value", saved_compensation);
+        prefs->setInt("/options/clonecompensation/value", saved_compensation);
 
         sp_document_done(sp_desktop_document(_dialog.getDesktop()), SP_VERB_DIALOG_ALIGN_DISTRIBUTE,
                          _("Remove overlaps"));
@@ -531,13 +534,14 @@ private :
         if (!_dialog.getDesktop()) return;
 
         // see comment in ActionAlign above
-        int saved_compensation = prefs_get_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
-        prefs_set_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
+        prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
 
         graphlayout(sp_desktop_selection(_dialog.getDesktop())->itemList());
 
         // restore compensation setting
-        prefs_set_int_attribute("options.clonecompensation", "value", saved_compensation);
+        prefs->setInt("/options/clonecompensation/value", saved_compensation);
 
         sp_document_done(sp_desktop_document(_dialog.getDesktop()), SP_VERB_DIALOG_ALIGN_DISTRIBUTE,
                          _("Arrange connector network"));
@@ -561,13 +565,14 @@ private :
         if (!_dialog.getDesktop()) return;
 
         // see comment in ActionAlign above
-        int saved_compensation = prefs_get_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
-        prefs_set_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
+        prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
 
         unclump ((GSList *) sp_desktop_selection(_dialog.getDesktop())->itemList());
 
         // restore compensation setting
-        prefs_set_int_attribute("options.clonecompensation", "value", saved_compensation);
+        prefs->setInt("/options/clonecompensation/value", saved_compensation);
 
         sp_document_done (sp_desktop_document (_dialog.getDesktop()), SP_VERB_DIALOG_ALIGN_DISTRIBUTE,
                           _("Unclump"));
@@ -615,8 +620,9 @@ private :
         }
 
         // see comment in ActionAlign above
-        int saved_compensation = prefs_get_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
-        prefs_set_int_attribute("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
+        prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
 
         for (std::list<SPItem *>::iterator it(selected.begin());
             it != selected.end();
@@ -631,13 +637,13 @@ private :
                 double y = _dialog.randomize_bbox->min()[Geom::Y] + (*item_box)[Geom::Y].extent()/2 +
                     g_random_double_range (0, (*_dialog.randomize_bbox)[Geom::Y].extent() - (*item_box)[Geom::Y].extent());
                 // displacement is the new center minus old:
-                NR::Point t = NR::Point (x, y) - 0.5*(item_box->max() + item_box->min());
+                Geom::Point t = Geom::Point (x, y) - 0.5*(item_box->max() + item_box->min());
                 sp_item_move_rel(*it, Geom::Translate(t));
             }
         }
 
         // restore compensation setting
-        prefs_set_int_attribute("options.clonecompensation", "value", saved_compensation);
+        prefs->setInt("/options/clonecompensation/value", saved_compensation);
 
         sp_document_done (sp_desktop_document (desktop), SP_VERB_DIALOG_ALIGN_DISTRIBUTE,
                           _("Randomize positions"));
@@ -783,7 +789,7 @@ void on_selection_changed(Inkscape::Application */*inkscape*/, Inkscape::Selecti
 
 
 AlignAndDistribute::AlignAndDistribute()
-    : UI::Widget::Panel ("", "dialogs.align", SP_VERB_DIALOG_ALIGN_DISTRIBUTE),
+    : UI::Widget::Panel ("", "/dialogs/align", SP_VERB_DIALOG_ALIGN_DISTRIBUTE),
       randomize_bbox(),
       _alignFrame(_("Align")),
       _distributeFrame(_("Distribute")),
@@ -798,6 +804,7 @@ AlignAndDistribute::AlignAndDistribute()
       _anchorLabel(_("Relative to: ")),
       _selgrpLabel(_("Treat selection as group: "))
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     //Instanciate the align buttons
     addAlignButton("al_left_out",
@@ -917,7 +924,7 @@ AlignAndDistribute::AlignAndDistribute()
     _combo.append_text(_("Drawing"));
     _combo.append_text(_("Selection"));
 
-    _combo.set_active(prefs_get_int_attribute("dialogs.align", "align-to", 6));
+    _combo.set_active(prefs->getInt("/dialogs/align/align-to", 6));
     _combo.signal_changed().connect(sigc::mem_fun(*this, &AlignAndDistribute::on_ref_change));
 
     _anchorBox.pack_start(_anchorLabel);
@@ -925,7 +932,7 @@ AlignAndDistribute::AlignAndDistribute()
 
     _selgrpBox.pack_start(_selgrpLabel);
     _selgrpBox.pack_start(_selgrp);
-    _selgrp.set_active(prefs_get_int_attribute("dialogs.align", "sel-as-groups", 0));
+    _selgrp.set_active(prefs->getBool("/dialogs/align/sel-as-groups"));
     _selgrp.signal_toggled().connect(sigc::mem_fun(*this, &AlignAndDistribute::on_selgrp_toggled));
 
     _alignBox.pack_start(_anchorBox);
@@ -972,15 +979,15 @@ AlignAndDistribute::~AlignAndDistribute()
 }
 
 void AlignAndDistribute::on_ref_change(){
-
-    prefs_set_int_attribute("dialogs.align", "align-to", _combo.get_active_row_number());
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt("/dialogs/align/align-to", _combo.get_active_row_number());
 
     //Make blink the master
 }
 
 void AlignAndDistribute::on_selgrp_toggled(){
-
-    prefs_set_int_attribute("dialogs.align", "sel-as-groups", _selgrp.get_active());
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt("/dialogs/align/sel-as-groups", _selgrp.get_active());
 
     //Make blink the master
 }
index e2bb68fe5b128a5daf36afbf83d7507104f575ec..3d6b5984ece47b5ad9d13e060a8ad812a19f5f52 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Align and Distribute dialog
- *
- * Authors:
+/** @file
+ * @brief Align and Distribute dialog
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Aubanel MONNIER <aubi@libertysurf.fr>
  *   Frank Felfe <innerspace@iname.com>
index 4b5fe06b84005bd34280e23bdafaab964e4ee8c8..fbe42c2fb3afc827e99f77a863948e764a177e6b 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Dialog behavior interface
- *
- * Author:
+/** @file
+ * @brief Dialog behavior interface
+ */
+/* Author:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2007 Authors
index 227814cd1f45952b99f47e5a3b0bc0851f04983c..e73200a1f7340962a5ac83779f0ace94917e1d47 100644 (file)
@@ -45,6 +45,7 @@
 
 #include "ui/dialog/floating-behavior.h"
 #include "ui/dialog/dock-behavior.h"
+#include "preferences.h"
 
 namespace Inkscape {
 namespace UI {
@@ -84,7 +85,8 @@ DialogManager::DialogManager() {
     using namespace Behavior;
     using namespace Inkscape::UI::Dialogs; // temporary
 
-    int dialogs_type = prefs_get_int_attribute_limited ("options.dialogtype", "value", DOCK, 0, 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int dialogs_type = prefs->getIntLimited("/options/dialogtype/value", DOCK, 0, 1);
 
     if (dialogs_type == FLOATING) {
 
@@ -150,7 +152,8 @@ DialogManager::~DialogManager() {
 
 DialogManager &DialogManager::getInstance()
 {
-    int dialogs_type = prefs_get_int_attribute_limited ("options.dialogtype", "value", DOCK, 0, 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int dialogs_type = prefs->getIntLimited("/options/dialogtype/value", DOCK, 0, 1);
 
     /* Use singleton behavior for floating dialogs */
     if (dialogs_type == FLOATING) {
index 80070f19c8024328060a2a9c0de9b635207d50c3..a97b58ce368b533703d1f9bd66b2614540faab07 100644 (file)
@@ -1,8 +1,8 @@
-/**
- * \brief Object for managing a set of dialogs, including their signals and
+/** @file
+ * @brief Object for managing a set of dialogs, including their signals and
  *        construction/caching/destruction of them.
- *
- * Author:
+ */
+/* Author:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Jon Phillips <jon@rejon.org>
  *   
index 1361b49772f66a076f1ec3372f9a7d747a3bb27c..2b39eb3c9a21856aaa0614545159622b37decefc 100644 (file)
@@ -1,8 +1,7 @@
-/**
- * \brief Base class for dialogs in Inkscape.  This class provides certain
- *        common behaviors and styles wanted of all dialogs in the application.
- *
- * Authors:
+/** @file
+ * @brief Base class for dialogs in Inkscape - implementation
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   buliabyak@gmail.com
  *   Johan Engelen <j.b.c.engelen@ewi.utwente.nl>
@@ -30,7 +29,7 @@
 #include "dialog-manager.h"
 #include "modifier-fns.h"
 #include "shortcuts.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "interface.h"
 #include "verbs.h"
 
@@ -206,10 +205,11 @@ Dialog::read_geometry()
 {
     _user_hidden = false;
 
-    int x = prefs_get_int_attribute (_prefs_path, "x", -1000);
-    int y = prefs_get_int_attribute (_prefs_path, "y", -1000);
-    int w = prefs_get_int_attribute (_prefs_path, "w", 0);
-    int h = prefs_get_int_attribute (_prefs_path, "h", 0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int x = prefs->getInt(_prefs_path + "/x", -1000);
+    int y = prefs->getInt(_prefs_path + "/y", -1000);
+    int w = prefs->getInt(_prefs_path + "/w", 0);
+    int h = prefs->getInt(_prefs_path + "/h", 0);
 
     // g_print ("read %d %d %d %d\n", x, y, w, h);
 
@@ -245,10 +245,11 @@ Dialog::save_geometry()
     if (x<0) x=0;
     if (y<0) y=0;
 
-    prefs_set_int_attribute (_prefs_path, "x", x);
-    prefs_set_int_attribute (_prefs_path, "y", y);
-    prefs_set_int_attribute (_prefs_path, "w", w);
-    prefs_set_int_attribute (_prefs_path, "h", h);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(_prefs_path + "/x", x);
+    prefs->setInt(_prefs_path + "/y", y);
+    prefs->setInt(_prefs_path + "/w", w);
+    prefs->setInt(_prefs_path + "/h", h);
 
 }
 
index a1229fb9475088b353dd6edeba99f3f50b250016..1a59a236cade797bfbd79207dd74c305df9d47d8 100644 (file)
@@ -1,9 +1,7 @@
-/**
- * \brief Base class for dialogs in Inkscape.  This class provides certain common behaviors and
- *        styles wanted of all dialogs in the application.  Fundamental parts of the dialog's
- *        behavior is controlled by a Dialog::Behavior subclass instance connected to the dialog.
- *
- * Author:
+/** @file
+ * @brief Base class for dialogs in Inkscape
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Gustav Broberg <broberg@kth.se>
  *
@@ -38,6 +36,12 @@ void sp_retransientize(Inkscape::Application *inkscape, SPDesktop *desktop, gpoi
 gboolean sp_retransientize_again(gpointer dlgPtr);
 void sp_dialog_shutdown(GtkObject *object, gpointer dlgPtr);
 
+/** 
+ * @brief Base class for Inkscape dialogs
+ * This class provides certain common behaviors and styles wanted of all dialogs
+ * in the application.  Fundamental parts of the dialog's behavior are controlled by
+ * a Dialog::Behavior subclass instance connected to the dialog.
+ */
 class Dialog {
 
 public:
@@ -83,7 +87,7 @@ public:
     bool retransientize_suppress; // when true, do not retransientize (prevents races when switching new windows too fast)
 
 protected:
-    const char    *_prefs_path;
+    Glib::ustring const _prefs_path;
     int            _verb_num;
     Glib::ustring  _title;
     Glib::ustring  _apply_label;
index 6f3df89da3dcf4dc36a8ae572de2104885f6844e..6b7a9b6971036072d4f14d73041468bd039e304f 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief A dockable dialog implementation.
- *
- * Author:
+/** @file
+ * @brief A dockable dialog implementation.
+ */
+/* Author:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2007 Authors
@@ -22,7 +22,7 @@
 #include "ui/widget/dock.h"
 #include "verbs.h"
 #include "dialog.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "dialogs/dialog-events.h"
 
 #include <gtkmm/invisible.h>
@@ -44,7 +44,7 @@ DockBehavior::DockBehavior(Dialog &dialog) :
                (Inkscape::Verb::get(dialog._verb_num)->get_image() ?
                 Inkscape::Verb::get(dialog._verb_num)->get_image() : ""),
                static_cast<Widget::DockItem::State>(
-                   prefs_get_int_attribute (_dialog._prefs_path, "state",
+                   Inkscape::Preferences::get()->getInt(_dialog._prefs_path + "/state",
                                             UI::Widget::DockItem::DOCKED_STATE)))
 {
     // Connect signals
@@ -178,7 +178,8 @@ DockBehavior::_onHide()
 {
     _dialog.save_geometry();
     _dialog._user_hidden = true;
-    prefs_set_int_attribute (_dialog._prefs_path, "state", _dock_item.getPrevState());
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(_dialog._prefs_path + "/state", _dock_item.getPrevState());
 }
 
 void
@@ -186,7 +187,8 @@ DockBehavior::_onStateChanged(Widget::DockItem::State /*prev_state*/,
                               Widget::DockItem::State new_state)
 {
 // TODO probably need to avoid window calls unless the state is different. Check.
-    prefs_set_int_attribute (_dialog._prefs_path, "state", new_state);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(_dialog._prefs_path + "/state", new_state);
 
     if (new_state == Widget::DockItem::FLOATING_STATE) {
         if (Gtk::Window *floating_win = _dock_item.getWindow())
@@ -210,13 +212,15 @@ DockBehavior::onShowF12()
 void
 DockBehavior::onShutdown()
 {
-    prefs_set_int_attribute (_dialog._prefs_path, "state", _dock_item.getPrevState());
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(_dialog._prefs_path + "/state", _dock_item.getPrevState());
 }
 
 void
 DockBehavior::onDesktopActivated(SPDesktop *desktop)
 {
-    gint transient_policy = prefs_get_int_attribute_limited ( "options.transientpolicy", "value", 1, 0, 2);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gint transient_policy = prefs->getIntLimited( "/options/transientpolicy/value", 1, 0, 2);
 
 #ifdef WIN32 // Win32 special code to enable transient dialogs
     transient_policy = 2;
index d873bfb0af522608202fd0d6d34537b0d929c0c9..7f0d0ece0bed2f28ef65376ee7c82f0e840a4309 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief A dockable dialog implementation.
- *
- * Author:
+/** @file
+ * @brief A dockable dialog implementation.
+ */
+/* Author:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2007 Authors
index 5956cfb9bca739db16420eda4cb0056696725df8..32838309a4d678a078ba8900ab17cbdb2c9efc09 100644 (file)
@@ -1,8 +1,7 @@
-/** \file
- *
- * Document metadata dialog, Gtkmm-style
- *
- * Authors:
+/** @file
+ * @brief Document metadata dialog, Gtkmm-style
+ */
+/* Authors:
  *   bulia byak <buliabyak@users.sf.net>
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Lauris Kaplinski <lauris@kaplinski.com>
@@ -67,9 +66,8 @@ DocumentMetadata::getInstance()
 
 
 DocumentMetadata::DocumentMetadata()
-    : UI::Widget::Panel ("", "dialogs.documentmetadata", SP_VERB_DIALOG_METADATA),
-      _page_metadata1(1, 1), _page_metadata2(1, 1),
-      _prefs_path("dialogs.documentmetadata")
+    : UI::Widget::Panel ("", "/dialogs/documentmetadata", SP_VERB_DIALOG_METADATA),
+      _page_metadata1(1, 1), _page_metadata2(1, 1)
 {
     hide();
     _tt.enable();
@@ -255,9 +253,9 @@ on_repr_attr_changed (Inkscape::XML::Node *, gchar const *, gchar const *, gchar
   Local Variables:
   mode:c++
   c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0))
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
   indent-tabs-mode:nil
   fill-column:99
   End:
 */
-// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 1b5c08ce17265fd046b59ea656211a2adc0ecabf..7f718e9f7faaa2ece578dfb346ea5e415c740fda 100644 (file)
@@ -1,7 +1,7 @@
 /** \file
  * \brief  Document Metadata dialog
- *
- * Authors:
+ */
+/* Authors:
  *   Ralf Stephan <ralf@ark.in-berlin.de>
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *
@@ -62,7 +62,6 @@ protected:
     RDElist _rdflist;
     Licensor _licensor;
 
-    gchar const *_prefs_path;
     Registry _wr;
 
 private:
@@ -80,9 +79,9 @@ private:
   Local Variables:
   mode:c++
   c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0))
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
   indent-tabs-mode:nil
   fill-column:99
   End:
 */
-// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index a2d5b50ed163f61a01b154b37437de56eba62fba..7c738c5033e28333f95d713adcc6508af8e7091f 100644 (file)
@@ -1,8 +1,7 @@
-/** \file
- *
- * Document properties dialog, Gtkmm-style
- *
- * Authors:
+/** @file
+ * @brief Document properties dialog, Gtkmm-style
+ */
+/* Authors:
  *   bulia byak <buliabyak@users.sf.net>
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Lauris Kaplinski <lauris@kaplinski.com>
@@ -28,7 +27,7 @@
 
 #include "xml/node-event-vector.h"
 #include "helper/units.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 #include "inkscape.h"
 #include "verbs.h"
@@ -81,7 +80,7 @@ DocumentProperties::getInstance()
 }
 
 DocumentProperties::DocumentProperties()
-    : UI::Widget::Panel ("", "dialogs.documentoptions", SP_VERB_DIALOG_NAMEDVIEW),
+    : UI::Widget::Panel ("", "/dialogs/documentoptions", SP_VERB_DIALOG_NAMEDVIEW),
       _page_page(1, 1, true, true), _page_guides(1, 1),
       _page_snap(1, 1), _page_snap_dtls(1, 1),
     //---------------------------------------------------------------
@@ -115,6 +114,7 @@ DocumentProperties::DocumentProperties()
     //---------------------------------------------------------------
        //Applies to both nodes and guides, but not to bboxes, that's why its located here
       _rcbic( _("Rotation _center"), _("Consider the rotation center of an object when snapping"), "inkscape:snap-center", _wr),
+      _rcbsm( _("_Smooth nodes"), _("Snap to smooth nodes too, instead of only snapping to cusp nodes"), "inkscape:snap-smooth-nodes", _wr),
       _rcbsigg(_("_Grid with guides"), _("Snap to grid-guide intersections"), "inkscape:snap-intersection-grid-guide", _wr),
       _rcbsils(_("_Paths"), _("Snap to intersections of paths ('snap to paths' must be enabled, see the previous tab)"),
                 "inkscape:snap-intersection-paths", _wr),
@@ -123,9 +123,8 @@ DocumentProperties::DocumentProperties()
       //TRANSLATORS: In Grid|_New translate only the word _New. It ref to grid
       _grids_button_new(Q_("Grid|_New"), _("Create new grid.")),
       _grids_button_remove(_("_Remove"), _("Remove selected grid.")),
-      _grids_label_def("", Gtk::ALIGN_LEFT),
+      _grids_label_def("", Gtk::ALIGN_LEFT)
     //---------------------------------------------------------------
-      _prefs_path("dialogs.documentoptions")
 {
     _tt.enable();
     _getContents()->set_spacing (4);
@@ -376,6 +375,7 @@ DocumentProperties::build_snap_dtls()
         0,                  0,
         label_m,            0,
         0,                  &_rcbic,
+        0,                                     &_rcbsm
     };
 
     attach_all(_page_snap_dtls.table(), array, G_N_ELEMENTS(array));
@@ -496,12 +496,13 @@ DocumentProperties::update()
 
     //-----------------------------------------------------------snap
 
-    _rcbsnbb.setActive (nv->snap_manager.getSnapModeBBox());
-    _rcbsnn.setActive (nv->snap_manager.getSnapModeNode());
-    _rcbsng.setActive (nv->snap_manager.getSnapModeGuide());
-    _rcbic.setActive (nv->snap_manager.getIncludeItemCenter());
-    _rcbsigg.setActive (nv->snap_manager.getSnapIntersectionGG());
-    _rcbsils.setActive (nv->snap_manager.getSnapIntersectionCS());
+    _rcbsnbb.setActive (nv->snap_manager.snapprefs.getSnapModeBBox());
+    _rcbsnn.setActive (nv->snap_manager.snapprefs.getSnapModeNode());
+    _rcbsng.setActive (nv->snap_manager.snapprefs.getSnapModeGuide());
+    _rcbic.setActive (nv->snap_manager.snapprefs.getIncludeItemCenter());
+    _rcbsm.setActive (nv->snap_manager.snapprefs.getSnapSmoothNodes());
+    _rcbsigg.setActive (nv->snap_manager.snapprefs.getSnapIntersectionGG());
+    _rcbsils.setActive (nv->snap_manager.snapprefs.getSnapIntersectionCS());
     _rcbsnop.setActive(nv->snap_manager.object.getSnapToItemPath());
     _rcbsnon.setActive(nv->snap_manager.object.getSnapToItemNode());
     _rcbsnbbp.setActive(nv->snap_manager.object.getSnapToBBoxPath());
@@ -513,7 +514,7 @@ DocumentProperties::update()
 
     _rsu_gusn.setValue (nv->guidetolerance);
 
-    _rcbs.setActive (nv->snap_manager.getSnapEnabledGlobally());
+    _rcbs.setActive (nv->snap_manager.snapprefs.getSnapEnabledGlobally());
     _rcbsi.setActive (nv->snapindicator);
 
     //-----------------------------------------------------------grids page
@@ -666,9 +667,9 @@ DocumentProperties::onRemoveGrid()
   Local Variables:
   mode:c++
   c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0))
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
   indent-tabs-mode:nil
   fill-column:99
   End:
 */
-// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index a8750a32bfad6f42f0b2de1fb2c1667910b1f79c..ab70b0d07cc0b225a32b931580fc6342ad7a6b40 100644 (file)
@@ -1,7 +1,7 @@
 /** \file
  * \brief  Document Properties dialog
- *
- * Authors:
+ */
+/* Authors:
  *   Ralf Stephan <ralf@ark.in-berlin.de>
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *
@@ -78,7 +78,7 @@ protected:
     RegisteredCheckButton _rcbsnon, _rcbsnbbp, _rcbsnbbn, _rcbsnpb;
     ToleranceSlider       _rsu_sno, _rsu_sn, _rsu_gusn;
     //---------------------------------------------------------------
-    RegisteredCheckButton _rcbic;
+    RegisteredCheckButton _rcbic, _rcbsm;
     RegisteredCheckButton _rcbsigg, _rcbsils;
     //---------------------------------------------------------------
     Gtk::Notebook   _grids_notebook;
@@ -91,8 +91,6 @@ protected:
     Gtk::HBox       _grids_space;
     //---------------------------------------------------------------
 
-    gchar const *_prefs_path;
-
     Gtk::HBox& _createPageTabLabel(const Glib::ustring& label, const char *label_image);
 
 private:
@@ -114,9 +112,9 @@ private:
   Local Variables:
   mode:c++
   c-file-style:"stroustrup"
-  c-file-offsets:((innamespace . 0)(inline-open . 0))
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
   indent-tabs-mode:nil
   fill-column:99
   End:
 */
-// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index a92087668916e16ff5bbb5c942cae455d7b4594e..c2f3426fd26bef2a6df9220d9d99704cba13e88d 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Extension editor dialog
- *
- * Authors:
+/** @file
+ * @brief Extension editor dialog
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Ted Gould <ted@gould.cx>
  *
@@ -43,7 +43,7 @@ namespace Dialog {
     a new extension is selected, the notebooks are changed appropriately.
 */
 ExtensionEditor::ExtensionEditor()
-    : UI::Widget::Panel ("", "dialogs.extensioneditor", SP_VERB_DIALOG_EXTENSIONEDITOR)
+    : UI::Widget::Panel ("", "/dialogs/extensioneditor", SP_VERB_DIALOG_EXTENSIONEDITOR)
 {
     _notebook_info.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
     _notebook_help.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
@@ -85,7 +85,7 @@ ExtensionEditor::ExtensionEditor()
     Inkscape::Extension::db.foreach(dbfunc, this);
     
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring defaultext = prefs->getString("dialogs.extensioneditor", "selected-extension");
+    Glib::ustring defaultext = prefs->getString("/dialogs/extensioneditor/selected-extension");
     if (defaultext.empty()) defaultext = "org.inkscape.input.svg";
     this->setExtension(defaultext);
 
@@ -137,7 +137,7 @@ ExtensionEditor::on_pagelist_selection_changed (void)
 
         /* Set the selection in the preferences */
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString("dialogs.extensioneditor", "selected-extension", id);
+        prefs->setString("/dialogs/extensioneditor/selected-extension", id);
 
         /* Adjust the dialog's title */
         gchar title[500];
index cfda36856b5ea11233f89f44b75759c0fb9b9caf..fe171f60c163168b326cb6ac4f8bb8004c541ab9 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Extension editor
- *
- * Authors:
+/** @file
+ * @brief Extension editor dialog
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Ted Gould <ted@gould.cx>
  *
index b1ea5dfee7d0648850b6948928bd7be3e50e937c..172edf8a5c45f65a53aa622caf256f450ad24d98 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * Implementation of the file dialog interfaces defined in filedialog.h
- *
- * Authors:
+/** @file
+ * @brief Implementation of the file dialog interfaces defined in filedialog.h
+ */
+/* Authors:
  *   Bob Jamison
  *   Joel Holdsworth
  *   Other dudes from The Inkscape Organization
@@ -194,4 +194,4 @@ void FileSaveDialog::appendExtension(Glib::ustring& path, Inkscape::Extension::O
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index eda8c4eb48c06295078a79c02bb869a82948fd4d..52dcd1b237fee2acb41f631698e20e2aa4b43474 100644 (file)
@@ -1,10 +1,7 @@
-#ifndef __FILE_DIALOG_H__
-#define __FILE_DIALOG_H__
-/**
- * Defines the FileOpenDialog, FileSaveDialog, and FileExportDialog
- * and their supporting classes.
- *
- * Authors:
+/** @file
+ * @brief Virtual base definitions for native file dialogs
+ */
+/* Authors:
  *   Bob Jamison <rwjj@earthlink.net>
  *   Joel Holdsworth
  *   Inkscape Guys
@@ -16,6 +13,9 @@
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
+#ifndef __FILE_DIALOG_H__
+#define __FILE_DIALOG_H__
+
 #include <glibmm.h>
 #include <vector>
 #include <set>
index 541eb388baae16d15e7547c5e78e86b2b721a2ac..379d43fbf2dc279b266686229affba56c6701a33 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * Implementation of the file dialog interfaces defined in filedialogimpl.h
- *
- * Authors:
+/** @file
+ * @brief Implementation of the file dialog interfaces defined in filedialogimpl.h
+ */
+/* Authors:
  *   Bob Jamison
  *   Joel Holdsworth
  *   Bruno Dilly
@@ -24,6 +24,7 @@
 #include "interface.h"
 #include "io/sys.h"
 #include "path-prefix.h"
+#include "preferences.h"
 
 #ifdef WITH_GNOME_VFS
 # include <libgnomevfs/gnome-vfs.h>
@@ -570,9 +571,8 @@ SVGPreview::~SVGPreview()
 
 void FileDialogBaseGtk::internalSetup()
 {
-    bool enablePreview =
-        (bool)prefs_get_int_attribute( preferenceBase.c_str(),
-             "enable_preview", 1 );
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool enablePreview = prefs->getBool( preferenceBase + "/enable_preview", true);
 
     previewCheckbox.set_label( Glib::ustring(_("Enable preview")) );
     previewCheckbox.set_active( enablePreview );
@@ -594,9 +594,9 @@ void FileDialogBaseGtk::internalSetup()
 
 void FileDialogBaseGtk::cleanup( bool showConfirmed )
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     if ( showConfirmed )
-        prefs_set_int_attribute( preferenceBase.c_str(),
-               "enable_preview", previewCheckbox.get_active() );
+        prefs->setBool( preferenceBase + "/enable_preview", previewCheckbox.get_active() );
 }
 
 
@@ -643,7 +643,7 @@ FileOpenDialogImplGtk::FileOpenDialogImplGtk(Gtk::Window& parentWindow,
                                        const Glib::ustring &dir,
                                        FileDialogType fileTypes,
                                        const Glib::ustring &title) :
-    FileDialogBaseGtk(parentWindow, title, Gtk::FILE_CHOOSER_ACTION_OPEN, fileTypes, "dialogs.open")
+    FileDialogBaseGtk(parentWindow, title, Gtk::FILE_CHOOSER_ACTION_OPEN, fileTypes, "/dialogs/open")
 {
 
 
@@ -851,7 +851,7 @@ FileSaveDialogImplGtk::FileSaveDialogImplGtk( Gtk::Window &parentWindow,
                                               const Glib::ustring &title,
                                               const Glib::ustring &/*default_key*/,
                                               const gchar* docTitle) :
-    FileDialogBaseGtk(parentWindow, title, Gtk::FILE_CHOOSER_ACTION_SAVE, fileTypes, "dialogs.save_as")
+    FileDialogBaseGtk(parentWindow, title, Gtk::FILE_CHOOSER_ACTION_SAVE, fileTypes, "/dialogs/save_as")
 {
     FileSaveDialog::myDocTitle = docTitle;
 
@@ -887,9 +887,9 @@ FileSaveDialogImplGtk::FileSaveDialogImplGtk( Gtk::Window &parentWindow,
     //createFilterMenu();
 
     //###### Do we want the .xxx extension automatically added?
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     fileTypeCheckbox.set_label(Glib::ustring(_("Append filename extension automatically")));
-    fileTypeCheckbox.set_active( (bool)prefs_get_int_attribute("dialogs.save_as",
-                                                               "append_extension", 1) );
+    fileTypeCheckbox.set_active(prefs->getBool("/dialogs/save_as/append_extension", true));
 
     createFileTypeMenu();
     fileTypeComboBox.set_size_request(200,40);
@@ -1071,27 +1071,23 @@ FileSaveDialogImplGtk::show()
     set_preview_widget_active(false);
     hide();
 
-    if (b == Gtk::RESPONSE_OK)
-        {
+    if (b == Gtk::RESPONSE_OK) {
         updateNameAndExtension();
-
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        
         // Store changes of the "Append filename automatically" checkbox back to preferences.
-        prefs_set_int_attribute("dialogs.save_as", "append_extension", fileTypeCheckbox.get_active());
+        prefs->setBool("/dialogs/save_as/append_extension", fileTypeCheckbox.get_active());
 
         // Store the last used save-as filetype to preferences.
-        prefs_set_string_attribute("dialogs.save_as", "default",
-                                   ( extension != NULL ? extension->get_id() : "" ));
+        prefs->setString("/dialogs/save_as/default", ( extension != NULL ? extension->get_id() : "" ));
 
         cleanup( true );
 
         return TRUE;
-        }
-    else
-        {
+    } else {
         cleanup( false );
-
         return FALSE;
-        }
+    }
 }
 
 
@@ -1314,7 +1310,7 @@ FileExportDialogImpl::FileExportDialogImpl( Gtk::Window& parentWindow,
                                             FileDialogType fileTypes,
                                             const Glib::ustring &title,
                                             const Glib::ustring &/*default_key*/ ) :
-            FileDialogBaseGtk(parentWindow, title, Gtk::FILE_CHOOSER_ACTION_SAVE, fileTypes, "dialogs.export"),
+            FileDialogBaseGtk(parentWindow, title, Gtk::FILE_CHOOSER_ACTION_SAVE, fileTypes, "/dialogs/export"),
             sourceX0Spinner("X0",         _("Left edge of source")),
             sourceY0Spinner("Y0",         _("Top edge of source")),
             sourceX1Spinner("X1",         _("Right edge of source")),
@@ -1325,7 +1321,8 @@ FileExportDialogImpl::FileExportDialogImpl( Gtk::Window& parentWindow,
             destHeightSpinner("Height",   _("Destination height")),
             destDPISpinner("DPI",         _("Resolution (dots per inch)"))
 {
-    append_extension = (bool)prefs_get_int_attribute("dialogs.save_as", "append_extension", 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    append_extension = prefs->getBool("/dialogs/save_as/append_extension", true);
 
     /* One file at a time */
     set_select_multiple(false);
@@ -1534,9 +1531,9 @@ FileExportDialogImpl::show()
         // FIXME: Why do we have more code
 
         append_extension = checkbox.get_active();
-        prefs_set_int_attribute("dialogs.save_as", "append_extension", append_extension);
-        prefs_set_string_attribute("dialogs.save_as", "default",
-                  ( extension != NULL ? extension->get_id() : "" ));
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        prefs->setBool("/dialogs/save_as/append_extension", append_extension);
+        prefs->setBool("/dialogs/save_as/default", ( extension != NULL ? extension->get_id() : "" ));
         */
         return TRUE;
         }
@@ -1580,4 +1577,4 @@ FileExportDialogImpl::getFilename()
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 5137b8481add3fbe9865b48033e1c33c6c32c247..1ac259221836e5c2ebb25252b3aa58dfe5ee29b1 100644 (file)
@@ -1,9 +1,9 @@
 #ifndef __FILE_DIALOGIMPL_H__
 #define __FILE_DIALOGIMPL_H__
-/**
- * Implementation of the file dialog interfaces defined in filedialogimpl.h
- *
- * Authors:
+/** @file
+ * @brief Implementation of the file dialog interfaces defined in filedialogimpl.h
+ */
+/* Authors:
  *   Bob Jamison
  *   Joel Holdsworth
  *   Bruno Dilly
 //Another hack
 #include <gtk/gtkentry.h>
 #include <gtk/gtkexpander.h>
-#ifdef WITH_GNOME_VFS
-# include <libgnomevfs/gnome-vfs-init.h>  // gnome_vfs_initialized
-#endif
 
 //Inkscape includes
-#include "prefs-utils.h"
-#include <extension/input.h>
-#include <extension/output.h>
-#include <extension/db.h>
+#include "extension/input.h"
+#include "extension/output.h"
+#include "extension/db.h"
 #include "inkscape.h"
 #include "svg-view-widget.h"
-#include "gc-core.h"
 
 //For export dialog
 #include "ui/widget/scalar-unit.h"
@@ -192,7 +187,7 @@ public:
 protected:
     void cleanup( bool showConfirmed );
 
-    Glib::ustring preferenceBase;
+    Glib::ustring const preferenceBase;
     /**
      * What type of 'open' are we? (open, import, place, etc)
      */
@@ -571,9 +566,9 @@ private:
 };
 
 
-}
-}
-}
+} // namespace Dialog
+} // namespace UI
+} // namespace Inkscape
 
 #endif /*__FILE_DIALOGIMPL_H__*/
 
@@ -586,4 +581,4 @@ private:
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index e1479d3b4f366685ae907c1b3d372cf30c83b8ef..77a42df99c2b5482a366cf38f9a5d07a2453a63a 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * Implementation of the file dialog interfaces defined in filedialog.h for Win32
- *
- * Authors:
+/** @file
+ * @brief Implementation of native file dialogs for Win32
+ */
+/* Authors:
  *   Joel Holdsworth
  *   The Inkscape Organization
  *
@@ -29,7 +29,6 @@
 
 //Inkscape includes
 #include "inkscape.h"
-#include "prefs-utils.h"
 #include <dialogs/dialog-events.h>
 #include <extension/input.h>
 #include <extension/output.h>
@@ -1710,4 +1709,4 @@ UINT_PTR CALLBACK FileSaveDialogImplWin32::GetSaveFileName_hookproc(
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 3a0c3775bf4d276ebfcec5bde6ead81d73beaa22..bb026169a706fcfabebf11fa071865d0fcbb8c72 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * Implementation of the file dialog interfaces defined in filedialog.h for Win32
- *
- * Authors:
+/** @file
+ * @brief Implementation of native file dialogs for Win32
+ */
+/* Authors:
  *   Joel Holdsworth
  *   The Inkscape Organization
  *
@@ -367,4 +367,4 @@ private:
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 50b2a5c791c6d936ba477e8049114be9b13c89fe..a05c20b36da15491a45e8ca3f7418da10748a887 100644 (file)
@@ -1,8 +1,9 @@
-/**
- * \brief Fill and Stroke dialog,
- * based on sp_object_properties_dialog
+/** @file
+ * @brief Fill and Stroke dialog - implementation
  *
- * Authors:
+ * Based on the old sp_object_properties_dialog.
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Gustav Broberg <broberg@kth.se>
  *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
 #include "desktop-handles.h"
 #include "desktop-style.h"
 #include "document.h"
@@ -39,7 +36,7 @@ namespace UI {
 namespace Dialog {
 
 FillAndStroke::FillAndStroke()
-    : UI::Widget::Panel ("", "dialogs.fillstroke", SP_VERB_DIALOG_FILL_STROKE),
+    : UI::Widget::Panel ("", "/dialogs/fillstroke", SP_VERB_DIALOG_FILL_STROKE),
       _page_fill(1, 1, true, true),
       _page_stroke_paint(1, 1, true, true),
       _page_stroke_style(1, 1, true, true),
index 37aa4ccc885dbf53c87fa4094d1e304cb4248ba7..7dc892fea75e6d22a64ef069b1113197b917b847 100644 (file)
@@ -1,8 +1,7 @@
-/**
- * \brief Fill and Stroke dialog
- * based on sp_object_properties_dialog
- *
- * Authors:
+/** @file
+ * @brief Fill and Stroke dialog
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   Gustav Broberg <broberg@kth.se>
  *
index 06bc0dd733642057b0360c70dfe2145a481bd9ba..d31331a0de1dbee559034385379409f2a110e6cb 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Filter Effects dialog
- *
- * Authors:
+/** @file
+ * @brief Filter Effects dialog
+ */
+/* Authors:
  *   Nicholas Bishop <nicholasbishop@gmail.org>
  *   Rodrigo Kumpera <kumpera@gmail.com>
  *   Felipe C. da S. Sanches <felipe.sanches@gmail.com>
@@ -663,7 +663,7 @@ private:
         //# Get the current directory for finding files
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         Glib::ustring open_path;
-        Glib::ustring attr = prefs->getString("dialogs.open", "path");
+        Glib::ustring attr = prefs->getString("/dialogs/open/path");
         if (!attr.empty())
             open_path = attr;
 
@@ -708,7 +708,7 @@ private:
 
             open_path = fileName;
             open_path.append(G_DIR_SEPARATOR_S);
-            prefs->setString("dialogs.open", "path", open_path);
+            prefs->setString("/dialogs/open/path", open_path);
 
             _entry.set_text(fileName);
         }
@@ -2090,7 +2090,7 @@ int FilterEffectsDialog::PrimitiveList::primitive_count() const
 /*** FilterEffectsDialog ***/
 
 FilterEffectsDialog::FilterEffectsDialog()
-    : UI::Widget::Panel("", "dialogs.filtereffects", SP_VERB_DIALOG_FILTER_EFFECTS),
+    : UI::Widget::Panel("", "/dialogs/filtereffects", SP_VERB_DIALOG_FILTER_EFFECTS),
       _add_primitive_type(FPConverter),
       _add_primitive(_("Add Effect:")),
       _empty_settings(_("No effect selected"), Gtk::ALIGN_LEFT),
@@ -2297,7 +2297,7 @@ void FilterEffectsDialog::add_primitive()
 void FilterEffectsDialog::update_primitive_infobox()
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    if (prefs->getBool("options.showfiltersinfobox", "value", true)){
+    if (prefs->getBool("/options/showfiltersinfobox/value", true)){
         _infobox_icon.show();
         _infobox_desc.show();
     } else {
@@ -2482,7 +2482,7 @@ void FilterEffectsDialog::update_settings_view()
     _empty_settings.show();
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    if (prefs->getBool("options.showfiltersinfobox", "value", true)){
+    if (prefs->getBool("/options/showfiltersinfobox/value", true)){
         _infobox_icon.show();
         _infobox_desc.show();
     } else {
index 9e39de2bb4149b5b0b4da9898bd9c07671adc3d8..0522b7a9970652a29678397275677b02436cd48a 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Filter Effects dialog
- *
- * Authors:
+/** @file
+ * @brief Filter Effects dialog
+ */
+/* Authors:
  *   Nicholas Bishop <nicholasbishop@gmail.com>
  *   Rodrigo Kumpera <kumpera@gmail.com>
  *
index f59f2504c062b68fe897841bf84e4a26fc2f44af..b8623452198b55c9a1ba764fa144f4f3726589aa 100644 (file)
 #include "helper/window.h"
 #include "macros.h"
 #include "inkscape.h"
-#include "document.h"
 #include "desktop.h"
+#include "document.h"
 #include "selection.h"
 #include "desktop-handles.h"
 
 #include "dialogs/dialog-events.h"
-#include "prefs-utils.h"
 #include "verbs.h"
 #include "interface.h"
 #include "sp-text.h"
@@ -49,7 +48,7 @@
 #include "sp-use.h"
 #include "sp-image.h"
 #include "sp-offset.h"
-#include <xml/repr.h>
+#include "xml/repr.h"
 
 
 namespace Inkscape {
@@ -57,7 +56,7 @@ namespace UI {
 namespace Dialog {
 
 Find::Find()
-    : UI::Widget::Panel("", "dialogs.find", SP_VERB_DIALOG_FIND),
+    : UI::Widget::Panel("", "/dialogs/find", SP_VERB_DIALOG_FIND),
       _entry_text(_("_Text: "), _("Find objects by their text content (exact or partial match)")),
       _entry_id(_("_ID: "), _("Find objects by the value of the id attribute (exact or partial match)")),
       _entry_style(_("_Style: "), _("Find objects by the value of the style attribute (exact or partial match)")),
index 2d79b37adae510e0f7835f7fca456509dff33999..891df221f9691930b9b82a032fab7e066c286ccb 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Find dialog
- *
- * Authors:
+/** @file
+ * @brief Find dialog
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *
  * Copyright (C) 2004, 2005 Authors
 #include "ui/widget/button.h"
 #include "ui/widget/entry.h" 
 #include <gtkmm/separator.h>
+#include <glib.h>
 
-#include "message-stack.h"
-#include "helper/window.h"
-#include "macros.h"
-#include "inkscape.h"
-#include "document.h"
-#include "desktop.h"
-#include "selection.h"
-#include "desktop-handles.h" 
-
-#include "dialogs/dialog-events.h"
-#include "prefs-utils.h"
-#include "verbs.h"
-#include "interface.h"
-#include "sp-text.h"
-#include "sp-flowtext.h"
-#include "text-editing.h"
-#include "sp-tspan.h"
-#include "selection-chemistry.h"
-#include "sp-defs.h"
-#include "sp-rect.h"
-#include "sp-ellipse.h"
-#include "sp-star.h"
-#include "sp-spiral.h"
-#include "sp-path.h"
-#include "sp-line.h"
-#include "sp-polyline.h"
-#include "sp-item-group.h"
-#include "sp-use.h"
-#include "sp-image.h"
-#include "sp-offset.h"
-#include <xml/repr.h>
-
-using namespace Inkscape::UI::Widget;
+class SPItem;
+class SPObject;
 
 namespace Inkscape {
+class Selection;
+
 namespace UI {
 namespace Dialog {
 
@@ -66,29 +38,29 @@ public:
 
 protected:
     // Widgets:
-    Entry    _entry_text;
-    Entry    _entry_id;
-    Entry    _entry_style;
-    Entry    _entry_attribute;
-
-    CheckButton    _check_search_selection;
-    CheckButton    _check_search_layer;
-    CheckButton    _check_include_hidden;
-    CheckButton    _check_include_locked;
+    Inkscape::UI::Widget::Entry    _entry_text;
+    Inkscape::UI::Widget::Entry    _entry_id;
+    Inkscape::UI::Widget::Entry    _entry_style;
+    Inkscape::UI::Widget::Entry    _entry_attribute;
+
+    Inkscape::UI::Widget::CheckButton    _check_search_selection;
+    Inkscape::UI::Widget::CheckButton    _check_search_layer;
+    Inkscape::UI::Widget::CheckButton    _check_include_hidden;
+    Inkscape::UI::Widget::CheckButton    _check_include_locked;
     
     // Type checkbutton widgets... 
-    CheckButton    _check_all;
-    CheckButton    _check_all_shapes;
-    CheckButton    _check_rects;
-    CheckButton    _check_ellipses;
-    CheckButton    _check_stars;
-    CheckButton    _check_spirals;
-    CheckButton    _check_paths;
-    CheckButton    _check_texts;
-    CheckButton    _check_groups;
-    CheckButton    _check_clones;
-    CheckButton    _check_images;
-    CheckButton    _check_offsets;  
+    Inkscape::UI::Widget::CheckButton    _check_all;
+    Inkscape::UI::Widget::CheckButton    _check_all_shapes;
+    Inkscape::UI::Widget::CheckButton    _check_rects;
+    Inkscape::UI::Widget::CheckButton    _check_ellipses;
+    Inkscape::UI::Widget::CheckButton    _check_stars;
+    Inkscape::UI::Widget::CheckButton    _check_spirals;
+    Inkscape::UI::Widget::CheckButton    _check_paths;
+    Inkscape::UI::Widget::CheckButton    _check_texts;
+    Inkscape::UI::Widget::CheckButton    _check_groups;
+    Inkscape::UI::Widget::CheckButton    _check_clones;
+    Inkscape::UI::Widget::CheckButton    _check_images;
+    Inkscape::UI::Widget::CheckButton    _check_offsets;  
     
     // Button-click handlers
     void    onClear();
@@ -115,8 +87,8 @@ private:
     Find(Find const &d);
     Find& operator=(Find const &d);
     
-    Button    _button_clear;
-    Button    _button_find;
+    Inkscape::UI::Widget::Button    _button_clear;
+    Inkscape::UI::Widget::Button    _button_find;
 };
 
 } // namespace Dialog
index 9f5571b4b9a859cd2ac9d363bf25674017c8156f..19147f2c7cfddd277140816722b1d4f9f1ad60ed 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief A floating dialog implementation.
- *
- * Author:
+/** @file
+ * @brief Floating dialog implementation.
+ */
+/* Author:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2007 Authors
@@ -21,7 +21,7 @@
 #include "desktop.h"
 #include "dialogs/dialog-events.h"
 #include "interface.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "verbs.h"
 
 namespace Inkscape {
@@ -35,9 +35,9 @@ FloatingBehavior::FloatingBehavior(Dialog &dialog) :
 #if GTK_VERSION_GE(2, 12)
        ,_dialog_active(_d->property_is_active())
        ,_steps(0)
-       ,_trans_focus(prefs_get_double_attribute_limited("dialogs.transparency", "on-focus", 0.95, 0.0, 1.0))
-       ,_trans_blur(prefs_get_double_attribute_limited("dialogs.transparency", "on-blur", 0.50, 0.0, 1.0))
-       ,_trans_time(prefs_get_int_attribute_limited("dialogs.transparency", "animate-time", 100, 0, 5000))
+       ,_trans_focus(Inkscape::Preferences::get()->getDoubleLimited("/dialogs/transparency/on-focus", 0.95, 0.0, 1.0))
+       ,_trans_blur(Inkscape::Preferences::get()->getDoubleLimited("/dialogs/transparency/on-blur", 0.50, 0.0, 1.0))
+       ,_trans_time(Inkscape::Preferences::get()->getIntLimited("/dialogs/transparency/animate-time", 100, 0, 5000))
 #endif
 {
     hide();
@@ -65,28 +65,30 @@ FloatingBehavior::FloatingBehavior(Dialog &dialog) :
        zero so that the transition happens instantaneously.  This occurs on
        windows as opacity changes cause flicker there.
 */
-void FloatingBehavior::_focus_event (void) {
-       _steps = 0;
-       _trans_focus = prefs_get_double_attribute_limited("dialogs.transparency", "on-focus", 0.95, 0.0, 1.0);
-       _trans_blur = prefs_get_double_attribute_limited("dialogs.transparency", "on-blur", 0.50, 0.0, 1.0);
-       _trans_time = prefs_get_int_attribute_limited("dialogs.transparency", "animate-time", 100, 0, 5000);
-
-       if (_trans_time != 0) {
-               float diff = _trans_focus - _trans_blur;
-               if (diff < 0.0) diff *= -1.0;
-
-               while (diff > 0.05) {
-                       _steps++;
-                       diff = diff / 2.0;
-               }
+void FloatingBehavior::_focus_event (void)
+{
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    _steps = 0;
+    _trans_focus = prefs->getDoubleLimited("/dialogs/transparency/on-focus", 0.95, 0.0, 1.0);
+    _trans_blur = prefs->getDoubleLimited("/dialogs/transparency/on-blur", 0.50, 0.0, 1.0);
+    _trans_time = prefs->getIntLimited("/dialogs/transparency/animate-time", 100, 0, 5000);
+
+    if (_trans_time != 0) {
+        float diff = _trans_focus - _trans_blur;
+        if (diff < 0.0) diff *= -1.0;
+
+        while (diff > 0.05) {
+            _steps++;
+            diff = diff / 2.0;
+        }
 
-               if (_steps != 0) {
-                       Glib::signal_timeout().connect(sigc::mem_fun(this, &FloatingBehavior::_trans_timer), _trans_time / _steps);
-               }
-       }
-       _trans_timer();
+        if (_steps != 0) {
+            Glib::signal_timeout().connect(sigc::mem_fun(this, &FloatingBehavior::_trans_timer), _trans_time / _steps);
+        }
+    }
+    _trans_timer();
 
-       return;
+    return;
 }
 
 /** \brief  Move the opacity of a window towards our goal
@@ -177,7 +179,8 @@ FloatingBehavior::onShutdown() {}
 void
 FloatingBehavior::onDesktopActivated (SPDesktop *desktop)
 {
-    gint transient_policy = prefs_get_int_attribute_limited ( "options.transientpolicy", "value", 1, 0, 2);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gint transient_policy = prefs->getIntLimited("/options/transientpolicy/value", 1, 0, 2);
 
 #ifdef WIN32 // Win32 special code to enable transient dialogs
     transient_policy = 2;
index 0ab2d6981cc35843ca599d33d98aa577c2c4f48c..0360ccf494fcd012ca4a5d6b286e615949b86335 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief A floating dialog implementation.
- *
- * Author:
+/** @file
+ * @brief A floating dialog implementation.
+ */
+/* Author:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2007 Authors
index e2e717c534319bfb88c5919c182c1534c9dbd62f..d06d3a4068b742733feffc645c3256f55795628d 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Inkscape Preferences dialog
- *
- * Authors:
+/** @file
+ * @brief Inkscape Preferences dialog - implementation
+ */
+/* Authors:
  *   Carl Hetherington
  *   Marco Scholten
  *   Johan Engelen <j.b.c.engelen@ewi.utwente.nl>
@@ -28,7 +28,7 @@
 #include "unit-constants.h"
 #include <iostream>
 #include "enums.h"
-#include "inkscape.h"
+// #include "inkscape.h"
 #include "desktop-handles.h"
 #include "message-stack.h"
 #include "style.h"
@@ -37,6 +37,7 @@
 #include "xml/repr.h"
 #include "ui/widget/style-swatch.h"
 #include "display/nr-filter-gaussian.h"
+#include "display/nr-filter-types.h"
 #include "color-profile-fns.h"
 #include "display/canvas-grid.h"
 
@@ -45,7 +46,7 @@ namespace UI {
 namespace Dialog {
 
 InkscapePreferences::InkscapePreferences()
-    : UI::Widget::Panel ("", "dialogs.preferences", SP_VERB_DIALOG_DISPLAY),
+    : UI::Widget::Panel ("", "/dialogs/preferences", SP_VERB_DIALOG_DISPLAY),
       _max_dialog_width(0),
       _max_dialog_height(0),
       _current_page(0)
@@ -153,18 +154,18 @@ Gtk::TreeModel::iterator InkscapePreferences::AddPage(DialogPage& p, Glib::ustri
 void InkscapePreferences::initPageMouse()
 {
     this->AddPage(_page_mouse, _("Mouse"), PREFS_PAGE_MOUSE);
-    _mouse_sens.init ( "options.cursortolerance", "value", 0.0, 30.0, 1.0, 1.0, 8.0, true, false);
+    _mouse_sens.init ( "/options/cursortolerance/value", 0.0, 30.0, 1.0, 1.0, 8.0, true, false);
     _page_mouse.add_line( false, _("Grab sensitivity:"), _mouse_sens, _("pixels"),
                            _("How close on the screen you need to be to an object to be able to grab it with mouse (in screen pixels)"), false);
-    _mouse_thres.init ( "options.dragtolerance", "value", 0.0, 20.0, 1.0, 1.0, 4.0, true, false);
+    _mouse_thres.init ( "/options/dragtolerance/value", 0.0, 20.0, 1.0, 1.0, 4.0, true, false);
     _page_mouse.add_line( false, _("Click/drag threshold:"), _mouse_thres, _("pixels"),
                            _("Maximum mouse drag (in screen pixels) which is considered a click, not a drag"), false);
 
-    _mouse_use_ext_input.init( _("Use pressure-sensitive tablet (requires restart)"), "options.useextinput", "value", true);
+    _mouse_use_ext_input.init( _("Use pressure-sensitive tablet (requires restart)"), "/options/useextinput/value", true);
     _page_mouse.add_line(true, "",_mouse_use_ext_input, "",
                         _("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)"));
 
-    _mouse_switch_on_ext_input.init( _("Switch tool based on tablet device (requires restart)"), "options.switchonextinput", "value", false);
+    _mouse_switch_on_ext_input.init( _("Switch tool based on tablet device (requires restart)"), "/options/switchonextinput/value", false);
     _page_mouse.add_line(true, "",_mouse_switch_on_ext_input, "",
                         _("Change tool as different devices are used on the tablet (pen, eraser, mouse)"));
 }
@@ -172,27 +173,27 @@ void InkscapePreferences::initPageMouse()
 void InkscapePreferences::initPageScrolling()
 {
     this->AddPage(_page_scrolling, _("Scrolling"), PREFS_PAGE_SCROLLING);
-    _scroll_wheel.init ( "options.wheelscroll", "value", 0.0, 1000.0, 1.0, 1.0, 40.0, true, false);
+    _scroll_wheel.init ( "/options/wheelscroll/value", 0.0, 1000.0, 1.0, 1.0, 40.0, true, false);
     _page_scrolling.add_line( false, _("Mouse wheel scrolls by:"), _scroll_wheel, _("pixels"),
                            _("One mouse wheel notch scrolls by this distance in screen pixels (horizontally with Shift)"), false);
     _page_scrolling.add_group_header( _("Ctrl+arrows"));
-    _scroll_arrow_px.init ( "options.keyscroll", "value", 0.0, 1000.0, 1.0, 1.0, 10.0, true, false);
+    _scroll_arrow_px.init ( "/options/keyscroll/value", 0.0, 1000.0, 1.0, 1.0, 10.0, true, false);
     _page_scrolling.add_line( true, _("Scroll by:"), _scroll_arrow_px, _("pixels"),
                            _("Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)"), false);
-    _scroll_arrow_acc.init ( "options.scrollingacceleration", "value", 0.0, 5.0, 0.01, 1.0, 0.35, false, false);
+    _scroll_arrow_acc.init ( "/options/scrollingacceleration/value", 0.0, 5.0, 0.01, 1.0, 0.35, false, false);
     _page_scrolling.add_line( true, _("Acceleration:"), _scroll_arrow_acc, "",
                            _("Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no acceleration)"), false);
     _page_scrolling.add_group_header( _("Autoscrolling"));
-    _scroll_auto_speed.init ( "options.autoscrollspeed", "value", 0.0, 5.0, 0.01, 1.0, 0.7, false, false);
+    _scroll_auto_speed.init ( "/options/autoscrollspeed/value", 0.0, 5.0, 0.01, 1.0, 0.7, false, false);
     _page_scrolling.add_line( true, _("Speed:"), _scroll_auto_speed, "",
                            _("How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn autoscroll off)"), false);
-    _scroll_auto_thres.init ( "options.autoscrolldistance", "value", -600.0, 600.0, 1.0, 1.0, -10.0, true, false);
+    _scroll_auto_thres.init ( "/options/autoscrolldistance/value", -600.0, 600.0, 1.0, 1.0, -10.0, true, false);
     _page_scrolling.add_line( true, _("Threshold:"), _scroll_auto_thres, _("pixels"),
                            _("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"), false);
-    _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "options.spacepans", "value", false);
+    _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "/options/spacepans/value", false);
     _page_scrolling.add_line( false, "", _scroll_space, "",
                             _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator). When off, Space temporarily switches to Selector tool (default)."));
-    _wheel_zoom.init ( _("Mouse wheel zooms by default"), "options.wheelzooms", "value", false);
+    _wheel_zoom.init ( _("Mouse wheel zooms by default"), "/options/wheelzooms/value", false);
     _page_scrolling.add_line( false, "", _wheel_zoom, "",
                             _("When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when off, it zooms with Ctrl and scrolls without Ctrl."));
 }
@@ -201,28 +202,28 @@ void InkscapePreferences::initPageSteps()
 {
     this->AddPage(_page_steps, _("Steps"), PREFS_PAGE_STEPS);
 
-    _steps_arrow.init ( "options.nudgedistance", "value", 0.0, 1000.0, 0.01, 1.0, 2.0, false, false);
+    _steps_arrow.init ( "/options/nudgedistance/value", 0.0, 1000.0, 0.01, 1.0, 2.0, false, false);
     //nudgedistance is limited to 1000 in select-context.cpp: use the same limit here
     _page_steps.add_line( false, _("Arrow keys move by:"), _steps_arrow, _("px"),
                           _("Pressing an arrow key moves selected object(s) or node(s) by this distance (in px units)"), false);
-    _steps_scale.init ( "options.defaultscale", "value", 0.0, 1000.0, 0.01, 1.0, 2.0, false, false);
+    _steps_scale.init ( "/options/defaultscale/value", 0.0, 1000.0, 0.01, 1.0, 2.0, false, false);
     //defaultscale is limited to 1000 in select-context.cpp: use the same limit here
     _page_steps.add_line( false, _("> and < scale by:"), _steps_scale, _("px"),
                           _("Pressing > or < scales selection up or down by this increment (in px units)"), false);
-    _steps_inset.init ( "options.defaultoffsetwidth", "value", 0.0, 3000.0, 0.01, 1.0, 2.0, false, false);
+    _steps_inset.init ( "/options/defaultoffsetwidth/value", 0.0, 3000.0, 0.01, 1.0, 2.0, false, false);
     _page_steps.add_line( false, _("Inset/Outset by:"), _steps_inset, _("px"),
                           _("Inset and Outset commands displace the path by this distance (in px units)"), false);
-    _steps_compass.init ( _("Compass-like display of angles"), "options.compassangledisplay", "value", true);
+    _steps_compass.init ( _("Compass-like display of angles"), "/options/compassangledisplay/value", true);
     _page_steps.add_line( false, "", _steps_compass, "",
                             _("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"));
     int const num_items = 17;
     Glib::ustring labels[num_items] = {"90", "60", "45", "36", "30", "22.5", "18", "15", "12", "10", "7.5", "6", "3", "2", "1", "0.5", _("None")};
     int values[num_items] = {2, 3, 4, 5, 6, 8, 10, 12, 15, 18, 24, 30, 60, 90, 180, 360, 0};
     _steps_rot_snap.set_size_request(_sb_width);
-    _steps_rot_snap.init("options.rotationsnapsperpi", "value", labels, values, num_items, 12);
+    _steps_rot_snap.init("/options/rotationsnapsperpi/value", labels, values, num_items, 12);
     _page_steps.add_line( false, _("Rotation snaps every:"), _steps_rot_snap, _("degrees"),
                            _("Rotating with Ctrl pressed snaps every that much degrees; also, pressing [ or ] rotates by this amount"), false);
-    _steps_zoom.init ( "options.zoomincrement", "value", 101.0, 500.0, 1.0, 1.0, 1.414213562, true, true);
+    _steps_zoom.init ( "/options/zoomincrement/value", 101.0, 500.0, 1.0, 1.0, 1.414213562, true, true);
     _page_steps.add_line( false, _("Zoom in/out by:"), _steps_zoom, _("%"),
                           _("Zoom tool click, +/- keys, and middle click zoom in and out by this multiplier"), false);
 }
@@ -230,34 +231,34 @@ void InkscapePreferences::initPageSteps()
 void InkscapePreferences::AddSelcueCheckbox(DialogPage &p, Glib::ustring const &prefs_path, bool def_value)
 {
     PrefCheckButton* cb = Gtk::manage( new PrefCheckButton);
-    cb->init ( _("Show selection cue"), prefs_path, "selcue", def_value);
+    cb->init ( _("Show selection cue"), prefs_path + "/selcue", def_value);
     p.add_line( false, "", *cb, "", _("Whether selected objects display a selection cue (the same as in selector)"));
 }
 
 void InkscapePreferences::AddGradientCheckbox(DialogPage &p, Glib::ustring const &prefs_path, bool def_value)
 {
     PrefCheckButton* cb = Gtk::manage( new PrefCheckButton);
-    cb->init ( _("Enable gradient editing"), prefs_path, "gradientdrag", def_value);
+    cb->init ( _("Enable gradient editing"), prefs_path + "/gradientdrag", def_value);
     p.add_line( false, "", *cb, "", _("Whether selected objects display gradient editing controls"));
 }
 
 void InkscapePreferences::AddConvertGuidesCheckbox(DialogPage &p, Glib::ustring const &prefs_path, bool def_value) {
     PrefCheckButton* cb = Gtk::manage( new PrefCheckButton);
-    cb->init ( _("Conversion to guides uses edges instead of bounding box"), prefs_path, "convertguides", def_value);
+    cb->init ( _("Conversion to guides uses edges instead of bounding box"), prefs_path + "/convertguides", def_value);
     p.add_line( false, "", *cb, "", _("Converting an object to guides places these along the object's true edges (imitating the object's shape), not along the bounding box."));
 }
 
 void InkscapePreferences::AddDotSizeSpinbutton(DialogPage &p, Glib::ustring const &prefs_path, double def_value)
 {
     PrefSpinButton* sb = Gtk::manage( new PrefSpinButton);
-    sb->init ( prefs_path, "dot-size", 0.0, 1000.0, 0.1, 10.0, def_value, false, false);
+    sb->init ( prefs_path + "/dot-size", 0.0, 1000.0, 0.1, 10.0, def_value, false, false);
     p.add_line( false, _("Ctrl+click dot size:"), *sb, _("times current stroke width"),
                        _("Size of dots created with Ctrl+click (relative to current stroke width)"),
                        false );
 }
 
 
-void StyleFromSelectionToTool(gchar const *prefs_path, StyleSwatch *swatch)
+void StyleFromSelectionToTool(Glib::ustring const &prefs_path, StyleSwatch *swatch)
 {
     SPDesktop *desktop = SP_ACTIVE_DESKTOP;
     if (desktop == NULL)
@@ -285,24 +286,22 @@ void StyleFromSelectionToTool(gchar const *prefs_path, StyleSwatch *swatch)
     if (!css) return;
 
     // only store text style for the text tool
-    if (!g_strrstr ((const gchar *) prefs_path, "text")) {
+    if (prefs_path == "/tools/text") {
         css = sp_css_attr_unset_text (css);
     }
 
     // we cannot store properties with uris - they will be invalid in other documents
     css = sp_css_attr_unset_uris (css);
 
-    sp_repr_css_change (inkscape_get_repr (INKSCAPE, prefs_path), css, "style");
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setStyle(prefs_path + "/style", css);
     sp_repr_css_attr_unref (css);
 
     // update the swatch
     if (swatch) {
-        Inkscape::XML::Node *tool_repr = inkscape_get_repr(INKSCAPE, prefs_path);
-        if (tool_repr) {
-            SPCSSAttr *css = sp_repr_css_attr_inherited(tool_repr, "style");
-            swatch->setStyle (css);
-            sp_repr_css_attr_unref(css);
-        }
+        SPCSSAttr *css = prefs->getInheritedStyle(prefs_path + "/style");
+        swatch->setStyle (css);
+        sp_repr_css_attr_unref(css);
     }
 }
 
@@ -313,14 +312,14 @@ void InkscapePreferences::AddNewObjectsStyle(DialogPage &p, Glib::ustring const
     else
         p.add_group_header( _("Create new objects with:"));
     PrefRadioButton* current = Gtk::manage( new PrefRadioButton);
-    current->init ( _("Last used style"), prefs_path, "usecurrent", 1, true, 0);
+    current->init ( _("Last used style"), prefs_path + "/usecurrent", 1, true, 0);
     p.add_line( true, "", *current, "",
                 _("Apply the style you last set on an object"));
 
     PrefRadioButton* own = Gtk::manage( new PrefRadioButton);
     Gtk::HBox* hb = Gtk::manage( new Gtk::HBox);
     Gtk::Alignment* align = Gtk::manage( new Gtk::Alignment);
-    own->init ( _("This tool's own style:"), prefs_path, "usecurrent", 0, false, current);
+    own->init ( _("This tool's own style:"), prefs_path + "/usecurrent", 0, false, current);
     align->set(0,0,0,0);
     align->add(*own);
     hb->add(*align);
@@ -328,17 +327,16 @@ void InkscapePreferences::AddNewObjectsStyle(DialogPage &p, Glib::ustring const
     p.add_line( true, "", *hb, "", "");
 
     // style swatch
-    Inkscape::XML::Node *tool_repr = inkscape_get_repr(INKSCAPE, prefs_path.c_str());
     Gtk::Button* button = Gtk::manage( new Gtk::Button(_("Take from selection"),true));
     StyleSwatch *swatch = 0;
-    if (tool_repr) {
-        SPCSSAttr *css = sp_repr_css_attr_inherited(tool_repr, "style");
-        swatch = new StyleSwatch(css, _("This tool's style of new objects"));
-        hb->add(*swatch);
-        sp_repr_css_attr_unref(css);
-    }
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    
+    SPCSSAttr *css = prefs->getStyle(prefs_path + "/style");
+    swatch = new StyleSwatch(css, _("This tool's style of new objects"));
+    hb->add(*swatch);
+    sp_repr_css_attr_unref(css);
 
-    button->signal_clicked().connect( sigc::bind( sigc::ptr_fun(StyleFromSelectionToTool), prefs_path.c_str(), swatch)  );
+    button->signal_clicked().connect( sigc::bind( sigc::ptr_fun(StyleFromSelectionToTool), prefs_path, swatch)  );
     own->changed_signal.connect( sigc::mem_fun(*button, &Gtk::Button::set_sensitive) );
     p.add_line( true, "", *button, "",
                 _("Remember the style of the (first) selected object as this tool's style"));
@@ -350,167 +348,167 @@ void InkscapePreferences::initPageTools()
     _path_tools = _page_list.get_model()->get_path(iter_tools);
 
     _page_tools.add_group_header( _("Bounding box to use:"));
-    _t_bbox_visual.init ( _("Visual bounding box"), "tools", "bounding_box", "0", false, 0); // 0 means visual
+    _t_bbox_visual.init ( _("Visual bounding box"), "/tools/bounding_box", 0, false, 0); // 0 means visual
     _page_tools.add_line( true, "", _t_bbox_visual, "",
                             _("This bounding box includes stroke width, markers, filter margins, etc."));
-    _t_bbox_geometric.init ( _("Geometric bounding box"), "tools", "bounding_box", "1", true, &_t_bbox_visual); // 1 means geometric
+    _t_bbox_geometric.init ( _("Geometric bounding box"), "/tools/bounding_box", 1, true, &_t_bbox_visual); // 1 means geometric
     _page_tools.add_line( true, "", _t_bbox_geometric, "",
                             _("This bounding box includes only the bare path"));
 
     _page_tools.add_group_header( _("Conversion to guides:"));
-    _t_cvg_keep_objects.init ( _("Keep objects after conversion to guides"), "tools", "cvg_keep_objects", false);
+    _t_cvg_keep_objects.init ( _("Keep objects after conversion to guides"), "/tools/cvg_keep_objects", false);
     _page_tools.add_line( true, "", _t_cvg_keep_objects, "",
                             _("When converting an object to guides, don't delete the object after the conversion."));
-    _t_cvg_convert_whole_groups.init ( _("Treat groups as a single object"), "tools", "cvg_convert_whole_groups", false);
+    _t_cvg_convert_whole_groups.init ( _("Treat groups as a single object"), "/tools/cvg_convert_whole_groups", false);
     _page_tools.add_line( true, "", _t_cvg_convert_whole_groups, "",
                             _("Treat groups as a single object during conversion to guides rather than converting each child separately."));
 
-    _calligrapy_use_abs_size.init ( _("Width is in absolute units"), "tools.calligraphic", "abs_width", false);
-    _calligrapy_keep_selected.init ( _("Select new path"), "tools.calligraphic", "keep_selected", true);
-    _connector_ignore_text.init( _("Don't attach connectors to text objects"), "tools.connector", "ignoretext", true);
+    _calligrapy_use_abs_size.init ( _("Width is in absolute units"), "/tools/calligraphic/abs_width", false);
+    _calligrapy_keep_selected.init ( _("Select new path"), "/tools/calligraphic/keep_selected", true);
+    _connector_ignore_text.init( _("Don't attach connectors to text objects"), "/tools/connector/ignoretext", true);
 
     //Selector
     this->AddPage(_page_selector, _("Selector"), iter_tools, PREFS_PAGE_TOOLS_SELECTOR);
 
-    AddSelcueCheckbox(_page_selector, "tools.select", false);
+    AddSelcueCheckbox(_page_selector, "/tools/select", false);
     _page_selector.add_group_header( _("When transforming, show:"));
-    _t_sel_trans_obj.init ( _("Objects"), "tools.select", "show", "content", true, 0);
+    _t_sel_trans_obj.init ( _("Objects"), "/tools/select/show", "content", true, 0);
     _page_selector.add_line( true, "", _t_sel_trans_obj, "",
                             _("Show the actual objects when moving or transforming"));
-    _t_sel_trans_outl.init ( _("Box outline"), "tools.select", "show", "outline", false, &_t_sel_trans_obj);
+    _t_sel_trans_outl.init ( _("Box outline"), "/tools/select/show", "outline", false, &_t_sel_trans_obj);
     _page_selector.add_line( true, "", _t_sel_trans_outl, "",
                             _("Show only a box outline of the objects when moving or transforming"));
     _page_selector.add_group_header( _("Per-object selection cue:"));
-    _t_sel_cue_none.init ( _("None"), "options.selcue", "value", Inkscape::SelCue::NONE, false, 0);
+    _t_sel_cue_none.init ( _("None"), "/options/selcue/value", Inkscape::SelCue::NONE, false, 0);
     _page_selector.add_line( true, "", _t_sel_cue_none, "",
                             _("No per-object selection indication"));
-    _t_sel_cue_mark.init ( _("Mark"), "options.selcue", "value", Inkscape::SelCue::MARK, true, &_t_sel_cue_none);
+    _t_sel_cue_mark.init ( _("Mark"), "/options/selcue/value", Inkscape::SelCue::MARK, true, &_t_sel_cue_none);
     _page_selector.add_line( true, "", _t_sel_cue_mark, "",
                             _("Each selected object has a diamond mark in the top left corner"));
-    _t_sel_cue_box.init ( _("Box"), "options.selcue", "value", Inkscape::SelCue::BBOX, false, &_t_sel_cue_none);
+    _t_sel_cue_box.init ( _("Box"), "/options/selcue/value", Inkscape::SelCue::BBOX, false, &_t_sel_cue_none);
     _page_selector.add_line( true, "", _t_sel_cue_box, "",
                             _("Each selected object displays its bounding box"));
 
     //Node
     this->AddPage(_page_node, _("Node"), iter_tools, PREFS_PAGE_TOOLS_NODE);
-    AddSelcueCheckbox(_page_node, "tools.nodes", true);
-    AddGradientCheckbox(_page_node, "tools.nodes", true);
+    AddSelcueCheckbox(_page_node, "/tools/nodes", true);
+    AddGradientCheckbox(_page_node, "/tools/nodes", true);
     _page_node.add_group_header( _("Path outline:"));
-    _t_node_pathoutline_color.init(_("Path outline color"), "tools.nodes", "highlight_color", 0xff0000ff);
+    _t_node_pathoutline_color.init(_("Path outline color"), "/tools/nodes/highlight_color", 0xff0000ff);
     _page_node.add_line( false, _("Path outline color"), _t_node_pathoutline_color, "", _("Selects the color used for showing the path outline."), false);
-    _t_node_pathflash_enabled.init ( _("Path outline flash on mouse-over"), "tools.nodes", "pathflash_enabled", false);
+    _t_node_pathflash_enabled.init ( _("Path outline flash on mouse-over"), "/tools/nodes/pathflash_enabled", false);
     _page_node.add_line( true, "", _t_node_pathflash_enabled, "", _("When hovering over a path, briefly flash its outline."));
-    _t_node_pathflash_timeout.init("tools.nodes", "pathflash_timeout", 0, 10000.0, 100.0, 100.0, 1000.0, true, false);
+    _t_node_pathflash_timeout.init("/tools/nodes/pathflash_timeout", 0, 10000.0, 100.0, 100.0, 1000.0, true, false);
     _page_node.add_line( false, _("Flash time"), _t_node_pathflash_timeout, "ms", _("Specifies how long the path outline will be visible after a mouse-over (in milliseconds). Specify 0 to have the outline shown until mouse leaves the path."), false);
 
     //Tweak
     this->AddPage(_page_tweak, _("Tweak"), iter_tools, PREFS_PAGE_TOOLS_TWEAK);
-    this->AddNewObjectsStyle(_page_tweak, "tools.tweak", _("Paint objects with:"));
-    AddSelcueCheckbox(_page_tweak, "tools.tweak", true);
-    AddGradientCheckbox(_page_tweak, "tools.tweak", false);
+    this->AddNewObjectsStyle(_page_tweak, "/tools/tweak", _("Paint objects with:"));
+    AddSelcueCheckbox(_page_tweak, "/tools/tweak", true);
+    AddGradientCheckbox(_page_tweak, "/tools/tweak", false);
 
     //Zoom
     this->AddPage(_page_zoom, _("Zoom"), iter_tools, PREFS_PAGE_TOOLS_ZOOM);
-    AddSelcueCheckbox(_page_zoom, "tools.zoom", true);
-    AddGradientCheckbox(_page_zoom, "tools.zoom", false);
+    AddSelcueCheckbox(_page_zoom, "/tools/zoom", true);
+    AddGradientCheckbox(_page_zoom, "/tools/zoom", false);
 
     //Shapes
     Gtk::TreeModel::iterator iter_shapes = this->AddPage(_page_shapes, _("Shapes"), iter_tools, PREFS_PAGE_TOOLS_SHAPES);
     _path_shapes = _page_list.get_model()->get_path(iter_shapes);
-    this->AddSelcueCheckbox(_page_shapes, "tools.shapes", true);
-    this->AddGradientCheckbox(_page_shapes, "tools.shapes", true);
+    this->AddSelcueCheckbox(_page_shapes, "/tools/shapes", true);
+    this->AddGradientCheckbox(_page_shapes, "/tools/shapes", true);
 
     //Rectangle
     this->AddPage(_page_rectangle, _("Rectangle"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_RECT);
-    this->AddNewObjectsStyle(_page_rectangle, "tools.shapes.rect");
-    this->AddConvertGuidesCheckbox(_page_rectangle, "tools.shapes.rect", true);
+    this->AddNewObjectsStyle(_page_rectangle, "/tools/shapes/rect");
+    this->AddConvertGuidesCheckbox(_page_rectangle, "/tools/shapes/rect", true);
 
     //3D box
     this->AddPage(_page_3dbox, _("3D Box"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_3DBOX);
-    this->AddNewObjectsStyle(_page_3dbox, "tools.shapes.3dbox");
-    this->AddConvertGuidesCheckbox(_page_3dbox, "tools.shapes.3dbox", true);
+    this->AddNewObjectsStyle(_page_3dbox, "/tools/shapes/3dbox");
+    this->AddConvertGuidesCheckbox(_page_3dbox, "/tools/shapes/3dbox", true);
 
     //ellipse
     this->AddPage(_page_ellipse, _("Ellipse"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_ELLIPSE);
-    this->AddNewObjectsStyle(_page_ellipse, "tools.shapes.arc");
+    this->AddNewObjectsStyle(_page_ellipse, "/tools/shapes/arc");
 
     //star
     this->AddPage(_page_star, _("Star"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_STAR);
-    this->AddNewObjectsStyle(_page_star, "tools.shapes.star");
+    this->AddNewObjectsStyle(_page_star, "/tools/shapes/star");
 
     //spiral
     this->AddPage(_page_spiral, _("Spiral"), iter_shapes, PREFS_PAGE_TOOLS_SHAPES_SPIRAL);
-    this->AddNewObjectsStyle(_page_spiral, "tools.shapes.spiral");
+    this->AddNewObjectsStyle(_page_spiral, "/tools/shapes/spiral");
 
     //Pencil
     this->AddPage(_page_pencil, _("Pencil"), iter_tools, PREFS_PAGE_TOOLS_PENCIL);
-    this->AddSelcueCheckbox(_page_pencil, "tools.freehand.pencil", true);
-    this->AddNewObjectsStyle(_page_pencil, "tools.freehand.pencil");
-    this->AddDotSizeSpinbutton(_page_pencil, "tools.freehand.pencil", 3.0);
+    this->AddSelcueCheckbox(_page_pencil, "/tools/freehand/pencil", true);
+    this->AddNewObjectsStyle(_page_pencil, "/tools/freehand/pencil");
+    this->AddDotSizeSpinbutton(_page_pencil, "/tools/freehand/pencil", 3.0);
 
     //Pen
     this->AddPage(_page_pen, _("Pen"), iter_tools, PREFS_PAGE_TOOLS_PEN);
-    this->AddSelcueCheckbox(_page_pen, "tools.freehand.pen", true);
-    this->AddNewObjectsStyle(_page_pen, "tools.freehand.pen");
-    this->AddDotSizeSpinbutton(_page_pen, "tools.freehand.pen", 3.0);
+    this->AddSelcueCheckbox(_page_pen, "/tools/freehand/pen", true);
+    this->AddNewObjectsStyle(_page_pen, "/tools/freehand/pen");
+    this->AddDotSizeSpinbutton(_page_pen, "/tools/freehand/pen", 3.0);
 
     //Calligraphy
     this->AddPage(_page_calligraphy, _("Calligraphy"), iter_tools, PREFS_PAGE_TOOLS_CALLIGRAPHY);
-    this->AddSelcueCheckbox(_page_calligraphy, "tools.calligraphic", false);
-    this->AddNewObjectsStyle(_page_calligraphy, "tools.calligraphic");
+    this->AddSelcueCheckbox(_page_calligraphy, "/tools/calligraphic", false);
+    this->AddNewObjectsStyle(_page_calligraphy, "/tools/calligraphic");
     _page_calligraphy.add_line( false, "", _calligrapy_use_abs_size, "",
                             _("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"));
     _page_calligraphy.add_line( false, "", _calligrapy_keep_selected, "",
                             _("If on, each newly created object will be selected (deselecting previous selection)"));
     //Paint Bucket
     this->AddPage(_page_paintbucket, _("Paint Bucket"), iter_tools, PREFS_PAGE_TOOLS_PAINTBUCKET);
-    this->AddSelcueCheckbox(_page_paintbucket, "tools.paintbucket", false);
-    this->AddNewObjectsStyle(_page_paintbucket, "tools.paintbucket");
+    this->AddSelcueCheckbox(_page_paintbucket, "/tools/paintbucket", false);
+    this->AddNewObjectsStyle(_page_paintbucket, "/tools/paintbucket");
 
     //Eraser
     this->AddPage(_page_eraser, _("Eraser"), iter_tools, PREFS_PAGE_TOOLS_ERASER);
-    this->AddNewObjectsStyle(_page_eraser, "tools.eraser");
+    this->AddNewObjectsStyle(_page_eraser, "/tools/eraser");
 
     //LPETool
     this->AddPage(_page_lpetool, _("LPE Tool"), iter_tools, PREFS_PAGE_TOOLS_LPETOOL);
-    this->AddNewObjectsStyle(_page_lpetool, "tools.lpetool");
+    this->AddNewObjectsStyle(_page_lpetool, "/tools/lpetool");
 
     //Text
     this->AddPage(_page_text, _("Text"), iter_tools, PREFS_PAGE_TOOLS_TEXT);
-    this->AddSelcueCheckbox(_page_text, "tools.text", true);
-    this->AddGradientCheckbox(_page_text, "tools.text", true);
-    this->AddNewObjectsStyle(_page_text, "tools.text");
+    this->AddSelcueCheckbox(_page_text, "/tools/text", true);
+    this->AddGradientCheckbox(_page_text, "/tools/text", true);
+    this->AddNewObjectsStyle(_page_text, "/tools/text");
 
     //Gradient
     this->AddPage(_page_gradient, _("Gradient"), iter_tools, PREFS_PAGE_TOOLS_GRADIENT);
-    this->AddSelcueCheckbox(_page_gradient, "tools.gradient", true);
+    this->AddSelcueCheckbox(_page_gradient, "/tools/gradient", true);
 
     //Connector
     this->AddPage(_page_connector, _("Connector"), iter_tools, PREFS_PAGE_TOOLS_CONNECTOR);
-    this->AddSelcueCheckbox(_page_connector, "tools.connector", true);
+    this->AddSelcueCheckbox(_page_connector, "/tools/connector", true);
     _page_connector.add_line(false, "", _connector_ignore_text, "",
             _("If on, connector attachment points will not be shown for text objects"));
     //Dropper
     this->AddPage(_page_dropper, _("Dropper"), iter_tools, PREFS_PAGE_TOOLS_DROPPER);
-    this->AddSelcueCheckbox(_page_dropper, "tools.dropper", true);
-    this->AddGradientCheckbox(_page_dropper, "tools.dropper", true);
+    this->AddSelcueCheckbox(_page_dropper, "/tools/dropper", true);
+    this->AddGradientCheckbox(_page_dropper, "/tools/dropper", true);
 }
 
 void InkscapePreferences::initPageWindows()
 {
-    _win_save_geom.init ( _("Save and restore window geometry for each document"), "options.savewindowgeometry", "value", 1, true, 0);
-    _win_save_geom_prefs.init ( _("Remember and use last window's geometry"), "options.savewindowgeometry", "value", 2, false, &_win_save_geom);
-    _win_save_geom_off.init ( _("Don't save window geometry"), "options.savewindowgeometry", "value", 0, false, &_win_save_geom);
+    _win_save_geom.init ( _("Save and restore window geometry for each document"), "/options/savewindowgeometry/value", 1, true, 0);
+    _win_save_geom_prefs.init ( _("Remember and use last window's geometry"), "/options/savewindowgeometry/value", 2, false, &_win_save_geom);
+    _win_save_geom_off.init ( _("Don't save window geometry"), "/options/savewindowgeometry/value", 0, false, &_win_save_geom);
 
-    _win_dockable.init ( _("Dockable"), "options.dialogtype", "value", 1, true, 0);
-    _win_floating.init ( _("Floating"), "options.dialogtype", "value", 0, false, &_win_dockable);
+    _win_dockable.init ( _("Dockable"), "/options/dialogtype/value", 1, true, 0);
+    _win_floating.init ( _("Floating"), "/options/dialogtype/value", 0, false, &_win_dockable);
 
-    _win_hide_task.init ( _("Dialogs are hidden in taskbar"), "options.dialogsskiptaskbar", "value", true);
-    _win_zoom_resize.init ( _("Zoom when window is resized"), "options.stickyzoom", "value", false);
-    _win_show_close.init ( _("Show close button on dialogs"), "dialogs", "showclose", false);
-    _win_ontop_none.init ( _("None"), "options.transientpolicy", "value", 0, false, 0);
-    _win_ontop_normal.init ( _("Normal"), "options.transientpolicy", "value", 1, true, &_win_ontop_none);
-    _win_ontop_agressive.init ( _("Aggressive"), "options.transientpolicy", "value", 2, false, &_win_ontop_none);
+    _win_hide_task.init ( _("Dialogs are hidden in taskbar"), "/options/dialogsskiptaskbar/value", true);
+    _win_zoom_resize.init ( _("Zoom when window is resized"), "/options/stickyzoom/value", false);
+    _win_show_close.init ( _("Show close button on dialogs"), "/dialogs/showclose", false);
+    _win_ontop_none.init ( _("None"), "/options/transientpolicy/value", 0, false, 0);
+    _win_ontop_normal.init ( _("Normal"), "/options/transientpolicy/value", 1, true, &_win_ontop_none);
+    _win_ontop_agressive.init ( _("Aggressive"), "/options/transientpolicy/value", 2, false, &_win_ontop_none);
 
     _page_windows.add_group_header( _("Saving window geometry (size and position):"));
     _page_windows.add_line( true, "", _win_save_geom_off, "",
@@ -539,11 +537,11 @@ void InkscapePreferences::initPageWindows()
 
 #if GTK_VERSION_GE(2, 12)
        _page_windows.add_group_header( _("Dialog Transparency:"));
-       _win_trans_focus.init("dialogs.transparency", "on-focus", 0.5, 1.0, 0.01, 0.1, 1.0, false, false);
+       _win_trans_focus.init("/dialogs/transparency/on-focus", 0.5, 1.0, 0.01, 0.1, 1.0, false, false);
        _page_windows.add_line( true, _("Opacity when focused:"), _win_trans_focus, "", "");
-       _win_trans_blur.init("dialogs.transparency", "on-blur", 0.0, 1.0, 0.01, 0.1, 0.5, false, false);
+       _win_trans_blur.init("/dialogs/transparency/on-blur", 0.0, 1.0, 0.01, 0.1, 0.5, false, false);
        _page_windows.add_line( true, _("Opacity when unfocused:"), _win_trans_blur, "", "");
-       _win_trans_time.init("dialogs.transparency", "animate-time", 0, 1000, 10, 100, 100, true, false);
+       _win_trans_time.init("/dialogs/transparency/animate-time", 0, 1000, 10, 100, 100, true, false);
        _page_windows.add_line( true, _("Time of opacity change animation:"), _win_trans_time, "ms", "");
 #endif
 
@@ -561,15 +559,15 @@ void InkscapePreferences::initPageWindows()
 
 void InkscapePreferences::initPageClones()
 {
-    _clone_option_parallel.init ( _("Move in parallel"), "options.clonecompensation", "value",
+    _clone_option_parallel.init ( _("Move in parallel"), "/options/clonecompensation/value",
                                   SP_CLONE_COMPENSATION_PARALLEL, true, 0);
-    _clone_option_stay.init ( _("Stay unmoved"), "options.clonecompensation", "value",
+    _clone_option_stay.init ( _("Stay unmoved"), "/options/clonecompensation/value",
                                   SP_CLONE_COMPENSATION_UNMOVED, false, &_clone_option_parallel);
-    _clone_option_transform.init ( _("Move according to transform"), "options.clonecompensation", "value",
+    _clone_option_transform.init ( _("Move according to transform"), "/options/clonecompensation/value",
                                   SP_CLONE_COMPENSATION_NONE, false, &_clone_option_parallel);
-    _clone_option_unlink.init ( _("Are unlinked"), "options.cloneorphans", "value",
+    _clone_option_unlink.init ( _("Are unlinked"), "/options/cloneorphans/value",
                                   SP_CLONE_ORPHANS_UNLINK, true, 0);
-    _clone_option_delete.init ( _("Are deleted"), "options.cloneorphans", "value",
+    _clone_option_delete.init ( _("Are deleted"), "/options/cloneorphans/value",
                                   SP_CLONE_ORPHANS_DELETE, false, &_clone_option_unlink);
 
     _page_clones.add_group_header( _("When the original moves, its clones and linked offsets:"));
@@ -587,7 +585,7 @@ void InkscapePreferences::initPageClones()
 
     _page_clones.add_group_header( _("When duplicating original+clones:"));
 
-    _clone_relink_on_duplicate.init ( _("Relink duplicated clones"), "options.relinkclonesonduplicate", "value", false);
+    _clone_relink_on_duplicate.init ( _("Relink duplicated clones"), "/options/relinkclonesonduplicate/value", false);
     _page_clones.add_line(true, "", _clone_relink_on_duplicate, "",
                         _("When duplicating a selection containing both a clone and its original (possibly in groups), relink the duplicated clone to the duplicated original instead of the old original"));
 
@@ -597,10 +595,10 @@ void InkscapePreferences::initPageClones()
 
 void InkscapePreferences::initPageMasks()
 {
-    _mask_mask_on_top.init ( _("When applying, use the topmost selected object as clippath/mask"), "options.maskobject", "topmost", true);
+    _mask_mask_on_top.init ( _("When applying, use the topmost selected object as clippath/mask"), "/options/maskobject/topmost", true);
     _page_mask.add_line(true, "", _mask_mask_on_top, "",
                         _("Uncheck this to use the bottom selected object as the clipping path or mask"));
-    _mask_mask_remove.init ( _("Remove clippath/mask object after applying"), "options.maskobject", "remove", true);
+    _mask_mask_remove.init ( _("Remove clippath/mask object after applying"), "/options/maskobject/remove", true);
     _page_mask.add_line(true, "", _mask_mask_remove, "",
                         _("After applying, remove the object used as the clipping path or mask from the drawing"));
     this->AddPage(_page_mask, _("Clippaths and masks"), PREFS_PAGE_MASKS);
@@ -608,12 +606,12 @@ void InkscapePreferences::initPageMasks()
 
 void InkscapePreferences::initPageTransforms()
 {
-    _trans_scale_stroke.init ( _("Scale stroke width"), "options.transform", "stroke", true);
-    _trans_scale_corner.init ( _("Scale rounded corners in rectangles"), "options.transform", "rectcorners", false);
-    _trans_gradient.init ( _("Transform gradients"), "options.transform", "gradient", true);
-    _trans_pattern.init ( _("Transform patterns"), "options.transform", "pattern", false);
-    _trans_optimized.init ( _("Optimized"), "options.preservetransform", "value", 0, true, 0);
-    _trans_preserved.init ( _("Preserved"), "options.preservetransform", "value", 1, false, &_trans_optimized);
+    _trans_scale_stroke.init ( _("Scale stroke width"), "/options/transform/stroke", true);
+    _trans_scale_corner.init ( _("Scale rounded corners in rectangles"), "/options/transform/rectcorners", false);
+    _trans_gradient.init ( _("Transform gradients"), "/options/transform/gradient", true);
+    _trans_pattern.init ( _("Transform patterns"), "/options/transform/pattern", false);
+    _trans_optimized.init ( _("Optimized"), "/options/preservetransform/value", 0, true, 0);
+    _trans_preserved.init ( _("Preserved"), "/options/preservetransform/value", 1, false, &_trans_optimized);
 
     _page_transforms.add_line( false, "", _trans_scale_stroke, "",
                                _("When scaling objects, scale the stroke width by the same proportion"));
@@ -634,15 +632,16 @@ void InkscapePreferences::initPageTransforms()
 
 void InkscapePreferences::initPageFilters()
 {
-    _blur_quality_best.init ( _("Best quality (slowest)"), "options.blurquality", "value",
+    /* blur quality */
+    _blur_quality_best.init ( _("Best quality (slowest)"), "/options/blurquality/value",
                                   BLUR_QUALITY_BEST, false, 0);
-    _blur_quality_better.init ( _("Better quality (slower)"), "options.blurquality", "value",
+    _blur_quality_better.init ( _("Better quality (slower)"), "/options/blurquality/value",
                                   BLUR_QUALITY_BETTER, false, &_blur_quality_best);
-    _blur_quality_normal.init ( _("Average quality"), "options.blurquality", "value",
+    _blur_quality_normal.init ( _("Average quality"), "/options/blurquality/value",
                                   BLUR_QUALITY_NORMAL, true, &_blur_quality_best);
-    _blur_quality_worse.init ( _("Lower quality (faster)"), "options.blurquality", "value",
+    _blur_quality_worse.init ( _("Lower quality (faster)"), "/options/blurquality/value",
                                   BLUR_QUALITY_WORSE, false, &_blur_quality_best);
-    _blur_quality_worst.init ( _("Lowest quality (fastest)"), "options.blurquality", "value",
+    _blur_quality_worst.init ( _("Lowest quality (fastest)"), "/options/blurquality/value",
                                   BLUR_QUALITY_WORST, false, &_blur_quality_best);
 
     _page_filters.add_group_header( _("Gaussian blur quality for display:"));
@@ -657,7 +656,32 @@ void InkscapePreferences::initPageFilters()
     _page_filters.add_line( true, "", _blur_quality_worst, "",
                            _("Lowest quality (considerable artifacts), but display is fastest"));
 
-    _show_filters_info_box.init( _("Show filter primitives infobox"), "options.showfiltersinfobox", "value", true);
+    /* filter quality */
+    _filter_quality_best.init ( _("Best quality (slowest)"), "/options/filterquality/value",
+                                  NR::FILTER_QUALITY_BEST, false, 0);
+    _filter_quality_better.init ( _("Better quality (slower)"), "/options/filterquality/value",
+                                  NR::FILTER_QUALITY_BETTER, false, &_filter_quality_best);
+    _filter_quality_normal.init ( _("Average quality"), "/options/filterquality/value",
+                                  NR::FILTER_QUALITY_NORMAL, true, &_filter_quality_best);
+    _filter_quality_worse.init ( _("Lower quality (faster)"), "/options/filterquality/value",
+                                  NR::FILTER_QUALITY_WORSE, false, &_filter_quality_best);
+    _filter_quality_worst.init ( _("Lowest quality (fastest)"), "/options/filterquality/value",
+                                  NR::FILTER_QUALITY_WORST, false, &_filter_quality_best);
+
+    _page_filters.add_group_header( _("Filter effects quality for display:"));
+    _page_filters.add_line( true, "", _filter_quality_best, "",
+                           _("Best quality, but display may be very slow at high zooms (bitmap export always uses best quality)"));
+    _page_filters.add_line( true, "", _filter_quality_better, "",
+                           _("Better quality, but slower display"));
+    _page_filters.add_line( true, "", _filter_quality_normal, "",
+                           _("Average quality, acceptable display speed"));
+    _page_filters.add_line( true, "", _filter_quality_worse, "",
+                           _("Lower quality (some artifacts), but display is faster"));
+    _page_filters.add_line( true, "", _filter_quality_worst, "",
+                           _("Lowest quality (considerable artifacts), but display is fastest"));
+
+    /* show infobox */
+    _show_filters_info_box.init( _("Show filter primitives infobox"), "/options/showfiltersinfobox/value", true);
     _page_filters.add_line(true, "", _show_filters_info_box, "",
                         _("Show icons and descriptions for the filter primitives available at the filter effects dialog."));
 
@@ -667,12 +691,12 @@ void InkscapePreferences::initPageFilters()
 
 void InkscapePreferences::initPageSelecting()
 {
-    _sel_all.init ( _("Select in all layers"), "options.kbselection", "inlayer", PREFS_SELECTION_ALL, false, 0);
-    _sel_current.init ( _("Select only within current layer"), "options.kbselection", "inlayer", PREFS_SELECTION_LAYER, true, &_sel_all);
-    _sel_recursive.init ( _("Select in current layer and sublayers"), "options.kbselection", "inlayer", PREFS_SELECTION_LAYER_RECURSIVE, false, &_sel_all);
-    _sel_hidden.init ( _("Ignore hidden objects and layers"), "options.kbselection", "onlyvisible", true);
-    _sel_locked.init ( _("Ignore locked objects and layers"), "options.kbselection", "onlysensitive", true);
-    _sel_layer_deselects.init ( _("Deselect upon layer change"), "options.selection", "layerdeselect", true);
+    _sel_all.init ( _("Select in all layers"), "/options/kbselection/inlayer", PREFS_SELECTION_ALL, false, 0);
+    _sel_current.init ( _("Select only within current layer"), "/options/kbselection/inlayer", PREFS_SELECTION_LAYER, true, &_sel_all);
+    _sel_recursive.init ( _("Select in current layer and sublayers"), "/options/kbselection/inlayer", PREFS_SELECTION_LAYER_RECURSIVE, false, &_sel_all);
+    _sel_hidden.init ( _("Ignore hidden objects and layers"), "/options/kbselection/onlyvisible", true);
+    _sel_locked.init ( _("Ignore locked objects and layers"), "/options/kbselection/onlysensitive", true);
+    _sel_layer_deselects.init ( _("Deselect upon layer change"), "/options/selection/layerdeselect", true);
 
     _page_select.add_group_header( _("Ctrl+A, Tab, Shift+Tab:"));
     _page_select.add_line( true, "", _sel_all, "",
@@ -695,16 +719,16 @@ void InkscapePreferences::initPageSelecting()
 
 void InkscapePreferences::initPageImportExport()
 {
-    _importexport_export.init("dialogs.export.defaultxdpi", "value", 0.0, 6000.0, 1.0, 1.0, PX_PER_IN, true, false);
+    _importexport_export.init("/dialogs/export/defaultxdpi/value", 0.0, 6000.0, 1.0, 1.0, PX_PER_IN, true, false);
     _page_importexport.add_line( false, _("Default export resolution:"), _importexport_export, _("dpi"),
                             _("Default bitmap resolution (in dots per inch) in the Export dialog"), false);
-    _importexport_ocal_url.init("options.ocalurl", "str", true, g_strdup_printf("openclipart.org"));
+    _importexport_ocal_url.init("/options/ocalurl/str", true, g_strdup_printf("openclipart.org"));
     _page_importexport.add_line( false, _("Open Clip Art Library Server Name:"), _importexport_ocal_url, "",
         _("The server name of the Open Clip Art Library webdav server. It's used by the Import and Export to OCAL function."), true);
-    _importexport_ocal_username.init("options.ocalusername", "str", true);
+    _importexport_ocal_username.init("/options/ocalusername/str", true);
     _page_importexport.add_line( false, _("Open Clip Art Library Username:"), _importexport_ocal_username, "",
             _("The username used to log into Open Clip Art Library."), true);
-    _importexport_ocal_password.init("options.ocalpassword", "str", false);
+    _importexport_ocal_password.init("/options/ocalpassword/str", false);
     _page_importexport.add_line( false, _("Open Clip Art Library Password:"), _importexport_ocal_password, "",
             _("The password used to log into Open Clip Art Library."), true);
 
@@ -717,13 +741,13 @@ static void profileComboChanged( Gtk::ComboBoxText* combo )
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     int rowNum = combo->get_active_row_number();
     if ( rowNum < 1 ) {
-        prefs->setString("options.displayprofile", "uri", "");
+        prefs->setString("/options/displayprofile/uri", "");
     } else {
         Glib::ustring active = combo->get_active_text();
 
         Glib::ustring path = get_path_for_profile(active);
         if ( !path.empty() ) {
-            prefs->setString("options.displayprofile", "uri", path);
+            prefs->setString("/options/displayprofile/uri", path);
         }
     }
 }
@@ -735,7 +759,7 @@ static void proofComboChanged( Gtk::ComboBoxText* combo )
     
     if ( !path.empty() ) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString("options.softproof", "uri", path);
+        prefs->setString("/options/softproof/uri", path);
     }
 }
 
@@ -748,7 +772,7 @@ static void gamutColorChanged( Gtk::ColorButton* btn ) {
     gchar* tmp = g_strdup_printf("#%02x%02x%02x", (r >> 8), (g >> 8), (b >> 8) );
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setString("options.softproof", "gamutcolor", tmp);
+    prefs->setString("/options/softproof/gamutcolor", tmp);
     g_free(tmp);
 }
 #endif // ENABLE_LCMS
@@ -771,7 +795,7 @@ void InkscapePreferences::initPageCMS()
     _page_cms.add_line( false, _("Display profile:"), _cms_display_profile, "",
                         _("The ICC profile to use to calibrate display output."), false);
 
-    _cms_from_display.init( _("Retrieve profile from display"), "options.displayprofile", "from_display", false);
+    _cms_from_display.init( _("Retrieve profile from display"), "/options/displayprofile/from_display", false);
     _page_cms.add_line( false, "", _cms_from_display, "",
 #ifdef GDK_WINDOWING_X11
                         _("Retrieve profiles from those attached to displays via XICC."), false);
@@ -780,21 +804,21 @@ void InkscapePreferences::initPageCMS()
 #endif // GDK_WINDOWING_X11
 
 
-    _cms_intent.init("options.displayprofile", "intent", intentLabels, intentValues, numIntents, 0);
+    _cms_intent.init("/options/displayprofile/intent", intentLabels, intentValues, numIntents, 0);
     _page_cms.add_line( false, _("Display rendering intent:"), _cms_intent, "",
                         _("The rendering intent to use to calibrate display output."), false);
 
     _page_cms.add_group_header( _("Proofing"));
 
-    _cms_softproof.init( _("Simulate output on screen"), "options.softproof", "enable", false);
+    _cms_softproof.init( _("Simulate output on screen"), "/options/softproof/enable", false);
     _page_cms.add_line( false, "", _cms_softproof, "",
                         _("Simulates output of target device."), false);
 
-    _cms_gamutwarn.init( _("Mark out of gamut colors"), "options.softproof", "gamutwarn", false);
+    _cms_gamutwarn.init( _("Mark out of gamut colors"), "/options/softproof/gamutwarn", false);
     _page_cms.add_line( false, "", _cms_gamutwarn, "",
                         _("Highlights colors that are out of gamut for the target device."), false);
 
-    Glib::ustring colorStr = prefs->getString("options.softproof", "gamutcolor");
+    Glib::ustring colorStr = prefs->getString("/options/softproof/gamutcolor");
     Gdk::Color tmpColor( colorStr.empty() ? "#00ff00" : colorStr);
     _cms_gamutcolor.set_color( tmpColor );
     _page_cms.add_line( true, _("Out of gamut warning color:"), _cms_gamutcolor, "",
@@ -803,15 +827,15 @@ void InkscapePreferences::initPageCMS()
     _page_cms.add_line( false, _("Device profile:"), _cms_proof_profile, "",
                         _("The ICC profile to use to simulate device output."), false);
 
-    _cms_proof_intent.init("options.softproof", "intent", intentLabels, intentValues, numIntents, 0);
+    _cms_proof_intent.init("/options/softproof/intent", intentLabels, intentValues, numIntents, 0);
     _page_cms.add_line( false, _("Device rendering intent:"), _cms_proof_intent, "",
                         _("The rendering intent to use to calibrate display output."), false);
 
-    _cms_proof_blackpoint.init( _("Black point compensation"), "options.softproof", "bpc", false);
+    _cms_proof_blackpoint.init( _("Black point compensation"), "/options/softproof/bpc", false);
     _page_cms.add_line( false, "", _cms_proof_blackpoint, "",
                         _("Enables black point compensation."), false);
 
-    _cms_proof_preserveblack.init( _("Preserve black"), "options.softproof", "preserveblack", false);
+    _cms_proof_preserveblack.init( _("Preserve black"), "/options/softproof/preserveblack", false);
     _page_cms.add_line( false, "", _cms_proof_preserveblack,
 #if defined(cmsFLAGS_PRESERVEBLACK)
                         "",
@@ -828,7 +852,7 @@ void InkscapePreferences::initPageCMS()
 #if ENABLE_LCMS
     {
         std::vector<Glib::ustring> names = ::Inkscape::colorprofile_get_display_names();
-        Glib::ustring current = prefs->getString( "options.displayprofile", "uri" );
+        Glib::ustring current = prefs->getString( "/options/displayprofile/uri" );
 
         gint index = 0;
         _cms_display_profile.append_text(_("<none>"));
@@ -846,7 +870,7 @@ void InkscapePreferences::initPageCMS()
         }
 
         names = ::Inkscape::colorprofile_get_softproof_names();
-        current = prefs->getString("options.softproof", "uri");
+        current = prefs->getString("/options/softproof/uri");
         index = 0;
         for ( std::vector<Glib::ustring>::iterator it = names.begin(); it != names.end(); ++it ) {
             _cms_proof_profile.append_text( *it );
@@ -883,7 +907,7 @@ void InkscapePreferences::initPageGrids()
 {
     _page_grids.add_group_header( _("Major grid line emphasizing"));
 
-    _grids_no_emphasize_on_zoom.init( _("Don't emphasize gridlines when zoomed out"), "options.grids", "no_emphasize_when_zoomedout", false);
+    _grids_no_emphasize_on_zoom.init( _("Don't emphasize gridlines when zoomed out"), "/options/grids/no_emphasize_when_zoomedout", false);
     _page_grids.add_line( false, "", _grids_no_emphasize_on_zoom, "", _("If set and zoomed out, the gridlines will be shown in normal color instead of major grid line color."), false);
 
     _page_grids.add_group_header( _("Default grid settings"));
@@ -891,44 +915,44 @@ void InkscapePreferences::initPageGrids()
     _page_grids.add_line( false, "", _grids_notebook, "", "", false);
     _grids_notebook.append_page(_grids_xy,     CanvasGrid::getName( GRID_RECTANGULAR ));
     _grids_notebook.append_page(_grids_axonom, CanvasGrid::getName( GRID_AXONOMETRIC ));
-        _grids_xy_units.init("options.grids.xy", "units");
+        _grids_xy_units.init("/options/grids/units");
         _grids_xy.add_line( false, _("Grid units:"), _grids_xy_units, "", "", false);
-        _grids_xy_origin_x.init("options.grids.xy", "origin_x", -10000.0, 10000.0, 0.1, 1.0, 0.0, false, false);
-        _grids_xy_origin_y.init("options.grids.xy", "origin_y", -10000.0, 10000.0, 0.1, 1.0, 0.0, false, false);
+        _grids_xy_origin_x.init("/options/grids/xy/origin_x", -10000.0, 10000.0, 0.1, 1.0, 0.0, false, false);
+        _grids_xy_origin_y.init("/options/grids/xy/origin_y", -10000.0, 10000.0, 0.1, 1.0, 0.0, false, false);
         _grids_xy.add_line( false, _("Origin X:"), _grids_xy_origin_x, "", _("X coordinate of grid origin"), false);
         _grids_xy.add_line( false, _("Origin Y:"), _grids_xy_origin_y, "", _("Y coordinate of grid origin"), false);
-        _grids_xy_spacing_x.init("options.grids.xy", "spacing_x", -10000.0, 10000.0, 0.1, 1.0, 1.0, false, false);
-        _grids_xy_spacing_y.init("options.grids.xy", "spacing_y", -10000.0, 10000.0, 0.1, 1.0, 1.0, false, false);
+        _grids_xy_spacing_x.init("/options/grids/xy/spacing_x", -10000.0, 10000.0, 0.1, 1.0, 1.0, false, false);
+        _grids_xy_spacing_y.init("/options/grids/xy/spacing_y", -10000.0, 10000.0, 0.1, 1.0, 1.0, false, false);
         _grids_xy.add_line( false, _("Spacing X:"), _grids_xy_spacing_x, "", _("Distance between vertical grid lines"), false);
         _grids_xy.add_line( false, _("Spacing Y:"), _grids_xy_spacing_y, "", _("Distance between horizontal grid lines"), false);
 
-        _grids_xy_color.init(_("Grid line color:"), "options.grids.xy", "color", 0x0000ff20);
+        _grids_xy_color.init(_("Grid line color:"), "/options/grids/xy/color", 0x0000ff20);
         _grids_xy.add_line( false, _("Grid line color:"), _grids_xy_color, "", _("Color used for normal grid lines"), false);
-        _grids_xy_empcolor.init(_("Major grid line color:"), "options.grids.xy", "empcolor", 0x0000ff40);
+        _grids_xy_empcolor.init(_("Major grid line color:"), "/options/grids/xy/empcolor", 0x0000ff40);
         _grids_xy.add_line( false, _("Major grid line color:"), _grids_xy_empcolor, "", _("Color used for major (highlighted) grid lines"), false);
-        _grids_xy_empspacing.init("options.grids.xy", "empspacing", 1.0, 1000.0, 1.0, 5.0, 5.0, true, false);
+        _grids_xy_empspacing.init("/options/grids/xy/empspacing", 1.0, 1000.0, 1.0, 5.0, 5.0, true, false);
         _grids_xy.add_line( false, _("Major grid line every:"), _grids_xy_empspacing, "", "", false);
-        _grids_xy_dotted.init( _("Show dots instead of lines"), "options.grids.xy", "dotted", false);
+        _grids_xy_dotted.init( _("Show dots instead of lines"), "/options/grids/xy/dotted", false);
         _grids_xy.add_line( false, "", _grids_xy_dotted, "", _("If set, display dots at gridpoints instead of gridlines"), false);
 
     // CanvasAxonomGrid properties:
-        _grids_axonom_units.init("options.grids.axonom", "units");
+        _grids_axonom_units.init("/options/grids/axonom/units");
         _grids_axonom.add_line( false, _("Grid units:"), _grids_axonom_units, "", "", false);
-        _grids_axonom_origin_x.init("options.grids.axonom", "origin_x", -10000.0, 10000.0, 0.1, 1.0, 0.0, false, false);
-        _grids_axonom_origin_y.init("options.grids.axonom", "origin_y", -10000.0, 10000.0, 0.1, 1.0, 0.0, false, false);
+        _grids_axonom_origin_x.init("/options/grids/axonom/origin_x", -10000.0, 10000.0, 0.1, 1.0, 0.0, false, false);
+        _grids_axonom_origin_y.init("/options/grids/axonom/origin_y", -10000.0, 10000.0, 0.1, 1.0, 0.0, false, false);
         _grids_axonom.add_line( false, _("Origin X:"), _grids_axonom_origin_x, "", _("X coordinate of grid origin"), false);
         _grids_axonom.add_line( false, _("Origin Y:"), _grids_axonom_origin_y, "", _("Y coordinate of grid origin"), false);
-        _grids_axonom_spacing_y.init("options.grids.axonom", "spacing_y", -10000.0, 10000.0, 0.1, 1.0, 1.0, false, false);
+        _grids_axonom_spacing_y.init("/options/grids/axonom/spacing_y", -10000.0, 10000.0, 0.1, 1.0, 1.0, false, false);
         _grids_axonom.add_line( false, _("Spacing Y:"), _grids_axonom_spacing_y, "", _("Base length of z-axis"), false);
-        _grids_axonom_angle_x.init("options.grids.axonom", "angle_x", -360.0, 360.0, 1.0, 10.0, 30.0, false, false);
-        _grids_axonom_angle_z.init("options.grids.axonom", "angle_z", -360.0, 360.0, 1.0, 10.0, 30.0, false, false);
+        _grids_axonom_angle_x.init("/options/grids/axonom/angle_x", -360.0, 360.0, 1.0, 10.0, 30.0, false, false);
+        _grids_axonom_angle_z.init("/options/grids/axonom/angle_z", -360.0, 360.0, 1.0, 10.0, 30.0, false, false);
         _grids_axonom.add_line( false, _("Angle X:"), _grids_axonom_angle_x, "", _("Angle of x-axis"), false);
         _grids_axonom.add_line( false, _("Angle Z:"), _grids_axonom_angle_z, "", _("Angle of z-axis"), false);
-        _grids_axonom_color.init(_("Grid line color:"), "options.grids.axonom", "color", 0x0000ff20);
+        _grids_axonom_color.init(_("Grid line color:"), "/options/grids/axonom/color", 0x0000ff20);
         _grids_axonom.add_line( false, _("Grid line color:"), _grids_axonom_color, "", _("Color used for normal grid lines"), false);
-        _grids_axonom_empcolor.init(_("Major grid line color:"), "options.grids.axonom", "empcolor", 0x0000ff40);
+        _grids_axonom_empcolor.init(_("Major grid line color:"), "/options/grids/axonom/empcolor", 0x0000ff40);
         _grids_axonom.add_line( false, _("Major grid line color:"), _grids_axonom_empcolor, "", _("Color used for major (highlighted) grid lines"), false);
-        _grids_axonom_empspacing.init("options.grids.axonom", "empspacing", 1.0, 1000.0, 1.0, 5.0, 5.0, true, false);
+        _grids_axonom_empspacing.init("/options/grids/axonom/empspacing", 1.0, 1000.0, 1.0, 5.0, 5.0, true, false);
         _grids_axonom.add_line( false, _("Major grid line every:"), _grids_axonom_empspacing, "", "", false);
 
     this->AddPage(_page_grids, _("Grids"), PREFS_PAGE_GRIDS);
@@ -936,31 +960,31 @@ void InkscapePreferences::initPageGrids()
 
 void InkscapePreferences::initPageSVGOutput()
 {
-    _svgoutput_usenamedcolors.init( _("Use named colors"), "options.svgoutput", "usenamedcolors", false);
+    _svgoutput_usenamedcolors.init( _("Use named colors"), "/options/svgoutput/usenamedcolors", false);
     _page_svgoutput.add_line( false, "", _svgoutput_usenamedcolors, "", _("If set, write the CSS name of the color when available (e.g. 'red' or 'magenta') instead of the numeric value"), false);
 
     _page_svgoutput.add_group_header( _("XML formatting"));
 
-    _svgoutput_inlineattrs.init( _("Inline attributes"), "options.svgoutput", "inlineattrs", false);
+    _svgoutput_inlineattrs.init( _("Inline attributes"), "/options/svgoutput/inlineattrs", false);
     _page_svgoutput.add_line( false, "", _svgoutput_inlineattrs, "", _("Put attributes on the same line as the element tag"), false);
 
-    _svgoutput_indent.init("options.svgoutput", "indent", 0.0, 1000.0, 1.0, 2.0, 2.0, true, false);
+    _svgoutput_indent.init("/options/svgoutput/indent", 0.0, 1000.0, 1.0, 2.0, 2.0, true, false);
     _page_svgoutput.add_line( false, _("Indent, spaces:"), _svgoutput_indent, "", _("The number of spaces to use for indenting nested elements; set to 0 for no indentation"), false);
 
     _page_svgoutput.add_group_header( _("Path data"));
 
-    _svgoutput_allowrelativecoordinates.init( _("Allow relative coordinates"), "options.svgoutput", "allowrelativecoordinates", true);
+    _svgoutput_allowrelativecoordinates.init( _("Allow relative coordinates"), "/options/svgoutput/allowrelativecoordinates", true);
     _page_svgoutput.add_line( false, "", _svgoutput_allowrelativecoordinates, "", _("If set, relative coordinates may be used in path data"), false);
 
-    _svgoutput_forcerepeatcommands.init( _("Force repeat commands"), "options.svgoutput", "forcerepeatcommands", false);
+    _svgoutput_forcerepeatcommands.init( _("Force repeat commands"), "/options/svgoutput/forcerepeatcommands", false);
     _page_svgoutput.add_line( false, "", _svgoutput_forcerepeatcommands, "", _("Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead of 'L 1,2 3,4')"), false);
 
     _page_svgoutput.add_group_header( _("Numbers"));
 
-    _svgoutput_numericprecision.init("options.svgoutput", "numericprecision", 1.0, 16.0, 1.0, 2.0, 8.0, true, false);
+    _svgoutput_numericprecision.init("/options/svgoutput/numericprecision", 1.0, 16.0, 1.0, 2.0, 8.0, true, false);
     _page_svgoutput.add_line( false, _("Numeric precision:"), _svgoutput_numericprecision, "", _("How many digits to write after the decimal dot"), false);
 
-    _svgoutput_minimumexponent.init("options.svgoutput", "minimumexponent", -32.0, -1, 1.0, 2.0, -8.0, true, false);
+    _svgoutput_minimumexponent.init("/options/svgoutput/minimumexponent", -32.0, -1, 1.0, 2.0, -8.0, true, false);
     _page_svgoutput.add_line( false, _("Minimum exponent:"), _svgoutput_minimumexponent, "", _("The smallest number written to SVG is 10 to the power of this exponent; anything smaller is written as zero."), false);
 
     this->AddPage(_page_svgoutput, _("SVG output"), PREFS_PAGE_SVGOUTPUT);
@@ -971,19 +995,19 @@ void InkscapePreferences::initPageUI()
      Glib::ustring sizeLabels[] = {_("Normal"), _("Medium"), _("Small")};
     int sizeValues[] = {0, 1, 2};
 
-    _misc_small_toolbar.init( "toolbox", "small", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 0 );
+    _misc_small_toolbar.init( "/toolbox/small", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 0 );
     _page_ui.add_line( false, _("Commands bar icon size"), _misc_small_toolbar, "",
                               _("Set the size for the commands toolbar to use (requires restart)"), false);
 
-    _misc_small_secondary.init( "toolbox", "secondary", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 1 );
+    _misc_small_secondary.init( "/toolbox/secondary", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 1 );
     _page_ui.add_line( false, _("Tool controls bar icon size"), _misc_small_secondary, "",
                               _("Set the size for the secondary toolbar to use (requires restart)"), false);
 
-    _misc_small_tools.init( "toolbox.tools", "small", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 0 );
+    _misc_small_tools.init( "/toolbox/tools/small", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 0 );
     _page_ui.add_line( false, _("Main toolbar icon size"), _misc_small_tools, "",
                               _("Set the size for the main tools to use (requires restart)"), false);
 
-    _misc_recent.init("options.maxrecentdocuments", "value", 0.0, 1000.0, 1.0, 1.0, 1.0, true, false);
+    _misc_recent.init("/options/maxrecentdocuments/value", 0.0, 1000.0, 1.0, 1.0, 1.0, true, false);
     _page_ui.add_line( false, _("Maximum documents in Open Recent:"), _misc_recent, "",
                               _("The maximum length of the Open Recent list in the File menu"), false);
 
@@ -998,13 +1022,13 @@ void InkscapePreferences::initPageUI()
 void InkscapePreferences::initPageAutosave()
 {
     // Autosave options 
-    _autosave_autosave_enable.init( _("Enable autosave (requires restart)"), "options.autosave", "enable", false);
+    _autosave_autosave_enable.init( _("Enable autosave (requires restart)"), "/options/autosave/enable", false);
     _page_autosave.add_line(false, "", _autosave_autosave_enable, "", _("Automatically save the current document(s) at a given interval, thus minimizing loss in case of a crash"), false);
-    _autosave_autosave_interval.init("options.autosave", "interval", 1.0, 10800.0, 1.0, 10.0, 10.0, true, false);
+    _autosave_autosave_interval.init("/options/autosave/interval", 1.0, 10800.0, 1.0, 10.0, 10.0, true, false);
     _page_autosave.add_line(true, _("Interval (in minutes):"), _autosave_autosave_interval, "", _("Interval (in minutes) at which document will be autosaved"), false);
-    _autosave_autosave_path.init("options.autosave", "path", true);
+    _autosave_autosave_path.init("/options/autosave/path", true);
     _page_autosave.add_line(true, _("Path:"), _autosave_autosave_path, "", _("The directory where autosaves will be written"), false);
-    _autosave_autosave_max.init("options.autosave", "max", 1.0, 100.0, 1.0, 10.0, 10.0, true, false);
+    _autosave_autosave_max.init("/options/autosave/max", 1.0, 100.0, 1.0, 10.0, 10.0, true, false);
     _page_autosave.add_line(true, _("Maximum number of autosaves:"), _autosave_autosave_max, "", _("Maximum number of autosaved files; use this to limit the storage space used"), false);
 
     /* When changing the interval or enabling/disabling the autosave function,
@@ -1012,9 +1036,7 @@ void InkscapePreferences::initPageAutosave()
      *
      * FIXME!
      * the inkscape_autosave_init should be called AFTER the values have been changed
-     * (which cannot be guaranteed from here)
-     *
-     * For now, autosave-settings will not change until restart
+     * (which cannot be guaranteed from here) - use a PrefObserver somewhere
      */
     /*
     _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE );
@@ -1032,15 +1054,15 @@ void InkscapePreferences::initPageBitmaps()
         Glib::ustring labels[] = {_("None"), _("2x2"), _("4x4"), _("8x8"), _("16x16")};
         int values[] = {0, 1, 2, 3, 4};
         _misc_overs_bitmap.set_size_request(_sb_width);
-        _misc_overs_bitmap.init("options.bitmapoversample", "value", labels, values, G_N_ELEMENTS(values), 1);
+        _misc_overs_bitmap.init("/options/bitmapoversample/value", labels, values, G_N_ELEMENTS(values), 1);
         _page_bitmaps.add_line( false, _("Oversample bitmaps:"), _misc_overs_bitmap, "", "", false);
     }
 
-    _misc_bitmap_autoreload.init(_("Automatically reload bitmaps"), "options.bitmapautoreload", "value", true);
+    _misc_bitmap_autoreload.init(_("Automatically reload bitmaps"), "/options/bitmapautoreload/value", true);
     _page_bitmaps.add_line( false, "", _misc_bitmap_autoreload, "",
                            _("Automatically reload linked images when file is changed on disk"));
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring choices = prefs->getString("options.bitmapeditor", "choices");
+    Glib::ustring choices = prefs->getString("/options/bitmapeditor/choices");
     if (!choices.empty()) {
         gchar** splits = g_strsplit(choices.data(), ",", 0);
         gint numIems = g_strv_length(splits);
@@ -1051,13 +1073,13 @@ void InkscapePreferences::initPageBitmaps()
             values[i] = i;
             labels[i] = splits[i];
         }
-        _misc_bitmap_editor.init("options.bitmapeditor", "value", labels, values, numIems, 0);
+        _misc_bitmap_editor.init("/options/bitmapeditor/value", labels, values, numIems, 0);
         _page_bitmaps.add_line( false, _("Bitmap editor:"), _misc_bitmap_editor, "", "", false);
 
         g_strfreev(splits);
     }
 
-    _bitmap_copy_res.init("options.createbitmap", "resolution", 1.0, 6000.0, 1.0, 1.0, PX_PER_IN, true, false);
+    _bitmap_copy_res.init("/options/createbitmap/resolution", 1.0, 6000.0, 1.0, 1.0, PX_PER_IN, true, false);
     _page_bitmaps.add_line( false, _("Resolution for Create Bitmap Copy:"), _bitmap_copy_res, _("dpi"),
                             _("Resolution used by the Create Bitmap Copy command"), false);
 
@@ -1067,23 +1089,23 @@ void InkscapePreferences::initPageBitmaps()
 
 void InkscapePreferences::initPageMisc()
 {
-    _misc_comment.init( _("Add label comments to printing output"), "printing.debug", "show-label-comments", false);
+    _misc_comment.init( _("Add label comments to printing output"), "/printing/debug/show-label-comments", false);
     _page_misc.add_line( false, "", _misc_comment, "",
                            _("When on, a comment will be added to the raw print output, marking the rendered output for an object with its label"), true);
 
-    _misc_forkvectors.init( _("Prevent sharing of gradient definitions"), "options.forkgradientvectors", "value", true);
+    _misc_forkvectors.init( _("Prevent sharing of gradient definitions"), "/options/forkgradientvectors/value", true);
     _page_misc.add_line( false, "", _misc_forkvectors, "",
                            _("When on, shared gradient definitions are automatically forked on change; uncheck to allow sharing of gradient definitions so that editing one object may affect other objects using the same gradient"), true);
 
-    _misc_simpl.init("options.simplifythreshold", "value", 0.0001, 1.0, 0.0001, 0.0010, 0.0010, false, false);
+    _misc_simpl.init("/options/simplifythreshold/value", 0.0001, 1.0, 0.0001, 0.0010, 0.0010, false, false);
     _page_misc.add_line( false, _("Simplification threshold:"), _misc_simpl, "",
                            _("How strong is the 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."), false);
 
-    _misc_latency_skew.init("debug.latency", "skew", 0.5, 2.0, 0.01, 0.10, 1.0, false, false);
+    _misc_latency_skew.init("/debug/latency/skew", 0.5, 2.0, 0.01, 0.10, 1.0, false, false);
     _page_misc.add_line( false, _("Latency skew:"), _misc_latency_skew, _("(requires restart)"),
                            _("Factor by which the event clock is skewed from the actual time (0.9766 on some systems)."), false);
 
-    _misc_namedicon_delay.init( _("Pre-render named icons"), "options.iconrender", "named_nodelay", false);
+    _misc_namedicon_delay.init( _("Pre-render named icons"), "/options/iconrender/named_nodelay", false);
     _page_misc.add_line( false, "", _misc_namedicon_delay, "",
                            _("When on, named icons will be rendered before displaying the ui. This is for working around bugs in GTK+ named icon notification"), true);
 
@@ -1108,7 +1130,7 @@ bool InkscapePreferences::PresentPage(const Gtk::TreeModel::iterator& iter)
 {
     Gtk::TreeModel::Row row = *iter;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    int desired_page = prefs->getInt("dialogs.preferences", "page", 0);
+    int desired_page = prefs->getInt("/dialogs/preferences/page", 0);
     if (desired_page == row[_page_list_columns._col_id])
     {
         if (desired_page >= PREFS_PAGE_TOOLS && desired_page <= PREFS_PAGE_TOOLS_DROPPER)
@@ -1133,7 +1155,7 @@ void InkscapePreferences::on_pagelist_selection_changed()
         Gtk::TreeModel::Row row = *iter;
         _current_page = row[_page_list_columns._col_page];
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setInt("dialogs.preferences", "page", row[_page_list_columns._col_id]);
+        prefs->setInt("/dialogs/preferences/page", row[_page_list_columns._col_id]);
         _page_title.set_markup("<span size='large'><b>" + row[_page_list_columns._col_name] + "</b></span>");
         _page_frame.add(*_current_page);
         _current_page->show();
index 02794d0e223b47052cb8046b5e4c51ad032e4382..98ecda855f333778ed8bae3b3f1ff1464bdbd057 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * brief Inkscape Preferences dialog
- *
- * Authors:
+/** @file
+ * @brief Inkscape Preferences dialog
+ */
+/* Authors:
  *   Carl Hetherington
  *   Marco Scholten
  *   Johan Engelen <j.b.c.engelen@ewi.utwente.nl>
@@ -158,6 +158,7 @@ protected:
     PrefCheckButton _mask_mask_remove;
 
     PrefRadioButton _blur_quality_best, _blur_quality_better, _blur_quality_normal, _blur_quality_worse, _blur_quality_worst;
+    PrefRadioButton _filter_quality_best, _filter_quality_better, _filter_quality_normal, _filter_quality_worse, _filter_quality_worst;
     PrefCheckButton _show_filters_info_box;
 
     PrefCheckButton _trans_scale_stroke, _trans_scale_corner, _trans_gradient,_trans_pattern;
index 25f1237977508568ed7a9d355067334ac627960f..ae8594e5008b245f6b25025136143e4ec5ec3a45 100644 (file)
@@ -1,4 +1,37 @@
+/** @file
+ * @brief Input devices dialog (new) - implementation
+ */
+/* Author:
+ *   Jon A. Cruz
+ *
+ * Copyright (C) 2008 Author
+ * Released under GNU GPL.  Read the file 'COPYING' for more information.
+ */
 
+#include <map>
+#include <set>
+#include <glib/gprintf.h>
+#include <glibmm/i18n.h>
+#include <gtkmm/comboboxtext.h>
+#include <gtkmm/enums.h>
+#include <gtkmm/eventbox.h>
+#include <gtkmm/frame.h>
+#include <gtkmm/image.h>
+#include <gtkmm/menubar.h>
+#include <gtkmm/notebook.h>
+#include <gtkmm/paned.h>
+#include <gtkmm/progressbar.h>
+#include <gtkmm/scrolledwindow.h>
+#include <gtkmm/table.h>
+#include <gtkmm/treemodel.h>
+#include <gtkmm/treemodelcolumn.h>
+#include <gtkmm/treestore.h>
+#include <gtkmm/treeview.h>
+
+#include "ui/widget/panel.h"
+#include "device-manager.h"
+
+#include "input.h"
 
 /* XPM */
 static char const * core_xpm[] = {
@@ -282,35 +315,6 @@ static char const * axis_on_xpm[] = {
 "  ....................  ",
 "                        "};
 
-
-
-
-
-#include <map>
-#include <set>
-#include <glib/gprintf.h>
-#include <glibmm/i18n.h>
-#include <gtkmm/comboboxtext.h>
-#include <gtkmm/enums.h>
-#include <gtkmm/eventbox.h>
-#include <gtkmm/frame.h>
-#include <gtkmm/image.h>
-#include <gtkmm/menubar.h>
-#include <gtkmm/notebook.h>
-#include <gtkmm/paned.h>
-#include <gtkmm/progressbar.h>
-#include <gtkmm/scrolledwindow.h>
-#include <gtkmm/table.h>
-#include <gtkmm/treemodel.h>
-#include <gtkmm/treemodelcolumn.h>
-#include <gtkmm/treestore.h>
-#include <gtkmm/treeview.h>
-
-#include "ui/widget/panel.h"
-#include "device-manager.h"
-
-#include "input.h"
-
 using Inkscape::InputDevice;
 
 namespace Inkscape {
index b3cd97a4473ad2c3903e9bf8f26e9cb6eb5d96cb..38666f52c41bb8d4571482503c4ce42a57f7bbb6 100644 (file)
@@ -1,3 +1,12 @@
+/** @file
+ * @brief Input devices dialog (new)
+ */
+/* Author:
+ *   Jon A. Cruz
+ *
+ * Copyright (C) 2008 Author
+ * Released under GNU GPL.  Read the file 'COPYING' for more information.
+ */
 
 #ifndef INKSCAPE_UI_DIALOG_INPUT_H
 #define INKSCAPE_UI_DIALOG_INPUT_H
@@ -16,7 +25,7 @@ class InputDialog : public UI::Widget::Panel
 public:
     static InputDialog &getInstance();
 
-    InputDialog() : UI::Widget::Panel("", "dialogs.inputdevices2", SP_VERB_DIALOG_INPUT2) {}
+    InputDialog() : UI::Widget::Panel("", "/dialogs/inputdevices2", SP_VERB_DIALOG_INPUT2) {}
     virtual ~InputDialog() {}
 };
 
index 73d26b67e049861dca2ee651cb0284aaf5c41fea..8a7e0adebdd571f9a31df11afbaee0ab0dcedf7c 100644 (file)
@@ -1,13 +1,12 @@
-/**
- * \brief LivePathEffect dialog
- *
- * Authors:
+/** @file
+ * @brief Live Path Effect editing dialog - implementation
+ */
+/* Authors:
  *   Johan Engelen <j.b.c.engelen@utwente.nl>
  *   Steren Giannini <steren.giannini@gmail.com>
  *   Bastien Bouclet <bgkweb@gmail.com>
  *
- * Copyright (C) 2007 Author
- *
+ * Copyright (C) 2007 Authors
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
@@ -68,7 +67,7 @@ static void lpeeditor_selection_modified (Inkscape::Selection * selection, guint
  */
 
 LivePathEffectEditor::LivePathEffectEditor()
-    : UI::Widget::Panel("", "dialogs.livepatheffect", SP_VERB_DIALOG_LIVE_PATH_EFFECT),
+    : UI::Widget::Panel("", "/dialogs/livepatheffect", SP_VERB_DIALOG_LIVE_PATH_EFFECT),
       lpe_list_locked(false),
       combo_effecttype(Inkscape::LivePathEffect::LPETypeConverter),
       effectwidget(NULL),
index 49db74fca9351f2863bc57b543d09b270718f82f..370bd599af6833a40ce4522c41b839d822fddded 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * \brief LivePathEffect dialog
- *
- * Author:
+/** @file
+ * @brief Live Path Effect editing dialog
+ */
+/* Author:
  *   Johan Engelen <j.b.c.engelen@ewi.utwente.nl>
  *
  * Copyright (C) 2007 Author
- *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
index 1931976d6b2c106098b459a076dd7cbe719bf537..a80c7b449c483392a65cf03f7011af16070b1ac2 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief Memory statistics dialog
- *
- * Authors:
+/** @file
+ * @brief Memory statistics dialog
+ */
+/* Authors:
  *   MenTaLguY <mental@rydia.net>
  *
  * Copyright (C) 2005 
@@ -204,7 +204,7 @@ void Memory::Private::stop_update_task() {
 }
 
 Memory::Memory() 
-    : UI::Widget::Panel ("", "dialogs.memory", SP_VERB_HELP_MEMORY, _("Recalculate")),
+    : UI::Widget::Panel ("", "/dialogs/memory", SP_VERB_HELP_MEMORY, _("Recalculate")),
       _private(*(new Memory::Private())) 
 {
     _getContents()->add(_private.view);
index 6f832f3e1c4f64f67a7af8d84eee4cc18892a878..48dcc8f097728afdaa51f6dd0a374b4e0bd58ea9 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * \brief Memory statistics dialog
- *
- * Authors:
+/** @file
+ * @brief Memory statistics dialog
+ */
+/* Authors:
  *     MenTaLguY <mental@rydia.net>
  * 
  * Copyright 2005 Authors
- *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
index 7eaf23f5081db7a9bf05f660a0d871d3b89cd1bd..958256310997b494bf276e8891a4ea6758938aa7 100644 (file)
@@ -1,9 +1,7 @@
-/*
- * A very simple dialog for displaying Inkscape messages. Messages
- * sent to g_log(), g_warning(), g_message(), ets, are routed here,
- * in order to avoid messing with the startup console.
- *
- * Authors:
+/** @file
+ * @brief Messages dialog - implementation
+ */
+/* Authors:
  *   Bob Jamison
  *   Other dudes from The Inkscape Organization
  *
@@ -46,7 +44,7 @@ void Messages::clear()
  * Constructor
  */
 Messages::Messages()
-    : UI::Widget::Panel("", "dialogs.messages", SP_VERB_DIALOG_DEBUG)
+    : UI::Widget::Panel("", "/dialogs/messages", SP_VERB_DIALOG_DEBUG)
 {
     Gtk::Box *contents = _getContents();
 
@@ -183,6 +181,13 @@ void Messages::releaseLogMessages()
 } //namespace UI
 } //namespace Inkscape
 
-//#########################################################################
-//## E N D    O F    F I L E
-//#########################################################################
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 8dcb718cca1da996a8ac2100c48b1226d923404b..b0a9d812b7fd73592ca714e52309294341c6598c 100644 (file)
@@ -1,16 +1,15 @@
-/*
- * \brief Messages Dialog
+/** @file
+ * @brief Messages dialog
  *
  * A very simple dialog for displaying Inkscape messages. Messages
  * sent to g_log(), g_warning(), g_message(), ets, are routed here,
  * in order to avoid messing with the startup console.
- *
- * Authors:
+ */
+/* Authors:
  *   Bob Jamison
  *   Other dudes from The Inkscape Organization
  *
  * Copyright (C) 2004, 2005 Authors
- *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
index de22c16d66e15b24ab9b74d380e9a298a5b62bf4..ba572336cf50df620cc7555f6a4d18f1b270afeb 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * Implementation of the ocal dialog interfaces defined in ocaldialog.h
- *
- * Authors:
+/** @file
+ * @brief Open Clip Art Library integration dialogs - implementation
+ */
+/* Authors:
  *   Bruno Dilly
  *   Other dudes from The Inkscape Organization
  *
@@ -309,7 +309,7 @@ void FileListViewText::on_cursor_changed()
 
     //Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     //Glib::ustring fileUrl = "dav://"; //dav url
-    //fileUrl.append(prefs->getString("options.ocalurl", "str"));
+    //fileUrl.append(prefs->getString("/options/ocalurl/str"));
     //fileUrl.append("/dav.php/");
     //fileUrl.append(get_text(posArray[0], 3)); //author dir
     //fileUrl.append("/");
@@ -425,7 +425,7 @@ void FileImportFromOCALDialog::searchTagEntryChangedCallback()
     Glib::ustring searchTag = searchTagEntry->get_text();
     // create the ocal uri to get rss feed
     Glib::ustring uri = "http://";
-    uri.append(prefs->getString("options.ocalurl", "str"));
+    uri.append(prefs->getString("/options/ocalurl/str"));
     uri.append("/media/feed/rss/");
     uri.append(searchTag);
     if (!Glib::get_charset()) //If we are not utf8
index 0953e76bc98136772c4585a08e9570836bea4e6e..75d57fc592e6bba07a0b1c4cac3ec8bb6751cd78 100644 (file)
@@ -1,17 +1,16 @@
-#ifndef __OCAL_DIALOG_H__
-#define __OCAL_DIALOG_H__
-/**
- * Defines the FileExportToOCALDialog, FileImportFromOCALDialog and 
- * FileExportToOCALPasswordDialog and their supporting classes.
- *
- * Authors:
+/** @file
+ * @brief Open Clip Art Library integration dialogs
+ */
+/* Authors:
  *   Bruno Dilly <bruno.dilly@gmail.com>
  *   Inkscape Guys
  *
  * Copyright (C) 2007 Bruno Dilly <bruno.dilly@gmail.com>
- *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
+#ifndef __OCAL_DIALOG_H__
+#define __OCAL_DIALOG_H__
 
 #include <glibmm.h>
 #include <vector>
@@ -45,7 +44,6 @@
 #endif
 
 //Inkscape includes
-#include "prefs-utils.h"
 #include <extension/input.h>
 #include <extension/output.h>
 #include <extension/db.h>
index eebd323d6a54ed6ff252c5fd4295ad68de1e7fa2..f087f40e49ea6ceb4a2e2565732c817a88669347 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * \brief A panel holding dialog
- *
- * Authors:
+/** @file
+ * @brief A panel holding dialog
+ */
+/* Authors:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2007 Authors
- *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
@@ -23,7 +22,7 @@
 #include "dialogs/swatches.h"
 #include "ui/dialog/floating-behavior.h"
 #include "ui/dialog/dock-behavior.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 namespace Inkscape {
 namespace UI {
@@ -147,7 +146,8 @@ PanelDialog<B>::PanelDialog(Panel &panel, char const *prefs_path, int const verb
     _document_replaced_connection =
         desktop->connectDocumentReplaced(sigc::mem_fun(*this, &PanelDialog::_propagateDocumentReplaced));
 
-    if (prefs_get_int_attribute ("dialogs", "showclose", 0) || !apply_label.empty()) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/dialogs/showclose") || !apply_label.empty()) {
         // TODO: make the order of buttons obey the global preference
         if (!apply_label.empty()) {
             panel.addResponseButton(apply_label, Gtk::RESPONSE_APPLY);
@@ -198,7 +198,8 @@ PanelDialog<Behavior::FloatingBehavior>::PanelDialog(Panel &panel, char const *p
     _document_replaced_connection =
         desktop->connectDocumentReplaced(sigc::mem_fun(*this, &PanelDialog::_propagateDocumentReplaced));
 
-    if (prefs_get_int_attribute ("dialogs", "showclose", 0) || !apply_label.empty()) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/dialogs/showclose") || !apply_label.empty()) {
         // TODO: make the order of buttons obey the global preference
         if (!apply_label.empty()) {
             panel.addResponseButton(apply_label, Gtk::RESPONSE_APPLY);
index 9e848bd6a4268960733b24a3a63f7a2358dfa195..b2094f540b78589f24008ccb0b5d10a91792f0da 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * \brief Print dialog
- *
- * Authors:
+/** @file
+ * @brief Print dialog
+ */
+/* Authors:
  *   Kees Cook <kees@outflux.net>
  *
  * Copyright (C) 2007 Kees Cook
- *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
@@ -260,3 +259,14 @@ Gtk::PrintOperationResult Print::run(Gtk::PrintOperationAction, Gtk::Window &par
 } // namespace Dialog
 } // namespace UI
 } // namespace Inkscape
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index f6c69bdb87bddf2801422bd735f6a0b3488e3f00..ea89ebdf225c11128d4715347cf9d3c17d337780 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * \brief Print dialog
- *
- * Authors:
+/** @file
+ * @brief Print dialog
+ */
+/* Authors:
  *   Kees Cook <kees@outflux.net>
  *
  * Copyright (C) 2007 Kees Cook
- *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
index 7b299b700cdb9231e10eb8a1c9d4142c92fdb5e2..0e8a23baf75af137e8caf0c9dd7ea332b203f694 100644 (file)
@@ -1,7 +1,7 @@
-/**
- *  Dialog for executing and monitoring script execution
- *  
- * Author:  
+/** @file
+ * @brief Dialog for executing and monitoring script execution
+ */
+/* Author:  
  *   Bob Jamison
  *
  * Copyright (C) 2004-2008 Authors
@@ -270,9 +270,13 @@ ScriptDialog &ScriptDialog::getInstance()
 } //namespace UI
 } //namespace Inkscape
 
-//#########################################################################
-//## E N D    O F    F I L E
-//#########################################################################
-
-
-
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 780d44a92500accee5f45332eed6ff0a503fe24e..d0021ce68890659de12f1fab0bfd862b04426568 100644 (file)
@@ -1,10 +1,10 @@
-#ifndef __SCRIPTDIALOG_H__
-#define __SCRIPTDIALOG_H__
-/*
- * This dialog is for launching scripts whose main purpose if
- * the scripting of Inkscape itself.
+/** @file
+ * @brief Script dialog
  *
- * Authors:
+ * This dialog is for launching scripts whose main purpose is
+ * the scripting of Inkscape itself.
+ */
+/* Authors:
  *   Bob Jamison
  *   Other dudes from The Inkscape Organization
  *
@@ -13,6 +13,8 @@
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
+#ifndef __SCRIPTDIALOG_H__
+#define __SCRIPTDIALOG_H__
 
 #include "ui/widget/panel.h"
 #include "verbs.h"
@@ -35,7 +37,7 @@ class ScriptDialog : public UI::Widget::Panel
      * Constructor
      */
     ScriptDialog() : 
-     UI::Widget::Panel("", "dialogs.script", SP_VERB_DIALOG_SCRIPT)
+     UI::Widget::Panel("", "/dialogs/script", SP_VERB_DIALOG_SCRIPT)
     {}
 
 
@@ -62,8 +64,15 @@ class ScriptDialog : public UI::Widget::Panel
 } //namespace UI
 } //namespace Inkscape
 
-
-
-
 #endif /* __DEBUGDIALOG_H__ */
 
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index b378c0b5a96500a7cff365b687094ea387c7c171..b9a44fd984fa878c8b89fde91883d4398cada447 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * Whiteboard session playback control dialog
- *
- * Authors:
+/** @file
+ * @brief Whiteboard session playback control dialog - implementation
+ */
+/* Authors:
  * David Yip <yipdw@rose-hulman.edu>
  *
  * Copyright (c) 2005 Authors
- *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
@@ -228,3 +227,14 @@ SessionPlaybackDialogImpl::_respCallback(int resp)
 }
 
 }
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index fd2945bb04f703aaec8b43931e6dccd15b3bafa5..52377a73f1879140bfd2b9906e9ef47c4f631581 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * Whiteboard session playback control dialog
- *
- * Authors:
+/** @file
+ * @brief Whiteboard session playback control dialog
+ */
+/* Authors:
  * David Yip <yipdw@rose-hulman.edu>
  *
  * Copyright (c) 2005 Authors
- *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
@@ -38,7 +37,7 @@ namespace Dialog {
 
 class SessionPlaybackDialog : public Dialog {
 public:
-       SessionPlaybackDialog() : Dialog("dialogs.session_playback", SP_VERB_DIALOG_WHITEBOARD_SESSIONPLAYBACK)
+       SessionPlaybackDialog() : Dialog("/dialogs/session_playback", SP_VERB_DIALOG_WHITEBOARD_SESSIONPLAYBACK)
        {
 
        }
@@ -122,3 +121,14 @@ private:
 }
 
 #endif
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index fa81e84ca7e754aa68028be49c0efc037229ae61..6a27f6048aebf58f9e03b7631c8223af978d9b34 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * \brief SVG Fonts dialog
- *
- * Authors:
+/** @file
+ * @brief SVG Fonts dialog - implementation
+ */
+/* Authors:
  *   Felipe C. da S. Sanches <felipe.sanches@gmail.com>
  *
  * Copyright (C) 2008 Authors
- *
  * Released under GNU GPLv2 (or later).  Read the file 'COPYING' for more information.
  */
 
@@ -249,12 +248,12 @@ Gtk::VBox* SvgFontsDialog::global_settings_tab(){
     Gtk::VBox* global_vbox = Gtk::manage(new Gtk::VBox());
 
     AttrEntry* familyname;
-    familyname = new AttrEntry(this, (gchar*) "Family Name", SP_PROP_FONT_FAMILY);
+    familyname = new AttrEntry(this, (gchar*) _("Family Name:"), SP_PROP_FONT_FAMILY);
 
     global_vbox->add(*familyname);
-    global_vbox->add(*AttrCombo((gchar*) "Style", SP_PROP_FONT_STYLE));
-    global_vbox->add(*AttrCombo((gchar*) "Variant", SP_PROP_FONT_VARIANT));
-    global_vbox->add(*AttrCombo((gchar*) "Weight", SP_PROP_FONT_WEIGHT));
+    global_vbox->add(*AttrCombo((gchar*) _("Style:"), SP_PROP_FONT_STYLE));
+    global_vbox->add(*AttrCombo((gchar*) _("Variant:"), SP_PROP_FONT_VARIANT));
+    global_vbox->add(*AttrCombo((gchar*) _("Weight:"), SP_PROP_FONT_WEIGHT));
 
 //Set Width (horiz_adv_x):
     Gtk::HBox* setwidth_hbox = Gtk::manage(new Gtk::HBox());
@@ -271,8 +270,8 @@ Gtk::VBox* SvgFontsDialog::global_settings_tab(){
 
 Gtk::VBox* SvgFontsDialog::glyphs_tab(){
     Gtk::VBox* glyphs_vbox = Gtk::manage(new Gtk::VBox());
-    glyphs_vbox->add(*new SvgFontsDialog::AttrEntry(this, (gchar*) "Glyph Name", SP_ATTR_GLYPH_NAME));
-    glyphs_vbox->add(*new SvgFontsDialog::AttrEntry(this, (gchar*) "Unicode", SP_ATTR_UNICODE));
+    glyphs_vbox->add(*new SvgFontsDialog::AttrEntry(this, (gchar*) _("Glyph Name:"), SP_ATTR_GLYPH_NAME));
+    glyphs_vbox->add(*new SvgFontsDialog::AttrEntry(this, (gchar*) _("Unicode:"), SP_ATTR_UNICODE));
     //glyphs_vbox->add(*AttrSpin((gchar*) "Horizontal Advance"), SP_ATTR_HORIZ_ADV_X);
     //glyphs_vbox->add(*AttrCombo((gchar*) "Missing Glyph"), SP_ATTR_); ?
     return glyphs_vbox;
@@ -309,7 +308,7 @@ Gtk::VBox* SvgFontsDialog::kerning_tab(){
 }
 
 SvgFontsDialog::SvgFontsDialog()
- : UI::Widget::Panel("", "dialogs.svgfonts", SP_VERB_DIALOG_SVG_FONTS)
+ : UI::Widget::Panel("", "/dialogs/svgfonts", SP_VERB_DIALOG_SVG_FONTS)
 {
     Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox());
     hbox->add(_font_list);
index 8502a34686d168e682859f76ae3118fa09149d3a..f7d13a71498ffad0661abc0b3321dd6ec4fd978d 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * \brief SVG Fonts dialog
- *
- * Authors:
+/** @file
+ * @brief SVG Fonts dialog
+ */
+/* Authors:
  *   Felipe Corrêa da Silva Sanches <felipe.sanches@gmail.com>
  *
  * Copyright (C) 2008 Authors
- *
  * Released under GNU GPLv2 (or later).  Read the file 'COPYING' for more information.
  */
 
index 84d7978fb317b9d1717547265f5540a413ab9f56..6ec2da5de08ae19772076c08d2a469359feb1b2d 100644 (file)
@@ -1,8 +1,7 @@
-/*
- * A simple dialog for setting the parameters for autotracing a
- * bitmap <image> into an svg <path>
- *
- * Authors:
+/** @file
+ * @brief Bitmap tracing settings dialog - implementation
+ */
+/* Authors:
  *   Bob Jamison <rjamison@titan.com>
  *   Stéphane Gimenez <dev@gim.name>
  *   Other dudes from The Inkscape Organization
index 0933aee3be52d5ebc15b095800e33844579a15d6..9dc084cd61509b454479d3ab8fc763f1fefdceb2 100644 (file)
@@ -1,18 +1,16 @@
-#ifndef __TRACEDIALOG_H__
-#define __TRACEDIALOG_H__
-/*
- * A simple dialog for setting the parameters for autotracing a
- * bitmap <image> into an svg <path>
- *
- * Authors:
+/** @file
+ * @brief Bitmap tracing settings dialog
+ */
+/* Authors:
  *   Bob Jamison
  *   Other dudes from The Inkscape Organization
  *
  * Copyright (C) 2004, 2005 Authors
- *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
+#ifndef __TRACEDIALOG_H__
+#define __TRACEDIALOG_H__
 
 #include "verbs.h"
 #include "ui/widget/panel.h"
@@ -34,7 +32,7 @@ public:
      * Constructor
      */
     TraceDialog() : 
-     UI::Widget::Panel("", "dialogs.trace", SP_VERB_SELECTION_TRACE)
+     UI::Widget::Panel("", "/dialogs/trace", SP_VERB_SELECTION_TRACE)
      {}
 
 
@@ -56,8 +54,15 @@ public:
 } //namespace UI
 } //namespace Inkscape
 
-
-
-
 #endif /* __TRACEDIALOG_H__ */
 
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
index 5927dc74031207e1378605c043b5919fca85e9d3..899053cc9bf648365cdf8578ad3f29dea920b302 100644 (file)
@@ -1,12 +1,11 @@
-/**
- * \brief Object Transformation dialog
- *
- * Authors:
+/** @file
+ * \brief Transform dialog - implementation
+ */
+/* Authors:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *   buliabyak@gmail.com
  *
  * Copyright (C) 2004, 2005 Authors
- *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
@@ -26,7 +25,7 @@
 #include "selection.h"
 #include "selection-chemistry.h"
 #include "verbs.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "sp-item-transform.h"
 #include "macros.h"
 #include "sp-item.h"
@@ -74,7 +73,7 @@ void on_selection_modified( Inkscape::Application */*inkscape*/,
  *
  */
 Transformation::Transformation()
-    : UI::Widget::Panel ("", "dialogs.transformation", SP_VERB_DIALOG_TRANSFORM),
+    : UI::Widget::Panel ("", "/dialogs/transformation", SP_VERB_DIALOG_TRANSFORM),
       _page_move              (4, 2),
       _page_scale             (4, 2),
       _page_rotate            (4, 2),
@@ -134,7 +133,8 @@ Transformation::Transformation()
 
     // Apply separately
     contents->pack_start(_check_apply_separately, true, true);
-    _check_apply_separately.set_active(prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1));
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    _check_apply_separately.set_active(prefs->getBool("/dialogs/transformation/applyseparately"));
     _check_apply_separately.signal_toggled().connect(sigc::mem_fun(*this, &Transformation::onApplySeparatelyToggled));
 
     // make sure all spinbuttons activate Apply on pressing Enter
@@ -599,7 +599,8 @@ Transformation::applyPageMove(Inkscape::Selection *selection)
     double x = _scalar_move_horizontal.getValue("px");
     double y = _scalar_move_vertical.getValue("px");
 
-    if (prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1) == 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (!prefs->getBool("/dialogs/transformation/applyseparately")) {
         // move selection as a whole
         if (_check_move_relative.get_active()) {
             sp_selection_move_relative(selection, x, y);
@@ -686,7 +687,8 @@ Transformation::applyPageScale(Inkscape::Selection *selection)
     double scaleX = _scalar_scale_horizontal.getValue("px");
     double scaleY = _scalar_scale_vertical.getValue("px");
 
-    if (prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1) == 1) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/dialogs/transformation/applyseparately")) {
         for (GSList const *l = selection->itemList(); l != NULL; l = l->next) {
             SPItem *item = SP_ITEM(l->data);
             Geom::Scale scale (0,0);
@@ -741,7 +743,8 @@ Transformation::applyPageRotate(Inkscape::Selection *selection)
 {
     double angle = _scalar_rotate.getValue("deg");
 
-    if (prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1) == 1) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/dialogs/transformation/applyseparately")) {
         for (GSList const *l = selection->itemList(); l != NULL; l = l->next) {
             SPItem *item = SP_ITEM(l->data);
             sp_item_rotate_rel(item, Geom::Rotate (angle*M_PI/180.0));
@@ -760,7 +763,8 @@ Transformation::applyPageRotate(Inkscape::Selection *selection)
 void
 Transformation::applyPageSkew(Inkscape::Selection *selection)
 {
-    if (prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1) == 1) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/dialogs/transformation/applyseparately")) {
         for (GSList const *l = selection->itemList(); l != NULL; l = l->next) {
             SPItem *item = SP_ITEM(l->data);
 
@@ -826,7 +830,7 @@ Transformation::applyPageTransform(Inkscape::Selection *selection)
     double e = _scalar_transform_e.getValue();
     double f = _scalar_transform_f.getValue();
 
-    NR::Matrix displayed(a, b, c, d, e, f);
+    Geom::Matrix displayed(a, b, c, d, e, f);
 
     if (_check_replace_matrix.get_active()) {
         for (GSList const *l = selection->itemList(); l != NULL; l = l->next) {
@@ -1046,7 +1050,8 @@ Transformation::onClear()
 void
 Transformation::onApplySeparatelyToggled()
 {
-    prefs_set_int_attribute ("dialogs.transformation", "applyseparately", _check_apply_separately.get_active()? 1 : 0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setBool("/dialogs/transformation/applyseparately", _check_apply_separately.get_active());
 }
 
 
@@ -1054,8 +1059,6 @@ Transformation::onApplySeparatelyToggled()
 } // namespace UI
 } // namespace Inkscape
 
-
-
 /*
   Local Variables:
   mode:c++
index e64353f5a1e6bde0e5fb904b8177703a7dbef503..9d05713add057735d415f7cf9c8616ced7fcb967 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * \brief Object Transformation dialog
- *
- * Author:
+/** @file
+ * @brief Transform dialog
+ */
+/* Author:
  *   Bryce W. Harrington <bryce@bryceharrington.org>
  *
  * Copyright (C) 2004, 2005 Authors
- *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
index f2f51a780094239aea95b29abef5494ef168279a..2dec1e2d4e3c8fb8b8d6e42c564fd7b11078d3e5 100644 (file)
@@ -1,11 +1,10 @@
-/**
- * \brief Undo History dialog
- *
- * Author:
+/** @file
+ * @brief Undo History dialog - implementation
+ */
+/* Author:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2006 Authors
- *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
@@ -125,7 +124,7 @@ UndoHistory::setDesktop(SPDesktop* desktop)
 }
 
 UndoHistory::UndoHistory()
-    : UI::Widget::Panel ("", "dialogs.undo-history", SP_VERB_DIALOG_UNDO_HISTORY),
+    : UI::Widget::Panel ("", "/dialogs/undo-history", SP_VERB_DIALOG_UNDO_HISTORY),
       _document (sp_desktop_document(getDesktop())),
       _event_log (getDesktop() ? getDesktop()->event_log : NULL),
       _columns (_event_log ? &_event_log->getColumns() : NULL),
index 070a1eb22b77e332c1970749271ee063cb9e967b..82e04f3c941ae495d2946c176c74a36f593c7eec 100644 (file)
@@ -1,16 +1,10 @@
-/**
- * Undo History dialog
- *
- * \brief A dialog for presenting an event log of commited, undone and redone events. Allows the
- * user to undo and redo multiple events in a more convenient way than repateaded ctrl-z,
- * ctrl-shift-z.
- *
- *
- * Author:
+/** @file
+ * @brief Undo History dialog
+ */
+/* Author:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2006 Authors
- *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
@@ -111,11 +105,12 @@ private:
     struct NoFilter : Filter { bool operator() (const int& /*x*/) const { return true; } };
 };
 
-
 /**
- * 
+ * \brief Dialog for presenting document change history
+ *
+ * This dialog allows the user to undo and redo multiple events in a more convenient way
+ * than repateaded ctrl-z, ctrl-shift-z.
  */
-
 class UndoHistory : public Widget::Panel {
 public:
     virtual ~UndoHistory();
index f91d4a607094d63725bb005c814285d9c8f23e0d..b18ed99d4edbd4bc7cf7e7cc761d9ab0021a46ca 100644 (file)
@@ -1,12 +1,15 @@
-/**
- * Whiteboard connection establishment dialog
- *
- * Authors:
- * David Yip <yipdw@rose-hulman.edu>
- * Jason Segal, Jonas Collaros, Stephen Montgomery, Brandi Soggs, Matthew Weinstock (original C/Gtk version)
+/** @file
+ * @brief Whiteboard connection dialog - implementation
+ */
+/* Authors:
+ *   David Yip <yipdw@rose-hulman.edu>
+ *   Jason Segal
+ *   Jonas Collaros
+ *   Stephen Montgomery
+ *   Brandi Soggs
+ *   Matthew Weinstock (original C/Gtk version)
  *
  * Copyright (c) 2004-2005 Authors
- *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
@@ -83,11 +86,11 @@ WhiteboardConnectDialogImpl::_construct()
        this->_labels[3].set_mnemonic_widget(this->_port);
 
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-       this->_server.set_text(prefs->getString("whiteboard.server", "name"));
+       this->_server.set_text(prefs->getString("/whiteboard/server/name"));
        /// @todo Convert port to an integer preference?
-       this->_port.set_text(prefs->getString("whiteboard.server", "port"));
-       this->_username.set_text(prefs->getString("whiteboard.server", "username"));
-       this->_usessl.set_active(prefs->getBool("whiteboard.server", "ssl", false);
+       this->_port.set_text(prefs->getString("/whiteboard/server/port"));
+       this->_username.set_text(prefs->getString("/whiteboard/server/username"));
+       this->_usessl.set_active(prefs->getBool("/whiteboard/server/ssl", false);
 
        this->_layout.attach(this->_labels[0], 0, 1, 0, 1);
        this->_layout.attach(this->_labels[1], 0, 1, 1, 2);
@@ -236,7 +239,7 @@ WhiteboardConnectDialogImpl::_respCallback(int resp)
                                        this->_desktop->messageStack()->flash(INFORMATION_MESSAGE, msg.data());
        
                                        // Save preferences
-                                       prefs->setString(this->_prefs_path, "server", this->_server.get_text());
+                                       prefs->setString(this->_prefs_path + "/server", this->_server.get_text());
                                        break;
                                default:
                                        break;
@@ -274,7 +277,7 @@ WhiteboardConnectDialogImpl::_respCallback(int resp)
                                        this->_desktop->messageStack()->flash(INFORMATION_MESSAGE, msg.data());
        
                                        // Save preferences
-                                       prefs->setString(this->_prefs_path, "server", this->_server.get_text());
+                                       prefs->setString(this->_prefs_path + "/server", this->_server.get_text());
                                        break;
                                default:
                                        break;
index b96f1ce3b7ef7d204471814a8e134f1cfb8ea42a..8b34215f920713e69fa780a55069590fcda5049d 100644 (file)
@@ -1,12 +1,15 @@
-/**
- * Whiteboard connection establishment dialog
- *
- * Authors:
- * David Yip <yipdw@rose-hulman.edu>
- * Jason Segal, Jonas Collaros, Stephen Montgomery, Brandi Soggs, Matthew Weinstock (original C/Gtk version)
+/** @file
+ * @brief Whiteboard connection dialog
+ */
+/* Authors:
+ *   David Yip <yipdw@rose-hulman.edu>
+ *   Jason Segal
+ *   Jonas Collaros
+ *   Stephen Montgomery
+ *   Brandi Soggs
+ *   Matthew Weinstock (original C/Gtk version)
  *
  * Copyright (c) 2004-2005 Authors
- *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
@@ -34,7 +37,7 @@ namespace Dialog {
 
 class WhiteboardConnectDialog : public Dialog {
 public:
-       WhiteboardConnectDialog() : Dialog("dialogs.whiteboard_connect", SP_VERB_DIALOG_WHITEBOARD_CONNECT)
+       WhiteboardConnectDialog() : Dialog("/dialogs/whiteboard_connect", SP_VERB_DIALOG_WHITEBOARD_CONNECT)
        {
 
        }
index 4e9ea7abfcdbd1b37a738754892ad732afdddc4f..3315a7029cc53425eaf01eaa0eef82d79e3c0ef4 100644 (file)
@@ -1,13 +1,15 @@
-/**
- * @file
- * @brief Whiteboard share with chatroom dialog
- *
- * Authors:
- * David Yip <yipdw@rose-hulman.edu>
- * Jason Segal, Jonas Collaros, Stephen Montgomery, Brandi Soggs, Matthew Weinstock (original C/Gtk version)
+/** @file
+ * @brief Whiteboard share with chatroom dialog - implementation
+ */
+/* Authors:
+ *   David Yip <yipdw@rose-hulman.edu>
+ *   Jason Segal
+ *   Jonas Collaros
+ *   Stephen Montgomery
+ *   Brandi Soggs
+ *   Matthew Weinstock (original C/Gtk version)
  *
  * Copyright (c) 2004-2005 Authors
- *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
@@ -82,9 +84,9 @@ WhiteboardShareWithChatroomDialogImpl::_construct()
        this->_labels[3].set_mnemonic_widget(this->_handle);
 
        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-       this->_roomname.set_text(prefs->getString("whiteboard.room", "name"));
-       this->_confserver.set_text(prefs->getString("whiteboard.room", "server"));
-       this->_handle.set_text(prefs->getString("whiteboard.server", "username"));
+       this->_roomname.set_text(prefs->getString("/whiteboard/room/name"));
+       this->_confserver.set_text(prefs->getString("/whiteboard/room/server"));
+       this->_handle.set_text(prefs->getString("/whiteboard/server/username"));
 
        // Pack table
        this->_layout.attach(this->_labels[0], 0, 1, 0, 1);
index 898f8da26ee94ed5e4c79509c61e450b889567a9..4a6c2fc8962fc24249478d20ace7d0dc34a06932 100644 (file)
@@ -1,12 +1,15 @@
-/**
- * Whiteboard share with chatroom dialog
- *
- * Authors:
- * David Yip <yipdw@rose-hulman.edu>
- * Jason Segal, Jonas Collaros, Stephen Montgomery, Brandi Soggs, Matthew Weinstock (original C/Gtk version)
+/** @file
+ * @brief Whiteboard share with chatroom dialog
+ */
+/* Authors:
+ *   David Yip <yipdw@rose-hulman.edu>
+ *   Jason Segal
+ *   Jonas Collaros
+ *   Stephen Montgomery
+ *   Brandi Soggs
+ *   Matthew Weinstock (original C/Gtk version)
  *
  * Copyright (c) 2004-2005 Authors
- *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
@@ -35,7 +38,7 @@ namespace Dialog {
 
 class WhiteboardShareWithChatroomDialog : public Dialog {
 public:
-       WhiteboardShareWithChatroomDialog() : Dialog("dialogs.whiteboard_sharewithuser", SP_VERB_DIALOG_WHITEBOARD_SHAREWITHUSER)
+       WhiteboardShareWithChatroomDialog() : Dialog("/dialogs/whiteboard_sharewithuser", SP_VERB_DIALOG_WHITEBOARD_SHAREWITHUSER)
        {
 
        }
index ebe91f0f3289b25bc95743cb28f91a532858544e..bb3761f31ff55251a9a8459ad74a1c583b359de3 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * Whiteboard share with user dialog
- *
- * Authors:
+/** @file
+ * Whiteboard share with user dialog - implementation
+ */
+/* Authors:
  * David Yip <yipdw@rose-hulman.edu>
  * Jason Segal, Jonas Collaros, Stephen Montgomery, Brandi Soggs, Matthew Weinstock (original C/Gtk version)
  *
index ad087070706e47608536cef8d195c459795d1e5d..24ec91be53719af7c9071161edfab641da12b986 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * Whiteboard share with user dialog
- *
- * Authors:
+/** @file
+ * @brief Whiteboard share with user dialog
+ */
+/* Authors:
  * David Yip <yipdw@rose-hulman.edu>
  * Jason Segal, Jonas Collaros, Stephen Montgomery, Brandi Soggs, Matthew Weinstock (original C/Gtk version)
  *
@@ -33,7 +33,7 @@ namespace Inkscape {
 
 class WhiteboardShareWithUserDialog : public Dialog {
 public:
-       WhiteboardShareWithUserDialog() : Dialog("dialogs.whiteboard_sharewithuser", SP_VERB_DIALOG_WHITEBOARD_SHAREWITHUSER)
+       WhiteboardShareWithUserDialog() : Dialog("/dialogs/whiteboard_sharewithuser", SP_VERB_DIALOG_WHITEBOARD_SHAREWITHUSER)
        {
 
        }
index 67091fc40c6e19e6ee831f9efccce084fc5aa008..5e77130445bea6787fba7758b1b4bc4011c2d3b5 100644 (file)
@@ -46,7 +46,7 @@
 
 #include "macros.h"
 #include "path-prefix.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "file.h"
 #include "application/editor.h"
 #include "edit-widget.h"
@@ -1056,9 +1056,9 @@ EditWidget::initRightScrollbar()
 void
 EditWidget::initStickyZoom()
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     _viewport_table.attach(_sticky_zoom, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
-
-    _sticky_zoom.set_active (prefs_get_int_attribute ("options.stickyzoom", "value", 0) != 0);
+    _sticky_zoom.set_active (prefs->getBool("/options/stickyzoom/value"));
     _tooltips.set_tip (_sticky_zoom, _("Zoom drawing if window size changes"));
 
     /// \todo icon not implemented
@@ -1437,30 +1437,32 @@ EditWidget::updateScrollbars (double scale)
 void
 EditWidget::toggleRulers()
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     if (_top_ruler.is_visible())
     {
         _top_ruler.hide_all();
         _left_ruler.hide_all();
-        prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.rulers" : "window.rulers", "state", 0);
+        prefs->setBool(_desktop->is_fullscreen() ? "/fullscreen/rulers/state" : "/window/rulers/state", false);
     } else {
         _top_ruler.show_all();
         _left_ruler.show_all();
-        prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.rulers" : "window.rulers", "state", 1);
+        prefs->setBool(_desktop->is_fullscreen() ? "/fullscreen/rulers/state" : "/window/rulers/state", true);
     }
 }
 
 void
 EditWidget::toggleScrollbars()
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     if (_bottom_scrollbar.is_visible())
     {
         _bottom_scrollbar.hide_all();
         _right_scrollbar.hide_all();
-        prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.scrollbars" : "window.scrollbars", "state", 0);
+        prefs->setBool(_desktop->is_fullscreen() ? "/fullscreen/scrollbars/state" : "/window/scrollbars/state", false);
     } else {
         _bottom_scrollbar.show_all();
         _right_scrollbar.show_all();
-        prefs_set_int_attribute (_desktop->is_fullscreen() ? "fullscreen.scrollbars" : "window.scrollbars", "state", 1);
+        prefs->setBool(_desktop->is_fullscreen() ? "/fullscreen/scrollbars/state" : "/window/scrollbars/state", true);
     }
 }
 
@@ -1662,8 +1664,8 @@ EditWidget::onWindowSizeAllocate (Gtk::Allocation &newall)
 void
 EditWidget::onWindowRealize()
 {
-    NR::Rect d(Geom::Point(0, 0),
-               Geom::Point(sp_document_width(_desktop->doc()), sp_document_height(_desktop->doc())));
+    NR::Rect d( Geom::Point(0, 0),
+                  Geom::Point(sp_document_width(_desktop->doc()), sp_document_height(_desktop->doc())) );
 
     if (d.isEmpty(1.0)) {
         return;
index e61b8080e889f5c2fc6018380d91bb69f5afe76d..12a0686f039b2fcd3dd2486557389436df3003af 100644 (file)
@@ -12,7 +12,7 @@
 #include "dock-item.h"
 #include "desktop.h"
 #include "inkscape.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "ui/widget/dock.h"
 #include "widgets/icon.h"
 
@@ -37,11 +37,11 @@ DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& l
     _gdl_dock_item(0),
     _dock_item_action_area(0)
 {
-
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     GdlDockItemBehavior gdl_dock_behavior =
-        (prefs_get_int_attribute_limited ("options.dock", "cancenterdock", 1, 0, 1) == 0 ?
-         GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER
-         : GDL_DOCK_ITEM_BEH_NORMAL);
+        (prefs->getBool("/options/dock/cancenterdock", true) ?
+            GDL_DOCK_ITEM_BEH_NORMAL :
+            GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER);
 
     if (!icon_name.empty()) {
         Gtk::Widget *icon = sp_icon_get_icon(icon_name, Inkscape::ICON_SIZE_MENU);
index 563ed8e981bc21db4460e93c56a68b403c82b1da..3608c355100a96a5974c6a96275e42d5fcafd158 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief A desktop dock pane to dock dialogs.
- *
- * Author:
+/** @file
+ * @brief A desktop dock pane to dock dialogs.
+ */
+/* Author:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2007 Authors
@@ -10,7 +10,7 @@
  */
 
 #include "inkscape.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "desktop.h"
 
 #include "dock.h"
@@ -74,8 +74,9 @@ Dock::Dock(Gtk::Orientation orientation)
 
     _scrolled_window->set_size_request(0);
 
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     GdlSwitcherStyle gdl_switcher_style =
-        static_cast<GdlSwitcherStyle>(prefs_get_int_attribute_limited("options.dock", "switcherstyle",
+        static_cast<GdlSwitcherStyle>(prefs->getIntLimited("/options/dock/switcherstyle",
                                                                       GDL_SWITCHER_STYLE_BOTH, 0, 4));
 
     g_object_set (GDL_DOCK_OBJECT(_gdl_dock)->master,
@@ -84,7 +85,7 @@ Dock::Dock(Gtk::Orientation orientation)
                   NULL);
 
     GdlDockBarStyle gdl_dock_bar_style =
-        static_cast<GdlDockBarStyle>(prefs_get_int_attribute_limited("options.dock", "dockbarstyle",
+        static_cast<GdlDockBarStyle>(prefs->getIntLimited("/options/dock/dockbarstyle",
                                                                      GDL_DOCK_BAR_BOTH, 0, 3));
 
     gdl_dock_bar_set_style(_gdl_dock_bar, gdl_dock_bar_style);
index dd501f186e4765ae340e022408a1e0dccccc608c..c49d7126850ceab467a624bc9d08721aa0785fb8 100644 (file)
@@ -1,7 +1,7 @@
-/**
- * \brief A desktop dock pane to dock dialogs, a custom wrapper around gdl-dock.
- *
- * Author:
+/** @file
+ * @brief A desktop dock pane to dock dialogs, a custom wrapper around gdl-dock.
+ */
+/* Author:
  *   Gustav Broberg <broberg@kth.se>
  *
  * Copyright (C) 2007 Authors
index 9333ffc359d185590d2c4ebff1ccdcfca4f3892c..9811cc89c638fa16969a051471f5d5a1e5675243 100644 (file)
@@ -26,7 +26,7 @@
 
 #include "panel.h"
 #include "icon-size.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "desktop-handles.h"
 #include "inkscape.h"
 #include "dialogs/eek-preview.h"
@@ -94,50 +94,40 @@ void Panel::_init()
     Glib::ustring tmp("<");
     _anchor = Gtk::ANCHOR_CENTER;
 
-    guint panel_size = 0;
-    if (_prefs_path) {
-        panel_size = prefs_get_int_attribute_limited( _prefs_path, "panel_size", 1, 0, static_cast<long long>(PREVIEW_SIZE_HUGE) );
-    }
-
-    guint panel_mode = 0;
-    if (_prefs_path) {
-        panel_mode = prefs_get_int_attribute_limited( _prefs_path, "panel_mode", 1, 0, 10 );
-    }
-
-    guint panel_wrap = 0;
-    if (_prefs_path) {
-        panel_wrap = prefs_get_int_attribute_limited( _prefs_path, "panel_wrap", 0, 0, 1 );
-    }
-
-    guint panel_ratio = 100;
-    if (_prefs_path) {
-        panel_ratio = prefs_get_int_attribute_limited( _prefs_path, "panel_ratio", 100, 0, 500 );
+    guint panel_size = 0, panel_mode = 0, panel_ratio = 100;
+    bool panel_wrap = 0;
+    if (!_prefs_path.empty()) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        panel_wrap = prefs->getBool(_prefs_path + "/panel_wrap");
+        panel_size = prefs->getIntLimited(_prefs_path + "/panel_size", 1, 0, PREVIEW_SIZE_HUGE);
+        panel_mode = prefs->getIntLimited(_prefs_path + "/panel_mode", 1, 0, 10);
+        panel_ratio = prefs->getIntLimited(_prefs_path + "/panel_ratio", 100, 0, 500 );
     }
 
     _menu = new Gtk::Menu();
 
     {
-           Gtk::RadioMenuItem::Group group;
-           Glib::ustring one_label(_("List"));
-           Glib::ustring two_label(_("Grid"));
-           Gtk::RadioMenuItem *one = manage(new Gtk::RadioMenuItem(group, one_label));
-           Gtk::RadioMenuItem *two = manage(new Gtk::RadioMenuItem(group, two_label));
-
-           if (panel_mode == 0) {
-               one->set_active(true);
-           } else if (panel_mode == 1) {
-               two->set_active(true);
-           }
-
-           _menu->append(*one);
-           _non_horizontal.push_back(one);
-           _menu->append(*two);
-           _non_horizontal.push_back(two);
-           Gtk::MenuItem* sep = manage(new Gtk::SeparatorMenuItem());
-           _menu->append(*sep);
-           _non_horizontal.push_back(sep);
-           one->signal_activate().connect(sigc::bind<int, int>(sigc::mem_fun(*this, &Panel::_bounceCall), PANEL_SETTING_MODE, 0));
-           two->signal_activate().connect(sigc::bind<int, int>(sigc::mem_fun(*this, &Panel::_bounceCall), PANEL_SETTING_MODE, 1));
+        Gtk::RadioMenuItem::Group group;
+        Glib::ustring one_label(_("List"));
+        Glib::ustring two_label(_("Grid"));
+        Gtk::RadioMenuItem *one = manage(new Gtk::RadioMenuItem(group, one_label));
+        Gtk::RadioMenuItem *two = manage(new Gtk::RadioMenuItem(group, two_label));
+
+        if (panel_mode == 0) {
+            one->set_active(true);
+        } else if (panel_mode == 1) {
+            two->set_active(true);
+        }
+
+        _menu->append(*one);
+        _non_horizontal.push_back(one);
+        _menu->append(*two);
+        _non_horizontal.push_back(two);
+        Gtk::MenuItem* sep = manage(new Gtk::SeparatorMenuItem());
+        _menu->append(*sep);
+        _non_horizontal.push_back(sep);
+        one->signal_activate().connect(sigc::bind<int, int>(sigc::mem_fun(*this, &Panel::_bounceCall), PANEL_SETTING_MODE, 0));
+        two->signal_activate().connect(sigc::bind<int, int>(sigc::mem_fun(*this, &Panel::_bounceCall), PANEL_SETTING_MODE, 1));
     }
 
     {
@@ -336,21 +326,14 @@ void Panel::present()
 
 void Panel::restorePanelPrefs()
 {
-    guint panel_size = 0;
-    if (_prefs_path) {
-        panel_size = prefs_get_int_attribute_limited(_prefs_path, "panel_size", 1, 0, static_cast<long long>(PREVIEW_SIZE_HUGE));
-    }
-    guint panel_mode = 0;
-    if (_prefs_path) {
-        panel_mode = prefs_get_int_attribute_limited(_prefs_path, "panel_mode", 1, 0, 10);
-    }
-    guint panel_wrap = 0;
-    if (_prefs_path) {
-        panel_wrap = prefs_get_int_attribute_limited(_prefs_path, "panel_wrap", 0, 0, 1 );
-    }
-    guint panel_ratio = 100;
-    if (_prefs_path) {
-        panel_ratio = prefs_get_int_attribute_limited(_prefs_path, "panel_ratio", 000, 0, 500 );
+    guint panel_size = 0, panel_mode = 0, panel_ratio = 100;
+    bool panel_wrap = 0;
+    if (!_prefs_path.empty()) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        panel_wrap = prefs->getBool(_prefs_path + "/panel_wrap");
+        panel_size = prefs->getIntLimited(_prefs_path + "/panel_size", 1, 0, PREVIEW_SIZE_HUGE);
+        panel_mode = prefs->getIntLimited(_prefs_path + "/panel_mode", 1, 0, 10);
+        panel_ratio = prefs->getIntLimited(_prefs_path + "/panel_ratio", 000, 0, 500 );
     }
     _bounceCall(PANEL_SETTING_SIZE, panel_size);
     _bounceCall(PANEL_SETTING_MODE, panel_mode);
@@ -375,8 +358,9 @@ void Panel::_bounceCall(int i, int j)
     _menu->set_active(0);
     switch (i) {
     case PANEL_SETTING_SIZE:
-        if (_prefs_path) {
-            prefs_set_int_attribute(_prefs_path, "panel_size", j);
+        if (!_prefs_path.empty()) {
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            prefs->setInt(_prefs_path + "/panel_size", j);
         }
         if (_fillable) {
             ViewType curr_type = _fillable->getPreviewType();
@@ -413,8 +397,9 @@ void Panel::_bounceCall(int i, int j)
         }
         break;
     case PANEL_SETTING_MODE:
-        if (_prefs_path) {
-            prefs_set_int_attribute (_prefs_path, "panel_mode", j);
+        if (!_prefs_path.empty()) {
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            prefs->setInt(_prefs_path + "/panel_mode", j);
         }
         if (_fillable) {
             ::PreviewSize curr_size = _fillable->getPreviewSize();
@@ -436,8 +421,9 @@ void Panel::_bounceCall(int i, int j)
         }
         break;
     case PANEL_SETTING_SHAPE:
-        if (_prefs_path) {
-            prefs_set_int_attribute (_prefs_path, "panel_ratio", j);
+        if (!_prefs_path.empty()) {
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            prefs->setInt(_prefs_path + "/panel_ratio", j);
         }
         if ( _fillable ) {
             ViewType curr_type = _fillable->getPreviewType();
@@ -446,8 +432,9 @@ void Panel::_bounceCall(int i, int j)
         }
         break;
     case PANEL_SETTING_WRAP:
-        if (_prefs_path) {
-            prefs_set_int_attribute (_prefs_path, "panel_wrap", j ? 1 : 0);
+        if (!_prefs_path.empty()) {
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            prefs->setBool(_prefs_path + "/panel_wrap", j);
         }
         if ( _fillable ) {
             _fillable->setWrap(j);
@@ -468,7 +455,7 @@ void Panel::_wrapToggled(Gtk::CheckMenuItem* toggler)
 
 gchar const *Panel::getPrefsPath() const
 {
-    return _prefs_path;
+    return _prefs_path.data();
 }
 
 Glib::ustring const &Panel::getLabel() const
index 1062ee58eecd7c4711de9149aa05c2c113d71015..d42548f161f64744f8c25705f6fbec90f1855028 100644 (file)
@@ -92,7 +92,7 @@ protected:
     /** Tooltips object for all descendants to use */
     Gtk::Tooltips _tooltips;
 
-    const gchar *_prefs_path;
+    Glib::ustring const _prefs_path;
 
     bool _menu_desired;
     Gtk::AnchorType _anchor;
index b11ca2e93e41d49192bded2c20d6cf16bd079b95..72df1baab7747ff06af0b171e1eb216679fd8b8d 100644 (file)
@@ -128,13 +128,12 @@ void DialogPage::set_tip(Gtk::Widget& widget, Glib::ustring const &tip)
 }
 
 void PrefCheckButton::init(Glib::ustring const &label, Glib::ustring const &prefs_path,
-    Glib::ustring const &attr, bool default_value)
+    bool default_value)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     this->set_label(label);
-    this->set_active( prefs->getBool(_prefs_path, _attr, default_value) );
+    this->set_active( prefs->getBool(_prefs_path, default_value) );
 }
 
 void PrefCheckButton::on_toggled()
@@ -142,15 +141,14 @@ void PrefCheckButton::on_toggled()
     if (this->is_visible()) //only take action if the user toggled it
     {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setBool(_prefs_path, _attr, this->get_active());
+        prefs->setBool(_prefs_path, this->get_active());
     }
 }
 
 void PrefRadioButton::init(Glib::ustring const &label, Glib::ustring const &prefs_path,
-    Glib::ustring const &attr, Glib::ustring const &string_value, bool default_value, PrefRadioButton* group_member)
+    Glib::ustring const &string_value, bool default_value, PrefRadioButton* group_member)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     _value_type = VAL_STRING;
     _string_value = string_value;
     (void)default_value;
@@ -161,7 +159,7 @@ void PrefRadioButton::init(Glib::ustring const &label, Glib::ustring const &pref
         this->set_group(rbg);
     }
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring val = prefs->getString(_prefs_path, _attr);
+    Glib::ustring val = prefs->getString(_prefs_path);
     if ( !val.empty() )
         this->set_active(val == _string_value);
     else
@@ -169,10 +167,9 @@ void PrefRadioButton::init(Glib::ustring const &label, Glib::ustring const &pref
 }
 
 void PrefRadioButton::init(Glib::ustring const &label, Glib::ustring const &prefs_path,
-    Glib::ustring const &attr, int int_value, bool default_value, PrefRadioButton* group_member)
+    int int_value, bool default_value, PrefRadioButton* group_member)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     _value_type = VAL_INT;
     _int_value = int_value;
     this->set_label(label);
@@ -183,9 +180,9 @@ void PrefRadioButton::init(Glib::ustring const &label, Glib::ustring const &pref
     }
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     if (default_value)
-        this->set_active( prefs->getInt(_prefs_path, _attr, int_value) == _int_value );
+        this->set_active( prefs->getInt(_prefs_path, int_value) == _int_value );
     else
-        this->set_active( prefs->getInt(_prefs_path, _attr, int_value + 1) == _int_value );
+        this->set_active( prefs->getInt(_prefs_path, int_value + 1) == _int_value );
 }
 
 void PrefRadioButton::on_toggled()
@@ -196,30 +193,29 @@ void PrefRadioButton::on_toggled()
     if (this->is_visible() && this->get_active() ) //only take action if toggled by user (to active)
     {
         if ( _value_type == VAL_STRING )
-            prefs->setString(_prefs_path, _attr, _string_value);
+            prefs->setString(_prefs_path, _string_value);
         else if ( _value_type == VAL_INT )
-            prefs->setInt(_prefs_path, _attr, _int_value);
+            prefs->setInt(_prefs_path, _int_value);
     }
 }
 
-void PrefSpinButton::init(Glib::ustring const &prefs_path, Glib::ustring const &attr,
+void PrefSpinButton::init(Glib::ustring const &prefs_path,
               double lower, double upper, double step_increment, double page_increment,
               double default_value, bool is_int, bool is_percent)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     _is_int = is_int;
     _is_percent = is_percent;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     double value;
     if (is_int) {
         if (is_percent) {
-            value = 100 * prefs->getDoubleLimited(prefs_path, attr, default_value, lower/100.0, upper/100.0);
+            value = 100 * prefs->getDoubleLimited(prefs_path, default_value, lower/100.0, upper/100.0);
         } else {
-            value = (double) prefs->getIntLimited(prefs_path, attr, (int) default_value, (int) lower, (int) upper);
+            value = (double) prefs->getIntLimited(prefs_path, (int) default_value, (int) lower, (int) upper);
         }
     } else {
-        value = prefs->getDoubleLimited(prefs_path, attr, default_value, lower, upper);
+        value = prefs->getDoubleLimited(prefs_path, default_value, lower, upper);
     }
 
     this->set_range (lower, upper);
@@ -243,12 +239,12 @@ void PrefSpinButton::on_value_changed()
     {
         if (_is_int) {
             if (_is_percent) {
-                prefs->setDouble(_prefs_path, _attr, this->get_value()/100.0);
+                prefs->setDouble(_prefs_path, this->get_value()/100.0);
             } else {
-                prefs->setInt(_prefs_path, _attr, (int) this->get_value());
+                prefs->setInt(_prefs_path, (int) this->get_value());
             }
         } else {
-            prefs->setDouble(_prefs_path, _attr, this->get_value());
+            prefs->setDouble(_prefs_path, this->get_value());
         }
     }
 }
@@ -273,7 +269,7 @@ void ZoomCorrRuler::set_size(int x, int y)
 // The following two functions are borrowed from 2geom's toy-framework-2; if they are useful in
 // other locations, we should perhaps make them (or adapted versions of them) publicly available
 static void
-draw_text(cairo_t *cr, Geom::Point loc, const char* txt, bool bottom = "false",
+draw_text(cairo_t *cr, Geom::Point loc, const char* txt, bool bottom = false,
           double fontsize = ZoomCorrRuler::textsize, std::string fontdesc = "Sans") {
     PangoLayout* layout = pango_cairo_create_layout (cr);
     pango_layout_set_text(layout, txt, -1);
@@ -306,7 +302,7 @@ draw_number(cairo_t *cr, Geom::Point pos, double num) {
 void
 ZoomCorrRuler::draw_marks(Cairo::RefPtr<Cairo::Context> cr, double dist, int major_interval) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    const double zoomcorr = prefs->getDouble("options.zoomcorrection", "value", 1.0);
+    const double zoomcorr = prefs->getDouble("/options/zoomcorrection/value", 1.0);
     double mark = 0;
     int i = 0;
     while (mark <= _drawing_width) {
@@ -347,7 +343,7 @@ ZoomCorrRuler::redraw() {
     cr->line_to (_drawing_width, _height);
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Glib::ustring abbr = prefs->getString("options.zoomcorrection", "unit");
+    Glib::ustring abbr = prefs->getString("/options/zoomcorrection/unit");
     if (abbr == "cm") {
         draw_marks(cr, 0.1, 10);
     } else if (abbr == "ft") {
@@ -383,7 +379,7 @@ ZoomCorrRulerSlider::on_slider_value_changed()
     {
         freeze = true;
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setDouble("options.zoomcorrection", "value", _slider.get_value() / 100.0);
+        prefs->setDouble("/options/zoomcorrection/value", _slider.get_value() / 100.0);
         _sb.set_value(_slider.get_value());
         _ruler.redraw();
         freeze = false;
@@ -397,7 +393,7 @@ ZoomCorrRulerSlider::on_spinbutton_value_changed()
     {
         freeze = true;
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setDouble("options.zoomcorrection", "value", _sb.get_value() / 100.0);
+        prefs->setDouble("/options/zoomcorrection/value", _sb.get_value() / 100.0);
         _slider.set_value(_sb.get_value());
         _ruler.redraw();
         freeze = false;
@@ -412,7 +408,7 @@ ZoomCorrRulerSlider::on_unit_changed() {
         return;
     }
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setString("options.zoomcorrection", "unit", _unit.getUnitAbbr());
+    prefs->setString("/options/zoomcorrection/unit", _unit.getUnitAbbr());
     double conv = _unit.getConversion(_unit.getUnitAbbr(), "px");
     _ruler.set_unit_conversion(conv);
     if (_ruler.is_visible()) {
@@ -425,7 +421,7 @@ ZoomCorrRulerSlider::init(int ruler_width, int ruler_height, double lower, doubl
                       double step_increment, double page_increment, double default_value)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    double value = prefs->getDoubleLimited("options.zoomcorrection", "value", default_value, lower, upper) * 100.0;
+    double value = prefs->getDoubleLimited("/options/zoomcorrection/value", default_value, lower, upper) * 100.0;
 
     freeze = false;
 
@@ -449,7 +445,7 @@ ZoomCorrRulerSlider::init(int ruler_width, int ruler_height, double lower, doubl
     _unit.set_data("sensitive", GINT_TO_POINTER(0));
     _unit.setUnitType(UNIT_TYPE_LINEAR);
     _unit.set_data("sensitive", GINT_TO_POINTER(1));
-    _unit.setUnit(prefs->getString("options.zoomcorrection", "unit"));
+    _unit.setUnit(prefs->getString("/options/zoomcorrection/unit"));
 
     Gtk::Table *table = Gtk::manage(new Gtk::Table());
     Gtk::Alignment *alignment1 = Gtk::manage(new Gtk::Alignment(0.5,1,0,0));
@@ -465,14 +461,13 @@ ZoomCorrRulerSlider::init(int ruler_width, int ruler_height, double lower, doubl
     this->pack_start(*table, Gtk::PACK_EXPAND_WIDGET);
 }
 
-void PrefCombo::init(Glib::ustring const &prefs_path, Glib::ustring const &attr,
+void PrefCombo::init(Glib::ustring const &prefs_path,
                      Glib::ustring labels[], int values[], int num_items, int default_value)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     int row = 0;
-    int value = prefs->getInt(_prefs_path, _attr, default_value);
+    int value = prefs->getInt(_prefs_path, default_value);
 
     for (int i = 0 ; i < num_items; ++i)
     {
@@ -489,22 +484,21 @@ void PrefCombo::on_changed()
     if (this->is_visible()) //only take action if user changed value
     {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setInt(_prefs_path, _attr, _values[this->get_active_row_number()]);
+        prefs->setInt(_prefs_path, _values[this->get_active_row_number()]);
     }
 }
 
-void PrefEntryButtonHBox::init(Glib::ustring const &prefs_path, Glib::ustring const &attr,
+void PrefEntryButtonHBox::init(Glib::ustring const &prefs_path,
             bool visibility, Glib::ustring const &default_string)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     _default_string = default_string;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     relatedEntry = new Gtk::Entry();
     relatedButton = new Gtk::Button(_("Reset"));
     relatedEntry->set_invisible_char('*');
     relatedEntry->set_visibility(visibility);
-    relatedEntry->set_text(prefs->getString(_prefs_path, _attr));
+    relatedEntry->set_text(prefs->getString(_prefs_path));
     this->pack_start(*relatedEntry);
     this->pack_start(*relatedButton);
     relatedButton->signal_clicked().connect(
@@ -518,7 +512,7 @@ void PrefEntryButtonHBox::onRelatedEntryChangedCallback()
     if (this->is_visible()) //only take action if user changed value
     {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString(_prefs_path, _attr, relatedEntry->get_text());
+        prefs->setString(_prefs_path, relatedEntry->get_text());
     }
 }
 
@@ -527,18 +521,17 @@ void PrefEntryButtonHBox::onRelatedButtonClickedCallback()
     if (this->is_visible()) //only take action if user changed value
     {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString(_prefs_path, _attr, _default_string);
+        prefs->setString(_prefs_path, _default_string);
         relatedEntry->set_text(_default_string);
     }
 }
 
 
-void PrefFileButton::init(Glib::ustring const &prefs_path, Glib::ustring const &attr)
+void PrefFileButton::init(Glib::ustring const &prefs_path)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    select_filename(Glib::filename_from_utf8(prefs->getString(_prefs_path, _attr)));
+    select_filename(Glib::filename_from_utf8(prefs->getString(_prefs_path)));
 
     signal_selection_changed().connect(sigc::mem_fun(*this, &PrefFileButton::onFileChanged));
 }
@@ -546,18 +539,16 @@ void PrefFileButton::init(Glib::ustring const &prefs_path, Glib::ustring const &
 void PrefFileButton::onFileChanged()
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setString(_prefs_path, _attr, Glib::filename_to_utf8(get_filename()));
+    prefs->setString(_prefs_path, Glib::filename_to_utf8(get_filename()));
 }
 
-void PrefEntry::init(Glib::ustring const &prefs_path, Glib::ustring const &attr,
-            bool visibility)
+void PrefEntry::init(Glib::ustring const &prefs_path, bool visibility)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     this->set_invisible_char('*');
     this->set_visibility(visibility);
-    this->set_text(prefs->getString(_prefs_path, _attr));
+    this->set_text(prefs->getString(_prefs_path));
 }
 
 void PrefEntry::on_changed()
@@ -565,18 +556,17 @@ void PrefEntry::on_changed()
     if (this->is_visible()) //only take action if user changed value
     {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString(_prefs_path, _attr, this->get_text());
+        prefs->setString(_prefs_path, this->get_text());
     }
 }
 
-void PrefColorPicker::init(Glib::ustring const &label, Glib::ustring const &prefs_path, Glib::ustring const &attr,
+void PrefColorPicker::init(Glib::ustring const &label, Glib::ustring const &prefs_path,
                            guint32 default_rgba)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     _title = label;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    this->setRgba32( prefs->getInt(_prefs_path, _attr, (int)default_rgba) );
+    this->setRgba32( prefs->getInt(_prefs_path, (int)default_rgba) );
 }
 
 void PrefColorPicker::on_changed (guint32 rgba)
@@ -584,17 +574,16 @@ void PrefColorPicker::on_changed (guint32 rgba)
     if (this->is_visible()) //only take action if the user toggled it
     {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setInt(_prefs_path, _attr, (int) rgba);
+        prefs->setInt(_prefs_path, (int) rgba);
     }
 }
 
-void PrefUnit::init(Glib::ustring const &prefs_path, Glib::ustring const &attr)
+void PrefUnit::init(Glib::ustring const &prefs_path)
 {
     _prefs_path = prefs_path;
-    _attr = attr;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     setUnitType(UNIT_TYPE_LINEAR);
-    setUnit(prefs->getString(_prefs_path, _attr));
+    setUnit(prefs->getString(_prefs_path));
 }
 
 void PrefUnit::on_changed()
@@ -602,7 +591,7 @@ void PrefUnit::on_changed()
     if (this->is_visible()) //only take action if user changed value
     {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString(_prefs_path, _attr, getUnitAbbr());
+        prefs->setString(_prefs_path, getUnitAbbr());
     }
 }
 
index da07db5d9aded3f72e81dc11240e5f8e6394bb85..dbc319c1ad0634d58793561a7a2ae546f63e34a7 100644 (file)
@@ -39,25 +39,23 @@ namespace Widget {
 class PrefCheckButton : public Gtk::CheckButton
 {
 public:
-    void init(Glib::ustring const &label, Glib::ustring const &prefs_path, Glib::ustring const &attr,
+    void init(Glib::ustring const &label, Glib::ustring const &prefs_path,
               bool default_value);
 protected:
     Glib::ustring _prefs_path;
-    Glib::ustring _attr;
     void on_toggled();
 };
 
 class PrefRadioButton : public Gtk::RadioButton
 {
 public:
-    void init(Glib::ustring const &label, Glib::ustring const &prefs_path, Glib::ustring const &attr,
+    void init(Glib::ustring const &label, Glib::ustring const &prefs_path,
               int int_value, bool default_value, PrefRadioButton* group_member);
-    void init(Glib::ustring const &label, Glib::ustring const &prefs_path, Glib::ustring const &attr,
+    void init(Glib::ustring const &label, Glib::ustring const &prefs_path,
               Glib::ustring const &string_value, bool default_value, PrefRadioButton* group_member);
     sigc::signal<void, bool> changed_signal;
 protected:
     Glib::ustring _prefs_path;
-    Glib::ustring _attr;
     Glib::ustring _string_value;
     int _value_type;
     enum
@@ -72,12 +70,11 @@ protected:
 class PrefSpinButton : public Gtk::SpinButton
 {
 public:
-    void init(Glib::ustring const &prefs_path, Glib::ustring const &attr,
+    void init(Glib::ustring const &prefs_path,
               double lower, double upper, double step_increment, double page_increment,
               double default_value, bool is_int, bool is_percent);
 protected:
     Glib::ustring _prefs_path;
-    Glib::ustring _attr;
     bool _is_int;
     bool _is_percent;
     void on_value_changed();
@@ -128,11 +125,10 @@ private:
 class PrefCombo : public Gtk::ComboBoxText
 {
 public:
-    void init(Glib::ustring const &prefs_path, Glib::ustring const &attr,
+    void init(Glib::ustring const &prefs_path,
               Glib::ustring labels[], int values[], int num_items, int default_value);
 protected:
     Glib::ustring _prefs_path;
-    Glib::ustring _attr;
     std::vector<int> _values;
     void on_changed();
 };
@@ -140,22 +136,19 @@ protected:
 class PrefEntry : public Gtk::Entry
 {
 public:
-    void init(Glib::ustring const &prefs_path, Glib::ustring const &attr,
-            bool mask);
+    void init(Glib::ustring const &prefs_path, bool mask);
 protected:
     Glib::ustring _prefs_path;
-    Glib::ustring _attr;
     void on_changed();
 };
 
 class PrefEntryButtonHBox : public Gtk::HBox
 {
 public:
-    void init(Glib::ustring const &prefs_path, Glib::ustring const &attr,
+    void init(Glib::ustring const &prefs_path,
             bool mask, Glib::ustring const &default_string);
 protected:
     Glib::ustring _prefs_path;
-    Glib::ustring _attr;
     Glib::ustring _default_string;
     Gtk::Button *relatedButton;
     Gtk::Entry *relatedEntry;
@@ -166,11 +159,10 @@ protected:
 class PrefFileButton : public Gtk::FileChooserButton
 {
 public:
-    void init(Glib::ustring const &prefs_path, Glib::ustring const &attr);
+    void init(Glib::ustring const &prefs_path);
 
 protected:
     Glib::ustring _prefs_path;
-    Glib::ustring _attr;
     void onFileChanged();
 };
 
@@ -180,22 +172,20 @@ public:
     PrefColorPicker() : ColorPicker("", "", 0, false) {};
     virtual ~PrefColorPicker() {};
 
-    void init(Glib::ustring const &abel, Glib::ustring const &prefs_path, Glib::ustring const &attr,
+    void init(Glib::ustring const &abel, Glib::ustring const &prefs_path,
               guint32 default_rgba);
 
 protected:
     Glib::ustring _prefs_path;
-    Glib::ustring _attr;
     virtual void on_changed (guint32 rgba);
 };
 
 class PrefUnit : public UnitMenu
 {
 public:
-    void init(Glib::ustring const &prefs_path, Glib::ustring const &attr);
+    void init(Glib::ustring const &prefs_path);
 protected:
     Glib::ustring _prefs_path;
-    Glib::ustring _attr;
     void on_changed();
 };
 
index 2cc6e3c62d9121d6cb37e8a21c5c647a1115e5fb..95ddec286c4a8641d0dcacb5bb3988fa22a5b330 100644 (file)
@@ -155,6 +155,8 @@ RegisteredScalarUnit::RegisteredScalarUnit (const Glib::ustring& label, const Gl
 {
     init_parent(key, wr, repr_in, doc_in);
 
+    setProgrammatically = false;
+
     initScalar (-1e6, 1e6);
     setUnit (rum.getUnitMenu()->getUnitAbbr());
     setDigits (2);
@@ -203,6 +205,8 @@ RegisteredScalar::RegisteredScalar ( const Glib::ustring& label, const Glib::ust
 {
     init_parent(key, wr, repr_in, doc_in);
 
+    setProgrammatically = false;
+
     setRange (-1e6, 1e6);
     setDigits (2);
     setIncrements(0.1, 1.0);
@@ -249,6 +253,8 @@ RegisteredText::RegisteredText ( const Glib::ustring& label, const Glib::ustring
 {
     init_parent(key, wr, repr_in, doc_in);
 
+    setProgrammatically = false;
+
     setText("");
     _activate_connection = signal_activate().connect (sigc::mem_fun (*this, &RegisteredText::on_activate));
 }
@@ -597,6 +603,8 @@ RegisteredRandom::RegisteredRandom ( const Glib::ustring& label, const Glib::ust
 {
     init_parent(key, wr, repr_in, doc_in);
 
+    setProgrammatically = false;
+
     setRange (-1e6, 1e6);
     setDigits (2);
     setIncrements(0.1, 1.0);
index 807c21de509ecad8f873c37168f6e3e8c0886463..47f6292e37f8269949029bd7dd365a49172d7939 100644 (file)
@@ -1,10 +1,11 @@
-/**
- * \brief Static style swatch (fill, stroke, opacity)
- *
- * Author:
+/** @file
+ * @brief Static style swatch (fill, stroke, opacity)
+ */
+/* Authors:
  *   buliabyak@gmail.com
+ *   Krzysztof Kosiński <tweenk.pl@gmail.com>
  *
- * Copyright (C) 2005 author
+ * Copyright (C) 2005-2008 Authors
  *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 #include "sp-radial-gradient-fns.h"
 #include "sp-pattern.h"
 #include "xml/repr.h"
-#include "xml/node-event-vector.h"
 #include "widgets/widget-sizes.h"
 #include "helper/units.h"
 #include "helper/action.h"
+#include "preferences.h"
 #include "inkscape.h"
 
 enum {
@@ -37,74 +38,80 @@ enum {
     SS_STROKE
 };
 
-static void style_swatch_attr_changed( Inkscape::XML::Node *repr, gchar const *name,
-                                       gchar const */*old_value*/, gchar const */*new_value*/,
-                                       bool /*is_interactive*/, gpointer data)
-{
-    Inkscape::UI::Widget::StyleSwatch *ss = (Inkscape::UI::Widget::StyleSwatch *) data;
-
-    if (!strcmp (name, "style")) { // FIXME: watching only for the style attr, no CSS attrs
-        SPCSSAttr *css = sp_repr_css_attr_inherited(repr, "style");
-        ss->setStyle (css);
-    }
-}
-
+namespace Inkscape {
+namespace UI {
+namespace Widget {
 
-static Inkscape::XML::NodeEventVector style_swatch_repr_events =
-{
-    NULL, /* child_added */
-    NULL, /* child_removed */
-    style_swatch_attr_changed,
-    NULL, /* content_changed */
-    NULL  /* order_changed */
+/**
+ * @brief Watches whether the tool uses the current style
+ */
+class StyleSwatch::ToolObserver : public Inkscape::Preferences::Observer {
+public:
+    ToolObserver(Glib::ustring const &path, StyleSwatch &ss) : 
+        Observer(path),
+        _style_swatch(ss)
+    {}
+    virtual void notify(Inkscape::Preferences::Entry const &val);
+private:
+    StyleSwatch &_style_swatch;
 };
 
+/**
+ * @brief Watches for changes in the observed style pref
+ */
+class StyleSwatch::StyleObserver : public Inkscape::Preferences::Observer {
+public:
+    StyleObserver(Glib::ustring const &path, StyleSwatch &ss) :
+        Observer(path),
+        _style_swatch(ss)
+    {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        this->notify(prefs->getEntry(path));
+    }
+    virtual void notify(Inkscape::Preferences::Entry const &val) {
+        SPCSSAttr *css = val.getInheritedStyle();
+        _style_swatch.setStyle(css);
+        sp_repr_css_attr_unref(css);
+    }
+private:
+    StyleSwatch &_style_swatch;
+};
 
-static void style_swatch_tool_attr_changed( Inkscape::XML::Node */*repr*/, gchar const *name,
-                                            gchar const */*old_value*/, gchar const *new_value,
-                                            bool /*is_interactive*/, gpointer data)
+void StyleSwatch::ToolObserver::notify(Inkscape::Preferences::Entry const &val)
 {
-    Inkscape::UI::Widget::StyleSwatch *ss = (Inkscape::UI::Widget::StyleSwatch *) data;
+    bool usecurrent = val.getBool();
 
-    if (!strcmp (name, "usecurrent")) { // FIXME: watching only for the style attr, no CSS attrs
-        if (!strcmp (new_value, "1")) {
-            ss->setWatched (inkscape_get_repr(INKSCAPE, "desktop"), inkscape_get_repr(INKSCAPE, ss->_tool_path));
-        } else {
-            ss->setWatched (inkscape_get_repr(INKSCAPE, ss->_tool_path), NULL);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (_style_swatch._style_obs) delete _style_swatch._style_obs;
+
+    if (usecurrent) {
+        _style_swatch._style_obs = new StyleObserver("/desktop/style", _style_swatch);
+        
+        // If desktop's last-set style is empty, a tool uses its own fixed style even if set to use
+        // last-set (so long as it's empty). To correctly show this, we get the tool's style
+        // if the desktop's style is empty.
+        SPCSSAttr *css = prefs->getStyle("/desktop/style");
+        if (!css->attributeList()) {
+            SPCSSAttr *css2 = prefs->getInheritedStyle(_style_swatch._tool_path + "/style");
+            _style_swatch.setStyle(css2);
+            sp_repr_css_attr_unref(css2);
         }
-        // UGLY HACK: we have to reconnect to the watched tool repr again, retrieving it from the stored
-        // tool_path, because the actual repr keeps shifting with each change, no idea why
-        ss->setWatchedTool(ss->_tool_path, false);
+        sp_repr_css_attr_unref(css);
+    } else {
+        _style_swatch._style_obs = new StyleObserver(_style_swatch._tool_path + "/style", _style_swatch);
     }
+    prefs->addObserver(*_style_swatch._style_obs);
 }
 
-static Inkscape::XML::NodeEventVector style_swatch_tool_repr_events =
-{
-    NULL, /* child_added */
-    NULL, /* child_removed */
-    style_swatch_tool_attr_changed,
-    NULL, /* content_changed */
-    NULL  /* order_changed */
-};
-
-namespace Inkscape {
-namespace UI {
-namespace Widget {
-
 StyleSwatch::StyleSwatch(SPCSSAttr *css, gchar const *main_tip)
     :
-      _tool_path(NULL),
-      _desktop(0),
-      _verb_t(0),
-      _css (NULL),
-
-      _watched(NULL),
-      _watched_tool(NULL),
-
+      _desktop(NULL),
+      _verb_t(NULL),
+      _css(NULL),
+      _tool_obs(NULL),
+      _style_obs(NULL),
       _table(2, 6),
-
       _sw_unit(NULL),
-
       _tooltips ()
 {
     _label[SS_FILL].set_markup(_("Fill:"));
@@ -185,72 +192,33 @@ StyleSwatch::~StyleSwatch()
         delete _color_preview[i];
     }
 
-    if (_watched) {
-        sp_repr_remove_listener_by_data(_watched, this);
-        Inkscape::GC::release(_watched);
-        _watched = NULL;
-    }
-
-    if (_watched_tool) {
-        sp_repr_remove_listener_by_data(_watched_tool, this);
-        Inkscape::GC::release(_watched_tool);
-        _watched_tool = NULL;
-        _tool_path = NULL;
-    }
-}
-
-void
-StyleSwatch::setWatched(Inkscape::XML::Node *watched, Inkscape::XML::Node *secondary)
-{
-    if (_watched) {
-        sp_repr_remove_listener_by_data(_watched, this);
-        Inkscape::GC::release(_watched);
-        _watched = NULL;
-    }
-
-    if (watched) {
-        _watched = watched;
-        Inkscape::GC::anchor(_watched);
-        sp_repr_add_listener(_watched, &style_swatch_repr_events, this);
-        sp_repr_synthesize_events(_watched, &style_swatch_repr_events, this);
-
-        // If desktop's last-set style is empty, a tool uses its own fixed style even if set to use
-        // last-set (so long as it's empty). To correctly show this, we're passed the second repr,
-        // that of the tool prefs node, from which we now setStyle if the watched repr's style is
-        // empty.
-        if (secondary) {
-            SPCSSAttr *css = sp_repr_css_attr_inherited(watched, "style");
-            if (!css->attributeList()) { // is css empty?
-                SPCSSAttr *css_secondary = sp_repr_css_attr_inherited(secondary, "style");
-                this->setStyle (css_secondary);
-            }
-        }
-    }
+    if (_style_obs) delete _style_obs;
+    if (_tool_obs) delete _tool_obs;
 }
 
 void
 StyleSwatch::setWatchedTool(const char *path, bool synthesize)
 {
-    if (_watched_tool) {
-        sp_repr_remove_listener_by_data(_watched_tool, this);
-        Inkscape::GC::release(_watched_tool);
-        _watched_tool = NULL;
-        _tool_path = NULL;
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    
+    if (_tool_obs) {
+        delete _tool_obs;
+        _tool_obs = NULL;
     }
 
     if (path) {
-        _tool_path = (char *) path;
-        Inkscape::XML::Node *watched_tool = inkscape_get_repr(INKSCAPE, path);
-        if (watched_tool) {
-            _watched_tool = watched_tool;
-            Inkscape::GC::anchor(_watched_tool);
-            sp_repr_add_listener(_watched_tool, &style_swatch_tool_repr_events, this);
-            if (synthesize) {
-                sp_repr_synthesize_events(_watched_tool, &style_swatch_tool_repr_events, this);
-            }
-        }
+        _tool_path = path;
+        _tool_obs = new ToolObserver(_tool_path + "/usecurrent", *this);
+        prefs->addObserver(*_tool_obs);
+    } else {
+        _tool_path = "";
+    }
+    
+    // hack until there is a real synthesize events function for prefs,
+    // which shouldn't be hard to write once there is sufficient need for it
+    if (synthesize && _tool_obs) {
+        _tool_obs->notify(prefs->getEntry(_tool_path + "/usecurrent"));
     }
-
 }
 
 
index 5efd561f380fd9092ffb295e9bf5abd0ec02ebf6..dfbbe13d32e36304683f8b69cb70ac591b57fd37 100644 (file)
@@ -1,10 +1,11 @@
-/**
- * \brief Static style swatch (fill, stroke, opacity)
- *
- * Author:
+/** @file
+ * @brief Static style swatch (fill, stroke, opacity)
+ */
+/* Authors:
  *   buliabyak@gmail.com
+ *   Krzysztof Kosiński <tweenk.pl@gmail.com>
  *
- * Copyright (C) 2005 author
+ * Copyright (C) 2005-2008 Authors
  *
  * Released under GNU GPL.  Read the file 'COPYING' for more information.
  */
 
 #include <glibmm/i18n.h>
 
-#include <desktop.h>
-#include <verbs.h>
-
+#include "desktop.h"
+#include "verbs.h"
 #include "button.h"
+#include "preferences.h"
 
 class SPUnit;
 class SPStyle;
 class SPCSSAttr;
 
-namespace Inkscape {
-namespace XML {
-class Node;
-}
-}
-
 namespace Inkscape {
 namespace UI {
 namespace Widget {
@@ -50,40 +45,32 @@ public:
     void setStyle(SPCSSAttr *attr);
     SPCSSAttr *getStyle();
 
-    void setWatched (Inkscape::XML::Node *watched, Inkscape::XML::Node *secondary);
     void setWatchedTool (const char *path, bool synthesize);
 
     void setClickVerb(sp_verb_t verb_t);
     void setDesktop(SPDesktop *desktop);
     bool on_click(GdkEventButton *event);
 
-    char *_tool_path;
+private:
+    class ToolObserver;
+    class StyleObserver;
 
-protected:
     SPDesktop *_desktop;
-
     sp_verb_t _verb_t;
-
     SPCSSAttr *_css;
-
-    Inkscape::XML::Node *_watched;
-    Inkscape::XML::Node *_watched_tool;
+    ToolObserver *_tool_obs;
+    StyleObserver *_style_obs;
+    Glib::ustring _tool_path;
 
     Gtk::EventBox _swatch;
-
     Gtk::Table _table;
-
     Gtk::Label _label[2];
-
     Gtk::EventBox _place[2];
     Gtk::EventBox _opacity_place;
-
     Gtk::Label _value[2];
     Gtk::Label _opacity_value;
-
     Gtk::Widget *_color_preview[2];
     Glib::ustring __color[2];
-
     Gtk::HBox _stroke;
     Gtk::EventBox _stroke_width_place;
     Gtk::Label _stroke_width;
@@ -91,6 +78,8 @@ protected:
     SPUnit *_sw_unit;
 
     Gtk::Tooltips _tooltips;
+    
+friend class ToolObserver;
 };
 
 
index 14bf8d1619ba2f85c5e1b9e82e1e3e7a865b957a..c57232c74859f06aea965e7dc3e0d34c03f3e590 100644 (file)
@@ -130,7 +130,7 @@ vp_knot_moved_handler (SPKnot */*knot*/, Geom::Point const *ppointer, guint stat
         // without Shift; see if we need to snap to another dragger
         for (GList *di = dragger->parent->draggers; di != NULL; di = di->next) {
             VPDragger *d_new = (VPDragger *) di->data;
-            if ((d_new != dragger) && (NR::L2 (d_new->point - p) < snap_dist)) {
+            if ((d_new != dragger) && (Geom::L2 (d_new->point - p) < snap_dist)) {
                 if (have_VPs_of_same_perspective (dragger, d_new)) {
                     // this would result in degenerate boxes, which we disallow for the time being
                     continue;
@@ -457,7 +457,7 @@ VPDragger::updateZOrders ()
 
 void
 VPDragger::printVPs() {
-    g_print ("VPDragger at position (%f, %f):\n", point[NR::X], point[NR::Y]);
+    g_print ("VPDragger at position (%f, %f):\n", point[Geom::X], point[Geom::Y]);
     for (std::list<VanishingPoint>::iterator i = this->vps.begin(); i != this->vps.end(); ++i) {
         g_print ("    VP %s\n", (*i).axisString());
     }
@@ -725,7 +725,7 @@ VPDrag::addDragger (VanishingPoint &vp)
 
     for (GList *i = this->draggers; i != NULL; i = i->next) {
         VPDragger *dragger = (VPDragger *) i->data;
-        if (NR::L2 (dragger->point - p) < MERGE_DIST) {
+        if (Geom::L2 (dragger->point - p) < MERGE_DIST) {
             // distance is small, merge this draggable into dragger, no need to create new dragger
             dragger->addVP (vp);
             return;
index 55a465fbb240c6f17932a9d6d683df4630f072c0..37961ab15669ffde18c02ac0d06b613d74ebc31a 100644 (file)
@@ -71,7 +71,7 @@
 #include "ui/dialog/dialog-manager.h"
 #include "ui/dialog/inkscape-preferences.h"
 #include "interface.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "splivarot.h"
 #include "sp-namedview.h"
 #include "sp-flowtext.h"
@@ -1314,7 +1314,7 @@ ObjectVerb::perform( SPAction *action, void *data, void */*pdata*/ )
     }
     // If the rotation center of the selection is visible, choose it as reference point
     // for horizontal and vertical flips. Otherwise, take the center of the bounding box.
-    NR::Point center;
+    Geom::Point center;
     if (tools_isactive(dt, TOOLS_SELECT) && sel->center() && SP_SELECT_CONTEXT(ec)->_seltrans->centerIsVisible())
         center = *sel->center();
     else
@@ -1431,6 +1431,7 @@ ContextVerb::perform(SPAction *action, void *data, void */*pdata*/)
         }
     }
 
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     switch (verb) {
         case SP_VERB_CONTEXT_SELECT:
             tools_switch(dt, TOOLS_SELECT);
@@ -1491,80 +1492,80 @@ ContextVerb::perform(SPAction *action, void *data, void */*pdata*/)
             break;
 
         case SP_VERB_CONTEXT_SELECT_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SELECTOR);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_SELECTOR);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_NODE_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_NODE);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_NODE);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_TWEAK_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_TWEAK);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_TWEAK);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_RECT_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SHAPES_RECT);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_SHAPES_RECT);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_3DBOX_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SHAPES_3DBOX);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_SHAPES_3DBOX);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_ARC_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SHAPES_ELLIPSE);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_SHAPES_ELLIPSE);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_STAR_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SHAPES_STAR);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_SHAPES_STAR);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_SPIRAL_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SHAPES_SPIRAL);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_SHAPES_SPIRAL);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_PENCIL_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_PENCIL);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_PENCIL);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_PEN_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_PEN);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_PEN);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_CALLIGRAPHIC_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_CALLIGRAPHY);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_CALLIGRAPHY);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_TEXT_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_TEXT);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_TEXT);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_GRADIENT_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_GRADIENT);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_GRADIENT);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_ZOOM_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_ZOOM);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_ZOOM);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_DROPPER_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_DROPPER);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_DROPPER);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_CONNECTOR_PREFS:
-            prefs_set_int_attribute ("dialogs.preferences", "page", PREFS_PAGE_TOOLS_CONNECTOR);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_CONNECTOR);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_PAINTBUCKET_PREFS:
-            prefs_set_int_attribute ("dialogs.preferences", "page", PREFS_PAGE_TOOLS_PAINTBUCKET);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_PAINTBUCKET);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_ERASER_PREFS:
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_ERASER);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_ERASER);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
         case SP_VERB_CONTEXT_LPETOOL_PREFS:
             g_print ("TODO: Create preferences page for LPETool\n");
-            prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_LPETOOL);
+            prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_LPETOOL);
             dt->_dlg_mgr->showDialog("InkscapePreferences");
             break;
 
@@ -1601,9 +1602,9 @@ ZoomVerb::perform(SPAction *action, void *data, void */*pdata*/)
 
     Inkscape::XML::Node *repr = SP_OBJECT_REPR(dt->namedview);
 
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     gdouble zoom_inc =
-        prefs_get_double_attribute_limited( "options.zoomincrement",
-                                            "value", 1.414213562, 1.01, 10 );
+        prefs->getDoubleLimited( "/options/zoomincrement/value", 1.414213562, 1.01, 10 );
 
     switch (GPOINTER_TO_INT(data)) {
         case SP_VERB_ZOOM_IN:
@@ -1644,21 +1645,21 @@ ZoomVerb::perform(SPAction *action, void *data, void */*pdata*/)
         }
         case SP_VERB_ZOOM_1_1:
         {
-            double zcorr = prefs_get_double_attribute ("options.zoomcorrection", "value", 1.0);
+            double zcorr = prefs->getDouble("/options/zoomcorrection/value", 1.0);
             Geom::Rect const d = dt->get_display_area();
             dt->zoom_absolute( d.midpoint()[Geom::X], d.midpoint()[Geom::Y], 1.0 * zcorr );
             break;
         }
         case SP_VERB_ZOOM_1_2:
         {
-            double zcorr = prefs_get_double_attribute ("options.zoomcorrection", "value", 1.0);
+            double zcorr = prefs->getDouble("/options/zoomcorrection/value", 1.0);
             Geom::Rect const d = dt->get_display_area();
             dt->zoom_absolute( d.midpoint()[Geom::X], d.midpoint()[Geom::Y], 0.5 * zcorr );
             break;
         }
         case SP_VERB_ZOOM_2_1:
         {
-            double zcorr = prefs_get_double_attribute ("options.zoomcorrection", "value", 1.0);
+            double zcorr = prefs->getDouble("/options/zoomcorrection/value", 1.0);
             Geom::Rect const d = dt->get_display_area();
             dt->zoom_absolute( d.midpoint()[Geom::X], d.midpoint()[Geom::Y], 2.0 * zcorr );
             break;
index 57f9259e292e5a2620a4e193e8946effa9fcee6d..284a8a59676086daf05ef6df619bf913cd8ab9a2 100644 (file)
@@ -1,9 +1,9 @@
 #define __SP_DASH_SELECTOR_NEW_C__
 
-/*
- * Optionmenu for selecting dash patterns
- *
- * Author:
+/** @file
+ * @brief Option menu for selecting dash patterns - implementation
+ */
+/* Author:
  *   Lauris Kaplinski <lauris@kaplinski.com>
  *   bulia byak <buliabyak@users.sf.net>
  *   Maximilian Albert <maximilian.albert@gmail.com>
@@ -28,6 +28,7 @@
 
 #include "style.h"
 #include "dialogs/dialog-events.h"
+#include "preferences.h"
 
 #include <gtkmm/optionmenu.h>
 #include <gtkmm/adjustment.h>
@@ -36,6 +37,8 @@
 
 #include "dash-selector.h"
 
+gchar const *const SPDashSelector::_prefs_path = "/palette/dashes";
+
 static double dash_0[] = {-1.0};
 static double dash_1_1[] = {1.0, 1.0, -1.0};
 static double dash_2_1[] = {2.0, 1.0, -1.0};
@@ -49,9 +52,9 @@ static double **dashes = NULL;
 
 static void sp_dash_selector_menu_item_image_realize(Gtk::Image *px, double *pattern);
 
-SPDashSelector::SPDashSelector(Inkscape::XML::Node *drepr) {
+SPDashSelector::SPDashSelector() {
     // TODO: find something more sensible here!!
-    init_dashes(drepr);
+    init_dashes();
 
     Gtk::Tooltips *tt = new Gtk::Tooltips();
 
@@ -89,39 +92,33 @@ SPDashSelector::~SPDashSelector() {
 }
 
 void
-SPDashSelector::init_dashes(Inkscape::XML::Node *drepr) {
+SPDashSelector::init_dashes() {
     if (!dashes) {
-        int ndashes = 0;
-        if (drepr) {
-            for (Inkscape::XML::Node *dr = drepr->firstChild(); dr; dr = dr->next()) {
-                if (!strcmp (dr->name(), "dash"))
-                    ndashes += 1;
-            }
-        }
-
-        if (ndashes > 0) {
+        
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        std::vector<Glib::ustring> dash_prefs = prefs->getAllDirs(_prefs_path);
+        
+        if (!dash_prefs.empty()) {
             int pos = 0;
             SPStyle *style = sp_style_new (NULL);
-            dashes = g_new (double *, ndashes + 1);
-            for (Inkscape::XML::Node *dr = drepr->firstChild(); dr; dr = dr->next()) {
-                if (!strcmp (dr->name(), "dash")) {
-                    sp_style_read_from_repr (style, dr);
-                    if (style->stroke_dash.n_dash > 0) {
-                        dashes[pos] = g_new (double, style->stroke_dash.n_dash + 1);
-                        double *d = dashes[pos];
-                        int i = 0;
-                        for (; i < style->stroke_dash.n_dash; i++) {
-                            d[i] = style->stroke_dash.dash[i];
-                        }
-                        d[i] = -1;
-                    } else {
-                        dashes[pos] = dash_0;
+            dashes = g_new (double *, dash_prefs.size() + 1);
+            
+            for (std::vector<Glib::ustring>::iterator i = dash_prefs.begin(); i != dash_prefs.end(); ++i) {
+                sp_style_read_from_prefs(style, *i);
+                
+                if (style->stroke_dash.n_dash > 0) {
+                    dashes[pos] = g_new (double, style->stroke_dash.n_dash + 1);
+                    double *d = dashes[pos];
+                    int i = 0;
+                    for (; i < style->stroke_dash.n_dash; i++) {
+                        d[i] = style->stroke_dash.dash[i];
                     }
-                    pos += 1;
+                    d[i] = -1;
+                } else {
+                    dashes[pos] = dash_0;
                 }
+                pos += 1;
             }
-            sp_style_unref (style);
-            dashes[pos] = NULL;
         } else {
             dashes = builtin_dashes;
         }
index 97e0b7379235bdeff207e2b10c455108a566d13b..25417285a6ff440a16cb0c169d400fb07306c3e8 100644 (file)
@@ -1,10 +1,10 @@
 #ifndef __SP_DASH_SELECTOR_NEW_H__
 #define __SP_DASH_SELECTOR_NEW_H__
 
-/*
- * Optionmenu for selecting dash patterns
- *
- * Author:
+/** @file
+ * @brief Option menu for selecting dash patterns
+ */
+/* Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
  *   Maximilian Albert <maximilian.albert> (gtkmm-ification)
  *
@@ -13,8 +13,7 @@
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
-#include "xml/repr.h"
-
+#include <glibmm/ustring.h>
 #include <gtkmm/box.h>
 #include <sigc++/signal.h>
 
@@ -28,7 +27,7 @@ class Adjustment;
 // TODO: should we rather derive this from OptionMenu and add the spinbutton somehow else?
 class SPDashSelector : public Gtk::HBox {
 public:
-    SPDashSelector(Inkscape::XML::Node *drepr);
+    SPDashSelector();
     ~SPDashSelector();
 
     void set_dash(int ndash, double *dash, double offset);
@@ -37,13 +36,15 @@ public:
     sigc::signal<void> changed_signal;
 
 private:
-    static void init_dashes(Inkscape::XML::Node *drepr);
+    static void init_dashes();
     void dash_activate(Gtk::MenuItem *mi);
     void offset_value_changed();
     Gtk::MenuItem *menu_item_new(double *pattern);
 
     Gtk::OptionMenu *dash;
     Gtk::Adjustment *offset;
+    
+    static gchar const *const _prefs_path;
 };
 
 #endif
index e4190b93014e2024eef72dbd022d333927cf0f5f..3c78eb0bb1f611aa962d552853762de9906e4bc7 100644 (file)
@@ -2,8 +2,8 @@
 
 /** \file
  * Desktop widget implementation
- *
- * Authors:
+ */
+/* Authors:
  *   Lauris Kaplinski <lauris@kaplinski.com>
  *   MenTaLguY <mental@rydia.net>
  *   bulia byak <buliabyak@users.sf.net>
@@ -57,7 +57,6 @@
 #include "ege-select-one-action.h"
 #include "ege-color-prof-tracker.h"
 #include "color-profile-fns.h"
-#include "xml/node-observer.h"
 #include "box3d-context.h"
 #include "sp-image.h"
 
@@ -114,48 +113,68 @@ static void sp_dtw_zoom_selection (GtkMenuItem *item, gpointer data);
 
 SPViewWidgetClass *dtw_parent_class;
 
-using Inkscape::XML::Node;
-
-class PrefWatcher : public Inkscape::XML::NodeObserver {
+class CMSPrefWatcher {
 public:
-    PrefWatcher();
-    virtual ~PrefWatcher();
-
-
-    virtual void notifyChildAdded( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) {}
-    virtual void notifyChildRemoved( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) {}
-    virtual void notifyChildOrderChanged( Node &/*node*/, Node &/*child*/,
-                                          Node */*old_prev*/, Node */*new_prev*/ ) {}
-    virtual void notifyContentChanged( Node &/*node*/,
-                                       Inkscape::Util::ptr_shared<char> /*old_content*/,
-                                       Inkscape::Util::ptr_shared<char> /*new_content*/ ) {}
-    virtual void notifyAttributeChanged( Node &node, GQuark name,
-                                         Inkscape::Util::ptr_shared<char> old_value,
-                                         Inkscape::Util::ptr_shared<char> new_value );
-    void add( SPDesktopWidget* dtw );
-    void remove( SPDesktopWidget* dtw );
+    CMSPrefWatcher() :
+        _dpw(*this),
+        _spw(*this),
+        _tracker(ege_color_prof_tracker_new(0))
+    {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        g_signal_connect( G_OBJECT(_tracker), "modified", G_CALLBACK(hook), this );
+        prefs->addObserver(_dpw);
+        prefs->addObserver(_spw);
+    }
+    virtual ~CMSPrefWatcher() {}
+
+    //virtual void notify(PrefValue &);
+    void add( SPDesktopWidget* dtw ) {
+        _widget_list.push_back(dtw);
+    }
+    void remove( SPDesktopWidget* dtw ) {
+        _widget_list.remove(dtw);
+    }
 
 private:
-    static void hook(EgeColorProfTracker *tracker, gint a, gint b, PrefWatcher *watcher);
+    static void hook(EgeColorProfTracker *tracker, gint a, gint b, CMSPrefWatcher *watcher);
+    
+    class DisplayProfileWatcher : public Inkscape::Preferences::Observer {
+    public:
+        DisplayProfileWatcher(CMSPrefWatcher &pw) : Observer("/options/displayprofile"), _pw(pw) {}
+        virtual void notify(Inkscape::Preferences::Entry const &val) {
+            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+            _pw._setCmsSensitive(!prefs->getString("/options/displayprofile/uri").empty());
+            _pw._refreshAll();
+        }
+    private:
+        CMSPrefWatcher &_pw;
+    };
+    
+    DisplayProfileWatcher _dpw;
+    
+    class SoftProofWatcher : public Inkscape::Preferences::Observer {
+    public:
+        SoftProofWatcher(CMSPrefWatcher &pw) : Observer("/options/softproof"), _pw(pw) {}
+        virtual void notify(Inkscape::Preferences::Entry const &) {
+            _pw._refreshAll();
+        }
+    private:
+        CMSPrefWatcher &_pw;
+    };
+    
+    SoftProofWatcher _spw;
+    
+    void _refreshAll();
+    void _setCmsSensitive(bool value);
 
-    std::list<SPDesktopWidget*> dtws;
+    std::list<SPDesktopWidget*> _widget_list;
     EgeColorProfTracker *_tracker;
+    
+    friend class DisplayProfileWatcher;
+    friend class SoftproofWatcher;
 };
 
-PrefWatcher::PrefWatcher() :
-    NodeObserver(),
-    dtws(),
-    _tracker(0)
-{
-    _tracker = ege_color_prof_tracker_new(0);
-    g_signal_connect( G_OBJECT(_tracker), "modified", G_CALLBACK(hook), this );
-}
-
-PrefWatcher::~PrefWatcher()
-{
-}
-
-void PrefWatcher::hook(EgeColorProfTracker */*tracker*/, gint screen, gint monitor, PrefWatcher */*watcher*/)
+void CMSPrefWatcher::hook(EgeColorProfTracker */*tracker*/, gint screen, gint monitor, CMSPrefWatcher */*watcher*/)
 {
 #if ENABLE_LCMS
     unsigned char* buf = 0;
@@ -166,56 +185,32 @@ void PrefWatcher::hook(EgeColorProfTracker */*tracker*/, gint screen, gint monit
 #endif // ENABLE_LCMS
 }
 
-void PrefWatcher::add( SPDesktopWidget* dtw )
-{
-    dtws.push_back(dtw);
-}
-
-void PrefWatcher::remove( SPDesktopWidget* dtw )
+/// @todo Use conditional compilation in saner places. The whole PrefWatcher
+/// object is unnecessary if ENABLE_LCMS is not defined.
+void CMSPrefWatcher::_refreshAll()
 {
-    dtws.remove(dtw);
+#if ENABLE_LCMS
+    for ( std::list<SPDesktopWidget*>::iterator it = _widget_list.begin(); it != _widget_list.end(); ++it ) {
+        (*it)->requestCanvasUpdate();
+    }
+#endif // ENABLE_LCMS
 }
 
-void PrefWatcher::notifyAttributeChanged( Node &node, GQuark name,
-                                          Inkscape::Util::ptr_shared<char> /*old_value*/,
-                                          Inkscape::Util::ptr_shared<char> /*new_value*/ )
+void CMSPrefWatcher::_setCmsSensitive(bool enabled)
 {
 #if ENABLE_LCMS
-    (void)name;
-    if ( strcmp("group", node.name()) == 0 ) {
-        gchar const* id = node.attribute("id");
-        bool refresh = false;
-        if ( !id ) {
-            // bad
-        } else if (strcmp("displayprofile", id) == 0) {
-            Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-            Glib::ustring current = prefs->getString("options.displayprofile", "uri");
-            bool enabled = !current.empty();
-
-            for ( std::list<SPDesktopWidget*>::iterator it = dtws.begin(); it != dtws.end(); ++it ) {
-                SPDesktopWidget* dtw = *it;
-                if ( GTK_WIDGET_SENSITIVE( dtw->cms_adjust ) != enabled ) {
-                    cms_adjust_set_sensitive( dtw, enabled );
-                }
-            }
-            refresh = true;
-        } else if (strcmp("softproof", id) == 0) {
-            refresh = true;
-        }
-
-        if ( refresh ) {
-            for ( std::list<SPDesktopWidget*>::iterator it = dtws.begin(); it != dtws.end(); ++it ) {
-                (*it)->requestCanvasUpdate();
-            }
+    for ( std::list<SPDesktopWidget*>::iterator it = _widget_list.begin(); it != _widget_list.end(); ++it ) {
+        SPDesktopWidget *dtw = *it;
+        if ( GTK_WIDGET_SENSITIVE( dtw->cms_adjust ) != enabled ) {
+            cms_adjust_set_sensitive( dtw, enabled );
         }
     }
 #else
-    (void)node;
-    (void)name;
+    (void) enabled;
 #endif // ENABLE_LCMS
 }
 
-static PrefWatcher* watcher = 0;
+static CMSPrefWatcher* watcher = NULL;
 
 void
 SPDesktopWidget::setMessage (Inkscape::MessageType type, const gchar *message)
@@ -317,7 +312,7 @@ sp_desktop_widget_init (SPDesktopWidget *dtw)
     {
         using Inkscape::UI::Dialogs::SwatchesPanel;
 
-        SwatchesPanel* swatches = new SwatchesPanel("embedded.swatches");
+        SwatchesPanel* swatches = new SwatchesPanel("/embedded/swatches");
         swatches->setOrientation( Gtk::ANCHOR_SOUTH );
         dtw->panels = GTK_WIDGET(swatches->gobj());
         gtk_box_pack_end( GTK_BOX( dtw->vbox ), dtw->panels, FALSE, TRUE, 0 );
@@ -378,7 +373,7 @@ sp_desktop_widget_init (SPDesktopWidget *dtw)
                                                  "sticky_zoom",
                                                  _("Zoom drawing if window size changes"),
                                                  dtw->tt);
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dtw->sticky_zoom), prefs->getBool("options.stickyzoom", "value"));
+    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);
     dtw->vadj = (GtkAdjustment *) gtk_adjustment_new (0.0, -4000.0, 4000.0, 10.0, 100.0, 4.0);
     dtw->vscrollbar = gtk_vscrollbar_new (GTK_ADJUSTMENT (dtw->vadj));
@@ -402,11 +397,11 @@ sp_desktop_widget_init (SPDesktopWidget *dtw)
                                                dtw->tt );
 #if ENABLE_LCMS
     {
-        Glib::ustring current = prefs->getString("options.displayprofile", "uri");
+        Glib::ustring current = prefs->getString("/options/displayprofile/uri");
         bool enabled = current.length() > 0;
         cms_adjust_set_sensitive( dtw, enabled );
         if ( enabled ) {
-            bool active = prefs->getBool("options.displayprofile", "enable");
+            bool active = prefs->getBool("/options/displayprofile/enable");
             if ( active ) {
                 sp_button_toggle_set_down( SP_BUTTON(dtw->cms_adjust), TRUE );
             }
@@ -418,10 +413,8 @@ sp_desktop_widget_init (SPDesktopWidget *dtw)
 #endif // ENABLE_LCMS
     gtk_table_attach( GTK_TABLE(canvas_tbl), dtw->cms_adjust, 2, 3, 2, 3, (GtkAttachOptions)(GTK_SHRINK), (GtkAttachOptions)(GTK_SHRINK), 0, 0);
     {
-        Inkscape::Preferences* prefs = Inkscape::Preferences::get();
         if (!watcher) {
-            watcher = new PrefWatcher();
-            prefs->addPrefsObserver( watcher );
+            watcher = new CMSPrefWatcher();
         }
         watcher->add(dtw);
     }
@@ -429,20 +422,20 @@ sp_desktop_widget_init (SPDesktopWidget *dtw)
     /* Canvas */
     dtw->canvas = SP_CANVAS (sp_canvas_new_aa ());
 #if ENABLE_LCMS
-    dtw->canvas->enable_cms_display_adj = prefs->getBool("options.displayprofile", "enable");
+    dtw->canvas->enable_cms_display_adj = prefs->getBool("/options/displayprofile/enable");
 #endif // ENABLE_LCMS
     GTK_WIDGET_SET_FLAGS (GTK_WIDGET (dtw->canvas), GTK_CAN_FOCUS);
     style = gtk_style_copy (GTK_WIDGET (dtw->canvas)->style);
     style->bg[GTK_STATE_NORMAL] = style->white;
     gtk_widget_set_style (GTK_WIDGET (dtw->canvas), style);
-    if ( prefs->getBool("options.useextinput", "value", true) )
+    if ( prefs->getBool("/options/useextinput/value", true) )
       gtk_widget_set_extension_events(GTK_WIDGET (dtw->canvas) , GDK_EXTENSION_EVENTS_ALL); //set extension events for tablets, unless disabled in preferences
     g_signal_connect (G_OBJECT (dtw->canvas), "event", G_CALLBACK (sp_desktop_widget_event), dtw);
     gtk_table_attach (GTK_TABLE (canvas_tbl), GTK_WIDGET(dtw->canvas), 1, 2, 1, 2, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 0, 0);
 
     /* Dock */
     bool create_dock =
-        prefs->getIntLimited("options.dialogtype", "value", Inkscape::UI::Dialog::FLOATING, 0, 1) ==
+        prefs->getIntLimited("/options/dialogtype/value", Inkscape::UI::Dialog::FLOATING, 0, 1) ==
         Inkscape::UI::Dialog::DOCK;
 
     if (create_dock) {
@@ -782,7 +775,7 @@ void cms_adjust_toggled( GtkWidget */*button*/, gpointer data )
         dtw->canvas->enable_cms_display_adj = down;
         dtw->requestCanvasUpdate();
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setBool("options.displayprofile", "enable", down);
+        prefs->setBool("/options/displayprofile/enable", down);
     }
 #endif // ENABLE_LCMS
 }
@@ -948,18 +941,18 @@ SPDesktopWidget::shutdown()
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         bool maxed = desktop->is_maximized();
         bool full = desktop->is_fullscreen();
-        prefs->setBool("desktop.geometry", "fullscreen", full);
-        prefs->setBool("desktop.geometry", "maximized", maxed);
+        prefs->setBool("/desktop/geometry/fullscreen", full);
+        prefs->setBool("/desktop/geometry/maximized", maxed);
         gint w, h, x, y;
         desktop->getWindowGeometry(x, y, w, h);
         // Don't save geom for maximized windows.  It
         // just tells you the current maximized size, which is not
         // as useful as whatever value it had previously.
         if (!maxed && !full) {
-            prefs->setInt("desktop.geometry", "width", w);
-            prefs->setInt("desktop.geometry", "height", h);
-            prefs->setInt("desktop.geometry", "x", x);
-            prefs->setInt("desktop.geometry", "y", y);
+            prefs->setInt("/desktop/geometry/width", w);
+            prefs->setInt("/desktop/geometry/height", h);
+            prefs->setInt("/desktop/geometry/x", x);
+            prefs->setInt("/desktop/geometry/y", y);
         }
     }
 
@@ -1148,10 +1141,10 @@ sp_desktop_widget_maximize(SPDesktopWidget *dtw)
                 Inkscape::Preferences *prefs = Inkscape::Preferences::get();
                 gint w, h, x, y;
                 dtw->getWindowGeometry(x, y, w, h);
-                prefs->setInt("desktop.geometry", "width", w);
-                prefs->setInt("desktop.geometry", "height", h);
-                prefs->setInt("desktop.geometry", "x", x);
-                prefs->setInt("desktop.geometry", "y", y);
+                prefs->setInt("/desktop/geometry/width", w);
+                prefs->setInt("/desktop/geometry/height", h);
+                prefs->setInt("/desktop/geometry/x", x);
+                prefs->setInt("/desktop/geometry/y", y);
             }
             gtk_window_maximize(topw);
         }
@@ -1176,10 +1169,10 @@ sp_desktop_widget_fullscreen(SPDesktopWidget *dtw)
                 Inkscape::Preferences *prefs = Inkscape::Preferences::get();
                 gint w, h, x, y;
                 dtw->getWindowGeometry(x, y, w, h);
-                prefs->setInt("desktop.geometry", "width", w);
-                prefs->setInt("desktop.geometry", "height", h);
-                prefs->setInt("desktop.geometry", "x", x);
-                prefs->setInt("desktop.geometry", "y", y);
+                prefs->setInt("/desktop/geometry/width", w);
+                prefs->setInt("/desktop/geometry/height", h);
+                prefs->setInt("/desktop/geometry/x", x);
+                prefs->setInt("/desktop/geometry/y", y);
             }
             gtk_window_fullscreen(topw);
             // widget layout is triggered by the resulting window_state_event
@@ -1194,72 +1187,56 @@ sp_desktop_widget_fullscreen(SPDesktopWidget *dtw)
 void
 sp_desktop_widget_layout (SPDesktopWidget *dtw)
 {
-       gchar * pref_path = NULL;
-       gchar const * pref_root = NULL;
-
-       if (dtw->desktop->is_focusMode()) {
-               pref_root = "focus.";
-       } else if (dtw->desktop->is_fullscreen()) {
-               pref_root = "fullscreen.";
-       } else {
-               pref_root = "window.";
-       }
-
-       pref_path = g_strconcat(pref_root, "menu", NULL);
-
+    Glib::ustring pref_root;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    if (!prefs->getBool(pref_path, "state", true)) {
+    if (dtw->desktop->is_focusMode()) {
+           pref_root = "/focus/";
+    } else if (dtw->desktop->is_fullscreen()) {
+           pref_root = "/fullscreen/";
+    } else {
+           pref_root = "/window/";
+    }
+
+    if (!prefs->getBool(pref_root + "menu/state", true)) {
         gtk_widget_hide_all (dtw->menubar);
     } else {
         gtk_widget_show_all (dtw->menubar);
     }
-       g_free(pref_path);
 
-       pref_path = g_strconcat(pref_root, "commands", NULL);
-    if (!prefs->getBool(pref_path, "state", true)) {
+    if (!prefs->getBool(pref_root + "commands/state", true)) {
         gtk_widget_hide_all (dtw->commands_toolbox);
     } else {
         gtk_widget_show_all (dtw->commands_toolbox);
     }
-       g_free(pref_path);
 
-       pref_path = g_strconcat(pref_root, "toppanel", NULL);
-    if (!prefs->getBool(pref_path, "state", true)) {
+    if (!prefs->getBool(pref_root + "toppanel/state", true)) {
         gtk_widget_hide_all (dtw->aux_toolbox);
     } else {
         // we cannot just show_all because that will show all tools' panels;
         // this is a function from toolbox.cpp that shows only the current tool's panel
         show_aux_toolbox (dtw->aux_toolbox);
     }
-       g_free(pref_path);
 
-       pref_path = g_strconcat(pref_root, "toolbox", NULL);
-    if (!prefs->getBool(pref_path, "state", true)) {
+    if (!prefs->getBool(pref_root + "toolbox/state", true)) {
         gtk_widget_hide_all (dtw->tool_toolbox);
     } else {
         gtk_widget_show_all (dtw->tool_toolbox);
     }
-       g_free(pref_path);
 
-       pref_path = g_strconcat(pref_root, "statusbar", NULL);
-    if (!prefs->getBool(pref_path, "state", true)) {
+    if (!prefs->getBool(pref_root + "statusbar/state", true)) {
         gtk_widget_hide_all (dtw->statusbar);
     } else {
         gtk_widget_show_all (dtw->statusbar);
     }
-       g_free(pref_path);
 
-       pref_path = g_strconcat(pref_root, "panels", NULL);
-    if (!prefs->getBool(pref_path, "state", true)) {
+    if (!prefs->getBool(pref_root + "panels/state", true)) {
         gtk_widget_hide_all( dtw->panels );
     } else {
         gtk_widget_show_all( dtw->panels );
     }
-       g_free(pref_path);
 
-       pref_path = g_strconcat(pref_root, "scrollbars", NULL);
-    if (!prefs->getBool(pref_path, "state", true)) {
+    if (!prefs->getBool(pref_root + "scrollbars/state", true)) {
         gtk_widget_hide_all (dtw->hscrollbar);
         gtk_widget_hide_all (dtw->vscrollbar_box);
         gtk_widget_hide_all( dtw->cms_adjust );
@@ -1268,19 +1245,14 @@ sp_desktop_widget_layout (SPDesktopWidget *dtw)
         gtk_widget_show_all (dtw->vscrollbar_box);
         gtk_widget_show_all( dtw->cms_adjust );
     }
-       g_free(pref_path);
 
-       pref_path = g_strconcat(pref_root, "rulers", NULL);
-    if (!prefs->getBool(pref_path, "state", true)) {
+    if (!prefs->getBool(pref_root + "rulers/state", true)) {
         gtk_widget_hide_all (dtw->hruler);
         gtk_widget_hide_all (dtw->vruler);
     } else {
         gtk_widget_show_all (dtw->hruler);
         gtk_widget_show_all (dtw->vruler);
     }
-       g_free(pref_path);
-
-       return;
 }
 
 void
@@ -1468,7 +1440,7 @@ sp_desktop_widget_adjustment_value_changed (GtkAdjustment */*adj*/, SPDesktopWid
 bool SPDesktopWidget::onFocusInEvent(GdkEventFocus*)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    if (prefs->getBool("options.bitmapautoreload", "value", true)) {
+    if (prefs->getBool("/options/bitmapautoreload/value", true)) {
         GSList const *imageList = sp_document_get_resource_list(desktop->doc(), "image");
         for (GSList const *p = imageList; p; p = p->next) {
             SPImage* image = SP_IMAGE(p->data);
@@ -1646,11 +1618,11 @@ sp_desktop_widget_toggle_rulers (SPDesktopWidget *dtw)
     if (GTK_WIDGET_VISIBLE (dtw->hruler)) {
         gtk_widget_hide_all (dtw->hruler);
         gtk_widget_hide_all (dtw->vruler);
-        prefs->setBool(dtw->desktop->is_fullscreen() ? "fullscreen.rulers" : "window.rulers", "state", false);
+        prefs->setBool(dtw->desktop->is_fullscreen() ? "/fullscreen/rulers/state" : "/window/rulers/state", false);
     } else {
         gtk_widget_show_all (dtw->hruler);
         gtk_widget_show_all (dtw->vruler);
-        prefs->setBool(dtw->desktop->is_fullscreen() ? "fullscreen.rulers" : "window.rulers", "state", true);
+        prefs->setBool(dtw->desktop->is_fullscreen() ? "/fullscreen/rulers/state" : "/window/rulers/state", true);
     }
 }
 
@@ -1662,12 +1634,12 @@ sp_desktop_widget_toggle_scrollbars (SPDesktopWidget *dtw)
         gtk_widget_hide_all (dtw->hscrollbar);
         gtk_widget_hide_all (dtw->vscrollbar_box);
         gtk_widget_hide_all( dtw->cms_adjust );
-        prefs->setBool(dtw->desktop->is_fullscreen() ? "fullscreen.scrollbars" : "window.scrollbars", "state", false);
+        prefs->setBool(dtw->desktop->is_fullscreen() ? "/fullscreen/scrollbars/state" : "/window/scrollbars/state", false);
     } else {
         gtk_widget_show_all (dtw->hscrollbar);
         gtk_widget_show_all (dtw->vscrollbar_box);
         gtk_widget_show_all( dtw->cms_adjust );
-        prefs->setBool(dtw->desktop->is_fullscreen() ? "fullscreen.scrollbars" : "window.scrollbars", "state", true);
+        prefs->setBool(dtw->desktop->is_fullscreen() ? "/fullscreen/scrollbars/state" : "/window/scrollbars/state", true);
     }
 }
 
@@ -1690,10 +1662,10 @@ sp_spw_toggle_menubar (SPDesktopWidget *dtw, bool is_fullscreen)
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     if (GTK_WIDGET_VISIBLE (dtw->menubar)) {
         gtk_widget_hide_all (dtw->menubar);
-        prefs->setBool(is_fullscreen ? "fullscreen.menu" : "window.menu", "state", false);
+        prefs->setBool(is_fullscreen ? "/fullscreen/menu/state" : "/window/menu/state", false);
     } else {
         gtk_widget_show_all (dtw->menubar);
-        prefs->setBool(is_fullscreen ? "fullscreen.menu" : "window.menu", "state", true);
+        prefs->setBool(is_fullscreen ? "/fullscreen/menu/state" : "/window/menu/state", true);
     }
 }
 */
index afb20cbd5fb5093b4f872cb47ce9904b4c3c7e4d..319ef4be191d7fc44c3649649791a7f3d550f0a8 100644 (file)
@@ -26,7 +26,7 @@
 #include "widgets/gradient-image.h"
 #include "style.h"
 
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "document-private.h"
 #include "desktop.h"
 #include "desktop-handles.h"
 //########################
 
 static void gr_toggle_type (GtkWidget *button, gpointer data) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     GtkWidget *linear = (GtkWidget *) g_object_get_data (G_OBJECT(data), "linear");
     GtkWidget *radial = (GtkWidget *) g_object_get_data (G_OBJECT(data), "radial");
     if (button == linear && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (linear))) {
-        prefs_set_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR);
+        prefs->setInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR);
         if (radial) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radial), FALSE);
     } else if (button == radial && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radial))) {
-        prefs_set_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_RADIAL);
+        prefs->setInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_RADIAL);
         if (linear) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (linear), FALSE);
     }
 }
 
 static void gr_toggle_fillstroke (GtkWidget *button, gpointer data) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     GtkWidget *fill = (GtkWidget *) g_object_get_data (G_OBJECT(data), "fill");
     GtkWidget *stroke = (GtkWidget *) g_object_get_data (G_OBJECT(data), "stroke");
     if (button == fill && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fill))) {
-        prefs_set_int_attribute ("tools.gradient", "newfillorstroke", 1);
+        prefs->setBool("/tools/gradient/newfillorstroke", true);
         if (stroke) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (stroke), FALSE);
     } else if (button == stroke && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (stroke))) {
-        prefs_set_int_attribute ("tools.gradient", "newfillorstroke", 0);
+        prefs->setBool("/tools/gradient/newfillorstroke", false);
         if (fill) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fill), FALSE);
     }
 }
@@ -113,8 +115,9 @@ gradient.
 void
 gr_apply_gradient (Inkscape::Selection *selection, GrDrag *drag, SPGradient *gr)
 {
-    SPGradientType new_type = (SPGradientType) prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR);
-    guint new_fill = prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    SPGradientType new_type = (SPGradientType) prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR);
+    guint new_fill = prefs->getBool("/tools/gradient/newfillorstroke", true);
 
 
     // GRADIENTFIXME: make this work for multiple selected draggers.
@@ -512,6 +515,7 @@ gr_change_widget (SPDesktop *desktop)
 GtkWidget *
 sp_gradient_toolbox_new(SPDesktop *desktop)
 {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     GtkWidget *tbl = gtk_toolbar_new();
 
     gtk_object_set_data(GTK_OBJECT(tbl), "dtw", desktop->canvas);
@@ -537,7 +541,7 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
     g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_type), tbl);
     g_object_set_data(G_OBJECT(tbl), "linear", button);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
-              prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_LINEAR);
+              prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_LINEAR);
     gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
     }
 
@@ -551,7 +555,7 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
     g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_type), tbl);
     g_object_set_data(G_OBJECT(tbl), "radial", button);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
-              prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_RADIAL);
+              prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_RADIAL);
     gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
     }
 
@@ -579,7 +583,7 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
     g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_fillstroke), tbl);
     g_object_set_data(G_OBJECT(tbl), "fill", button);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
-                                  prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1) == 1);
+                                  prefs->getBool("/tools/gradient/newfillorstroke", true));
     gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
     }
 
@@ -593,7 +597,7 @@ sp_gradient_toolbox_new(SPDesktop *desktop)
     g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_fillstroke), tbl);
     g_object_set_data(G_OBJECT(tbl), "stroke", button);
     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
-                                  prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1) == 0);
+                                  !prefs->getBool("/tools/gradient/newfillorstroke", true));
     gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
     }
 
index 881f346285ffadb277413cebc13aa19e8c83be12..5f4d06172da612a705ceeb9d0ac307e37638db4c 100644 (file)
@@ -36,7 +36,7 @@
 #include "xml/repr.h"
 
 #include "../dialogs/dialog-events.h"
-#include "../prefs-utils.h"
+#include "../preferences.h"
 #include "svg/css-ostringstream.h"
 #include "sp-stop.h"
 
@@ -65,7 +65,7 @@ static guint signals[LAST_SIGNAL] = {0};
 static GtkWidget *dlg = NULL;
 static win_data wd;
 static gint x = -1000, y = -1000, w = 0, h = 0; // impossible original values to make sure they are read from prefs
-static gchar const *prefs_path = "dialogs.gradienteditor";
+static Glib::ustring const prefs_path = "/dialogs/gradienteditor/";
 
 GtkType
 sp_gradient_vector_selector_get_type (void)
@@ -892,67 +892,68 @@ sp_gradient_vector_widget_new (SPGradient *gradient, SPStop *select_stop)
 GtkWidget *
 sp_gradient_vector_editor_new (SPGradient *gradient, SPStop *stop)
 {
-       GtkWidget *wid;
-
-       if (dlg == NULL) {
-
-               dlg = sp_window_new (_("Gradient editor"), TRUE);
-               if (x == -1000 || y == -1000) {
-                       x = prefs_get_int_attribute (prefs_path, "x", 0);
-                       y = prefs_get_int_attribute (prefs_path, "y", 0);
-               }
-               if (w ==0 || h == 0) {
-                       w = prefs_get_int_attribute (prefs_path, "w", 0);
-                       h = prefs_get_int_attribute (prefs_path, "h", 0);
-               }
-
-                if (x<0) x=0;
-                if (y<0) y=0;
-
-               if (x != 0 || y != 0)
-                       gtk_window_move ((GtkWindow *) dlg, x, y);
-               else
-                       gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER);
-               if (w && h) gtk_window_resize ((GtkWindow *) dlg, w, h);
-               sp_transientize (dlg);
-               wd.win = dlg;
-               wd.stop = 0;
-               g_signal_connect (G_OBJECT (INKSCAPE), "activate_desktop", G_CALLBACK (sp_transientize_callback), &wd);
-               gtk_signal_connect (GTK_OBJECT (dlg), "event", GTK_SIGNAL_FUNC (sp_dialog_event_handler), dlg);
-               gtk_signal_connect (GTK_OBJECT (dlg), "destroy", G_CALLBACK (sp_gradient_vector_dialog_destroy), dlg);
-               gtk_signal_connect (GTK_OBJECT (dlg), "delete_event", G_CALLBACK (sp_gradient_vector_dialog_delete), dlg);
-               g_signal_connect (G_OBJECT (INKSCAPE), "shut_down", G_CALLBACK (sp_gradient_vector_dialog_delete), dlg);
-               g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_hide", G_CALLBACK (sp_dialog_hide), dlg );
-               g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_unhide", G_CALLBACK (sp_dialog_unhide), dlg );
-
-               gtk_container_set_border_width (GTK_CONTAINER (dlg), PAD);
-
-               wid = (GtkWidget*)sp_gradient_vector_widget_new (gradient, stop);
-               g_object_set_data (G_OBJECT (dlg), "gradient-vector-widget", wid);
-               /* Connect signals */
-               gtk_widget_show (wid);
-               gtk_container_add (GTK_CONTAINER (dlg), wid);
-       } else {
-               // FIXME: temp fix for 0.38
-               // Simply load_gradient into the editor does not work for multi-stop gradients,
-               // as the stop list and other widgets are in a wrong state and crash readily.
-               // Instead we just delete the window (by sending the delete signal)
-               // and call sp_gradient_vector_editor_new again, so it creates the window anew.
-
-               GdkEventAny event;
-               GtkWidget *widget = (GtkWidget *) dlg;
-               event.type = GDK_DELETE;
-               event.window = widget->window;
-               event.send_event = TRUE;
-               g_object_ref (G_OBJECT (event.window));
-               gtk_main_do_event ((GdkEvent*)&event);
-               g_object_unref (G_OBJECT (event.window));
-
-               g_assert (dlg == NULL);
-               sp_gradient_vector_editor_new (gradient, stop);
-       }
-
-       return dlg;
+    GtkWidget *wid;
+
+    if (dlg == NULL) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+
+        dlg = sp_window_new (_("Gradient editor"), TRUE);
+        if (x == -1000 || y == -1000) {
+            x = prefs->getInt(prefs_path + "x", -1000);
+            y = prefs->getInt(prefs_path + "y", -1000);
+        }
+        if (w ==0 || h == 0) {
+            w = prefs->getInt(prefs_path + "w", 0);
+            h = prefs->getInt(prefs_path + "h", 0);
+        }
+
+        if (x<0) x=0;
+        if (y<0) y=0;
+
+        if (x != 0 || y != 0)
+               gtk_window_move ((GtkWindow *) dlg, x, y);
+        else
+               gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER);
+        if (w && h) gtk_window_resize ((GtkWindow *) dlg, w, h);
+        sp_transientize (dlg);
+        wd.win = dlg;
+        wd.stop = 0;
+        g_signal_connect (G_OBJECT (INKSCAPE), "activate_desktop", G_CALLBACK (sp_transientize_callback), &wd);
+        gtk_signal_connect (GTK_OBJECT (dlg), "event", GTK_SIGNAL_FUNC (sp_dialog_event_handler), dlg);
+        gtk_signal_connect (GTK_OBJECT (dlg), "destroy", G_CALLBACK (sp_gradient_vector_dialog_destroy), dlg);
+        gtk_signal_connect (GTK_OBJECT (dlg), "delete_event", G_CALLBACK (sp_gradient_vector_dialog_delete), dlg);
+        g_signal_connect (G_OBJECT (INKSCAPE), "shut_down", G_CALLBACK (sp_gradient_vector_dialog_delete), dlg);
+        g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_hide", G_CALLBACK (sp_dialog_hide), dlg );
+        g_signal_connect ( G_OBJECT (INKSCAPE), "dialogs_unhide", G_CALLBACK (sp_dialog_unhide), dlg );
+
+        gtk_container_set_border_width (GTK_CONTAINER (dlg), PAD);
+
+        wid = (GtkWidget*)sp_gradient_vector_widget_new (gradient, stop);
+        g_object_set_data (G_OBJECT (dlg), "gradient-vector-widget", wid);
+        /* Connect signals */
+        gtk_widget_show (wid);
+        gtk_container_add (GTK_CONTAINER (dlg), wid);
+    } else {
+        // FIXME: temp fix for 0.38
+        // Simply load_gradient into the editor does not work for multi-stop gradients,
+        // as the stop list and other widgets are in a wrong state and crash readily.
+        // Instead we just delete the window (by sending the delete signal)
+        // and call sp_gradient_vector_editor_new again, so it creates the window anew.
+
+        GdkEventAny event;
+        GtkWidget *widget = (GtkWidget *) dlg;
+        event.type = GDK_DELETE;
+        event.window = widget->window;
+        event.send_event = TRUE;
+        g_object_ref (G_OBJECT (event.window));
+        gtk_main_do_event ((GdkEvent*)&event);
+        g_object_unref (G_OBJECT (event.window));
+
+        g_assert (dlg == NULL);
+        sp_gradient_vector_editor_new (gradient, stop);
+    }
+
+    return dlg;
 }
 
 static void
@@ -1051,18 +1052,19 @@ sp_gradient_vector_dialog_destroy (GtkObject *object, gpointer data)
 static gboolean
 sp_gradient_vector_dialog_delete (GtkWidget *widget, GdkEvent *event, GtkWidget *dialog)
 {
-       gtk_window_get_position ((GtkWindow *) dlg, &x, &y);
-       gtk_window_get_size ((GtkWindow *) dlg, &w, &h);
+    gtk_window_get_position ((GtkWindow *) dlg, &x, &y);
+    gtk_window_get_size ((GtkWindow *) dlg, &w, &h);
 
     if (x<0) x=0;
     if (y<0) y=0;
 
-       prefs_set_int_attribute (prefs_path, "x", x);
-       prefs_set_int_attribute (prefs_path, "y", y);
-       prefs_set_int_attribute (prefs_path, "w", w);
-       prefs_set_int_attribute (prefs_path, "h", h);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    prefs->setInt(prefs_path + "x", x);
+    prefs->setInt(prefs_path + "y", y);
+    prefs->setInt(prefs_path + "w", w);
+    prefs->setInt(prefs_path + "h", h);
 
-       return FALSE; // which means, go ahead and destroy it
+    return FALSE; // which means, go ahead and destroy it
 }
 
 /* Widget destroy handler */
index 401d76474b88add712638a4934cefbf4d285e300..4c0439da7447e6da6eff75571fe1c9b88fdec10e 100644 (file)
@@ -27,7 +27,7 @@
 #include <gtkmm/image.h>
 
 #include "path-prefix.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "inkscape.h"
 #include "document.h"
 #include "sp-item.h"
@@ -280,7 +280,8 @@ static void setupLegacyNaming() {
 static GtkWidget *
 sp_icon_new_full( Inkscape::IconSize lsize, gchar const *name )
 {
-    static gint dump = prefs_get_int_attribute_limited( "debug.icons", "dumpGtk", 0, 0, 1 );
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    static bool dump = prefs->getBool( "/debug/icons/dumpGtk");
 
     GtkWidget *widget = 0;
         gint trySize = CLAMP( static_cast<gint>(lsize), 0, static_cast<gint>(G_N_ELEMENTS(iconSizeLookup) - 1) );
@@ -336,7 +337,7 @@ sp_icon_new_full( Inkscape::IconSize lsize, gchar const *name )
                 // Add a hook to render if set visible before prerender is done.
                 g_signal_connect( G_OBJECT(widget), "map", G_CALLBACK(imageMapNamedCB), GINT_TO_POINTER(0) );
 
-                if ( prefs_get_int_attribute_limited( "options.iconrender", "named_nodelay", 0, 0, 1 ) ) {
+                if ( prefs->getBool("/options/iconrender/named_nodelay") ) {
                     int psize = sp_icon_get_phys_size(lsize);
                     prerender_icon(name, mappedSize, psize);
                 } else {
@@ -408,7 +409,8 @@ static void injectCustomSize()
     // TODO - still need to handle the case of theme changes and resize, especially as we can't re-register a string.
     if ( !sizeMapDone )
     {
-        gint dump = prefs_get_int_attribute_limited( "debug.icons", "dumpDefault", 0, 0, 1 );
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        bool dump = prefs->getBool( "/debug/icons/dumpDefault");
         gint width = 0;
         gint height = 0;
         if ( gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height ) ) {
@@ -493,7 +495,8 @@ int sp_icon_get_phys_size(int size)
 
     if ( !init ) {
         sizeDirty = false;
-        gint dump = prefs_get_int_attribute_limited( "debug.icons", "dumpDefault", 0, 0, 1 );
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        bool dump = prefs->getBool("/debug/icons/dumpDefault");
 
         if ( dump ) {
             g_message( "Default icon sizes:" );
@@ -650,7 +653,8 @@ extern "C" guchar *
 sp_icon_doc_icon( SPDocument *doc, NRArenaItem *root,
                   gchar const *name, unsigned psize )
 {
-    gint const dump = prefs_get_int_attribute_limited( "debug.icons", "dumpSvg", 0, 0, 1 );
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool const dump = prefs->getBool("/debug/icons/dumpSvg");
     guchar *px = NULL;
 
     if (doc) {
@@ -763,7 +767,7 @@ sp_icon_doc_icon( SPDocument *doc, NRArenaItem *root,
                                              NR_ARENA_ITEM_RENDER_NO_CACHE );
                 nr_pixblock_release(&B);
 
-                gint useOverlay = prefs_get_int_attribute_limited( "debug.icons", "overlaySvg", 0, 0, 1 );
+                bool useOverlay = prefs->getBool("/debug/icons/overlaySvg");
                 if ( useOverlay ) {
                     sp_icon_overlay_pixels( px, psize, psize, 4 * psize, 0x00, 0x00, 0xff );
                 }
@@ -890,7 +894,8 @@ static void populate_placeholder_icon(gchar const* name, GtkIconSize size)
 }
 
 static void addToIconSet(GdkPixbuf* pb, gchar const* name, GtkIconSize lsize, unsigned psize) {
-    static gint dump = prefs_get_int_attribute_limited( "debug.icons", "dumpGtk", 0, 0, 1 );
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    static bool dump = prefs->getBool("/debug/icons/dumpGtk");
     GtkStockItem stock;
     gboolean stockFound = gtk_stock_lookup( name, &stock );
     if ( !stockFound ) {
@@ -924,7 +929,8 @@ static void addToIconSet(GdkPixbuf* pb, gchar const* name, GtkIconSize lsize, un
 // returns true if icon needed preloading, false if nothing was done
 bool prerender_icon(gchar const *name, GtkIconSize lsize, unsigned psize)
 {
-    static gint dump = prefs_get_int_attribute_limited( "debug.icons", "dumpGtk", 0, 0, 1 );
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    static bool dump = prefs->getBool("/debug/icons/dumpGtk");
     Glib::ustring key = icon_cache_key(name, lsize, psize);
     GdkPixbuf *pb = get_cached_pixbuf(key);
     if (pb) {
index 5f43f792560674590873c1b9454c2c7d9dadb6b6..af1883916b7d4df57d30c2656932560a29cdac80 100644 (file)
@@ -25,7 +25,7 @@
 #include "widgets/icon.h"
 #include "widgets/sp-widget.h"
 
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "selection-chemistry.h"
 #include "document.h"
 #include "inkscape.h"
@@ -39,7 +39,6 @@
 #include "helper/units.h"
 #include "inkscape.h"
 #include "verbs.h"
-#include "prefs-utils.h"
 #include "selection.h"
 #include "selection-chemistry.h"
 #include "sp-item-transform.h"
@@ -62,10 +61,11 @@ sp_selection_layout_widget_update(SPWidget *spw, Inkscape::Selection *sel)
 
     g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(TRUE));
 
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     using Geom::X;
     using Geom::Y;
     if ( sel && !sel->isEmpty() ) {
-        int prefs_bbox = prefs_get_int_attribute("tools", "bounding_box", 0);
+        int prefs_bbox = prefs->getInt("/tools/bounding_box", 0);
         SPItem::BBoxType bbox_type = (prefs_bbox ==0)? 
             SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX;
         boost::optional<Geom::Rect> const bbox(sel->bounds(bbox_type));
@@ -155,7 +155,8 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw)
     SPDocument *document = sp_desktop_document(desktop);
 
     sp_document_ensure_up_to_date (document);
-    int prefs_bbox = prefs_get_int_attribute("tools", "bounding_box", 0);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    int prefs_bbox = prefs->getInt("/tools/bounding_box");
     SPItem::BBoxType bbox_type = (prefs_bbox ==0)? 
         SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX;
     boost::optional<Geom::Rect> bbox = selection->bounds(bbox_type);
@@ -236,9 +237,9 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw)
         sp_canvas_force_full_redraw_after_interruptions(sp_desktop_canvas(desktop), 0);
 
         gdouble strokewidth = stroke_average_width (selection->itemList());
-        int transform_stroke = prefs_get_int_attribute ("options.transform", "stroke", 1);
+        int transform_stroke = prefs->getBool("/options/transform/stroke", true) ? 1 : 0;
 
-        NR::Matrix scaler = get_scale_transform_with_stroke (*bbox, strokewidth, transform_stroke, x0, y0, x1, y1);
+        Geom::Matrix scaler = get_scale_transform_with_stroke (*bbox, strokewidth, transform_stroke, x0, y0, x1, y1);
 
         sp_selection_apply_affine(selection, scaler);
         sp_document_maybe_done (document, actionkey, SP_VERB_CONTEXT_SELECT,
@@ -292,9 +293,11 @@ static EgeAdjustmentAction * create_adjustment_action( gchar const *name,
 
 // toggle button callbacks and updaters
 
-static void toggle_stroke( GtkToggleAction* act, gpointer data ) {
-    gboolean active = gtk_toggle_action_get_active( act );
-    prefs_set_int_attribute( "options.transform", "stroke", active ? 1 : 0 );
+static void toggle_stroke( GtkToggleAction* act, gpointer data )
+{
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gboolean active = gtk_toggle_action_get_active(act);
+    prefs->setBool("/options/transform/stroke", active);
     SPDesktop *desktop = (SPDesktop *)data;
     if ( active ) {
         desktop->messageStack()->flash(Inkscape::INFORMATION_MESSAGE, _("Now <b>stroke width</b> is <b>scaled</b> when objects are scaled."));
@@ -303,9 +306,11 @@ static void toggle_stroke( GtkToggleAction* act, gpointer data ) {
     }
 }
 
-static void toggle_corners( GtkToggleAction* act, gpointer data) {
-    gboolean active = gtk_toggle_action_get_active( act );
-    prefs_set_int_attribute( "options.transform", "rectcorners", active ? 1 : 0 );
+static void toggle_corners( GtkToggleAction* act, gpointer data)
+{
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gboolean active = gtk_toggle_action_get_active(act);
+    prefs->setBool("/options/transform/rectcorners", active);
     SPDesktop *desktop = (SPDesktop *)data;
     if ( active ) {
         desktop->messageStack()->flash(Inkscape::INFORMATION_MESSAGE, _("Now <b>rounded rectangle corners</b> are <b>scaled</b> when rectangles are scaled."));
@@ -314,9 +319,11 @@ static void toggle_corners( GtkToggleAction* act, gpointer data) {
     }
 }
 
-static void toggle_gradient( GtkToggleAction *act, gpointer data ) {
-    gboolean active = gtk_toggle_action_get_active( act );
-    prefs_set_int_attribute( "options.transform", "gradient", active ? 1 : 0 );
+static void toggle_gradient( GtkToggleAction *act, gpointer data )
+{
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gboolean active = gtk_toggle_action_get_active(act);
+    prefs->setBool("/options/transform/gradient", active);
     SPDesktop *desktop = (SPDesktop *)data;
     if ( active ) {
         desktop->messageStack()->flash(Inkscape::INFORMATION_MESSAGE, _("Now <b>gradients</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."));
@@ -325,9 +332,11 @@ static void toggle_gradient( GtkToggleAction *act, gpointer data ) {
     }
 }
 
-static void toggle_pattern( GtkToggleAction* act, gpointer data ) {
-    gboolean active = gtk_toggle_action_get_active( act );
-    prefs_set_int_attribute( "options.transform", "pattern", active ? 1 : 0 );
+static void toggle_pattern( GtkToggleAction* act, gpointer data )
+{
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    gboolean active = gtk_toggle_action_get_active(act);
+    prefs->setInt("/options/transform/pattern", active);
     SPDesktop *desktop = (SPDesktop *)data;
     if ( active ) {
         desktop->messageStack()->flash(Inkscape::INFORMATION_MESSAGE, _("Now <b>patterns</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."));
@@ -378,7 +387,8 @@ static GtkAction* create_action_for_verb( Inkscape::Verb* verb, Inkscape::UI::Vi
 void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder)
 {
     Inkscape::UI::View::View *view = desktop;
-    Inkscape::IconSize secondarySize = prefToSize("toolbox", "secondary", 1);
+    Inkscape::IconSize secondarySize = prefToSize("/toolbox/secondary", 1);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     GtkAction* act = 0;
 
@@ -532,7 +542,7 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
                                                     _("When scaling objects, scale the stroke width by the same proportion"),
                                                     "transform_stroke",
                                                     Inkscape::ICON_SIZE_DECORATION );
-    gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), prefs_get_int_attribute("options.transform", "stroke", 1) );
+    gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), prefs->getBool("/options/transform/stroke", true) );
     g_signal_connect_after( G_OBJECT(itact), "toggled", G_CALLBACK(toggle_stroke), desktop) ;
     gtk_action_group_add_action( mainActions, GTK_ACTION(itact) );
     }
@@ -543,7 +553,7 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
                                                     _("When scaling rectangles, scale the radii of rounded corners"),
                                                     "transform_corners",
                                                   Inkscape::ICON_SIZE_DECORATION );
-    gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), prefs_get_int_attribute("options.transform", "rectcorners", 1) );
+    gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), prefs->getBool("/options/transform/rectcorners", true) );
     g_signal_connect_after( G_OBJECT(itact), "toggled", G_CALLBACK(toggle_corners), desktop) ;
     gtk_action_group_add_action( mainActions, GTK_ACTION(itact) );
     }
@@ -554,7 +564,7 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
                                                     _("Move gradients (in fill or stroke) along with the objects"),
                                                     "transform_gradient",
                                                   Inkscape::ICON_SIZE_DECORATION );
-    gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), prefs_get_int_attribute("options.transform", "gradient", 1) );
+    gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), prefs->getBool("/options/transform/gradient", true) );
     g_signal_connect_after( G_OBJECT(itact), "toggled", G_CALLBACK(toggle_gradient), desktop) ;
     gtk_action_group_add_action( mainActions, GTK_ACTION(itact) );
     }
@@ -565,7 +575,7 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
                                                     _("Move patterns (in fill or stroke) along with the objects"),
                                                     "transform_pattern",
                                                   Inkscape::ICON_SIZE_DECORATION );
-    gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), prefs_get_int_attribute("options.transform", "pattern", 1) );
+    gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(itact), prefs->getBool("/options/transform/pattern", true) );
     g_signal_connect_after( G_OBJECT(itact), "toggled", G_CALLBACK(toggle_pattern), desktop) ;
     gtk_action_group_add_action( mainActions, GTK_ACTION(itact) );
     }
index 43a2a3cbe7ef7a573aef17ab06cb22e5442976b3..b1829092373e0c9f51eb64dbe660a43bcad62b0a 100644 (file)
@@ -24,7 +24,7 @@
 #include "color-profile.h"
 //#define DEBUG_LCMS
 #ifdef DEBUG_LCMS
-#include "prefs-utils.h"
+#include "preferences.h"
 #include <gtk/gtkmessagedialog.h>
 #endif // DEBUG_LCMS
 #endif // ENABLE_LCMS
 extern guint update_in_progress;
 #define DEBUG_MESSAGE(key, ...) \
 {\
-    gint dump = prefs_get_int_attribute_limited("options.scislac", #key, 0, 0, 1);\
-    gint dumpD = prefs_get_int_attribute_limited("options.scislac", #key"D", 0, 0, 1);\
-    gint dumpD2 = prefs_get_int_attribute_limited("options.scislac", #key"D2", 0, 0, 1);\
-    dumpD &= ( (update_in_progress == 0) || dumpD2 );\
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();\
+    bool dump = prefs->getBool("/options/scislac/" #key);\
+    bool dumpD = prefs->getBool("/options/scislac/" #key "D");\
+    bool dumpD2 = prefs->getBool("/options/scislac/" #key "D2");\
+    dumpD &&= ( (update_in_progress == 0) || dumpD2 );\
     if ( dump )\
     {\
         g_message( __VA_ARGS__ );\
index 376cd8ee55f07b3a2ede37ca64de40b5f105a7b1..9766a9498e494d3052ddbfd052874bf0e9a5eb9d 100644 (file)
@@ -26,7 +26,7 @@
 #include <glibmm/i18n.h>
 
 #include "../dialogs/dialog-events.h"
-#include "../prefs-utils.h"
+#include "../preferences.h"
 #include "sp-color-notebook.h"
 #include "spw-utilities.h"
 #include "sp-color-scales.h"
@@ -97,19 +97,19 @@ sp_color_notebook_class_init (SPColorNotebookClass *klass)
 
 static void
 sp_color_notebook_switch_page(GtkNotebook *notebook,
-                                                         GtkNotebookPage *page,
-                                                         guint page_num,
-                                                         SPColorNotebook *colorbook)
+                              GtkNotebookPage *page,
+                              guint page_num,
+                              SPColorNotebook *colorbook)
 {
-       if ( colorbook )
-       {
+    if ( colorbook )
+    {
         ColorNotebook* nb = (ColorNotebook*)(SP_COLOR_SELECTOR(colorbook)->base);
         nb->switchPage( notebook, page, page_num );
 
-       // remember the page we seitched to
-        prefs_set_int_attribute ("colorselector", "page", page_num);
-
-       }
+        // remember the page we seitched to
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        prefs->setInt("/colorselector/page", page_num);
+    }
 }
 
 void ColorNotebook::switchPage(GtkNotebook*,
@@ -274,7 +274,8 @@ void ColorNotebook::init()
                       XPAD, YPAD);
 
        // restore the last active page
-       gtk_notebook_set_current_page (GTK_NOTEBOOK (_book), prefs_get_int_attribute ("colorselector", "page", 0));
+       Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+       gtk_notebook_set_current_page (GTK_NOTEBOOK (_book), prefs->getInt("/colorselector/page", 0));
 
        {
                gboolean found = FALSE;
index b70684692fc6b8ab9c9131b160caa3c33043b23d..b945765db14e852399f30234b8c895e6ea6f327e 100644 (file)
@@ -1,28 +1,25 @@
-/** \file
- * Controls bars for some of Inkscape's tools
- * (for some tools, they are in their own files)
+/** @file
+ * @brief Controls bars for some of Inkscape's tools (for some tools,
+ * they are in their own files)
+ */
+/* Authors:
+ *   MenTaLguY <mental@rydia.net>
+ *   Lauris Kaplinski <lauris@kaplinski.com>
+ *   bulia byak <buliabyak@users.sf.net>
+ *   Frank Felfe <innerspace@iname.com>
+ *   John Cliff <simarilius@yahoo.com>
+ *   David Turner <novalis@gnu.org>
+ *   Josh Andler <scislac@scislac.com>
+ *   Jon A. Cruz <jon@joncruz.org>
+ *   Maximilian Albert <maximilian.albert@gmail.com>
+ *
+ * Copyright (C) 2004 David Turner
+ * Copyright (C) 2003 MenTaLguY
+ * Copyright (C) 1999-2008 authors
+ * Copyright (C) 2001-2002 Ximian, Inc.
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
  */
-
-/*
-*
-* Authors:
-*   MenTaLguY <mental@rydia.net>
-*   Lauris Kaplinski <lauris@kaplinski.com>
-*   bulia byak <buliabyak@users.sf.net>
-*   Frank Felfe <innerspace@iname.com>
-*   John Cliff <simarilius@yahoo.com>
-*   David Turner <novalis@gnu.org>
-*   Josh Andler <scislac@scislac.com>
-*   Jon A. Cruz <jon@joncruz.org>
-*   Maximilian Albert <maximilian.albert@gmail.com>
-*
-* Copyright (C) 2004 David Turner
-* Copyright (C) 2003 MenTaLguY
-* Copyright (C) 1999-2008 authors
-* Copyright (C) 2001-2002 Ximian, Inc.
-*
-* Released under GNU GPL, read the file 'COPYING' for more information
-*/
 
 #ifdef HAVE_CONFIG_H
 # include "config.h"
@@ -140,14 +137,14 @@ static void       sp_lpetool_toolbox_prep(SPDesktop *desktop, GtkActionGroup* ma
 namespace { GtkWidget *sp_text_toolbox_new (SPDesktop *desktop); }
 
 
-Inkscape::IconSize prefToSize( gchar const *path, gchar const *attr, int base ) {
+Inkscape::IconSize prefToSize( Glib::ustring const &path, int base ) {
     static Inkscape::IconSize sizeChoices[] = {
         Inkscape::ICON_SIZE_LARGE_TOOLBAR,
         Inkscape::ICON_SIZE_SMALL_TOOLBAR,
         Inkscape::ICON_SIZE_MENU
     };
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    int index = prefs->getIntLimited( path, attr, base, 0, G_N_ELEMENTS(sizeChoices) );
+    int index = prefs->getIntLimited( path, base, 0, G_N_ELEMENTS(sizeChoices) );
     return sizeChoices[index];
 }
 
@@ -194,29 +191,29 @@ static struct {
     { "SPNodeContext",   "node_toolbox",   0, sp_node_toolbox_prep,              "NodeToolbar",
       SP_VERB_INVALID, 0, 0},
     { "SPTweakContext",   "tweak_toolbox",   0, sp_tweak_toolbox_prep,              "TweakToolbar",
-      SP_VERB_CONTEXT_TWEAK_PREFS, "tools.tweak", N_("Color/opacity used for color tweaking")},
+      SP_VERB_CONTEXT_TWEAK_PREFS, "/tools/tweak", N_("Color/opacity used for color tweaking")},
     { "SPZoomContext",   "zoom_toolbox",   0, sp_zoom_toolbox_prep,              "ZoomToolbar",
       SP_VERB_INVALID, 0, 0},
     { "SPStarContext",   "star_toolbox",   0, sp_star_toolbox_prep,              "StarToolbar",
-      SP_VERB_CONTEXT_STAR_PREFS,   "tools.shapes.star",     N_("Style of new stars")},
+      SP_VERB_CONTEXT_STAR_PREFS,   "/tools/shapes/star",     N_("Style of new stars")},
     { "SPRectContext",   "rect_toolbox",   0, sp_rect_toolbox_prep,              "RectToolbar",
-      SP_VERB_CONTEXT_RECT_PREFS,   "tools.shapes.rect",     N_("Style of new rectangles")},
+      SP_VERB_CONTEXT_RECT_PREFS,   "/tools/shapes/rect",     N_("Style of new rectangles")},
     { "Box3DContext",  "3dbox_toolbox",  0, box3d_toolbox_prep,             "3DBoxToolbar",
-      SP_VERB_CONTEXT_3DBOX_PREFS,  "tools.shapes.3dbox",    N_("Style of new 3D boxes")},
+      SP_VERB_CONTEXT_3DBOX_PREFS,  "/tools/shapes/3dbox",    N_("Style of new 3D boxes")},
     { "SPArcContext",    "arc_toolbox",    0, sp_arc_toolbox_prep,               "ArcToolbar",
-      SP_VERB_CONTEXT_ARC_PREFS,    "tools.shapes.arc",      N_("Style of new ellipses")},
+      SP_VERB_CONTEXT_ARC_PREFS,    "/tools/shapes/arc",      N_("Style of new ellipses")},
     { "SPSpiralContext", "spiral_toolbox", 0, sp_spiral_toolbox_prep,            "SpiralToolbar",
-      SP_VERB_CONTEXT_SPIRAL_PREFS, "tools.shapes.spiral",   N_("Style of new spirals")},
+      SP_VERB_CONTEXT_SPIRAL_PREFS, "/tools/shapes/spiral",   N_("Style of new spirals")},
     { "SPPencilContext", "pencil_toolbox", 0, sp_pencil_toolbox_prep,            "PencilToolbar",
-      SP_VERB_CONTEXT_PENCIL_PREFS, "tools.freehand.pencil", N_("Style of new paths created by Pencil")},
+      SP_VERB_CONTEXT_PENCIL_PREFS, "/tools/freehand/pencil", N_("Style of new paths created by Pencil")},
     { "SPPenContext", "pen_toolbox", 0, sp_pen_toolbox_prep,                     "PenToolbar",
-      SP_VERB_CONTEXT_PEN_PREFS,    "tools.freehand.pen",    N_("Style of new paths created by Pen")},
+      SP_VERB_CONTEXT_PEN_PREFS,    "/tools/freehand/pen",    N_("Style of new paths created by Pen")},
     { "SPDynaDrawContext", "calligraphy_toolbox", 0, sp_calligraphy_toolbox_prep,"CalligraphyToolbar",
-      SP_VERB_CONTEXT_CALLIGRAPHIC_PREFS, "tools.calligraphic", N_("Style of new calligraphic strokes")},
+      SP_VERB_CONTEXT_CALLIGRAPHIC_PREFS, "/tools/calligraphic", N_("Style of new calligraphic strokes")},
     { "SPEraserContext", "eraser_toolbox", 0, sp_eraser_toolbox_prep,"EraserToolbar",
-      SP_VERB_CONTEXT_ERASER_PREFS, "tools.eraser", _("TBD")},
+      SP_VERB_CONTEXT_ERASER_PREFS, "/tools/eraser", _("TBD")},
     { "SPLPEToolContext", "lpetool_toolbox", 0, sp_lpetool_toolbox_prep, "LPEToolToolbar",
-      SP_VERB_CONTEXT_LPETOOL_PREFS, "tools.lpetool", _("TBD")},
+      SP_VERB_CONTEXT_LPETOOL_PREFS, "/tools/lpetool", _("TBD")},
     { "SPTextContext",   "text_toolbox",   sp_text_toolbox_new, 0,               0,
       SP_VERB_INVALID, 0, 0},
     { "SPDropperContext", "dropper_toolbox", 0, sp_dropper_toolbox_prep,         "DropperToolbar",
@@ -226,7 +223,7 @@ static struct {
     { "SPConnectorContext", "connector_toolbox", 0, sp_connector_toolbox_prep,   "ConnectorToolbar",
       SP_VERB_INVALID, 0, 0},
     { "SPFloodContext",  "paintbucket_toolbox",  0, sp_paintbucket_toolbox_prep, "PaintbucketToolbar",
-      SP_VERB_CONTEXT_PAINTBUCKET_PREFS, "tools.paintbucket", N_("Style of Paint Bucket fill objects")},
+      SP_VERB_CONTEXT_PAINTBUCKET_PREFS, "/tools/paintbucket", N_("Style of Paint Bucket fill objects")},
     { NULL, NULL, NULL, NULL, NULL, SP_VERB_INVALID, NULL, NULL }
 };
 
@@ -276,6 +273,7 @@ static gchar const * ui_descr =
         "    <toolitem action='NodeCuspAction' />"
         "    <toolitem action='NodeSmoothAction' />"
         "    <toolitem action='NodeSymmetricAction' />"
+        "    <toolitem action='NodeAutoAction' />"
         "    <separator />"
         "    <toolitem action='NodeLineAction' />"
         "    <toolitem action='NodeCurveAction' />"
@@ -561,7 +559,7 @@ Gtk::Widget* VerbAction::create_menu_item_vfunc()
 Gtk::Widget* VerbAction::create_tool_item_vfunc()
 {
 //     Gtk::Widget* widg = Gtk::Action::create_tool_item_vfunc();
-    Inkscape::IconSize toolboxSize = prefToSize("toolbox.tools", "small");
+    Inkscape::IconSize toolboxSize = prefToSize("/toolbox/tools/small");
     GtkWidget* toolbox = 0;
     GtkWidget *button = sp_toolbox_button_new_from_verb_with_doubleclick( toolbox, toolboxSize,
                                                                           SP_BUTTON_TYPE_TOGGLE,
@@ -768,7 +766,7 @@ Glib::RefPtr<Gtk::ActionGroup> create_or_fetch_actions( SPDesktop* desktop )
         SP_VERB_ZOOM_SELECTION,
     };
 
-    Inkscape::IconSize toolboxSize = prefToSize("toolbox", "small");
+    Inkscape::IconSize toolboxSize = prefToSize("/toolbox/small");
 
     static std::map<SPDesktop*, Glib::RefPtr<Gtk::ActionGroup> > groups;
     Glib::RefPtr<Gtk::ActionGroup> mainActions;
@@ -913,7 +911,7 @@ sp_commands_toolbox_new()
 
 static EgeAdjustmentAction * create_adjustment_action( gchar const *name,
                                                        gchar const *label, gchar const *shortLabel, gchar const *tooltip,
-                                                       gchar const *path, gchar const *data, gdouble def,
+                                                       Glib::ustring const &path, gdouble def,
                                                        GtkWidget *focusTarget,
                                                        GtkWidget *us,
                                                        GObject *dataKludge,
@@ -924,7 +922,7 @@ static EgeAdjustmentAction * create_adjustment_action( gchar const *name,
                                                        gdouble climb = 0.1, guint digits = 3, double factor = 1.0 )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    GtkAdjustment* adj = GTK_ADJUSTMENT( gtk_adjustment_new( prefs->getDouble(path, data, def) * factor,
+    GtkAdjustment* adj = GTK_ADJUSTMENT( gtk_adjustment_new( prefs->getDouble(path, def) * factor,
                                                              lower, upper, step, page, page ) );
     if (us) {
         sp_unit_selector_add_adjustment( SP_UNIT_SELECTOR(us), adj );
@@ -950,7 +948,9 @@ static EgeAdjustmentAction * create_adjustment_action( gchar const *name,
     }
 
     if ( dataKludge ) {
-        g_object_set_data( dataKludge, data, adj );
+        // Rather lame, but it's the only place where we need to get the entry name
+        // but we don't have an Entry
+        g_object_set_data( dataKludge, prefs->getEntry(path).getEntryName().data(), adj );
     }
 
     // Using a cast just to make sure we pass in the right kind of function pointer
@@ -1060,10 +1060,17 @@ sp_node_path_edit_symmetrical(void)
     if (shape_editor) shape_editor->set_node_type(Inkscape::NodePath::NODE_SYMM);
 }
 
+void
+sp_node_path_edit_auto(void)
+{
+    ShapeEditor *shape_editor = get_current_shape_editor();
+    if (shape_editor) shape_editor->set_node_type(Inkscape::NodePath::NODE_AUTO);
+}
+
 static void toggle_show_handles (GtkToggleAction *act, gpointer /*data*/) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     bool show = gtk_toggle_action_get_active( act );
-    prefs->setBool("tools.nodes", "show_handles",  show);
+    prefs->setBool("/tools/nodes/show_handles",  show);
     ShapeEditor *shape_editor = get_current_shape_editor();
     if (shape_editor) shape_editor->show_handles(show);
 }
@@ -1071,7 +1078,7 @@ static void toggle_show_handles (GtkToggleAction *act, gpointer /*data*/) {
 static void toggle_show_helperpath (GtkToggleAction *act, gpointer /*data*/) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     bool show = gtk_toggle_action_get_active( act );
-    prefs->setBool("tools.nodes", "show_helperpath",  show);
+    prefs->setBool("/tools/nodes/show_helperpath",  show);
     ShapeEditor *shape_editor = get_current_shape_editor();
     if (shape_editor) shape_editor->show_helperpath(show);
 }
@@ -1164,7 +1171,7 @@ sp_node_path_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *value_
     SPUnit const *unit = tracker->getActiveUnit();
 
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
-        prefs->setDouble("tools.nodes", value_name, sp_units_get_pixels(adj->value, *unit));
+        prefs->setDouble(Glib::ustring("/tools/nodes/") + value_name, sp_units_get_pixels(adj->value, *unit));
     }
 
     // quit if run by the attr_changed listener
@@ -1258,7 +1265,7 @@ static void sp_node_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
     tracker->setActiveUnit( sp_desktop_namedview(desktop)->doc_units );
     g_object_set_data( holder, "tracker", tracker );
 
-    Inkscape::IconSize secondarySize = prefToSize("toolbox", "secondary", 1);
+    Inkscape::IconSize secondarySize = prefToSize("/toolbox/secondary", 1);
 
     {
         InkAction* inky = ink_action_new( "NodeInsertAction",
@@ -1354,6 +1361,16 @@ static void sp_node_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gtk_action_group_add_action( mainActions, GTK_ACTION(inky) );
     }
 
+    {
+        InkAction* inky = ink_action_new( "NodeAutoAction",
+                                          _("Node Auto"),
+                                          _("Make selected nodes auto-smooth"),
+                                          "node_auto",
+                                          secondarySize );
+        g_signal_connect_after( G_OBJECT(inky), "activate", G_CALLBACK(sp_node_path_edit_auto), 0 );
+        gtk_action_group_add_action( mainActions, GTK_ACTION(inky) );
+    }
+
     {
         InkAction* inky = ink_action_new( "NodeLineAction",
                                           _("Node Line"),
@@ -1382,7 +1399,7 @@ static void sp_node_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
                                                       Inkscape::ICON_SIZE_DECORATION );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(toggle_show_handles), desktop );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("tools.nodes", "show_handles", true) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/nodes/show_handles", true) );
     }
 
     {
@@ -1393,7 +1410,7 @@ static void sp_node_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
                                                       Inkscape::ICON_SIZE_DECORATION );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(toggle_show_helperpath), desktop );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("tools.nodes", "show_helperpath", false) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/nodes/show_helperpath", false) );
     }
 
     {
@@ -1436,7 +1453,7 @@ static void sp_node_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gdouble values[] = {1, 2, 3, 5, 10, 20, 50, 100, 200, 500};
         eact = create_adjustment_action( "NodeXAction",
                                          _("X coordinate:"), _("X:"), _("X coordinate of selected node(s)"),
-                                         "tools.nodes", "Xcoord", 0,
+                                         "/tools/nodes/Xcoord", 0,
                                          GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, TRUE, "altx-nodes",
                                          -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -1454,7 +1471,7 @@ static void sp_node_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gdouble values[] = {1, 2, 3, 5, 10, 20, 50, 100, 200, 500};
         eact = create_adjustment_action( "NodeYAction",
                                          _("Y coordinate:"), _("Y:"), _("Y coordinate of selected node(s)"),
-                                         "tools.nodes", "Ycoord", 0,
+                                         "/tools/nodes/Ycoord", 0,
                                          GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, FALSE, NULL,
                                          -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -1608,10 +1625,10 @@ setup_tool_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
     gtk_ui_manager_add_ui_from_string( mgr, descr, -1, &errVal );
 
     GtkWidget* toolBar = gtk_ui_manager_get_widget( mgr, "/ui/ToolToolbar" );
-    if ( prefs->getIntLimited("toolbox", "icononly", 1, 0, 1) ) {
+    if ( prefs->getBool("/toolbox/icononly", true) ) {
         gtk_toolbar_set_style( GTK_TOOLBAR(toolBar), GTK_TOOLBAR_ICONS );
     }
-    Inkscape::IconSize toolboxSize = prefToSize("toolbox.tools", "small");
+    Inkscape::IconSize toolboxSize = prefToSize("/toolbox/tools/small");
     gtk_toolbar_set_icon_size( GTK_TOOLBAR(toolBar), (GtkIconSize)toolboxSize );
 
     gtk_toolbar_set_orientation(GTK_TOOLBAR(toolBar), GTK_ORIENTATION_VERTICAL);
@@ -1625,7 +1642,7 @@ setup_tool_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
     }
 
     gtk_container_add( GTK_CONTAINER(toolbox), toolBar );
-//     Inkscape::IconSize toolboxSize = prefToSize("toolbox.tools", "small");
+//     Inkscape::IconSize toolboxSize = prefToSize("/toolbox/tools/small");
 }
 
 
@@ -1703,9 +1720,8 @@ setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
             g_free( tmp );
             tmp = 0;
 
-            Inkscape::IconSize toolboxSize = prefToSize("toolbox", "small");
-            /// @todo convert to getBool
-            if ( prefs->getIntLimited( "toolbox", "icononly", 1, 0, 1 ) ) {
+            Inkscape::IconSize toolboxSize = prefToSize("/toolbox/small");
+            if ( prefs->getBool( "/toolbox/icononly", true) ) {
                 gtk_toolbar_set_style( GTK_TOOLBAR(toolBar), GTK_TOOLBAR_ICONS );
             }
             gtk_toolbar_set_icon_size( GTK_TOOLBAR(toolBar), static_cast<GtkIconSize>(toolboxSize) );
@@ -1803,11 +1819,11 @@ setup_commands_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
     gtk_ui_manager_add_ui_from_string( mgr, descr, -1, &errVal );
 
     GtkWidget* toolBar = gtk_ui_manager_get_widget( mgr, "/ui/CommandsToolbar" );
-    if ( prefs->getBool("toolbox", "icononly", true) ) {
+    if ( prefs->getBool("/toolbox/icononly", true) ) {
         gtk_toolbar_set_style( GTK_TOOLBAR(toolBar), GTK_TOOLBAR_ICONS );
     }
 
-    Inkscape::IconSize toolboxSize = prefToSize("toolbox", "small");
+    Inkscape::IconSize toolboxSize = prefToSize("/toolbox/small");
     gtk_toolbar_set_icon_size( GTK_TOOLBAR(toolBar), (GtkIconSize)toolboxSize );
 
     gtk_toolbar_set_orientation(GTK_TOOLBAR(toolBar), GTK_ORIENTATION_HORIZONTAL);
@@ -1870,7 +1886,7 @@ static void sp_stb_magnitude_value_changed( GtkAdjustment *adj, GObject *dataKlu
         // do not remember prefs if this call is initiated by an undo change, because undoing object
         // creation sets bogus values to its attributes before it is deleted
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setInt("tools.shapes.star", "magnitude", (gint)adj->value);
+        prefs->setInt("/tools/shapes/star/magnitude", (gint)adj->value);
     }
 
     // quit if run by the attr_changed listener
@@ -1908,7 +1924,7 @@ static void sp_stb_proportion_value_changed( GtkAdjustment *adj, GObject *dataKl
 
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setDouble("tools.shapes.star", "proportion", adj->value);
+        prefs->setDouble("/tools/shapes/star/proportion", adj->value);
     }
 
     // quit if run by the attr_changed listener
@@ -1952,7 +1968,7 @@ static void sp_stb_sides_flat_state_changed( EgeSelectOneAction *act, GObject *d
 
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setBool( "tools.shapes.star", "isflatsided", flat);
+        prefs->setBool( "/tools/shapes/star/isflatsided", flat);
     }
 
     // quit if run by the attr_changed listener
@@ -1995,7 +2011,7 @@ static void sp_stb_rounded_value_changed( GtkAdjustment *adj, GObject *dataKludg
 
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setDouble("tools.shapes.star", "rounded", (gdouble) adj->value);
+        prefs->setDouble("/tools/shapes/star/rounded", (gdouble) adj->value);
     }
 
     // quit if run by the attr_changed listener
@@ -2030,7 +2046,7 @@ static void sp_stb_randomized_value_changed( GtkAdjustment *adj, GObject *dataKl
 
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setDouble("tools.shapes.star", "randomized", (gdouble) adj->value);
+        prefs->setDouble("/tools/shapes/star/randomized", (gdouble) adj->value);
     }
 
     // quit if run by the attr_changed listener
@@ -2077,7 +2093,7 @@ static void star_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar const *n
     GtkAdjustment *adj = 0;
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    bool isFlatSided = prefs->getBool("tools.shapes.star", "isflatsided", true);
+    bool isFlatSided = prefs->getBool("/tools/shapes/star/isflatsided", true);
 
     if (!strcmp(name, "inkscape:randomized")) {
         adj = GTK_ADJUSTMENT( gtk_object_get_data(GTK_OBJECT(tbl), "randomized") );
@@ -2223,7 +2239,7 @@ sp_toolbox_add_label(GtkWidget *tbl, gchar const *title, bool wide)
 
 static void sp_star_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder)
 {
-    Inkscape::IconSize secondarySize = prefToSize("toolbox", "secondary", 1);
+    Inkscape::IconSize secondarySize = prefToSize("/toolbox/secondary", 1);
 
     {
         EgeOutputAction* act = ege_output_action_new( "StarStateAction", _("<b>New:</b>"), "", 0 );
@@ -2235,7 +2251,7 @@ static void sp_star_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
     {
         EgeAdjustmentAction* eact = 0;
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        bool isFlatSided = prefs->getBool("tools.shapes.star", "isflatsided", true);
+        bool isFlatSided = prefs->getBool("/tools/shapes/star/isflatsided", true);
 
         /* Flatsided checkbox */
         {
@@ -2277,7 +2293,7 @@ static void sp_star_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gdouble values[] = {3, 4, 5, 6, 7, 8, 10, 12, 20};
         eact = create_adjustment_action( "MagnitudeAction",
                                          _("Corners"), _("Corners:"), _("Number of corners of a polygon or star"),
-                                         "tools.shapes.star", "magnitude", 3,
+                                         "/tools/shapes/star/magnitude", 3,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                          3, 1024, 1, 5,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -2296,7 +2312,7 @@ static void sp_star_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
                                          // TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle.
                                          // Base radius is the same for the closest handle.
                                          _("Base radius to tip radius ratio"),
-                                         "tools.shapes.star", "proportion", 0.5,
+                                         "/tools/shapes/star/proportion", 0.5,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                          0.01, 1.0, 0.01, 0.1,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -2317,7 +2333,7 @@ static void sp_star_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gdouble values[] = {-1, -0.2, -0.03, 0, 0.05, 0.1, 0.2, 0.3, 0.5, 1, 10};
         eact = create_adjustment_action( "RoundednessAction",
                                          _("Rounded"), _("Rounded:"), _("How much rounded are the corners (0 for sharp)"),
-                                         "tools.shapes.star", "rounded", 0.0,
+                                         "/tools/shapes/star/rounded", 0.0,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                          -10.0, 10.0, 0.01, 0.1,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -2332,7 +2348,7 @@ static void sp_star_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gdouble values[] = {0, 0.01, 0.1, 0.5, 10};
         eact = create_adjustment_action( "RandomizationAction",
                                          _("Randomized"), _("Randomized:"), _("Scatter randomly the corners and angles"),
-                                         "tools.shapes.star", "randomized", 0.0,
+                                         "/tools/shapes/star/randomized", 0.0,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                          -10.0, 10.0, 0.001, 0.01,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -2392,7 +2408,7 @@ sp_rtb_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *value_name,
 
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setDouble("tools.shapes.rect", value_name, sp_units_get_pixels(adj->value, *unit));
+        prefs->setDouble(Glib::ustring("/tools/shapes/rect/") + value_name, sp_units_get_pixels(adj->value, *unit));
     }
 
     // quit if run by the attr_changed listener
@@ -2592,7 +2608,7 @@ sp_rect_toolbox_selection_changed(Inkscape::Selection *selection, GObject *tbl)
 static void sp_rect_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder)
 {
     EgeAdjustmentAction* eact = 0;
-    Inkscape::IconSize secondarySize = prefToSize("toolbox", "secondary", 1);
+    Inkscape::IconSize secondarySize = prefToSize("/toolbox/secondary", 1);
 
     {
         EgeOutputAction* act = ege_output_action_new( "RectStateAction", _("<b>New:</b>"), "", 0 );
@@ -2614,7 +2630,7 @@ static void sp_rect_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gdouble values[] = {1, 2, 3, 5, 10, 20, 50, 100, 200, 500};
         eact = create_adjustment_action( "RectWidthAction",
                                          _("Width"), _("W:"), _("Width of rectangle"),
-                                         "tools.shapes.rect", "width", 0,
+                                         "/tools/shapes/rect/width", 0,
                                          GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, TRUE, "altx-rect",
                                          0, 1e6, SPIN_STEP, SPIN_PAGE_STEP,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -2631,7 +2647,7 @@ static void sp_rect_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gdouble values[] = {1, 2, 3, 5, 10, 20, 50, 100, 200, 500};
         eact = create_adjustment_action( "RectHeightAction",
                                          _("Height"), _("H:"), _("Height of rectangle"),
-                                         "tools.shapes.rect", "height", 0,
+                                         "/tools/shapes/rect/height", 0,
                                          GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, FALSE, NULL,
                                          0, 1e6, SPIN_STEP, SPIN_PAGE_STEP,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -2648,7 +2664,7 @@ static void sp_rect_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gdouble values[] = {0.5, 1, 2, 3, 5, 10, 20, 50, 100};
         eact = create_adjustment_action( "RadiusXAction",
                                          _("Horizontal radius"), _("Rx:"), _("Horizontal radius of rounded corners"),
-                                         "tools.shapes.rect", "rx", 0,
+                                         "/tools/shapes/rect/rx", 0,
                                          GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, FALSE, NULL,
                                          0, 1e6, SPIN_STEP, SPIN_PAGE_STEP,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -2663,7 +2679,7 @@ static void sp_rect_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
         gdouble values[] = {0.5, 1, 2, 3, 5, 10, 20, 50, 100};
         eact = create_adjustment_action( "RadiusYAction",
                                          _("Vertical radius"), _("Ry:"), _("Vertical radius of rounded corners"),
-                                         "tools.shapes.rect", "ry", 0,
+                                         "/tools/shapes/rect/ry", 0,
                                          GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, FALSE, NULL,
                                          0, 1e6, SPIN_STEP, SPIN_PAGE_STEP,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -2777,16 +2793,14 @@ static void box3d_persp_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar c
 {
     GtkWidget *tbl = GTK_WIDGET(data);
 
-    // quit if run by the attr_changed listener
-    // note: it used to work without the differently called freeze_ attributes (here and in
-    //       box3d_angle_value_changed()) but I now it doesn't so I'm leaving them in for now
-    if (g_object_get_data(G_OBJECT(tbl), "freeze_angle")) {
+    // quit if run by the attr_changed or selection changed listener
+    if (g_object_get_data(G_OBJECT(tbl), "freeze")) {
         return;
     }
 
     // set freeze so that it can be caught in box3d_angle_z_value_changed() (to avoid calling
     // sp_document_maybe_done() when the document is undo insensitive)
-    g_object_set_data(G_OBJECT(tbl), "freeze_attr", GINT_TO_POINTER(TRUE));
+    g_object_set_data(G_OBJECT(tbl), "freeze", GINT_TO_POINTER(TRUE));
 
     // TODO: Only update the appropriate part of the toolbar
 //    if (!strcmp(name, "inkscape:vp_z")) {
@@ -2796,7 +2810,7 @@ static void box3d_persp_tb_event_attr_changed(Inkscape::XML::Node *repr, gchar c
     Persp3D *persp = persp3d_get_from_repr(repr);
     persp3d_update_box_reprs(persp);
 
-    g_object_set_data(G_OBJECT(tbl), "freeze_attr", GINT_TO_POINTER(FALSE));
+    g_object_set_data(G_OBJECT(tbl), "freeze", GINT_TO_POINTER(FALSE));
 }
 
 static Inkscape::XML::NodeEventVector box3d_persp_tb_repr_events =
@@ -2838,9 +2852,11 @@ box3d_toolbox_selection_changed(Inkscape::Selection *selection, GObject *tbl)
 
         inkscape_active_document()->current_persp3d = persp3d_get_from_repr(persp_repr);
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setString("tools.shapes.3dbox", "persp", persp_repr->attribute("id"));
+        prefs->setString("/tools/shapes/3dbox/persp", persp_repr->attribute("id"));
 
+        g_object_set_data(tbl, "freeze", GINT_TO_POINTER(TRUE));
         box3d_resync_toolbar(persp_repr, tbl);
+        g_object_set_data(tbl, "freeze", GINT_TO_POINTER(FALSE));
     }
 }
 
@@ -2850,15 +2866,13 @@ box3d_angle_value_changed(GtkAdjustment *adj, GObject *dataKludge, Proj::Axis ax
     SPDesktop *desktop = (SPDesktop *) g_object_get_data( dataKludge, "desktop" );
     SPDocument *document = sp_desktop_document(desktop);
 
-    // quit if run by the attr_changed listener
-    // note: it used to work without the differently called freeze_ attributes (here and in
-    //       box3d_persp_tb_event_attr_changed()) but I now it doesn't so I'm leaving them in for now
-    if (g_object_get_data( dataKludge, "freeze_attr" )) {
+    // quit if run by the attr_changed or selection changed listener
+    if (g_object_get_data( dataKludge, "freeze" )) {
         return;
     }
 
     // in turn, prevent listener from responding
-    g_object_set_data(dataKludge, "freeze_angle", GINT_TO_POINTER(TRUE));
+    g_object_set_data(dataKludge, "freeze", GINT_TO_POINTER(TRUE));
 
     //Persp3D *persp = document->current_persp3d;
     std::list<Persp3D *> sel_persps = sp_desktop_selection(desktop)->perspList();
@@ -2874,7 +2888,7 @@ box3d_angle_value_changed(GtkAdjustment *adj, GObject *dataKludge, Proj::Axis ax
     // TODO: use the correct axis here, too
     sp_document_maybe_done(document, "perspangle", SP_VERB_CONTEXT_3DBOX, _("3D Box: Change perspective (angle of infinite axis)"));
 
-    g_object_set_data( dataKludge, "freeze_angle", GINT_TO_POINTER(FALSE) );
+    g_object_set_data( dataKludge, "freeze", GINT_TO_POINTER(FALSE) );
 }
 
 
@@ -2945,7 +2959,7 @@ static void box3d_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
                                          _("Angle in X direction"), _("Angle X:"),
                                          // Translators: PL is short for 'perspective line'
                                          _("Angle of PLs in X direction"),
-                                         "tools.shapes.3dbox", "box3d_angle_x", 30,
+                                         "/tools/shapes/3dbox/box3d_angle_x", 30,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "altx-box3d",
                                          -360.0, 360.0, 1.0, 10.0,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -2973,8 +2987,8 @@ static void box3d_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_object_set_data( holder, "box3d_vp_x_state_action", act );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(box3d_vp_x_state_changed), box3d_angle_x );
-        gtk_action_set_sensitive( GTK_ACTION(box3d_angle_x), !prefs->getBool("tools.shapes.3dbox", "vp_x_state", true) );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("tools.shapes.3dbox", "vp_x_state", true) );
+        gtk_action_set_sensitive( GTK_ACTION(box3d_angle_x), !prefs->getBool("/tools/shapes/3dbox/vp_x_state", true) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/shapes/3dbox/vp_x_state", true) );
     }
 
     /* Angle Y */
@@ -2985,7 +2999,7 @@ static void box3d_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
                                          _("Angle in Y direction"), _("Angle Y:"),
                                          // Translators: PL is short for 'perspective line'
                                          _("Angle of PLs in Y direction"),
-                                         "tools.shapes.3dbox", "box3d_angle_y", 30,
+                                         "/tools/shapes/3dbox/box3d_angle_y", 30,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                          -360.0, 360.0, 1.0, 10.0,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -3012,8 +3026,8 @@ static void box3d_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_object_set_data( holder, "box3d_vp_y_state_action", act );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(box3d_vp_y_state_changed), box3d_angle_y );
-        gtk_action_set_sensitive( GTK_ACTION(box3d_angle_y), !prefs->getBool("tools.shapes.3dbox", "vp_y_state", true) );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("tools.shapes.3dbox", "vp_y_state", true) );
+        gtk_action_set_sensitive( GTK_ACTION(box3d_angle_y), !prefs->getBool("/tools/shapes/3dbox/vp_y_state", true) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/shapes/3dbox/vp_y_state", true) );
     }
 
     /* Angle Z */
@@ -3024,7 +3038,7 @@ static void box3d_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
                                          _("Angle in Z direction"), _("Angle Z:"),
                                          // Translators: PL is short for 'perspective line'
                                          _("Angle of PLs in Z direction"),
-                                         "tools.shapes.3dbox", "box3d_angle_z", 30,
+                                         "/tools/shapes/3dbox/box3d_angle_z", 30,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                          -360.0, 360.0, 1.0, 10.0,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -3051,8 +3065,8 @@ static void box3d_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_object_set_data( holder, "box3d_vp_z_state_action", act );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(box3d_vp_z_state_changed), box3d_angle_z );
-        gtk_action_set_sensitive( GTK_ACTION(box3d_angle_z), !prefs->getBool("tools.shapes.3dbox", "vp_z_state", true) );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("tools.shapes.3dbox", "vp_z_state", true) );
+        gtk_action_set_sensitive( GTK_ACTION(box3d_angle_z), !prefs->getBool("/tools/shapes/3dbox/vp_z_state", true) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/shapes/3dbox/vp_z_state", true) );
     }
 
     sigc::connection *connection = new sigc::connection(
@@ -3067,13 +3081,13 @@ static void box3d_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
 //########################
 
 static void
-sp_spl_tb_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *value_name)
+sp_spl_tb_value_changed(GtkAdjustment *adj, GObject *tbl, Glib::ustring const &value_name)
 {
     SPDesktop *desktop = (SPDesktop *) g_object_get_data( tbl, "desktop" );
 
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setDouble("tools.shapes.spiral", value_name, adj->value);
+        prefs->setDouble("/tools/shapes/spiral/" + value_name, adj->value);
     }
 
     // quit if run by the attr_changed listener
@@ -3084,7 +3098,7 @@ sp_spl_tb_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *value_nam
     // in turn, prevent listener from responding
     g_object_set_data( tbl, "freeze", GINT_TO_POINTER(TRUE) );
 
-    gchar* namespaced_name = g_strconcat("sodipodi:", value_name, NULL);
+    gchar* namespaced_name = g_strconcat("sodipodi:", value_name.data(), NULL);
 
     bool modmade = false;
     for (GSList const *items = sp_desktop_selection(desktop)->itemList();
@@ -3233,7 +3247,7 @@ sp_spiral_toolbox_selection_changed(Inkscape::Selection *selection, GObject *tbl
 static void sp_spiral_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder)
 {
     EgeAdjustmentAction* eact = 0;
-    Inkscape::IconSize secondarySize = prefToSize("toolbox", "secondary", 1);
+    Inkscape::IconSize secondarySize = prefToSize("/toolbox/secondary", 1);
 
     {
         EgeOutputAction* act = ege_output_action_new( "SpiralStateAction", _("<b>New:</b>"), "", 0 );
@@ -3248,7 +3262,7 @@ static void sp_spiral_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActio
         gdouble values[] = {0.01, 0.5, 1, 2, 3, 5, 10, 20, 50, 100};
         eact = create_adjustment_action( "SpiralRevolutionAction",
                                          _("Number of turns"), _("Turns:"), _("Number of revolutions"),
-                                         "tools.shapes.spiral", "revolution", 3.0,
+                                         "/tools/shapes/spiral/revolution", 3.0,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "altx-spiral",
                                          0.01, 1024.0, 0.1, 1.0,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -3262,7 +3276,7 @@ static void sp_spiral_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActio
         gdouble values[] = {0, 0.1, 0.5, 1, 1.5, 5, 20};
         eact = create_adjustment_action( "SpiralExpansionAction",
                                          _("Divergence"), _("Divergence:"), _("How much denser/sparser are outer revolutions; 1 = uniform"),
-                                         "tools.shapes.spiral", "expansion", 1.0,
+                                         "/tools/shapes/spiral/expansion", 1.0,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                          0.0, 1000.0, 0.01, 1.0,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -3276,7 +3290,7 @@ static void sp_spiral_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActio
         gdouble values[] = {0, 0.5, 0.9};
         eact = create_adjustment_action( "SpiralT0Action",
                                          _("Inner radius"), _("Inner radius:"), _("Radius of the innermost revolution (relative to the spiral size)"),
-                                         "tools.shapes.spiral", "t0", 0.0,
+                                         "/tools/shapes/spiral/t0", 0.0,
                                          GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                          0.0, 0.999, 0.01, 1.0,
                                          labels, values, G_N_ELEMENTS(labels),
@@ -3308,13 +3322,13 @@ static void sp_spiral_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActio
 //########################
 
 /* This is used in generic functions below to share large portions of code between pen and pencil tool */
-static char const *
+static Glib::ustring const
 freehand_tool_name(GObject *dataKludge)
 {
     SPDesktop *desktop = (SPDesktop *) g_object_get_data(dataKludge, "desktop");
     return ( tools_isactive(desktop, TOOLS_FREEHAND_PEN)
-             ? "tools.freehand.pen"
-             : "tools.freehand.pencil" );
+             ? "/tools/freehand/pen"
+             : "/tools/freehand/pencil" );
 }
 
 static void freehand_mode_changed(EgeSelectOneAction* act, GObject* tbl)
@@ -3322,7 +3336,7 @@ static void freehand_mode_changed(EgeSelectOneAction* act, GObject* tbl)
     gint mode = ege_select_one_action_get_active(act);
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt(freehand_tool_name(tbl), "freehand-mode", mode);
+    prefs->setInt(freehand_tool_name(tbl) + "/freehand-mode", mode);
 
     SPDesktop *desktop = (SPDesktop *) g_object_get_data(tbl, "desktop");
 
@@ -3339,8 +3353,8 @@ static void sp_add_freehand_mode_toggle(GtkActionGroup* mainActions, GObject* ho
     /* Freehand mode toggle buttons */
     {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        guint freehandMode = prefs->getInt(( tool_is_pencil ? "tools.freehand.pencil" : "tools.freehand.pen" ), "freehand-mode", 0);
-        Inkscape::IconSize secondarySize = prefToSize("toolbox", "secondary", 1);
+        guint freehandMode = prefs->getInt(( tool_is_pencil ? "/tools/freehand/pencil/freehand-mode" : "/tools/freehand/pen/freehand-mode" ), 0);
+        Inkscape::IconSize secondarySize = prefToSize("/toolbox/secondary", 1);
 
         {
             GtkListStore* model = gtk_list_store_new( 3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING );
@@ -3398,7 +3412,7 @@ static void sp_add_freehand_mode_toggle(GtkActionGroup* mainActions, GObject* ho
 static void freehand_change_shape(EgeSelectOneAction* act, GObject *dataKludge) {
     gint shape = ege_select_one_action_get_active( act );
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt(freehand_tool_name(dataKludge), "shape", shape);
+    prefs->setInt(freehand_tool_name(dataKludge) + "/shape", shape);
 }
 
 /**
@@ -3439,7 +3453,7 @@ freehand_add_advanced_shape_options(GtkActionGroup* mainActions, GObject* holder
             _("Shape:"), ("Shape"), NULL, GTK_TREE_MODEL(model));
         g_object_set( act1, "short_label", _("Shape:"), NULL );
         ege_select_one_action_set_appearance( act1, "compact" );
-        ege_select_one_action_set_active( act1, prefs->getInt(( tool_is_pencil ? "tools.freehand.pencil" : "tools.freehand.pen" ), "shape", 0) );
+        ege_select_one_action_set_active( act1, prefs->getInt(( tool_is_pencil ? "/tools/freehand/pencil/shape" : "/tools/freehand/pen/shape" ), 0) );
         g_signal_connect( G_OBJECT(act1), "changed", G_CALLBACK(freehand_change_shape), holder );
         gtk_action_group_add_action( mainActions, GTK_ACTION(act1) );
         g_object_set_data( holder, "shape_action", act1 );
@@ -3473,7 +3487,6 @@ sp_pencil_tb_defaults(GtkWidget */*widget*/, GtkObject *obj)
 static void
 sp_pencil_tb_tolerance_value_changed(GtkAdjustment *adj, GObject *tbl)
 {
-
     // quit if run by the attr_changed listener
     if (g_object_get_data( tbl, "freeze" )) {
         return;
@@ -3481,45 +3494,36 @@ sp_pencil_tb_tolerance_value_changed(GtkAdjustment *adj, GObject *tbl)
     // in turn, prevent listener from responding
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     g_object_set_data( tbl, "freeze", GINT_TO_POINTER(TRUE) );
-    prefs->setDouble("tools.freehand.pencil", "tolerance", adj->value);
+    prefs->setDouble("/tools/freehand/pencil/tolerance", adj->value);
     g_object_set_data( tbl, "freeze", GINT_TO_POINTER(FALSE) );
-
 }
 
-
-
-static void
-sp_pencil_tb_tolerance_value_changed_external(Inkscape::XML::Node */*repr*/,
-                                              const gchar */*key*/,
-                                              const gchar */*oldval*/,
-                                              const gchar */*newval*/,
-                                              bool /*is_interactive*/,
-                                              void * data)
-{
-    GObject* tbl = G_OBJECT(data);
-    if (g_object_get_data( tbl, "freeze" )) {
-        return;
+class PencilToleranceObserver : public Inkscape::Preferences::Observer {
+public:
+    PencilToleranceObserver(Glib::ustring const &path, GObject *x) : Observer(path), _obj(x)
+    {
+        g_object_set_data(_obj, "prefobserver", this);
     }
+    virtual ~PencilToleranceObserver() {
+        if (g_object_get_data(_obj, "prefobserver") == this) {
+               g_object_set_data(_obj, "prefobserver", NULL);
+        }
+    }
+    virtual void notify(Inkscape::Preferences::Entry const &val) {
+        GObject* tbl = _obj;
+        if (g_object_get_data( tbl, "freeze" )) {
+            return;
+        }
+        g_object_set_data( tbl, "freeze", GINT_TO_POINTER(TRUE) );
 
-    g_object_set_data( tbl, "freeze", GINT_TO_POINTER(TRUE) );
-
-    GtkAdjustment * adj = (GtkAdjustment*)g_object_get_data(tbl,
-                                                            "tolerance");
-
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    double v = prefs->getDouble("tools.freehand.pencil", "tolerance", adj->value);
-    gtk_adjustment_set_value(adj, v);
-    g_object_set_data( tbl, "freeze", GINT_TO_POINTER(FALSE) );
-
-}
+        GtkAdjustment * adj = (GtkAdjustment*)g_object_get_data(tbl, "tolerance");
 
-static Inkscape::XML::NodeEventVector pencil_node_events =
-{
-    NULL,
-    NULL,
-    sp_pencil_tb_tolerance_value_changed_external,
-    NULL,
-    NULL,
+        double v = val.getDouble(adj->value);
+        gtk_adjustment_set_value(adj, v);
+        g_object_set_data( tbl, "freeze", GINT_TO_POINTER(FALSE) );
+    }
+private:
+    GObject *_obj;
 };
 
 
@@ -3536,7 +3540,7 @@ static void sp_pencil_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActio
         eact = create_adjustment_action( "PencilToleranceAction",
                                          _("Smoothing:"), _("Smoothing: "),
                  _("How much smoothing (simplifying) is applied to the line"),
-                                         "tools.freehand.pencil", "tolerance",
+                                         "/tools/freehand/pencil/tolerance",
                                          3.0,
                                          GTK_WIDGET(desktop->canvas), NULL,
                                          holder, TRUE, "altx-pencil",
@@ -3547,11 +3551,8 @@ static void sp_pencil_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActio
         ege_adjustment_action_set_appearance( eact, TOOLBAR_SLIDER_HINT );
         gtk_action_group_add_action( mainActions, GTK_ACTION(eact) );
 
-        Inkscape::XML::Node *repr = inkscape_get_repr(INKSCAPE,
-                                                      "tools.freehand.pencil");
-        repr->addListener(&pencil_node_events, G_OBJECT(holder));
-        g_object_set_data(G_OBJECT(holder), "repr", repr);
-
+        PencilToleranceObserver *obs =
+            new PencilToleranceObserver("/tools/freehand/pencil/tolerance", G_OBJECT(holder));
     }
 
     /* advanced shape options */
@@ -3580,26 +3581,26 @@ static void sp_pencil_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActio
 static void sp_tweak_width_value_changed( GtkAdjustment *adj, GObject */*tbl*/ )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.tweak", "width", adj->value * 0.01 );
+    prefs->setDouble( "/tools/tweak/width", adj->value * 0.01 );
 }
 
 static void sp_tweak_force_value_changed( GtkAdjustment *adj, GObject */*tbl*/ )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.tweak", "force", adj->value * 0.01 );
+    prefs->setDouble( "/tools/tweak/force", adj->value * 0.01 );
 }
 
 static void sp_tweak_pressure_state_changed( GtkToggleAction *act, gpointer /*data*/ )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool("tools.tweak", "usepressure", gtk_toggle_action_get_active(act));
+    prefs->setBool("/tools/tweak/usepressure", gtk_toggle_action_get_active(act));
 }
 
 static void sp_tweak_mode_changed( EgeSelectOneAction *act, GObject *tbl )
 {
     int mode = ege_select_one_action_get_active( act );
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt("tools.tweak", "mode", mode);
+    prefs->setInt("/tools/tweak/mode", mode);
 
     GtkAction *doh = GTK_ACTION(g_object_get_data( tbl, "tweak_doh"));
     GtkAction *dos = GTK_ACTION(g_object_get_data( tbl, "tweak_dos"));
@@ -3627,29 +3628,29 @@ static void sp_tweak_mode_changed( EgeSelectOneAction *act, GObject *tbl )
 static void sp_tweak_fidelity_value_changed( GtkAdjustment *adj, GObject */*tbl*/ )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.tweak", "fidelity", adj->value * 0.01 );
+    prefs->setDouble( "/tools/tweak/fidelity", adj->value * 0.01 );
 }
 
 static void tweak_toggle_doh (GtkToggleAction *act, gpointer /*data*/) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool("tools.tweak", "doh", gtk_toggle_action_get_active(act));
+    prefs->setBool("/tools/tweak/doh", gtk_toggle_action_get_active(act));
 }
 static void tweak_toggle_dos (GtkToggleAction *act, gpointer /*data*/) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool("tools.tweak", "dos", gtk_toggle_action_get_active(act));
+    prefs->setBool("/tools/tweak/dos", gtk_toggle_action_get_active(act));
 }
 static void tweak_toggle_dol (GtkToggleAction *act, gpointer /*data*/) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool("tools.tweak", "dol", gtk_toggle_action_get_active(act));
+    prefs->setBool("/tools/tweak/dol", gtk_toggle_action_get_active(act));
 }
 static void tweak_toggle_doo (GtkToggleAction *act, gpointer /*data*/) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool("tools.tweak", "doo", gtk_toggle_action_get_active(act));
+    prefs->setBool("/tools/tweak/doo", gtk_toggle_action_get_active(act));
 }
 
 static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder)
 {
-    Inkscape::IconSize secondarySize = prefToSize("toolbox", "secondary", 1);
+    Inkscape::IconSize secondarySize = prefToSize("/toolbox/secondary", 1);
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     {
@@ -3658,7 +3659,7 @@ static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainAction
         gdouble values[] = {1, 3, 5, 10, 15, 20, 30, 50, 75, 100};
         EgeAdjustmentAction *eact = create_adjustment_action( "TweakWidthAction",
                                                               _("Width"), _("Width:"), _("The width of the tweak area (relative to the visible canvas area)"),
-                                                              "tools.tweak", "width", 15,
+                                                              "/tools/tweak/width", 15,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "altx-tweak",
                                                               1, 100, 1.0, 0.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -3675,7 +3676,7 @@ static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainAction
         gdouble values[] = {1, 5, 10, 20, 30, 50, 70, 100};
         EgeAdjustmentAction *eact = create_adjustment_action( "TweakForceAction",
                                                               _("Force"), _("Force:"), _("The force of the tweak action"),
-                                                              "tools.tweak", "force", 20,
+                                                              "/tools/tweak/force", 20,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "tweak-force",
                                                               1, 100, 1.0, 0.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -3794,14 +3795,14 @@ static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainAction
         ege_select_one_action_set_icon_size( act, secondarySize );
         ege_select_one_action_set_tooltip_column( act, 1  );
 
-        gint mode = prefs->getInt("tools.tweak", "mode", 0);
+        gint mode = prefs->getInt("/tools/tweak/mode", 0);
         ege_select_one_action_set_active( act, mode );
         g_signal_connect_after( G_OBJECT(act), "changed", G_CALLBACK(sp_tweak_mode_changed), holder );
 
         g_object_set_data( G_OBJECT(holder), "tweak_tool_mode", act);
     }
 
-    guint mode = prefs->getInt("tools.tweak", "mode", 0);
+    guint mode = prefs->getInt("/tools/tweak/mode", 0);
 
     {
         EgeOutputAction* act = ege_output_action_new( "TweakChannelsLabel", _("Channels:"), "", 0 );
@@ -3822,7 +3823,7 @@ static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainAction
         g_object_set( act, "short_label", _("H"), NULL );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(tweak_toggle_doh), desktop );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getInt( "tools.tweak", "doh", 1 ) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/tweak/doh", true) );
         if (mode != TWEAK_MODE_COLORPAINT && mode != TWEAK_MODE_COLORJITTER)
             gtk_action_set_sensitive (GTK_ACTION(act), FALSE);
         g_object_set_data( holder, "tweak_doh", act);
@@ -3837,7 +3838,7 @@ static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainAction
         g_object_set( act, "short_label", _("S"), NULL );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(tweak_toggle_dos), desktop );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getInt( "tools.tweak", "dos", 1 ) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/tweak/dos", true) );
         if (mode != TWEAK_MODE_COLORPAINT && mode != TWEAK_MODE_COLORJITTER)
             gtk_action_set_sensitive (GTK_ACTION(act), FALSE);
         g_object_set_data( holder, "tweak_dos", act );
@@ -3852,7 +3853,7 @@ static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainAction
         g_object_set( act, "short_label", _("L"), NULL );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(tweak_toggle_dol), desktop );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getInt( "tools.tweak", "dol", 1 ) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/tweak/dol", true) );
         if (mode != TWEAK_MODE_COLORPAINT && mode != TWEAK_MODE_COLORJITTER)
             gtk_action_set_sensitive (GTK_ACTION(act), FALSE);
         g_object_set_data( holder, "tweak_dol", act );
@@ -3867,7 +3868,7 @@ static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainAction
         g_object_set( act, "short_label", _("O"), NULL );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(tweak_toggle_doo), desktop );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getInt( "tools.tweak", "doo", 1 ) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/tweak/doo", true) );
         if (mode != TWEAK_MODE_COLORPAINT && mode != TWEAK_MODE_COLORJITTER)
             gtk_action_set_sensitive (GTK_ACTION(act), FALSE);
         g_object_set_data( holder, "tweak_doo", act );
@@ -3879,7 +3880,7 @@ static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainAction
         EgeAdjustmentAction *eact = create_adjustment_action( "TweakFidelityAction",
                                                               _("Fidelity"), _("Fidelity:"),
                                                               _("Low fidelity simplifies paths; high fidelity preserves path features but may generate a lot of new nodes"),
-                                                              "tools.tweak", "fidelity", 50,
+                                                              "/tools/tweak/fidelity", 50,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "tweak-fidelity",
                                                               1, 100, 1.0, 10.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -3901,7 +3902,7 @@ static void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainAction
                                                       Inkscape::ICON_SIZE_DECORATION );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_tweak_pressure_state_changed), NULL);
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("tools.tweak", "usepressure", true) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/tweak/usepressure", true) );
     }
 
 }
@@ -3918,29 +3919,26 @@ static void update_presets_list (GObject *tbl)
 
     EgeSelectOneAction *sel = static_cast<EgeSelectOneAction *>(g_object_get_data(tbl, "profile_selector"));
     if (!sel) {
-        ege_select_one_action_set_active(sel, 0);
+        // WTF!? This will cause a segfault if ever reached
+        //ege_select_one_action_set_active(sel, 0);
         return;
     }
 
-    int total_prefs = prefs->childCount("tools.calligraphic.preset");
-
-    for (int i = 0; i < total_prefs; ++i) {
-        Glib::ustring preset_path = prefs->getNthChild("tools.calligraphic.preset", i);
-        /// @todo Remove the use of _getNode()
-        Inkscape::XML::Node *preset_repr = prefs->_getNode(preset_path);
+    std::vector<Glib::ustring> presets = prefs->getAllDirs("/tools/calligraphic/preset");
 
+    int ege_index = 1;
+    for (std::vector<Glib::ustring>::iterator i = presets.begin(); i != presets.end(); ++i, ++ege_index) {
         bool match = true;
+       
+        std::vector<Inkscape::Preferences::Entry> preset = prefs->getAllEntries(*i);
+        for (std::vector<Inkscape::Preferences::Entry>::iterator j = preset.begin(); j != preset.end(); ++j) {
+            Glib::ustring entry_name = j->getEntryName();
+            if (entry_name == "id" || entry_name == "name") continue;
 
-        for ( Inkscape::Util::List<Inkscape::XML::AttributeRecord const> iter = preset_repr->attributeList();
-              iter;
-              ++iter ) {
-            const gchar *attr_name = g_quark_to_string(iter->key);
-            if (!strcmp(attr_name, "id") || !strcmp(attr_name, "name"))
-                continue;
-            void *widget = g_object_get_data(tbl, attr_name);
+            void *widget = g_object_get_data(tbl, entry_name.data());
             if (widget) {
                 if (GTK_IS_ADJUSTMENT(widget)) {
-                    double v = prefs->getDouble(preset_path, attr_name, 0); // fixme: no min/max checks here, add?
+                    double v = j->getDouble();
                     GtkAdjustment* adj = static_cast<GtkAdjustment *>(widget);
                     //std::cout << "compared adj " << attr_name << gtk_adjustment_get_value(adj) << " to " << v << "\n";
                     if (fabs(gtk_adjustment_get_value(adj) - v) > 1e-6) {
@@ -3948,7 +3946,7 @@ static void update_presets_list (GObject *tbl)
                         break;
                     }
                 } else if (GTK_IS_TOGGLE_ACTION(widget)) {
-                    bool v = prefs->getBool(preset_path, attr_name);
+                    bool v = j->getBool();
                     GtkToggleAction* toggle = static_cast<GtkToggleAction *>(widget);
                     //std::cout << "compared toggle " << attr_name << gtk_toggle_action_get_active(toggle) << " to " << v << "\n";
                     if ( static_cast<bool>(gtk_toggle_action_get_active(toggle)) != v ) {
@@ -3957,13 +3955,13 @@ static void update_presets_list (GObject *tbl)
                     }
                 }
             }
-        }
-
-        if (match) {
+       }
+       
+       if (match) {
             // newly added item is at the same index as the
             // save command, so we need to change twice for it to take effect
             ege_select_one_action_set_active(sel, 0);
-            ege_select_one_action_set_active(sel, i + 1); // one-based index
+            ege_select_one_action_set_active(sel, ege_index); // one-based index
             return;
         }
     }
@@ -3975,70 +3973,70 @@ static void update_presets_list (GObject *tbl)
 static void sp_ddc_mass_value_changed( GtkAdjustment *adj, GObject* tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.calligraphic", "mass", adj->value * 0.01 );
+    prefs->setDouble( "/tools/calligraphic/mass", adj->value * 0.01 );
     update_presets_list(tbl);
 }
 
 static void sp_ddc_wiggle_value_changed( GtkAdjustment *adj, GObject* tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.calligraphic", "wiggle", adj->value * 0.01 );
+    prefs->setDouble( "/tools/calligraphic/wiggle", adj->value * 0.01 );
     update_presets_list(tbl);
 }
 
 static void sp_ddc_angle_value_changed( GtkAdjustment *adj, GObject* tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.calligraphic", "angle", adj->value );
+    prefs->setDouble( "/tools/calligraphic/angle", adj->value );
     update_presets_list(tbl);
 }
 
 static void sp_ddc_width_value_changed( GtkAdjustment *adj, GObject *tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.calligraphic", "width", adj->value * 0.01 );
+    prefs->setDouble( "/tools/calligraphic/width", adj->value * 0.01 );
     update_presets_list(tbl);
 }
 
 static void sp_ddc_velthin_value_changed( GtkAdjustment *adj, GObject* tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble("tools.calligraphic", "thinning", adj->value * 0.01 );
+    prefs->setDouble("/tools/calligraphic/thinning", adj->value * 0.01 );
     update_presets_list(tbl);
 }
 
 static void sp_ddc_flatness_value_changed( GtkAdjustment *adj, GObject* tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.calligraphic", "flatness", adj->value * 0.01);
+    prefs->setDouble( "/tools/calligraphic/flatness", adj->value * 0.01);
     update_presets_list(tbl);
 }
 
 static void sp_ddc_tremor_value_changed( GtkAdjustment *adj, GObject* tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.calligraphic", "tremor", adj->value * 0.01 );
+    prefs->setDouble( "/tools/calligraphic/tremor", adj->value * 0.01 );
     update_presets_list(tbl);
 }
 
 static void sp_ddc_cap_rounding_value_changed( GtkAdjustment *adj, GObject* tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.calligraphic", "cap_rounding", adj->value );
+    prefs->setDouble( "/tools/calligraphic/cap_rounding", adj->value );
     update_presets_list(tbl);
 }
 
 static void sp_ddc_pressure_state_changed( GtkToggleAction *act, GObject*  tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool("tools.calligraphic", "usepressure", gtk_toggle_action_get_active( act ));
+    prefs->setBool("/tools/calligraphic/usepressure", gtk_toggle_action_get_active( act ));
     update_presets_list(tbl);
 }
 
 static void sp_ddc_trace_background_changed( GtkToggleAction *act, GObject*  tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool("tools.calligraphic", "tracebackground", gtk_toggle_action_get_active( act ));
+    prefs->setBool("/tools/calligraphic/tracebackground", gtk_toggle_action_get_active( act ));
     update_presets_list(tbl);
 }
 
@@ -4046,7 +4044,7 @@ static void sp_ddc_tilt_state_changed( GtkToggleAction *act, GObject*  tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     GtkAction * calligraphy_angle = static_cast<GtkAction *> (g_object_get_data(tbl,"angle_action"));
-    prefs->setBool("tools.calligraphic", "usetilt", gtk_toggle_action_get_active( act ));
+    prefs->setBool("/tools/calligraphic/usetilt", gtk_toggle_action_get_active( act ));
     update_presets_list(tbl);
     if (calligraphy_angle )
         gtk_action_set_sensitive( calligraphy_angle, !gtk_toggle_action_get_active( act ) );
@@ -4081,18 +4079,17 @@ static void sp_dcc_build_presets_list(GObject *tbl)
         gtk_list_store_append( model, &iter );
         gtk_list_store_set( model, &iter, 0, _("No preset"), 1, 0, -1 );
     }
-
-    /// @todo Use public Preferences API instead of node manipulation
+    
+    // iterate over all presets to populate the list
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Inkscape::XML::Node *repr = prefs->_getNode("tools.calligraphic.preset", true);
-    Inkscape::XML::Node *child_repr = repr->firstChild();
+    std::vector<Glib::ustring> presets = prefs->getAllDirs("/tools/calligraphic/preset");
     int ii=1;
-    while (child_repr) {
-        GtkTreeIter iter;
-        char *preset_name = (char *) child_repr->attribute("name");
+    
+    for (std::vector<Glib::ustring>::iterator i = presets.begin(); i != presets.end(); ++i) {
+       GtkTreeIter iter;
+        Glib::ustring preset_name = prefs->getString(*i + "/name");
         gtk_list_store_append( model, &iter );
-        gtk_list_store_set( model, &iter, 0, preset_name, 1, ii++, -1 );
-        child_repr = child_repr->next();
+        gtk_list_store_set( model, &iter, 0, preset_name.data(), 1, ii++, -1 );
     }
 
     {
@@ -4131,29 +4128,28 @@ static void sp_dcc_save_profile (GtkWidget */*widget*/, GObject *tbl)
     }
 
     g_object_set_data(tbl, "presets_blocked", GINT_TO_POINTER(TRUE));
-
+    
+    // If there's a preset with the given name, find it and set save_path appropriately
+    std::vector<Glib::ustring> presets = prefs->getAllDirs("/tools/calligraphic/preset");
+    int total_presets = presets.size();
     int new_index = -1;
-    Glib::ustring pref_path;
-    int total_prefs = prefs->childCount("tools.calligraphic.preset");
-
-    for (int i = 0; i < total_prefs; ++i) {
-        Glib::ustring path = prefs->getNthChild("tools.calligraphic.preset", i);
-        Glib::ustring name = prefs->getString(path, "name");
-        if (!name.empty() && ( profile_name == name )) {
-            // we already have preset with this name, replace its values
-            new_index = i;
-            pref_path = path;
+    Glib::ustring save_path; // profile pref path without a trailing slash
+    
+    int temp_index = 0;
+    for (std::vector<Glib::ustring>::iterator i = presets.begin(); i != presets.end(); ++i, ++temp_index) {
+       Glib::ustring name = prefs->getString(*i + "/name");
+       if (!name.empty() && profile_name == name) {
+           new_index = temp_index;
+            save_path = *i;
             break;
-        }
+       }
     }
 
     if (new_index == -1) {
         // no preset with this name, create
-        /// @todo This is wrong, the name should be encoded in the key
-        /// to allow deletion of presets
-        new_index = total_prefs + 1;
-        gchar *profile_id = g_strdup_printf(".dcc%d", new_index);
-        pref_path = Glib::ustring("tools.calligraphic.preset") + profile_id;
+        new_index = total_presets + 1;
+        gchar *profile_id = g_strdup_printf("/dcc%d", new_index);
+        save_path = Glib::ustring("/tools/calligraphic/preset") + profile_id;
         g_free(profile_id);
     }
 
@@ -4163,22 +4159,20 @@ static void sp_dcc_save_profile (GtkWidget */*widget*/, GObject *tbl)
         if (widget) {
             if (GTK_IS_ADJUSTMENT(widget)) {
                 GtkAdjustment* adj = static_cast<GtkAdjustment *>(widget);
-                double v = gtk_adjustment_get_value(adj);
-                prefs->setDouble(pref_path, widget_name, v);
+                prefs->setDouble(save_path + "/" + widget_name, gtk_adjustment_get_value(adj));
                 //std::cout << "wrote adj " << widget_name << ": " << v << "\n";
             } else if (GTK_IS_TOGGLE_ACTION(widget)) {
                 GtkToggleAction* toggle = static_cast<GtkToggleAction *>(widget);
-                bool v = gtk_toggle_action_get_active(toggle);
-                prefs->setBool(pref_path, widget_name, v);
+                prefs->setBool(save_path + "/" + widget_name, gtk_toggle_action_get_active(toggle));
                 //std::cout << "wrote tog " << widget_name << ": " << v << "\n";
             } else {
-               g_warning("Unknown widget type for preset: %s\n", widget_name);
+                g_warning("Unknown widget type for preset: %s\n", widget_name);
             }
         } else {
             g_warning("Bad key when writing preset: %s\n", widget_name);
         }
     }
-    prefs->setString(pref_path, "name", profile_name);
+    prefs->setString(save_path + "/name", profile_name);
 
     g_object_set_data(tbl, "presets_blocked", GINT_TO_POINTER(FALSE));
     sp_dcc_build_presets_list (tbl);
@@ -4190,6 +4184,11 @@ static void sp_ddc_change_profile(EgeSelectOneAction* act, GObject* tbl) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     gint preset_index = ege_select_one_action_get_active( act );
+    // This is necessary because EgeSelectOneAction spams us with GObject "changed" signal calls
+    // even when the preset is not changed. It would be good to replace it with something more
+    // modern. Index 0 means "No preset", so we don't do anything.
+    if (preset_index == 0) return;
+
     gint save_presets_index = GPOINTER_TO_INT(g_object_get_data(tbl, "save_presets_index"));
 
     if (preset_index == save_presets_index) {
@@ -4202,44 +4201,37 @@ static void sp_ddc_change_profile(EgeSelectOneAction* act, GObject* tbl) {
         return;
 
     // preset_index is one-based so we subtract 1
-    Glib::ustring preset_path = prefs->getNthChild("tools.calligraphic.preset", preset_index - 1);
+    std::vector<Glib::ustring> presets = prefs->getAllDirs("/tools/calligraphic/preset");
+    Glib::ustring preset_path = presets.at(preset_index - 1);
 
     if (!preset_path.empty()) {
         g_object_set_data(tbl, "presets_blocked", GINT_TO_POINTER(TRUE)); //temporarily block the selector so no one will updadte it while we're reading it
-
-        /// @todo Remove the use of _getNode() in this fragment, modify
-        /// the public interface of Preferences if necessary
-        Inkscape::XML::Node *preset_repr = prefs->_getNode(preset_path);
+        
+        std::vector<Inkscape::Preferences::Entry> preset = prefs->getAllEntries(preset_path);
 
         // Shouldn't this be std::map?
-        for ( Inkscape::Util::List<Inkscape::XML::AttributeRecord const> iter = preset_repr->attributeList();
-              iter;
-              ++iter ) {
-            const gchar *attr_name = g_quark_to_string(iter->key);
-            if (!strcmp(attr_name, "id") || !strcmp(attr_name, "name"))
-                continue;
-            void *widget = g_object_get_data(tbl, attr_name);
+        for (std::vector<Inkscape::Preferences::Entry>::iterator i = preset.begin(); i != preset.end(); ++i) {
+            Glib::ustring entry_name = i->getEntryName();
+            if (entry_name == "id" || entry_name == "name") continue;
+            void *widget = g_object_get_data(tbl, entry_name.data());
             if (widget) {
                 if (GTK_IS_ADJUSTMENT(widget)) {
-                    double v = prefs->getDouble(preset_path, attr_name, 0); // fixme: no min/max checks here, add?
                     GtkAdjustment* adj = static_cast<GtkAdjustment *>(widget);
-                    gtk_adjustment_set_value(adj, v);
+                    gtk_adjustment_set_value(adj, i->getDouble());
                     //std::cout << "set adj " << attr_name << " to " << v << "\n";
                 } else if (GTK_IS_TOGGLE_ACTION(widget)) {
-                    int v = prefs->getInt(preset_path, attr_name, 0); // fixme: no min/max checks here, add?
                     GtkToggleAction* toggle = static_cast<GtkToggleAction *>(widget);
-                    gtk_toggle_action_set_active(toggle, v);
+                    gtk_toggle_action_set_active(toggle, i->getBool());
                     //std::cout << "set toggle " << attr_name << " to " << v << "\n";
                 } else {
-                    g_warning("Unknown widget type for preset: %s\n", attr_name);
+                    g_warning("Unknown widget type for preset: %s\n", entry_name.data());
                 }
             } else {
-                g_warning("Bad key found in a preset record: %s\n", attr_name);
+                g_warning("Bad key found in a preset record: %s\n", entry_name.data());
             }
         }
         g_object_set_data(tbl, "presets_blocked", GINT_TO_POINTER(FALSE));
     }
-
 }
 
 
@@ -4258,7 +4250,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeAdjustmentAction *eact = create_adjustment_action( "CalligraphyWidthAction",
                                                               _("Pen Width"), _("Width:"),
                                                               _("The width of the calligraphic pen (relative to the visible canvas area)"),
-                                                              "tools.calligraphic", "width", 15,
+                                                              "/tools/calligraphic/width", 15,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "altx-calligraphy",
                                                               1, 100, 1.0, 0.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -4275,7 +4267,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeAdjustmentAction* eact = create_adjustment_action( "ThinningAction",
                                                               _("Stroke Thinning"), _("Thinning:"),
                                                               _("How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 makes them broader, 0 makes width independent of velocity)"),
-                                                              "tools.calligraphic", "thinning", 10,
+                                                              "/tools/calligraphic/thinning", 10,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                                               -100, 100, 1, 0.1,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -4291,7 +4283,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeAdjustmentAction* eact = create_adjustment_action( "AngleAction",
                                                               _("Pen Angle"), _("Angle:"),
                                                               _("The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if fixation = 0)"),
-                                                              "tools.calligraphic", "angle", 30,
+                                                              "/tools/calligraphic/angle", 30,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "calligraphy-angle",
                                                               -90.0, 90.0, 1.0, 10.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -4309,7 +4301,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeAdjustmentAction* eact = create_adjustment_action( "FixationAction",
                                                               _("Fixation"), _("Fixation:"),
                                                               _("Angle behavior (0 = nib always perpendicular to stroke direction, 100 = fixed angle)"),
-                                                              "tools.calligraphic", "flatness", 90,
+                                                              "/tools/calligraphic/flatness", 90,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                                               0.0, 100, 1.0, 10.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -4326,7 +4318,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeAdjustmentAction* eact = create_adjustment_action( "CapRoundingAction",
                                                               _("Cap rounding"), _("Caps:"),
                                                               _("Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = round caps)"),
-                                                              "tools.calligraphic", "cap_rounding", 0.0,
+                                                              "/tools/calligraphic/cap_rounding", 0.0,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                                               0.0, 5.0, 0.01, 0.1,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -4342,7 +4334,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeAdjustmentAction* eact = create_adjustment_action( "TremorAction",
                                                               _("Stroke Tremor"), _("Tremor:"),
                                                               _("Increase to make strokes rugged and trembling"),
-                                                              "tools.calligraphic", "tremor", 0.0,
+                                                              "/tools/calligraphic/tremor", 0.0,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                                               0.0, 100, 1, 0.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -4360,7 +4352,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeAdjustmentAction* eact = create_adjustment_action( "WiggleAction",
                                                               _("Pen Wiggle"), _("Wiggle:"),
                                                               _("Increase to make the pen waver and wiggle"),
-                                                              "tools.calligraphic", "wiggle", 0.0,
+                                                              "/tools/calligraphic/wiggle", 0.0,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                                               0.0, 100, 1, 0.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -4377,7 +4369,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeAdjustmentAction* eact = create_adjustment_action( "MassAction",
                                                               _("Pen Mass"), _("Mass:"),
                                                               _("Increase to make the pen drag behind, as if slowed by inertia"),
-                                                              "tools.calligraphic", "mass", 2.0,
+                                                              "/tools/calligraphic/mass", 2.0,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, FALSE, NULL,
                                                               0.0, 100, 1, 0.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -4397,7 +4389,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
                                                           Inkscape::ICON_SIZE_DECORATION );
             gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
             g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_ddc_trace_background_changed), holder);
-            gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("tools.calligraphic", "tracebackground", false) );
+            gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/calligraphic/tracebackground", false) );
             g_object_set_data( holder, "tracebackground", act );
         }
 
@@ -4410,7 +4402,7 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
                                                           Inkscape::ICON_SIZE_DECORATION );
             gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
             g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_ddc_pressure_state_changed), holder);
-            gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("tools.calligraphic", "usepressure", true) );
+            gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/calligraphic/usepressure", true) );
             g_object_set_data( holder, "usepressure", act );
         }
 
@@ -4423,8 +4415,8 @@ static void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
                                                           Inkscape::ICON_SIZE_DECORATION );
             gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
             g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_ddc_tilt_state_changed), holder );
-            gtk_action_set_sensitive( GTK_ACTION(calligraphy_angle), !prefs->getBool("tools.calligraphic", "usetilt", true) );
-            gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("tools.calligraphic", "usetilt", true) );
+            gtk_action_set_sensitive( GTK_ACTION(calligraphy_angle), !prefs->getBool("/tools/calligraphic/usetilt", true) );
+            gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/calligraphic/usetilt", true) );
             g_object_set_data( holder, "usetilt", act );
         }
 
@@ -4473,7 +4465,7 @@ sp_arctb_startend_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *v
 
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setDouble("tools.shapes.arc", value_name, (adj->value * M_PI)/ 180);
+        prefs->setDouble(Glib::ustring("/tools/shapes/arc") + value_name, (adj->value * M_PI)/ 180);
     }
 
     // quit if run by the attr_changed listener
@@ -4542,7 +4534,7 @@ static void sp_arctb_open_state_changed( EgeSelectOneAction *act, GObject *tbl )
     SPDesktop *desktop = (SPDesktop *) g_object_get_data( tbl, "desktop" );
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setBool("tools.shapes.arc", "open", ege_select_one_action_get_active(act) != 0);
+        prefs->setBool("/tools/shapes/arc/open", ege_select_one_action_get_active(act) != 0);
     }
 
     // quit if run by the attr_changed listener
@@ -4696,7 +4688,7 @@ static void sp_arc_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     EgeAdjustmentAction* eact = 0;
-    Inkscape::IconSize secondarySize = prefToSize("toolbox", "secondary", 1);
+    Inkscape::IconSize secondarySize = prefToSize("/toolbox/secondary", 1);
 
 
     {
@@ -4711,7 +4703,7 @@ static void sp_arc_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
         eact = create_adjustment_action( "ArcStartAction",
                                          _("Start"), _("Start:"),
                                          _("The angle (in degrees) from the horizontal to the arc's start point"),
-                                         "tools.shapes.arc", "start", 0.0,
+                                         "/tools/shapes/arc/start", 0.0,
                                          GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, TRUE, "altx-arc",
                                          -360.0, 360.0, 1.0, 10.0,
                                          0, 0, 0,
@@ -4724,7 +4716,7 @@ static void sp_arc_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
         eact = create_adjustment_action( "ArcEndAction",
                                          _("End"), _("End:"),
                                          _("The angle (in degrees) from the horizontal to the arc's end point"),
-                                         "tools.shapes.arc", "end", 0.0,
+                                         "/tools/shapes/arc/end", 0.0,
                                          GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, FALSE, NULL,
                                          -360.0, 360.0, 1.0, 10.0,
                                          0, 0, 0,
@@ -4762,7 +4754,7 @@ static void sp_arc_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
         ege_select_one_action_set_icon_size( act, secondarySize );
         ege_select_one_action_set_tooltip_column( act, 1  );
 
-        bool isClosed = !prefs->getBool("tools.shapes.arc", "open", false);
+        bool isClosed = !prefs->getBool("/tools/shapes/arc/open", false);
         ege_select_one_action_set_active( act, isClosed ? 0 : 1 );
         g_signal_connect_after( G_OBJECT(act), "changed", G_CALLBACK(sp_arctb_open_state_changed), holder );
     }
@@ -4807,7 +4799,7 @@ static void sp_arc_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions,
 
 static void toggle_dropper_pick_alpha( GtkToggleAction* act, gpointer tbl ) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt( "tools.dropper", "pick", gtk_toggle_action_get_active( act ) );
+    prefs->setInt( "/tools/dropper/pick", gtk_toggle_action_get_active( act ) );
     GtkAction* set_action = GTK_ACTION( g_object_get_data(G_OBJECT(tbl), "set_action") );
     if ( set_action ) {
         if ( gtk_toggle_action_get_active( act ) ) {
@@ -4822,7 +4814,7 @@ static void toggle_dropper_pick_alpha( GtkToggleAction* act, gpointer tbl ) {
 
 static void toggle_dropper_set_alpha( GtkToggleAction* act, gpointer tbl ) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt( "tools.dropper", "setalpha", gtk_toggle_action_get_active( act ) ? 1 : 0 );
+    prefs->setBool( "/tools/dropper/setalpha", gtk_toggle_action_get_active( act ) );
     spinbutton_defocus(GTK_OBJECT(tbl));
 }
 
@@ -4837,7 +4829,7 @@ static void toggle_dropper_set_alpha( GtkToggleAction* act, gpointer tbl ) {
 static void sp_dropper_toolbox_prep(SPDesktop */*desktop*/, GtkActionGroup* mainActions, GObject* holder)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    gint pickAlpha = prefs->getInt( "tools.dropper", "pick", 1 );
+    gint pickAlpha = prefs->getInt( "/tools/dropper/pick", 1 );
 
     {
         EgeOutputAction* act = ege_output_action_new( "DropperOpacityAction", _("Opacity:"), "", 0 );
@@ -4867,7 +4859,7 @@ static void sp_dropper_toolbox_prep(SPDesktop */*desktop*/, GtkActionGroup* main
         g_object_set( act, "short_label", _("Assign"), NULL );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_object_set_data( holder, "set_action", act );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getInt( "tools.dropper", "setalpha", 1 ) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool( "/tools/dropper/setalpha", true) );
         // make sure it's disabled if we're not picking alpha
         gtk_action_set_sensitive( GTK_ACTION(act), pickAlpha );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(toggle_dropper_set_alpha), holder );
@@ -4913,7 +4905,7 @@ static void sp_lpetool_mode_changed(EgeSelectOneAction *act, GObject *tbl)
 
         if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
             Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-            prefs->setInt( "tools.lpetool", "mode", mode );
+            prefs->setInt( "/tools/lpetool/mode", mode );
         }
 
         g_object_set_data(tbl, "freeze", GINT_TO_POINTER(FALSE));
@@ -4971,7 +4963,7 @@ lpetool_toggle_show_bbox (GtkToggleAction *act, gpointer data) {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     bool show = gtk_toggle_action_get_active( act );
-    prefs->setInt("tools.lpetool", "show_bbox",  show ? 1 : 0);
+    prefs->setBool("/tools/lpetool/show_bbox",  show);
 
     if (tools_isactive(desktop, TOOLS_LPETOOL)) {
         SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(desktop->event_context);
@@ -4990,7 +4982,7 @@ lpetool_toggle_show_measuring_info (GtkToggleAction *act, GObject *tbl) {
     if (tools_isactive(desktop, TOOLS_LPETOOL)) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
         bool show = gtk_toggle_action_get_active( act );
-        prefs->setInt("tools.lpetool", "show_measuring_info",  show ? 1 : 0);
+        prefs->setBool("/tools/lpetool/show_measuring_info",  show);
         lpetool_show_measuring_info(lc, show);
         gtk_action_set_sensitive(GTK_ACTION(unitact), show);
     }
@@ -5000,7 +4992,7 @@ static void lpetool_unit_changed(GtkAction* /*act*/, GObject* tbl) {
     UnitTracker* tracker = reinterpret_cast<UnitTracker*>(g_object_get_data(tbl, "tracker"));
     SPUnit const *unit = tracker->getActiveUnit();
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt("tools.lpetool", "unitid", unit->unit_id);
+    prefs->setInt("/tools/lpetool/unitid", unit->unit_id);
 
     SPDesktop *desktop = (SPDesktop *) g_object_get_data( tbl, "desktop" );
     if (SP_IS_LPETOOL_CONTEXT(desktop->event_context)) {
@@ -5026,10 +5018,10 @@ lpetool_toggle_set_bbox (GtkToggleAction *act, gpointer data) {
 
         // TODO: should we provide a way to store points in prefs?
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setDouble("tools.lpetool", "bbox_upperleftx", A[Geom::X]);
-        prefs->setDouble("tools.lpetool", "bbox_upperlefty", A[Geom::Y]);
-        prefs->setDouble("tools.lpetool", "bbox_lowerrightx", B[Geom::X]);
-        prefs->setDouble("tools.lpetool", "bbox_lowerrighty", B[Geom::Y]);
+        prefs->setDouble("/tools/lpetool/bbox_upperleftx", A[Geom::X]);
+        prefs->setDouble("/tools/lpetool/bbox_upperlefty", A[Geom::Y]);
+        prefs->setDouble("/tools/lpetool/bbox_lowerrightx", B[Geom::X]);
+        prefs->setDouble("/tools/lpetool/bbox_lowerrighty", B[Geom::Y]);
 
         lpetool_context_reset_limiting_bbox(SP_LPETOOL_CONTEXT(desktop->event_context));
     }
@@ -5103,7 +5095,7 @@ static void sp_lpetool_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActi
     SPUnit const *unit = tracker->getActiveUnit();
 
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt("tools.lpetool", "unitid", unit->unit_id);
+    prefs->setInt("/tools/lpetool/unitid", unit->unit_id);
 
     /** Automatically create a list of LPEs that get added to the toolbar **/
     {
@@ -5141,7 +5133,7 @@ static void sp_lpetool_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActi
         ege_select_one_action_set_icon_column( act, 2 );
         ege_select_one_action_set_tooltip_column( act, 1  );
 
-        gint lpeToolMode = prefs->getInt("tools.lpetool", "mode", 0);
+        gint lpeToolMode = prefs->getInt("/tools/lpetool/mode", 0);
         ege_select_one_action_set_active( act, lpeToolMode );
         g_signal_connect_after( G_OBJECT(act), "changed", G_CALLBACK(sp_lpetool_mode_changed), holder );
     }
@@ -5155,7 +5147,7 @@ static void sp_lpetool_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActi
                                                       Inkscape::ICON_SIZE_DECORATION );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(lpetool_toggle_show_bbox), desktop );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getInt( "tools.lpetool", "show_bbox", 1 ) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool( "/tools/lpetool/show_bbox", true ) );
     }
 
     /* Set limiting bounding box to bbox of current selection */
@@ -5196,7 +5188,7 @@ static void sp_lpetool_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActi
                                                       Inkscape::ICON_SIZE_DECORATION );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(lpetool_toggle_show_measuring_info), holder );
-        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getInt( "tools.lpetool", "show_measuring_info", 1 ) );
+        gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool( "/tools/lpetool/show_measuring_info", true ) );
     }
 
     // add the units menu
@@ -5205,7 +5197,7 @@ static void sp_lpetool_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActi
         gtk_action_group_add_action( mainActions, act );
         g_signal_connect_after( G_OBJECT(act), "changed", G_CALLBACK(lpetool_unit_changed), (GObject*)holder );
         g_object_set_data(holder, "lpetool_units_action", act);
-        gtk_action_set_sensitive(act, prefs->getInt("tools.lpetool", "show_measuring_info", 1));
+        gtk_action_set_sensitive(act, prefs->getBool("/tools/lpetool/show_measuring_info", true));
     }
 
     /* Open LPE dialog (to adapt parameters numerically) */
@@ -5241,17 +5233,17 @@ static void sp_lpetool_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActi
 static void sp_erc_width_value_changed( GtkAdjustment *adj, GObject *tbl )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble( "tools.eraser", "width", adj->value * 0.01 );
+    prefs->setDouble( "/tools/eraser/width", adj->value * 0.01 );
     update_presets_list(tbl);
 }
 
 static void sp_erasertb_mode_changed( EgeSelectOneAction *act, GObject *tbl )
 {
     SPDesktop *desktop = (SPDesktop *) g_object_get_data( tbl, "desktop" );
-    gint eraserMode = (ege_select_one_action_get_active( act ) != 0) ? 1 : 0;
+    bool eraserMode = ege_select_one_action_get_active( act ) != 0;
     if (sp_document_get_undo_sensitive(sp_desktop_document(desktop))) {
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        prefs->setInt( "tools.eraser", "mode", eraserMode );
+        prefs->setBool( "/tools/eraser/mode", eraserMode );
     }
 
     // only take action if run by the attr_changed listener
@@ -5277,7 +5269,7 @@ static void sp_eraser_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActio
         EgeAdjustmentAction *eact = create_adjustment_action( "EraserWidthAction",
                                                               _("Pen Width"), _("Width:"),
                                                               _("The width of the eraser pen (relative to the visible canvas area)"),
-                                                              "tools.eraser", "width", 15,
+                                                              "/tools/eraser/width", 15,
                                                               GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "altx-eraser",
                                                               1, 100, 1.0, 0.0,
                                                               labels, values, G_N_ELEMENTS(labels),
@@ -5317,7 +5309,7 @@ static void sp_eraser_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActio
 
         /// @todo Convert to boolean?
         Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        gint eraserMode = (prefs->getInt("tools.eraser", "mode", 0) != 0) ? 1 : 0;
+        gint eraserMode = prefs->getBool("/tools/eraser/mode") ? 1 : 0;
         ege_select_one_action_set_active( act, eraserMode );
         g_signal_connect_after( G_OBJECT(act), "changed", G_CALLBACK(sp_erasertb_mode_changed), holder );
     }
@@ -5385,20 +5377,15 @@ sp_text_toolbox_selection_changed (Inkscape::Selection */*selection*/, GObject *
     // If querying returned nothing, read the style from the text tool prefs (default style for new texts)
     if (result_family == QUERY_STYLE_NOTHING || result_style == QUERY_STYLE_NOTHING || result_numbers == QUERY_STYLE_NOTHING) {
         // there are no texts in selection, read from prefs
-
-        Inkscape::XML::Node *repr = inkscape_get_repr (INKSCAPE, "tools.text");
-        if (repr) {
-            sp_style_read_from_repr (query, repr);
-            if (g_object_get_data(tbl, "text_style_from_prefs")) {
-                // do not reset the toolbar style from prefs if we already did it last time
-                sp_style_unref(query);
-                return;
-            }
-            g_object_set_data(tbl, "text_style_from_prefs", GINT_TO_POINTER(TRUE));
-        } else {
+        
+           sp_style_read_from_prefs(query, "/tools/text");
+           
+           if (g_object_get_data(tbl, "text_style_from_prefs")) {
+            // do not reset the toolbar style from prefs if we already did it last time
             sp_style_unref(query);
             return;
         }
+        g_object_set_data(tbl, "text_style_from_prefs", GINT_TO_POINTER(TRUE));
     } else {
         g_object_set_data(tbl, "text_style_from_prefs", GINT_TO_POINTER(FALSE));
     }
@@ -5635,7 +5622,8 @@ sp_text_toolbox_family_changed (GtkTreeSelection    *selection,
     // If querying returned nothing, set the default style of the tool (for new texts)
     if (result_fontspec == QUERY_STYLE_NOTHING)
     {
-        sp_repr_css_change (inkscape_get_repr (INKSCAPE, "tools.text"), css, "style");
+       Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+       prefs->setStyle("/tools/text/style", css);
         sp_text_edit_dialog_default_set_insensitive (); //FIXME: Replace trough a verb
     }
     else
@@ -5727,7 +5715,8 @@ sp_text_toolbox_anchoring_toggled (GtkRadioButton   *button,
     // If querying returned nothing, read the style from the text tool prefs (default style for new texts)
     if (result_numbers == QUERY_STYLE_NOTHING)
     {
-        sp_repr_css_change (inkscape_get_repr (INKSCAPE, "tools.text"), css, "style");
+       Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+       prefs->setStyle("/tools/text/style", css);
     }
 
     sp_style_unref(query);
@@ -5805,7 +5794,8 @@ sp_text_toolbox_style_toggled (GtkToggleButton  *button,
     // If querying returned nothing, read the style from the text tool prefs (default style for new texts)
     if (result_fontspec == QUERY_STYLE_NOTHING)
     {
-        sp_repr_css_change (inkscape_get_repr (INKSCAPE, "tools.text"), css, "style");
+       Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+       prefs->setStyle("/tools/text/style", css);
     }
 
     sp_style_unref(query);
@@ -5854,7 +5844,8 @@ sp_text_toolbox_orientation_toggled (GtkRadioButton  *button,
     // If querying returned nothing, read the style from the text tool prefs (default style for new texts)
     if (result_numbers == QUERY_STYLE_NOTHING)
     {
-        sp_repr_css_change (inkscape_get_repr (INKSCAPE, "tools.text"), css, "style");
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+       prefs->setStyle("/tools/text/style", css);
     }
 
     sp_desktop_set_style (desktop, css, true, true);
@@ -5954,7 +5945,8 @@ sp_text_toolbox_size_changed  (GtkComboBox *cbox,
     // If querying returned nothing, read the style from the text tool prefs (default style for new texts)
     if (result_numbers == QUERY_STYLE_NOTHING)
     {
-        sp_repr_css_change (inkscape_get_repr (INKSCAPE, "tools.text"), css, "style");
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+       prefs->setStyle("/tools/text/style", css);
     }
 
     sp_style_unref(query);
@@ -6117,7 +6109,7 @@ GtkWidget*
 sp_text_toolbox_new (SPDesktop *desktop)
 {
     GtkToolbar   *tbl = GTK_TOOLBAR(gtk_toolbar_new());
-    GtkIconSize secondarySize = static_cast<GtkIconSize>(prefToSize("toolbox", "secondary", 1));
+    GtkIconSize secondarySize = static_cast<GtkIconSize>(prefToSize("/toolbox/secondary", 1));
 
     gtk_object_set_data(GTK_OBJECT(tbl), "dtw", desktop->canvas);
     gtk_object_set_data(GTK_OBJECT(tbl), "desktop", desktop);
@@ -6437,12 +6429,12 @@ static void sp_connector_graph_layout(void)
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
     // hack for clones, see comment in align-and-distribute.cpp
-    int saved_compensation = prefs->getInt("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
-    prefs->setInt("options.clonecompensation", "value", SP_CLONE_COMPENSATION_UNMOVED);
+    int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
+    prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
 
     graphlayout(sp_desktop_selection(SP_ACTIVE_DESKTOP)->itemList());
 
-    prefs->setInt("options.clonecompensation", "value", saved_compensation);
+    prefs->setInt("/options/clonecompensation/value", saved_compensation);
 
     sp_document_done(sp_desktop_document(SP_ACTIVE_DESKTOP), SP_VERB_DIALOG_ALIGN_DISTRIBUTE, _("Arrange connector network"));
 }
@@ -6450,14 +6442,14 @@ static void sp_connector_graph_layout(void)
 static void sp_directed_graph_layout_toggled( GtkToggleAction* act, GtkObject */*tbl*/ )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool("tools.connector", "directedlayout",
+    prefs->setBool("/tools/connector/directedlayout",
                 gtk_toggle_action_get_active( act ));
 }
 
 static void sp_nooverlaps_graph_layout_toggled( GtkToggleAction* act, GtkObject */*tbl*/ )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool("tools.connector", "avoidoverlaplayout",
+    prefs->setBool("/tools/connector/avoidoverlaplayout",
                 gtk_toggle_action_get_active( act ));
 }
 
@@ -6465,7 +6457,7 @@ static void sp_nooverlaps_graph_layout_toggled( GtkToggleAction* act, GtkObject
 static void connector_length_changed(GtkAdjustment *adj, GObject* tbl)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setDouble("tools.connector", "length", adj->value);
+    prefs->setDouble("/tools/connector/length", adj->value);
     spinbutton_defocus(GTK_OBJECT(tbl));
 }
 
@@ -6503,7 +6495,7 @@ static Inkscape::XML::NodeEventVector connector_tb_repr_events = {
 static void sp_connector_toolbox_prep( SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder )
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    Inkscape::IconSize secondarySize = prefToSize("toolbox", "secondary", 1);
+    Inkscape::IconSize secondarySize = prefToSize("/toolbox/secondary", 1);
 
     {
         InkAction* inky = ink_action_new( "ConnectorAvoidAction",
@@ -6531,7 +6523,7 @@ static void sp_connector_toolbox_prep( SPDesktop *desktop, GtkActionGroup* mainA
     eact = create_adjustment_action( "ConnectorSpacingAction",
                                      _("Connector Spacing"), _("Spacing:"),
                                      _("The amount of space left around objects by auto-routing connectors"),
-                                     "tools.connector", "spacing", defaultConnSpacing,
+                                     "/tools/connector/spacing", defaultConnSpacing,
                                      GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "inkscape:connector-spacing",
                                      0, 100, 1.0, 10.0,
                                      0, 0, 0,
@@ -6553,7 +6545,7 @@ static void sp_connector_toolbox_prep( SPDesktop *desktop, GtkActionGroup* mainA
     eact = create_adjustment_action( "ConnectorLengthAction",
                                      _("Connector Length"), _("Length:"),
                                      _("Ideal length for connectors when layout is applied"),
-                                     "tools.connector", "length", 100,
+                                     "/tools/connector/length", 100,
                                      GTK_WIDGET(desktop->canvas), NULL, holder, TRUE, "inkscape:connector-length",
                                      10, 1000, 10.0, 100.0,
                                      0, 0, 0,
@@ -6570,7 +6562,7 @@ static void sp_connector_toolbox_prep( SPDesktop *desktop, GtkActionGroup* mainA
                                                       Inkscape::ICON_SIZE_DECORATION );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
 
-        bool tbuttonstate = prefs->getBool("tools.connector", "directedlayout");
+        bool tbuttonstate = prefs->getBool("/tools/connector/directedlayout");
         gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act), ( tbuttonstate ? TRUE : FALSE ));
 
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_directed_graph_layout_toggled), holder );
@@ -6585,7 +6577,7 @@ static void sp_connector_toolbox_prep( SPDesktop *desktop, GtkActionGroup* mainA
                                                       Inkscape::ICON_SIZE_DECORATION );
         gtk_action_group_add_action( mainActions, GTK_ACTION( act ) );
 
-        bool tbuttonstate = prefs->getBool("tools.connector", "avoidoverlaplayout");
+        bool tbuttonstate = prefs->getBool("/tools/connector/avoidoverlaplayout");
         gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(act), (tbuttonstate ? TRUE : FALSE ));
 
         g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_nooverlaps_graph_layout_toggled), holder );
@@ -6620,13 +6612,13 @@ static void paintbucket_channels_changed(EgeSelectOneAction* act, GObject* /*tbl
 static void paintbucket_threshold_changed(GtkAdjustment *adj, GObject */*tbl*/)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt("tools.paintbucket", "threshold", (gint)adj->value);
+    prefs->setInt("/tools/paintbucket/threshold", (gint)adj->value);
 }
 
 static void paintbucket_autogap_changed(EgeSelectOneAction* act, GObject */*tbl*/)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setInt("tools.paintbucket", "autogap", ege_select_one_action_get_active( act ));
+    prefs->setBool("/tools/paintbucket/autogap", ege_select_one_action_get_active( act ));
 }
 
 static void paintbucket_offset_changed(GtkAdjustment *adj, GObject *tbl)
@@ -6635,8 +6627,8 @@ static void paintbucket_offset_changed(GtkAdjustment *adj, GObject *tbl)
     SPUnit const *unit = tracker->getActiveUnit();
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
-    prefs->setDouble("tools.paintbucket", "offset", (gdouble)sp_units_get_pixels(adj->value, *unit));
-    prefs->setString("tools.paintbucket", "offsetunits", sp_unit_get_abbreviation(unit));
+    prefs->setDouble("/tools/paintbucket/offset", (gdouble)sp_units_get_pixels(adj->value, *unit));
+    prefs->setString("/tools/paintbucket/offsetunits", sp_unit_get_abbreviation(unit));
 }
 
 static void paintbucket_defaults (GtkWidget *, GObject *tbl)
@@ -6686,7 +6678,7 @@ static void sp_paintbucket_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeSelectOneAction* act1 = ege_select_one_action_new( "ChannelsAction", _("Fill by"), (""), NULL, GTK_TREE_MODEL(model) );
         g_object_set( act1, "short_label", _("Fill by:"), NULL );
         ege_select_one_action_set_appearance( act1, "compact" );
-        ege_select_one_action_set_active( act1, prefs->getInt("tools.paintbucket", "channels", 0) );
+        ege_select_one_action_set_active( act1, prefs->getInt("/tools/paintbucket/channels", 0) );
         g_signal_connect( G_OBJECT(act1), "changed", G_CALLBACK(paintbucket_channels_changed), holder );
         gtk_action_group_add_action( mainActions, GTK_ACTION(act1) );
         g_object_set_data( holder, "channels_action", act1 );
@@ -6698,7 +6690,7 @@ static void sp_paintbucket_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
             "ThresholdAction",
             _("Fill Threshold"), _("Threshold:"),
             _("The maximum allowed difference between the clicked pixel and the neighboring pixels to be counted in the fill"),
-            "tools.paintbucket", "threshold", 5, GTK_WIDGET(desktop->canvas), NULL, holder, TRUE,
+            "/tools/paintbucket/threshold", 5, GTK_WIDGET(desktop->canvas), NULL, holder, TRUE,
             "inkscape:paintbucket-threshold", 0, 100.0, 1.0, 0.0,
             0, 0, 0,
             paintbucket_threshold_changed, 1, 0 );
@@ -6709,7 +6701,7 @@ static void sp_paintbucket_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
 
     // Create the units menu.
     UnitTracker* tracker = new UnitTracker( SP_UNIT_ABSOLUTE | SP_UNIT_DEVICE );
-    Glib::ustring stored_unit = prefs->getString("tools.paintbucket", "offsetunits");
+    Glib::ustring stored_unit = prefs->getString("/tools/paintbucket/offsetunits");
     if (!stored_unit.empty())
         tracker->setActiveUnit(sp_unit_get_by_abbreviation(stored_unit.data()));
     g_object_set_data( holder, "tracker", tracker );
@@ -6724,7 +6716,7 @@ static void sp_paintbucket_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
             "OffsetAction",
             _("Grow/shrink by"), _("Grow/shrink by:"),
             _("The amount to grow (positive) or shrink (negative) the created fill path"),
-            "tools.paintbucket", "offset", 0, GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, TRUE,
+            "/tools/paintbucket/offset", 0, GTK_WIDGET(desktop->canvas), NULL/*us*/, holder, TRUE,
             "inkscape:paintbucket-offset", -1e6, 1e6, 0.1, 0.5,
             0, 0, 0,
             paintbucket_offset_changed, 1, 2);
@@ -6751,7 +6743,7 @@ static void sp_paintbucket_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
         EgeSelectOneAction* act2 = ege_select_one_action_new( "AutoGapAction", _("Close gaps"), (""), NULL, GTK_TREE_MODEL(model) );
         g_object_set( act2, "short_label", _("Close gaps:"), NULL );
         ege_select_one_action_set_appearance( act2, "compact" );
-        ege_select_one_action_set_active( act2, prefs->getInt("tools.paintbucket", "autogap", 0) );
+        ege_select_one_action_set_active( act2, prefs->getBool("/tools/paintbucket/autogap") );
         g_signal_connect( G_OBJECT(act2), "changed", G_CALLBACK(paintbucket_autogap_changed), holder );
         gtk_action_group_add_action( mainActions, GTK_ACTION(act2) );
         g_object_set_data( holder, "autogap_action", act2 );
@@ -6780,7 +6772,3 @@ static void sp_paintbucket_toolbox_prep(SPDesktop *desktop, GtkActionGroup* main
   End:
 */
 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
-
-
-
-
index 27bf6d0522029be98a89cd06a68a634018ef575b..a4d6f21a556ce84262b2bd07ca76e488ac61eb78 100644 (file)
@@ -42,7 +42,7 @@ void aux_toolbox_space(GtkWidget *tb, gint space);
 // utility
 void sp_toolbox_add_label(GtkWidget *tbl, gchar const *title, bool wide = true);
 
-Inkscape::IconSize prefToSize( gchar const *path, gchar const *attr, int base = 0 );
+Inkscape::IconSize prefToSize(Glib::ustring const &path, int base = 0 );
 
 #endif /* !SEEN_TOOLBOX_H */
 
index 6052e48b60e09aaf3fefb950770f7f65fe9fc82c..8f317e2d0778b40b29cd956e8e2f83da31b7fd0e 100644 (file)
@@ -29,7 +29,7 @@ namespace XML {
 /**
  * @brief Interface for XML node observers
  *
- * This pure abstract class defines an interface for objects that can receive
+ * This class defines an interface for objects that can receive
  * XML node state change notifications. The observer has to be registered using
  * the Node::addObserver() method to be notified of changes of this node only,
  * or using Node::addSubtreeObserver() to also receive notifications about its
@@ -40,6 +40,11 @@ namespace XML {
  * The method will be called again due to the XML modification performed in it. If you
  * don't take special precautions to ignore the second call, it will result in infinite
  * recursion.
+ *
+ * The virtual methods of this class do nothing by default, so you don't need to provide
+ * stubs for things you don't use. A good idea is to make the observer register itself
+ * on construction and unregister itself on destruction. This will ensure there are
+ * no dangling references.
  */
 class NodeObserver {
 public:
@@ -56,7 +61,7 @@ public:
      * @param child The newly added child node
      * @param prev The node after which the new child was inserted into the sibling order, or NULL
      */
-    virtual void notifyChildAdded(Node &node, Node &child, Node *prev)=0;
+    virtual void notifyChildAdded(Node &node, Node &child, Node *prev) {}
 
     /**
      * @brief Child removal callback
@@ -68,7 +73,7 @@ public:
      * @param child The removed child node
      * @param prev The node that was before the removed node in sibling order, or NULL
      */
-    virtual void notifyChildRemoved(Node &node, Node &child, Node *prev)=0;
+    virtual void notifyChildRemoved(Node &node, Node &child, Node *prev) {}
 
     /**
      * @brief Child order change callback
@@ -84,7 +89,7 @@ public:
      * @param new_prev The node that is before @c child after the order change
      */
     virtual void notifyChildOrderChanged(Node &node, Node &child,
-                                         Node *old_prev, Node *new_prev)=0;
+                                         Node *old_prev, Node *new_prev) {}
 
     /**
      * @brief Content change callback
@@ -98,7 +103,7 @@ public:
      */
     virtual void notifyContentChanged(Node &node,
                                       Util::ptr_shared<char> old_content,
-                                      Util::ptr_shared<char> new_content)=0;
+                                      Util::ptr_shared<char> new_content) {}
 
     /**
      * @brief Attribute change callback
@@ -112,7 +117,7 @@ public:
      */
     virtual void notifyAttributeChanged(Node &node, GQuark name,
                                         Util::ptr_shared<char> old_value,
-                                        Util::ptr_shared<char> new_value)=0;
+                                        Util::ptr_shared<char> new_value) {}
 };
 
 } // namespace XML
index 2a5125375a462dc0180dfda2ac3392c407648220..371af729f999b4cf3c6d1895df05e2b0b29b43f9 100644 (file)
@@ -29,7 +29,7 @@
 #include "io/stringstream.h"
 #include "io/gzipstream.h"
 
-#include "prefs-utils.h"
+#include "preferences.h"
 
 using Inkscape::IO::Writer;
 using Inkscape::Util::List;
@@ -511,8 +511,9 @@ void
 sp_repr_save_writer(Document *doc, Inkscape::IO::Writer *out,
               gchar const *default_ns)
 {
-    int inlineattrs = prefs_get_int_attribute("options.svgoutput", "inlineattrs", 0);
-    int indent = prefs_get_int_attribute("options.svgoutput", "indent", 2);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    bool inlineattrs = prefs->getBool("/options/svgoutput/inlineattrs");
+    int indent = prefs->getInt("/options/svgoutput/indent", 2);
 
     /* fixme: do this The Right Way */
     out->writeString( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" );
index 1d14d20cd2e039e3dbb4afc06e549106bdf104c1..b00845077fbf2162608a58947f514f7f6259dc6a 100644 (file)
@@ -21,7 +21,7 @@
 #include "desktop.h"
 #include "pixmaps/cursor-zoom.xpm"
 #include "pixmaps/cursor-zoom-out.xpm"
-#include "prefs-utils.h"
+#include "preferences.h"
 
 #include "zoom-context.h"
 
@@ -91,10 +91,11 @@ sp_zoom_context_finish (SPEventContext *ec)
 
 static void sp_zoom_context_setup(SPEventContext *ec)
 {
-    if (prefs_get_int_attribute("tools.zoom", "selcue", 0) != 0) {
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    if (prefs->getBool("/tools/zoom/selcue")) {
         ec->enableSelectionCue();
     }
-    if (prefs_get_int_attribute("tools.zoom", "gradientdrag", 0) != 0) {
+    if (prefs->getBool("/tools/zoom/gradientdrag")) {
         ec->enableGrDrag();
     }
 
@@ -117,16 +118,17 @@ static gint sp_zoom_context_item_handler(SPEventContext *event_context, SPItem *
 static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent *event)
 {
     SPDesktop *desktop = event_context->desktop;
-    tolerance = prefs_get_int_attribute_limited ("options.dragtolerance", "value", 0, 0, 100);
-    double const zoom_inc = prefs_get_double_attribute_limited("options.zoomincrement", "value", M_SQRT2, 1.01, 10);
+    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100);
+    double const zoom_inc = prefs->getDoubleLimited("/options/zoomincrement/value", M_SQRT2, 1.01, 10);
 
     gint ret = FALSE;
 
     switch (event->type) {
         case GDK_BUTTON_PRESS:
         {
-            NR::Point const button_w(event->button.x, event->button.y);
-            NR::Point const button_dt(desktop->w2d(button_w));
+            Geom::Point const button_w(event->button.x, event->button.y);
+            Geom::Point const button_dt(desktop->w2d(button_w));
             if (event->button.button == 1 && !event_context->space_panning) {
                 // save drag origin
                 xp = (gint) event->button.x;
@@ -162,8 +164,8 @@ static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent
                 // motion notify coordinates as given (no snapping back to origin)
                 within_tolerance = false;
 
-                NR::Point const motion_w(event->motion.x, event->motion.y);
-                NR::Point const motion_dt(desktop->w2d(motion_w));
+                Geom::Point const motion_w(event->motion.x, event->motion.y);
+                Geom::Point const motion_dt(desktop->w2d(motion_w));
                 Inkscape::Rubberband::get(desktop)->move(motion_dt);
                 gobble_motion_events(GDK_BUTTON1_MASK);
             }
@@ -171,8 +173,8 @@ static gint sp_zoom_context_root_handler(SPEventContext *event_context, GdkEvent
 
        case GDK_BUTTON_RELEASE:
         {
-            NR::Point const button_w(event->button.x, event->button.y);
-            NR::Point const button_dt(desktop->w2d(button_w));
+            Geom::Point const button_w(event->button.x, event->button.y);
+            Geom::Point const button_dt(desktop->w2d(button_w));
             if ( event->button.button == 1  && !event_context->space_panning) {
                 boost::optional<Geom::Rect> const b = Inkscape::Rubberband::get(desktop)->getRectangle();
                 if (b && !within_tolerance) {
index 0ce0f565fb37ecbdc2943c5e8d2e88b6e9b635c9..9bb178f10da13dd6535c00a0ee3f692cd9b5e3c9 100755 (executable)
@@ -25,9 +25,9 @@ use strict;
 # Table generated automatically using:
 #  zcat /usr/share/man/man7/groff_char.7.gz |groff -man -Tutf8| col -pb | grep '\\\['|
 #   perl -CI -nae 'my ($ch, $seq) = @F; if (ord($ch) >= 128) { printf(" 0x\%x, q{\%s},\n", ord($ch), $seq); }'
-# with č (0x10d) manually translated as ˇc (\[ah]c).  (Anyone have a better translation, e.g. using
+# with č (0x10d) manually translated as cˇ (c\[ah]).  (Anyone have a better translation, e.g. using
 # overprint?  \[vc] doesn't work, btw.)
-# Similarly, ć (0x107) has been manually translated as ´c (\[aa]c).
+# Similarly, ć (0x107) has been manually translated as c´ (c\[aa]), and ń (0x144) as n´ (n\[aa]).
 my %map = (
  0xd0, q{\[-D]},
  0xf0, q{\[Sd]},
@@ -94,8 +94,8 @@ my %map = (
  0xe3, q{\[~a]},
  0xf1, q{\[~n]},
  0xf5, q{\[~o]},
- 0x107, q{\[aa]c},  # Added manually; see above.
- 0x10d, q{\[ah]c},  # Added manually; see above.
+ 0x107, q{c\[aa]}, # Added manually; see above.
+ 0x10d, q{c\[ah]}, # Added manually; see above.
  0x160, q{\[vS]},
  0x161, q{\[vs]},
  0x17d, q{\[vZ]},
@@ -104,6 +104,7 @@ my %map = (
  0xe7, q{\[,c]},
  0x141, q{\[/L]},
  0x142, q{\[/l]},
+ 0x144, q{n\[aa]}, # Added manually; see above.
  0xd8, q{\[/O]},
  0xf8, q{\[/o]},
  0xc5, q{\[oA]},