From e1f6e2d90070eb6836dc90c06147883de877f608 Mon Sep 17 00:00:00 2001 From: "Arcadie M. Cracan" Date: Wed, 2 Dec 2009 23:26:56 +0200 Subject: [PATCH] Add forgotten libavoid files --- po/inkscape.pot | 22382 ++++++++++++++++++++++++++++++++++ src/libavoid/.dirstamp | 0 src/libavoid/assertions.h | 49 + src/libavoid/geomtypes.cpp | 548 + src/libavoid/makefile | 17 + src/libavoid/orthogonal.cpp | 2343 ++++ src/libavoid/orthogonal.h | 39 + src/libavoid/viscluster.cpp | 96 + src/libavoid/viscluster.h | 67 + src/libavoid/vpsc.cpp | 1300 ++ src/libavoid/vpsc.h | 255 + 11 files changed, 27096 insertions(+) create mode 100644 po/inkscape.pot create mode 100644 src/libavoid/.dirstamp create mode 100644 src/libavoid/assertions.h create mode 100644 src/libavoid/geomtypes.cpp create mode 100644 src/libavoid/makefile create mode 100644 src/libavoid/orthogonal.cpp create mode 100644 src/libavoid/orthogonal.h create mode 100644 src/libavoid/viscluster.cpp create mode 100644 src/libavoid/viscluster.h create mode 100644 src/libavoid/vpsc.cpp create mode 100644 src/libavoid/vpsc.h diff --git a/po/inkscape.pot b/po/inkscape.pot new file mode 100644 index 000000000..d48c15b38 --- /dev/null +++ b/po/inkscape.pot @@ -0,0 +1,22382 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2009-11-30 21:00+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: ../inkscape.desktop.in.h:1 +msgid "Create and edit Scalable Vector Graphics images" +msgstr "" + +#: ../inkscape.desktop.in.h:2 +msgid "Inkscape" +msgstr "" + +#: ../inkscape.desktop.in.h:3 +msgid "Inkscape Vector Graphics Editor" +msgstr "" + +#: ../inkscape.desktop.in.h:4 +msgid "Vector Graphics Editor" +msgstr "" + +#: ../share/filters/filters.svg.h:2 +msgid "Matte jelly" +msgstr "" + +#: ../share/filters/filters.svg.h:2 ../share/filters/filters.svg.h:10 +#: ../share/filters/filters.svg.h:107 ../share/filters/filters.svg.h:109 +#: ../share/filters/filters.svg.h:115 ../share/filters/filters.svg.h:116 +#: ../share/filters/filters.svg.h:118 ../share/filters/filters.svg.h:122 +#: ../share/filters/filters.svg.h:167 ../share/filters/filters.svg.h:206 +msgid "ABCs" +msgstr "" + +#: ../share/filters/filters.svg.h:2 +msgid "Bulging, matte jelly covering" +msgstr "" + +#: ../share/filters/filters.svg.h:3 +msgid "Smart jelly" +msgstr "" + +#: ../share/filters/filters.svg.h:3 ../share/filters/filters.svg.h:4 +#: ../share/filters/filters.svg.h:9 ../share/filters/filters.svg.h:14 +#: ../share/filters/filters.svg.h:15 ../share/filters/filters.svg.h:39 +#: ../share/filters/filters.svg.h:48 ../share/filters/filters.svg.h:49 +#: ../share/filters/filters.svg.h:50 ../share/filters/filters.svg.h:51 +#: ../share/filters/filters.svg.h:54 ../share/filters/filters.svg.h:56 +#: ../share/filters/filters.svg.h:69 ../share/filters/filters.svg.h:71 +#: ../share/filters/filters.svg.h:89 ../share/filters/filters.svg.h:101 +#: ../share/filters/filters.svg.h:102 ../share/filters/filters.svg.h:207 +#: ../share/filters/filters.svg.h:208 ../share/filters/filters.svg.h:209 +#: ../share/filters/filters.svg.h:210 ../share/filters/filters.svg.h:211 +msgid "Bevels" +msgstr "" + +#: ../share/filters/filters.svg.h:3 +msgid "Same as Matte jelly but with more controls" +msgstr "" + +#: ../share/filters/filters.svg.h:4 +msgid "Metal casting" +msgstr "" + +#: ../share/filters/filters.svg.h:4 +msgid "Smooth drop-like bevel with metallic finish" +msgstr "" + +#: ../share/filters/filters.svg.h:5 +msgid "Motion blur, horizontal" +msgstr "" + +#: ../share/filters/filters.svg.h:5 ../share/filters/filters.svg.h:6 +#: ../share/filters/filters.svg.h:7 ../share/filters/filters.svg.h:57 +#: ../share/filters/filters.svg.h:94 ../share/filters/filters.svg.h:108 +#: ../share/filters/filters.svg.h:111 ../share/filters/filters.svg.h:159 +msgid "Blurs" +msgstr "" + +#: ../share/filters/filters.svg.h:5 +msgid "" +"Blur as if the object flies horizontally; adjust Standard Deviation to vary " +"force" +msgstr "" + +#: ../share/filters/filters.svg.h:6 +msgid "Motion blur, vertical" +msgstr "" + +#: ../share/filters/filters.svg.h:6 +msgid "" +"Blur as if the object flies vertically; adjust Standard Deviation to vary " +"force" +msgstr "" + +#: ../share/filters/filters.svg.h:7 +msgid "Apparition" +msgstr "" + +#: ../share/filters/filters.svg.h:7 +msgid "Edges are partly feathered out" +msgstr "" + +#: ../share/filters/filters.svg.h:8 +msgid "Cutout" +msgstr "" + +#: ../share/filters/filters.svg.h:8 ../share/filters/filters.svg.h:40 +#: ../share/filters/filters.svg.h:85 ../share/filters/filters.svg.h:95 +#: ../share/filters/filters.svg.h:119 ../share/filters/filters.svg.h:169 +#: ../share/filters/filters.svg.h:170 ../share/filters/filters.svg.h:171 +#: ../share/filters/filters.svg.h:176 ../share/filters/filters.svg.h:214 +#: ../src/extension/internal/filter/drop-shadow.h:45 +#: ../src/extension/internal/filter/drop-shadow.h:100 +msgid "Shadows and Glows" +msgstr "" + +#: ../share/filters/filters.svg.h:8 +msgid "Drop shadow under the cut-out of the shape" +msgstr "" + +#: ../share/filters/filters.svg.h:9 +msgid "Jigsaw piece" +msgstr "" + +#: ../share/filters/filters.svg.h:9 +msgid "Low, sharp bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:10 +msgid "Roughen" +msgstr "" + +#: ../share/filters/filters.svg.h:10 +msgid "Small-scale roughening to edges and content" +msgstr "" + +#: ../share/filters/filters.svg.h:11 +msgid "Rubber stamp" +msgstr "" + +#: ../share/filters/filters.svg.h:11 ../share/filters/filters.svg.h:17 +#: ../share/filters/filters.svg.h:18 ../share/filters/filters.svg.h:19 +#: ../share/filters/filters.svg.h:21 ../share/filters/filters.svg.h:22 +#: ../share/filters/filters.svg.h:36 ../share/filters/filters.svg.h:37 +#: ../share/filters/filters.svg.h:38 ../share/filters/filters.svg.h:90 +#: ../share/filters/filters.svg.h:113 ../share/filters/filters.svg.h:114 +#: ../share/filters/filters.svg.h:117 ../share/filters/filters.svg.h:150 +#: ../share/filters/filters.svg.h:154 ../share/filters/filters.svg.h:183 +#: ../share/filters/filters.svg.h:217 +msgid "Overlays" +msgstr "" + +#: ../share/filters/filters.svg.h:11 +msgid "Random whiteouts inside" +msgstr "" + +#: ../share/filters/filters.svg.h:12 +msgid "Ink bleed" +msgstr "" + +#: ../share/filters/filters.svg.h:12 ../share/filters/filters.svg.h:13 +#: ../share/filters/filters.svg.h:41 ../share/filters/filters.svg.h:166 +msgid "Protrusions" +msgstr "" + +#: ../share/filters/filters.svg.h:12 +msgid "Inky splotches underneath the object" +msgstr "" + +#: ../share/filters/filters.svg.h:13 +msgid "Fire" +msgstr "" + +#: ../share/filters/filters.svg.h:13 +msgid "Edges of object are on fire" +msgstr "" + +#: ../share/filters/filters.svg.h:14 +msgid "Bloom" +msgstr "" + +#: ../share/filters/filters.svg.h:14 +msgid "Soft, cushion-like bevel with matte highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:15 +msgid "Ridged border" +msgstr "" + +#: ../share/filters/filters.svg.h:15 +msgid "Ridged border with inner bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:16 +msgid "Ripple" +msgstr "" + +#: ../share/filters/filters.svg.h:16 ../share/filters/filters.svg.h:43 +#: ../share/filters/filters.svg.h:106 ../share/filters/filters.svg.h:110 +#: ../share/filters/filters.svg.h:112 ../share/filters/filters.svg.h:128 +#: ../share/filters/filters.svg.h:173 ../share/filters/filters.svg.h:194 +msgid "Distort" +msgstr "" + +#: ../share/filters/filters.svg.h:16 +msgid "Horizontal rippling of edges" +msgstr "" + +#: ../share/filters/filters.svg.h:17 +msgid "Speckle" +msgstr "" + +#: ../share/filters/filters.svg.h:17 +msgid "Fill object with sparse translucent specks" +msgstr "" + +#: ../share/filters/filters.svg.h:18 +msgid "Oil slick" +msgstr "" + +#: ../share/filters/filters.svg.h:18 +msgid "Rainbow-colored semitransparent oily splotches" +msgstr "" + +#: ../share/filters/filters.svg.h:19 +msgid "Frost" +msgstr "" + +#: ../share/filters/filters.svg.h:19 +msgid "Flake-like white splotches" +msgstr "" + +#: ../share/filters/filters.svg.h:20 +msgid "Leopard fur" +msgstr "" + +#: ../share/filters/filters.svg.h:20 ../share/filters/filters.svg.h:58 +#: ../share/filters/filters.svg.h:59 ../share/filters/filters.svg.h:60 +#: ../share/filters/filters.svg.h:62 ../share/filters/filters.svg.h:67 +#: ../share/filters/filters.svg.h:78 ../share/filters/filters.svg.h:79 +#: ../share/filters/filters.svg.h:80 ../share/filters/filters.svg.h:82 +#: ../share/filters/filters.svg.h:136 ../share/filters/filters.svg.h:151 +#: ../share/filters/filters.svg.h:152 ../share/filters/filters.svg.h:153 +msgid "Materials" +msgstr "" + +#: ../share/filters/filters.svg.h:20 +msgid "Leopard spots (loses object's own color)" +msgstr "" + +#: ../share/filters/filters.svg.h:21 +msgid "Zebra" +msgstr "" + +#: ../share/filters/filters.svg.h:21 +msgid "Irregular vertical dark stripes (loses object's own color)" +msgstr "" + +#: ../share/filters/filters.svg.h:22 +msgid "Clouds" +msgstr "" + +#: ../share/filters/filters.svg.h:22 +msgid "Airy, fluffy, sparse white clouds" +msgstr "" + +#: ../share/filters/filters.svg.h:23 +#: ../src/extension/internal/bitmap/sharpen.cpp:37 +msgid "Sharpen" +msgstr "" + +#: ../share/filters/filters.svg.h:23 ../share/filters/filters.svg.h:24 +#: ../share/filters/filters.svg.h:25 ../share/filters/filters.svg.h:26 +#: ../share/filters/filters.svg.h:27 ../share/filters/filters.svg.h:28 +#: ../share/filters/filters.svg.h:29 ../share/filters/filters.svg.h:30 +#: ../share/filters/filters.svg.h:34 ../share/filters/filters.svg.h:100 +#: ../share/filters/filters.svg.h:160 ../share/filters/filters.svg.h:162 +#: ../share/filters/filters.svg.h:175 ../share/filters/filters.svg.h:190 +msgid "Image effects" +msgstr "" + +#: ../share/filters/filters.svg.h:23 +msgid "Sharpen edges and boundaries within the object, force=0.15" +msgstr "" + +#: ../share/filters/filters.svg.h:24 +msgid "Sharpen more" +msgstr "" + +#: ../share/filters/filters.svg.h:24 +msgid "Sharpen edges and boundaries within the object, force=0.3" +msgstr "" + +#: ../share/filters/filters.svg.h:25 +msgid "Oil painting" +msgstr "" + +#: ../share/filters/filters.svg.h:25 +msgid "Simulate oil painting style" +msgstr "" + +#: ../share/filters/filters.svg.h:26 +msgid "Edge detect" +msgstr "" + +#: ../share/filters/filters.svg.h:26 +msgid "Detect color edges in object" +msgstr "" + +#: ../share/filters/filters.svg.h:27 +msgid "Horizontal edge detect" +msgstr "" + +#: ../share/filters/filters.svg.h:27 +msgid "Detect horizontal color edges in object" +msgstr "" + +#: ../share/filters/filters.svg.h:28 +msgid "Vertical edge detect" +msgstr "" + +#: ../share/filters/filters.svg.h:28 +msgid "Detect vertical color edges in object" +msgstr "" + +#. Pencil +#: ../share/filters/filters.svg.h:29 +#: ../src/ui/dialog/inkscape-preferences.cpp:486 ../src/verbs.cpp:2516 +msgid "Pencil" +msgstr "" + +#: ../share/filters/filters.svg.h:29 +msgid "Detect color edges and retrace them in grayscale" +msgstr "" + +#: ../share/filters/filters.svg.h:30 +msgid "Blueprint" +msgstr "" + +#: ../share/filters/filters.svg.h:30 +msgid "Detect color edges and retrace them in blue" +msgstr "" + +#: ../share/filters/filters.svg.h:31 +#: ../share/extensions/color_desaturate.inx.h:2 +msgid "Desaturate" +msgstr "" + +#: ../share/filters/filters.svg.h:31 ../share/filters/filters.svg.h:32 +#: ../share/filters/filters.svg.h:33 ../share/filters/filters.svg.h:72 +#: ../share/filters/filters.svg.h:91 ../share/filters/filters.svg.h:98 +#: ../share/filters/filters.svg.h:99 ../share/filters/filters.svg.h:157 +#: ../share/filters/filters.svg.h:174 ../share/filters/filters.svg.h:196 +#: ../share/filters/filters.svg.h:205 ../share/filters/filters.svg.h:215 +#: ../share/filters/filters.svg.h:218 ../share/filters/filters.svg.h:219 +#: ../src/dialogs/clonetiler.cpp:2607 ../src/dialogs/clonetiler.cpp:2754 +#: ../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 +#: ../share/extensions/interp_att_g.inx.h:2 +msgid "Color" +msgstr "" + +#: ../share/filters/filters.svg.h:31 +msgid "Render in shades of gray by reducing saturation to zero" +msgstr "" + +#: ../share/filters/filters.svg.h:32 ../src/ui/widget/selected-style.cpp:228 +msgid "Invert" +msgstr "" + +#: ../share/filters/filters.svg.h:32 +msgid "Invert colors" +msgstr "" + +#: ../share/filters/filters.svg.h:33 +msgid "Sepia" +msgstr "" + +#: ../share/filters/filters.svg.h:33 +msgid "Render in warm sepia tones" +msgstr "" + +#: ../share/filters/filters.svg.h:34 +msgid "Age" +msgstr "" + +#: ../share/filters/filters.svg.h:34 +msgid "Imitate aged photograph" +msgstr "" + +#: ../share/filters/filters.svg.h:35 +msgid "Organic" +msgstr "" + +#: ../share/filters/filters.svg.h:35 ../share/filters/filters.svg.h:42 +#: ../share/filters/filters.svg.h:45 ../share/filters/filters.svg.h:61 +#: ../share/filters/filters.svg.h:63 ../share/filters/filters.svg.h:64 +#: ../share/filters/filters.svg.h:81 ../share/filters/filters.svg.h:83 +#: ../share/filters/filters.svg.h:84 ../share/filters/filters.svg.h:125 +#: ../share/filters/filters.svg.h:126 ../share/filters/filters.svg.h:127 +#: ../share/filters/filters.svg.h:130 ../share/filters/filters.svg.h:131 +#: ../share/filters/filters.svg.h:132 ../share/filters/filters.svg.h:133 +#: ../share/filters/filters.svg.h:134 ../share/filters/filters.svg.h:135 +#: ../share/filters/filters.svg.h:155 ../share/filters/filters.svg.h:172 +#: ../share/filters/filters.svg.h:181 ../share/filters/filters.svg.h:187 +#: ../share/filters/filters.svg.h:200 +msgid "Textures" +msgstr "" + +#: ../share/filters/filters.svg.h:35 +msgid "Bulging, knotty, slick 3D surface" +msgstr "" + +#: ../share/filters/filters.svg.h:36 +msgid "Barbed wire" +msgstr "" + +#: ../share/filters/filters.svg.h:36 +msgid "Gray bevelled wires with drop shadows" +msgstr "" + +#: ../share/filters/filters.svg.h:37 +msgid "Swiss cheese" +msgstr "" + +#: ../share/filters/filters.svg.h:37 +msgid "Random inner-bevel holes" +msgstr "" + +#: ../share/filters/filters.svg.h:38 +msgid "Blue cheese" +msgstr "" + +#: ../share/filters/filters.svg.h:38 +msgid "Marble-like bluish speckles" +msgstr "" + +#: ../share/filters/filters.svg.h:39 +msgid "Button" +msgstr "" + +#: ../share/filters/filters.svg.h:39 +msgid "Soft bevel, slightly depressed middle" +msgstr "" + +#: ../share/filters/filters.svg.h:40 +msgid "Inset" +msgstr "" + +#: ../share/filters/filters.svg.h:40 +msgid "Shadowy outer bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:41 +msgid "Dripping" +msgstr "" + +#: ../share/filters/filters.svg.h:41 +msgid "Random paint streaks downwards" +msgstr "" + +#: ../share/filters/filters.svg.h:42 +msgid "Jam spread" +msgstr "" + +#: ../share/filters/filters.svg.h:42 +msgid "Glossy clumpy jam spread" +msgstr "" + +#: ../share/filters/filters.svg.h:43 +msgid "Pixel smear" +msgstr "" + +#: ../share/filters/filters.svg.h:43 +msgid "Van Gogh painting effect for bitmaps" +msgstr "" + +#: ../share/filters/filters.svg.h:44 +msgid "HSL Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:44 ../share/filters/filters.svg.h:46 +#: ../share/filters/filters.svg.h:97 ../share/filters/filters.svg.h:120 +#: ../share/filters/filters.svg.h:121 ../share/filters/filters.svg.h:123 +#: ../share/filters/filters.svg.h:124 ../share/filters/filters.svg.h:161 +#: ../share/filters/filters.svg.h:163 ../share/filters/filters.svg.h:180 +#: ../share/filters/filters.svg.h:182 ../share/filters/filters.svg.h:184 +#: ../share/filters/filters.svg.h:185 ../share/filters/filters.svg.h:192 +#: ../share/filters/filters.svg.h:201 ../share/filters/filters.svg.h:202 +#: ../share/filters/filters.svg.h:203 ../share/filters/filters.svg.h:212 +#: ../share/filters/filters.svg.h:213 ../share/filters/filters.svg.h:216 +msgid "Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:44 +msgid "Highly flexible bump combining diffuse and specular lightings" +msgstr "" + +#: ../share/filters/filters.svg.h:45 +msgid "Cracked glass" +msgstr "" + +#: ../share/filters/filters.svg.h:45 +msgid "Under a cracked glass" +msgstr "" + +#: ../share/filters/filters.svg.h:46 +msgid "Bubbly Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:46 +msgid "Flexible bubbles effect with some displacement" +msgstr "" + +#: ../share/filters/filters.svg.h:47 +msgid "Glowing bubble" +msgstr "" + +#: ../share/filters/filters.svg.h:47 ../share/filters/filters.svg.h:52 +#: ../share/filters/filters.svg.h:53 ../share/filters/filters.svg.h:65 +#: ../share/filters/filters.svg.h:66 ../share/filters/filters.svg.h:68 +#: ../share/filters/filters.svg.h:70 +msgid "Ridges" +msgstr "" + +#: ../share/filters/filters.svg.h:47 +msgid "Bubble effect with refraction and glow" +msgstr "" + +#: ../share/filters/filters.svg.h:48 +msgid "Neon" +msgstr "" + +#: ../share/filters/filters.svg.h:48 +msgid "Neon light effect" +msgstr "" + +#: ../share/filters/filters.svg.h:49 +msgid "Molten metal" +msgstr "" + +#: ../share/filters/filters.svg.h:49 +msgid "Melting parts of object together, with a glossy bevel and a glow" +msgstr "" + +#: ../share/filters/filters.svg.h:50 +msgid "Pressed steel" +msgstr "" + +#: ../share/filters/filters.svg.h:50 +msgid "Pressed metal with a rolled edge" +msgstr "" + +#: ../share/filters/filters.svg.h:51 +msgid "Matte bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:51 +msgid "Soft, pastel-colored, blurry bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:52 +msgid "Thin Membrane" +msgstr "" + +#: ../share/filters/filters.svg.h:52 +msgid "Thin like a soap membrane" +msgstr "" + +#: ../share/filters/filters.svg.h:53 +msgid "Matte ridge" +msgstr "" + +#: ../share/filters/filters.svg.h:53 +msgid "Soft pastel ridge" +msgstr "" + +#: ../share/filters/filters.svg.h:54 +msgid "Glowing metal" +msgstr "" + +#: ../share/filters/filters.svg.h:54 +msgid "Glowing metal texture" +msgstr "" + +#: ../share/filters/filters.svg.h:55 +msgid "Leaves" +msgstr "" + +#: ../share/filters/filters.svg.h:55 ../share/filters/filters.svg.h:77 +#: ../share/filters/filters.svg.h:86 ../share/extensions/pathscatter.inx.h:10 +msgid "Scatter" +msgstr "" + +#: ../share/filters/filters.svg.h:55 +msgid "Leaves on the ground in Fall, or living foliage" +msgstr "" + +#: ../share/filters/filters.svg.h:56 +msgid "Translucent" +msgstr "" + +#: ../share/filters/filters.svg.h:56 +msgid "Illuminated translucent plastic or glass effect" +msgstr "" + +#: ../share/filters/filters.svg.h:57 +msgid "Cross-smooth" +msgstr "" + +#: ../share/filters/filters.svg.h:57 +msgid "Blur inner borders and intersections" +msgstr "" + +#: ../share/filters/filters.svg.h:58 +msgid "Iridescent beeswax" +msgstr "" + +#: ../share/filters/filters.svg.h:58 +msgid "Waxy texture which keeps its iridescence through color fill change" +msgstr "" + +#: ../share/filters/filters.svg.h:59 +msgid "Eroded metal" +msgstr "" + +#: ../share/filters/filters.svg.h:59 +msgid "Eroded metal texture with ridges, grooves, holes and bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:60 +msgid "Cracked Lava" +msgstr "" + +#: ../share/filters/filters.svg.h:60 +msgid "A volcanic texture, a little like leather" +msgstr "" + +#: ../share/filters/filters.svg.h:61 +msgid "Bark" +msgstr "" + +#: ../share/filters/filters.svg.h:61 +msgid "Bark texture, vertical; use with deep colors" +msgstr "" + +#: ../share/filters/filters.svg.h:62 +msgid "Lizard skin" +msgstr "" + +#: ../share/filters/filters.svg.h:62 +msgid "Stylized reptile skin texture" +msgstr "" + +#: ../share/filters/filters.svg.h:63 +msgid "Stone wall" +msgstr "" + +#: ../share/filters/filters.svg.h:63 +msgid "Stone wall texture to use with not too saturated colors" +msgstr "" + +#: ../share/filters/filters.svg.h:64 +msgid "Silk carpet" +msgstr "" + +#: ../share/filters/filters.svg.h:64 +msgid "Silk carpet texture, horizontal stripes" +msgstr "" + +#: ../share/filters/filters.svg.h:65 +msgid "Refractive gel A" +msgstr "" + +#: ../share/filters/filters.svg.h:65 +msgid "Gel effect with light refraction" +msgstr "" + +#: ../share/filters/filters.svg.h:66 +msgid "Refractive gel B" +msgstr "" + +#: ../share/filters/filters.svg.h:66 +msgid "Gel effect with strong refraction" +msgstr "" + +#: ../share/filters/filters.svg.h:67 +msgid "Metallized paint" +msgstr "" + +#: ../share/filters/filters.svg.h:67 +msgid "" +"Metallized effect with a soft lighting, slightly translucent at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:68 +msgid "Dragee" +msgstr "" + +#: ../share/filters/filters.svg.h:68 +msgid "Gel Ridge with a pearlescent look" +msgstr "" + +#: ../share/filters/filters.svg.h:69 +msgid "Raised border" +msgstr "" + +#: ../share/filters/filters.svg.h:69 +msgid "Strongly raised border around a flat surface" +msgstr "" + +#: ../share/filters/filters.svg.h:70 +msgid "Metallized ridge" +msgstr "" + +#: ../share/filters/filters.svg.h:70 +msgid "Gel Ridge metallized at its top" +msgstr "" + +#: ../share/filters/filters.svg.h:71 +msgid "Fat oil" +msgstr "" + +#: ../share/filters/filters.svg.h:71 +msgid "Fat oil with some adjustable turbulence" +msgstr "" + +#: ../share/filters/filters.svg.h:72 +#: ../src/extension/internal/bitmap/colorize.cpp:49 +msgid "Colorize" +msgstr "" + +#: ../share/filters/filters.svg.h:72 +msgid "Blend image or object with a flood color and set lightness and contrast" +msgstr "" + +#: ../share/filters/filters.svg.h:73 +msgid "Parallel hollow" +msgstr "" + +#: ../share/filters/filters.svg.h:73 ../share/filters/filters.svg.h:74 +#: ../share/filters/filters.svg.h:75 ../share/filters/filters.svg.h:76 +#: ../share/filters/filters.svg.h:87 ../share/filters/filters.svg.h:88 +#: ../share/filters/filters.svg.h:92 ../share/filters/filters.svg.h:93 +#: ../share/filters/filters.svg.h:96 ../share/filters/filters.svg.h:105 +#: ../share/filters/filters.svg.h:129 ../share/filters/filters.svg.h:168 +#: ../src/filter-enums.cpp:31 +msgid "Morphology" +msgstr "" + +#: ../share/filters/filters.svg.h:73 +msgid "A blurry hollow going parallel to the edge on the inside" +msgstr "" + +#: ../share/filters/filters.svg.h:74 +msgid "Hole" +msgstr "" + +#: ../share/filters/filters.svg.h:74 +msgid "Opens a smooth hole inside the shape" +msgstr "" + +#: ../share/filters/filters.svg.h:75 +msgid "Black hole" +msgstr "" + +#: ../share/filters/filters.svg.h:75 +msgid "Creates a black light inside and outside" +msgstr "" + +#: ../share/filters/filters.svg.h:76 +msgid "Smooth outline" +msgstr "" + +#: ../share/filters/filters.svg.h:76 +msgid "Outlining the lines and smoothing their crossings" +msgstr "" + +#: ../share/filters/filters.svg.h:77 +msgid "Cubes" +msgstr "" + +#: ../share/filters/filters.svg.h:77 +msgid "Scattered cubes; adjust the Morphology primitive to vary size" +msgstr "" + +#: ../share/filters/filters.svg.h:78 +msgid "Peel off" +msgstr "" + +#: ../share/filters/filters.svg.h:78 +msgid "Peeling painting on a wall" +msgstr "" + +#: ../share/filters/filters.svg.h:79 +msgid "Gold splatter" +msgstr "" + +#: ../share/filters/filters.svg.h:79 +msgid "Splattered cast metal, with golden highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:80 +msgid "Gold paste" +msgstr "" + +#: ../share/filters/filters.svg.h:80 +msgid "Fat pasted cast metal, with golden highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:81 +msgid "Crumpled plastic" +msgstr "" + +#: ../share/filters/filters.svg.h:81 +msgid "Crumpled matte plastic, with melted edge" +msgstr "" + +#: ../share/filters/filters.svg.h:82 +msgid "Enamel jewelry" +msgstr "" + +#: ../share/filters/filters.svg.h:82 +msgid "Slightly cracked enameled texture" +msgstr "" + +#: ../share/filters/filters.svg.h:83 +msgid "Rough paper" +msgstr "" + +#: ../share/filters/filters.svg.h:83 +msgid "Aquarelle paper effect which can be used for pictures as for objects" +msgstr "" + +#: ../share/filters/filters.svg.h:84 +msgid "Rough and glossy" +msgstr "" + +#: ../share/filters/filters.svg.h:84 +msgid "" +"Crumpled glossy paper effect which can be used for pictures as for objects" +msgstr "" + +#: ../share/filters/filters.svg.h:85 +msgid "In and Out" +msgstr "" + +#: ../share/filters/filters.svg.h:85 +msgid "Inner colorized shadow, outer black shadow" +msgstr "" + +#: ../share/filters/filters.svg.h:86 +msgid "Air spray" +msgstr "" + +#: ../share/filters/filters.svg.h:86 +msgid "Convert to small scattered particles with some thickness" +msgstr "" + +#: ../share/filters/filters.svg.h:87 +msgid "Warm inside" +msgstr "" + +#: ../share/filters/filters.svg.h:87 +msgid "Blurred colorized contour, filled inside" +msgstr "" + +#: ../share/filters/filters.svg.h:88 +msgid "Cool outside" +msgstr "" + +#: ../share/filters/filters.svg.h:88 +msgid "Blurred colorized contour, empty inside" +msgstr "" + +#: ../share/filters/filters.svg.h:89 +msgid "Electronic microscopy" +msgstr "" + +#: ../share/filters/filters.svg.h:89 +msgid "" +"Bevel, crude light, discoloration and glow like in electronic microscopy" +msgstr "" + +#: ../share/filters/filters.svg.h:90 +msgid "Tartan" +msgstr "" + +#: ../share/filters/filters.svg.h:90 +msgid "Checkered tartan pattern" +msgstr "" + +#: ../share/filters/filters.svg.h:91 +msgid "Invert hue" +msgstr "" + +#: ../share/filters/filters.svg.h:91 +msgid "Invert hue, or rotate it" +msgstr "" + +#: ../share/filters/filters.svg.h:92 +msgid "Inner outline" +msgstr "" + +#: ../share/filters/filters.svg.h:92 +msgid "Draws an outline around" +msgstr "" + +#: ../share/filters/filters.svg.h:93 +msgid "Outline, double" +msgstr "" + +#: ../share/filters/filters.svg.h:93 +msgid "Draws a smooth line inside colorized with the color it overlays" +msgstr "" + +#: ../share/filters/filters.svg.h:94 +msgid "Fancy blur" +msgstr "" + +#: ../share/filters/filters.svg.h:94 +msgid "Smooth colorized contour which allows desaturation and hue rotation" +msgstr "" + +#: ../share/filters/filters.svg.h:95 +msgid "Glow" +msgstr "" + +#: ../share/filters/filters.svg.h:95 +msgid "Glow of object's own color at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:96 +msgid "Outline" +msgstr "" + +#: ../share/filters/filters.svg.h:96 +msgid "Adds a glowing blur and removes the shape" +msgstr "" + +#: ../share/filters/filters.svg.h:97 +msgid "Color emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:97 +msgid "Classic or colorized emboss effect: grayscale, color and 3D relief" +msgstr "" + +#: ../share/filters/filters.svg.h:98 +#: ../src/extension/internal/bitmap/solarize.cpp:36 +msgid "Solarize" +msgstr "" + +#: ../share/filters/filters.svg.h:98 +msgid "Classical photographic solarization effect" +msgstr "" + +#: ../share/filters/filters.svg.h:99 +msgid "Moonarize" +msgstr "" + +#: ../share/filters/filters.svg.h:99 +msgid "" +"An effect between solarize and invert which often preserves sky and water " +"lights" +msgstr "" + +#: ../share/filters/filters.svg.h:100 +msgid "Soft focus lens" +msgstr "" + +#: ../share/filters/filters.svg.h:100 +msgid "Glowing image content without blurring it" +msgstr "" + +#: ../share/filters/filters.svg.h:101 +msgid "Stained glass" +msgstr "" + +#: ../share/filters/filters.svg.h:101 +msgid "Illuminated stained glass effect" +msgstr "" + +#: ../share/filters/filters.svg.h:102 +msgid "Dark glass" +msgstr "" + +#: ../share/filters/filters.svg.h:102 +msgid "Illuminated glass effect with light coming from beneath" +msgstr "" + +#: ../share/filters/filters.svg.h:103 +msgid "HSL Bumps alpha" +msgstr "" + +#: ../share/filters/filters.svg.h:103 ../share/filters/filters.svg.h:104 +#: ../share/filters/filters.svg.h:164 ../share/filters/filters.svg.h:165 +#: ../share/filters/filters.svg.h:177 ../share/filters/filters.svg.h:178 +#: ../share/filters/filters.svg.h:179 ../share/filters/filters.svg.h:186 +#: ../share/filters/filters.svg.h:188 ../share/filters/filters.svg.h:189 +#: ../share/filters/filters.svg.h:191 ../share/filters/filters.svg.h:193 +#: ../share/filters/filters.svg.h:204 +msgid "Image effects, transparent" +msgstr "" + +#: ../share/filters/filters.svg.h:103 +msgid "Same as HSL Bumps but with transparent highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:104 +msgid "Bubbly Bumps alpha" +msgstr "" + +#: ../share/filters/filters.svg.h:104 +msgid "Same as Bubbly Bumps but with transparent highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:105 +msgid "Smooth edges" +msgstr "" + +#: ../share/filters/filters.svg.h:105 +msgid "" +"Smooth the outside of shapes and pictures without altering their contents" +msgstr "" + +#: ../share/filters/filters.svg.h:106 ../share/filters/filters.svg.h:128 +msgid "Torn edges" +msgstr "" + +#: ../share/filters/filters.svg.h:106 ../share/filters/filters.svg.h:128 +msgid "" +"Displace the outside of shapes and pictures without altering their content" +msgstr "" + +#: ../share/filters/filters.svg.h:107 +msgid "Feather" +msgstr "" + +#: ../share/filters/filters.svg.h:107 +msgid "Blurred mask on the edge without altering the contents" +msgstr "" + +#: ../share/filters/filters.svg.h:108 +msgid "Blur content" +msgstr "" + +#: ../share/filters/filters.svg.h:108 +msgid "Blur the contents of objects, preserving the outline" +msgstr "" + +#: ../share/filters/filters.svg.h:109 +msgid "Specular light" +msgstr "" + +#: ../share/filters/filters.svg.h:109 ../share/filters/filters.svg.h:211 +msgid "Basic specular bevel to use for building textures" +msgstr "" + +#: ../share/filters/filters.svg.h:110 +msgid "Roughen inside" +msgstr "" + +#: ../share/filters/filters.svg.h:110 +msgid "Roughen all inside shapes" +msgstr "" + +#: ../share/filters/filters.svg.h:111 +msgid "Evanescent" +msgstr "" + +#: ../share/filters/filters.svg.h:111 +msgid "" +"Blur the contents of objects, preserving the outline and adding progressive " +"transparency at edges" +msgstr "" + +#: ../share/filters/filters.svg.h:112 +msgid "Chalk and sponge" +msgstr "" + +#: ../share/filters/filters.svg.h:112 +msgid "Low turbulence gives sponge look and high turbulence chalk" +msgstr "" + +#: ../share/filters/filters.svg.h:113 +msgid "People" +msgstr "" + +#: ../share/filters/filters.svg.h:113 +msgid "Colorized blotches, like a crowd of people" +msgstr "" + +#: ../share/filters/filters.svg.h:114 +msgid "Scotland" +msgstr "" + +#: ../share/filters/filters.svg.h:114 +msgid "Colorized mountain tops out of the fog" +msgstr "" + +#: ../share/filters/filters.svg.h:115 +msgid "Noise transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:115 +msgid "Basic noise transparency texture" +msgstr "" + +#: ../share/filters/filters.svg.h:116 +msgid "Noise fill" +msgstr "" + +#: ../share/filters/filters.svg.h:116 +msgid "Basic noise fill texture; adjust color in Flood" +msgstr "" + +#: ../share/filters/filters.svg.h:117 +msgid "Garden of Delights" +msgstr "" + +#: ../share/filters/filters.svg.h:117 +msgid "" +"Phantasmagorical turbulent wisps, like Hieronymus Bosch's Garden of Delights" +msgstr "" + +#: ../share/filters/filters.svg.h:118 +msgid "Diffuse light" +msgstr "" + +#: ../share/filters/filters.svg.h:118 +msgid "Basic diffuse bevel to use for building textures" +msgstr "" + +#: ../share/filters/filters.svg.h:119 +msgid "Cutout Glow" +msgstr "" + +#: ../share/filters/filters.svg.h:119 +msgid "In and out glow with a possible offset and colorizable flood" +msgstr "" + +#: ../share/filters/filters.svg.h:120 +msgid "HSL Bumps, matte" +msgstr "" + +#: ../share/filters/filters.svg.h:120 +msgid "" +"Same as HSL bumps but with a diffuse reflection instead of a specular one" +msgstr "" + +#: ../share/filters/filters.svg.h:121 +msgid "Dark Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:121 +msgid "Emboss effect : 3D relief where white is replaced by black" +msgstr "" + +#: ../share/filters/filters.svg.h:122 +msgid "Simple blur" +msgstr "" + +#: ../share/filters/filters.svg.h:122 +msgid "Simple Gaussian blur, same as the blur slider in Fill and Stroke dialog" +msgstr "" + +#: ../share/filters/filters.svg.h:123 +msgid "Bubbly Bumps, matte" +msgstr "" + +#: ../share/filters/filters.svg.h:123 +msgid "Same as Bubbly Bumps but with a diffuse light instead of a specular one" +msgstr "" + +#: ../share/filters/filters.svg.h:124 +#: ../src/extension/internal/bitmap/emboss.cpp:37 +msgid "Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:124 +msgid "" +"Emboss effect : Colors of the original images are preserved or modified by " +"Blend" +msgstr "" + +#: ../share/filters/filters.svg.h:125 +msgid "Blotting paper" +msgstr "" + +#: ../share/filters/filters.svg.h:125 +msgid "Inkblot on blotting paper" +msgstr "" + +#: ../share/filters/filters.svg.h:126 +msgid "Wax print" +msgstr "" + +#: ../share/filters/filters.svg.h:126 +msgid "Wax print on tissue texture" +msgstr "" + +#: ../share/filters/filters.svg.h:127 +msgid "Inkblot" +msgstr "" + +#: ../share/filters/filters.svg.h:127 +msgid "Inkblot on tissue or rough paper" +msgstr "" + +#: ../share/filters/filters.svg.h:129 +msgid "Color outline, in" +msgstr "" + +#: ../share/filters/filters.svg.h:129 +msgid "A colorizable inner outline with adjustable width and blur" +msgstr "" + +#: ../share/filters/filters.svg.h:130 +msgid "Liquid" +msgstr "" + +#: ../share/filters/filters.svg.h:130 +msgid "Colorizable filling with liquid transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:131 +msgid "Watercolor" +msgstr "" + +#: ../share/filters/filters.svg.h:131 +msgid "Cloudy watercolor effect" +msgstr "" + +#: ../share/filters/filters.svg.h:132 +msgid "Felt" +msgstr "" + +#: ../share/filters/filters.svg.h:132 +msgid "" +"Felt like texture with color turbulence and slightly darker at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:133 +msgid "Ink paint" +msgstr "" + +#: ../share/filters/filters.svg.h:133 +msgid "Ink paint on paper with some turbulent color shift" +msgstr "" + +#: ../share/filters/filters.svg.h:134 +msgid "Tinted rainbow" +msgstr "" + +#: ../share/filters/filters.svg.h:134 +msgid "Smooth rainbow colors melted along the edges and colorizable" +msgstr "" + +#: ../share/filters/filters.svg.h:135 +msgid "Melted rainbow" +msgstr "" + +#: ../share/filters/filters.svg.h:135 +msgid "Smooth rainbow colors slightly melted along the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:136 +msgid "Flex metal" +msgstr "" + +#: ../share/filters/filters.svg.h:136 +msgid "Bright, polished uneven metal casting, colorizable" +msgstr "" + +#: ../share/filters/filters.svg.h:137 +msgid "Comics draft" +msgstr "" + +#: ../share/filters/filters.svg.h:137 ../share/filters/filters.svg.h:138 +#: ../share/filters/filters.svg.h:139 ../share/filters/filters.svg.h:140 +#: ../share/filters/filters.svg.h:141 ../share/filters/filters.svg.h:142 +#: ../share/filters/filters.svg.h:143 ../share/filters/filters.svg.h:144 +#: ../share/filters/filters.svg.h:145 ../share/filters/filters.svg.h:146 +#: ../share/filters/filters.svg.h:147 ../share/filters/filters.svg.h:148 +#: ../share/filters/filters.svg.h:149 ../share/filters/filters.svg.h:156 +msgid "Non realistic 3D shaders" +msgstr "" + +#: ../share/filters/filters.svg.h:137 +msgid "Draft painted cartoon shading with a glassy look" +msgstr "" + +#: ../share/filters/filters.svg.h:138 +msgid "Comics fading" +msgstr "" + +#: ../share/filters/filters.svg.h:138 +msgid "Cartoon paint style with some fading at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:139 +msgid "Smooth shader" +msgstr "" + +#: ../share/filters/filters.svg.h:139 +msgid "Smooth shading with a graphite pencil grey" +msgstr "" + +#: ../share/filters/filters.svg.h:140 +msgid "Emboss shader" +msgstr "" + +#: ../share/filters/filters.svg.h:140 +msgid "Combination of smooth shading and embossing" +msgstr "" + +#: ../share/filters/filters.svg.h:141 +msgid "Smooth shader dark" +msgstr "" + +#: ../share/filters/filters.svg.h:141 +msgid "Dark version of non realistic smooth shading" +msgstr "" + +#: ../share/filters/filters.svg.h:142 +msgid "Comics" +msgstr "" + +#: ../share/filters/filters.svg.h:142 +msgid "Imitation of black and white cartoon shading" +msgstr "" + +#: ../share/filters/filters.svg.h:143 +msgid "Satin" +msgstr "" + +#: ../share/filters/filters.svg.h:143 +msgid "Silky close to mother of pearl shading" +msgstr "" + +#: ../share/filters/filters.svg.h:144 +msgid "Frosted glass" +msgstr "" + +#: ../share/filters/filters.svg.h:144 +msgid "Non realistic frosted glass imitation" +msgstr "" + +#: ../share/filters/filters.svg.h:145 +msgid "Smooth shader contour" +msgstr "" + +#: ../share/filters/filters.svg.h:145 +msgid "Contouring version of smooth shader" +msgstr "" + +#: ../share/filters/filters.svg.h:146 +msgid "Aluminium" +msgstr "" + +#: ../share/filters/filters.svg.h:146 +msgid "Brushed aluminium shader" +msgstr "" + +#: ../share/filters/filters.svg.h:147 +msgid "Comics fluid" +msgstr "" + +#: ../share/filters/filters.svg.h:147 +msgid "Fluid brushed cartoon drawing" +msgstr "" + +#: ../share/filters/filters.svg.h:148 +msgid "Chrome" +msgstr "" + +#: ../share/filters/filters.svg.h:148 +msgid "Non realistic chrome shader with strong speculars" +msgstr "" + +#: ../share/filters/filters.svg.h:149 +msgid "Chrome dark" +msgstr "" + +#: ../share/filters/filters.svg.h:149 +msgid "Dark version of chrome shading with a ground reflection simulation" +msgstr "" + +#: ../share/filters/filters.svg.h:150 +msgid "Wavy tartan" +msgstr "" + +#: ../share/filters/filters.svg.h:150 +msgid "Tartan pattern with a wavy displacement and bevel around the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:151 +msgid "3D marble" +msgstr "" + +#: ../share/filters/filters.svg.h:151 +msgid "3D warped marble texture" +msgstr "" + +#: ../share/filters/filters.svg.h:152 +msgid "3D wood" +msgstr "" + +#: ../share/filters/filters.svg.h:152 +msgid "3D warped, fibered wood texture" +msgstr "" + +#: ../share/filters/filters.svg.h:153 +msgid "3D mother of pearl" +msgstr "" + +#: ../share/filters/filters.svg.h:153 +msgid "3D warped, iridescent pearly shell texture" +msgstr "" + +#: ../share/filters/filters.svg.h:154 +msgid "Tiger fur" +msgstr "" + +#: ../share/filters/filters.svg.h:154 +msgid "Tiger fur pattern with folds and bevel around the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:155 +msgid "Shaken liquid" +msgstr "" + +#: ../share/filters/filters.svg.h:155 +msgid "Colorizable filling with flow inside like transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:156 +msgid "Comics cream" +msgstr "" + +#: ../share/filters/filters.svg.h:156 +msgid "Comics shader with creamy waves transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:157 +msgid "Black Light" +msgstr "" + +#: ../share/filters/filters.svg.h:157 +msgid "Light areas turn to black" +msgstr "" + +#: ../share/filters/filters.svg.h:158 +msgid "Light eraser" +msgstr "" + +#: ../share/filters/filters.svg.h:158 ../share/filters/filters.svg.h:195 +#: ../share/filters/filters.svg.h:197 ../share/filters/filters.svg.h:198 +#: ../share/filters/filters.svg.h:199 +msgid "Transparency utilities" +msgstr "" + +#: ../share/filters/filters.svg.h:158 +msgid "Make the lightest parts of the object progressively transparent" +msgstr "" + +#: ../share/filters/filters.svg.h:159 +msgid "Noisy blur" +msgstr "" + +#: ../share/filters/filters.svg.h:159 +msgid "Small-scale roughening and blurring to edges and content" +msgstr "" + +#: ../share/filters/filters.svg.h:160 +msgid "Film grain" +msgstr "" + +#: ../share/filters/filters.svg.h:160 +msgid "Adds a small scale graininess" +msgstr "" + +#: ../share/filters/filters.svg.h:161 +msgid "HSL Bumps, transparent" +msgstr "" + +#: ../share/filters/filters.svg.h:161 +msgid "Highly flexible specular bump with transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:162 +#: ../src/ui/dialog/align-and-distribute.cpp:920 +#: ../src/widgets/desktop-widget.cpp:1576 +msgid "Drawing" +msgstr "" + +#: ../share/filters/filters.svg.h:162 +msgid "" +"Give lead pencil or chromolithography or engraving or other effects to " +"images and material filled objects" +msgstr "" + +#: ../share/filters/filters.svg.h:163 +msgid "Velvet Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:163 +msgid "Gives Smooth Bumps velvet like" +msgstr "" + +#: ../share/filters/filters.svg.h:164 +msgid "Alpha draw" +msgstr "" + +#: ../share/filters/filters.svg.h:164 +msgid "Gives a transparent drawing effect to bitmaps and materials" +msgstr "" + +#: ../share/filters/filters.svg.h:165 +msgid "Alpha draw, color" +msgstr "" + +#: ../share/filters/filters.svg.h:165 +msgid "Gives a transparent color fill effect to bitmaps and materials" +msgstr "" + +#: ../share/filters/filters.svg.h:166 +msgid "Chewing gum" +msgstr "" + +#: ../share/filters/filters.svg.h:166 +msgid "" +"Creates colorizable blotches which smoothly flow over the edges of the lines " +"at their crossings" +msgstr "" + +#: ../share/filters/filters.svg.h:167 +msgid "Black outline" +msgstr "" + +#: ../share/filters/filters.svg.h:167 +msgid "Draws a black outline around" +msgstr "" + +#: ../share/filters/filters.svg.h:168 +msgid "Color outline" +msgstr "" + +#: ../share/filters/filters.svg.h:168 +msgid "Draws a colored outline around" +msgstr "" + +#: ../share/filters/filters.svg.h:169 +msgid "Inner Shadow" +msgstr "" + +#: ../share/filters/filters.svg.h:169 +msgid "Adds a colorizable drop shadow inside" +msgstr "" + +#: ../share/filters/filters.svg.h:170 +msgid "Dark and Glow" +msgstr "" + +#: ../share/filters/filters.svg.h:170 +msgid "Darkens the edge with an inner blur and adds a flexible glow" +msgstr "" + +#: ../share/filters/filters.svg.h:171 +msgid "Darken edges" +msgstr "" + +#: ../share/filters/filters.svg.h:171 +msgid "Darken the edges with an inner blur" +msgstr "" + +#: ../share/filters/filters.svg.h:172 +msgid "Warped rainbow" +msgstr "" + +#: ../share/filters/filters.svg.h:172 +msgid "Smooth rainbow colors warped along the edges and colorizable" +msgstr "" + +#: ../share/filters/filters.svg.h:173 +msgid "Rough and dilate" +msgstr "" + +#: ../share/filters/filters.svg.h:173 +msgid "Create a turbulent contour around" +msgstr "" + +#: ../share/filters/filters.svg.h:174 +msgid "Quadritone fantasy" +msgstr "" + +#: ../share/filters/filters.svg.h:174 +msgid "Replace hue by two colors" +msgstr "" + +#: ../share/filters/filters.svg.h:175 +msgid "Old postcard" +msgstr "" + +#: ../share/filters/filters.svg.h:175 +msgid "Slightly posterize and draw edges like on old printed postcards" +msgstr "" + +#: ../share/filters/filters.svg.h:176 +msgid "Fuzzy Glow" +msgstr "" + +#: ../share/filters/filters.svg.h:176 +msgid "Overlays a semi-transparent shifted copy to a blurred one" +msgstr "" + +#: ../share/filters/filters.svg.h:177 +msgid "Dots transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:177 +msgid "Gives a pointillist HSL sensitive transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:178 +msgid "Canvas transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:178 +msgid "Gives a canvas like HSL sensitive transparency." +msgstr "" + +#: ../share/filters/filters.svg.h:179 +msgid "Smear transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:179 +msgid "" +"Paint objects with a transparent turbulence which turns around color edges" +msgstr "" + +#: ../share/filters/filters.svg.h:180 +msgid "Thick paint" +msgstr "" + +#: ../share/filters/filters.svg.h:180 +msgid "Thick painting effect with turbulence" +msgstr "" + +#: ../share/filters/filters.svg.h:181 +msgid "Burst" +msgstr "" + +#: ../share/filters/filters.svg.h:181 +msgid "Burst balloon texture crumpled and with holes" +msgstr "" + +#: ../share/filters/filters.svg.h:182 +msgid "Embossed leather" +msgstr "" + +#: ../share/filters/filters.svg.h:182 +msgid "" +"Combine a HSL edges detection bump with a leathery or woody and colorizable " +"texture" +msgstr "" + +#: ../share/filters/filters.svg.h:183 +msgid "Carnaval" +msgstr "" + +#: ../share/filters/filters.svg.h:183 +msgid "White splotches evocating carnaval masks" +msgstr "" + +#: ../share/filters/filters.svg.h:184 +msgid "Plastify" +msgstr "" + +#: ../share/filters/filters.svg.h:184 +msgid "" +"HSL edges detection bump with a wavy reflective surface effect and variable " +"crumple" +msgstr "" + +#: ../share/filters/filters.svg.h:185 +msgid "Plaster" +msgstr "" + +#: ../share/filters/filters.svg.h:185 +msgid "" +"Combine a HSL edges detection bump with a matte and crumpled surface effect" +msgstr "" + +#: ../share/filters/filters.svg.h:186 +msgid "Rough transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:186 +msgid "Adds a turbulent transparency which displaces pixels at the same time" +msgstr "" + +#: ../share/filters/filters.svg.h:187 +msgid "Gouache" +msgstr "" + +#: ../share/filters/filters.svg.h:187 +msgid "Partly opaque water color effect with bleed" +msgstr "" + +#: ../share/filters/filters.svg.h:188 +msgid "Alpha engraving" +msgstr "" + +#: ../share/filters/filters.svg.h:188 +msgid "Gives a transparent engraving effect with rough line and filling" +msgstr "" + +#: ../share/filters/filters.svg.h:189 +msgid "Alpha draw, liquid" +msgstr "" + +#: ../share/filters/filters.svg.h:189 +msgid "Gives a transparent fluid drawing effect with rough line and filling" +msgstr "" + +#: ../share/filters/filters.svg.h:190 +msgid "Liquid drawing" +msgstr "" + +#: ../share/filters/filters.svg.h:190 +msgid "Gives a fluid and wavy expressionist drawing effect to images" +msgstr "" + +#: ../share/filters/filters.svg.h:191 +msgid "Marbled ink" +msgstr "" + +#: ../share/filters/filters.svg.h:191 +msgid "Marbled transparency effect which conforms to image detected edges" +msgstr "" + +#: ../share/filters/filters.svg.h:192 +msgid "Thick acrylic" +msgstr "" + +#: ../share/filters/filters.svg.h:192 +msgid "Thick acrylic paint texture with high texture depth" +msgstr "" + +#: ../share/filters/filters.svg.h:193 +msgid "Alpha engraving B" +msgstr "" + +#: ../share/filters/filters.svg.h:193 +msgid "" +"Gives a controllable roughness engraving effect to bitmaps and materials" +msgstr "" + +#: ../share/filters/filters.svg.h:194 +msgid "Lapping" +msgstr "" + +#: ../share/filters/filters.svg.h:194 +msgid "Something like a water noise" +msgstr "" + +#: ../share/filters/filters.svg.h:195 +msgid "Monochrome transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:195 +msgid "Convert to a colorizable transparent positive or negative" +msgstr "" + +#: ../share/filters/filters.svg.h:196 +msgid "Duotone" +msgstr "" + +#: ../share/filters/filters.svg.h:196 +msgid "Change colors to a duotone palette" +msgstr "" + +#: ../share/filters/filters.svg.h:197 +msgid "Light eraser, negative" +msgstr "" + +#: ../share/filters/filters.svg.h:197 +msgid "Like Light eraser but converts to negative" +msgstr "" + +#: ../share/filters/filters.svg.h:198 +msgid "Alpha repaint" +msgstr "" + +#: ../share/filters/filters.svg.h:198 +msgid "Repaint anything monochrome" +msgstr "" + +#: ../share/filters/filters.svg.h:199 +msgid "Saturation map" +msgstr "" + +#: ../share/filters/filters.svg.h:199 +msgid "" +"Creates an approximative semi-transparent and colorizable image of the " +"saturation levels" +msgstr "" + +#: ../share/filters/filters.svg.h:200 +msgid "Riddled" +msgstr "" + +#: ../share/filters/filters.svg.h:200 +msgid "Riddle the surface and add bump to images" +msgstr "" + +#: ../share/filters/filters.svg.h:201 +msgid "Wrinkled varnish" +msgstr "" + +#: ../share/filters/filters.svg.h:201 +msgid "Thick glossy and translucent paint texture with high depth" +msgstr "" + +#: ../share/filters/filters.svg.h:202 +msgid "Canvas Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:202 +msgid "Canvas texture with an HSL sensitive height map" +msgstr "" + +#: ../share/filters/filters.svg.h:203 +msgid "Canvas Bumps, matte" +msgstr "" + +#: ../share/filters/filters.svg.h:203 +msgid "Same as Canvas Bumps but with a diffuse light instead of a specular one" +msgstr "" + +#: ../share/filters/filters.svg.h:204 +msgid "Canvas Bumps alpha" +msgstr "" + +#: ../share/filters/filters.svg.h:204 +msgid "Same as Canvas Bumps but with transparent highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:205 +msgid "Lightness-Contrast" +msgstr "" + +#: ../share/filters/filters.svg.h:205 +msgid "Increase or decrease lightness and contrast" +msgstr "" + +#: ../share/filters/filters.svg.h:206 +msgid "Clean edges" +msgstr "" + +#: ../share/filters/filters.svg.h:206 +msgid "" +"Removes or decreases glows and jaggeries around objects edges after applying " +"some filters" +msgstr "" + +#: ../share/filters/filters.svg.h:207 +msgid "Bright metal" +msgstr "" + +#: ../share/filters/filters.svg.h:207 +msgid "Bright metallic effect for any color" +msgstr "" + +#: ../share/filters/filters.svg.h:208 +msgid "Deep colors plastic" +msgstr "" + +#: ../share/filters/filters.svg.h:208 +msgid "Transparent plastic with deep colors" +msgstr "" + +#: ../share/filters/filters.svg.h:209 +msgid "Melted jelly, matte" +msgstr "" + +#: ../share/filters/filters.svg.h:209 +msgid "Matte bevel with blurred edges" +msgstr "" + +#: ../share/filters/filters.svg.h:210 +msgid "Melted jelly" +msgstr "" + +#: ../share/filters/filters.svg.h:210 +msgid "Glossy bevel with blurred edges" +msgstr "" + +#: ../share/filters/filters.svg.h:211 +msgid "Combined lighting" +msgstr "" + +#: ../share/filters/filters.svg.h:212 +msgid "Tinfoil" +msgstr "" + +#: ../share/filters/filters.svg.h:212 +msgid "Metallic foil effect combining two lighting types and variable crumple" +msgstr "" + +#: ../share/filters/filters.svg.h:213 +msgid "Copper and chocolate" +msgstr "" + +#: ../share/filters/filters.svg.h:213 +msgid "" +"Specular bump which can be easily converted from metallic to molded plastic " +"effects" +msgstr "" + +#: ../share/filters/filters.svg.h:214 +msgid "Inner Glow" +msgstr "" + +#: ../share/filters/filters.svg.h:214 +msgid "Adds a colorizable glow inside" +msgstr "" + +#: ../share/filters/filters.svg.h:215 +msgid "Soft colors" +msgstr "" + +#: ../share/filters/filters.svg.h:215 +msgid "Adds a colorizable edges glow inside objects and pictures" +msgstr "" + +#: ../share/filters/filters.svg.h:216 +msgid "Relief print" +msgstr "" + +#: ../share/filters/filters.svg.h:216 +msgid "Bumps effect with a bevel, color flood and complex lighting" +msgstr "" + +#: ../share/filters/filters.svg.h:217 +msgid "Growing cells" +msgstr "" + +#: ../share/filters/filters.svg.h:217 +msgid "Random rounded living cells like fill" +msgstr "" + +#: ../share/filters/filters.svg.h:218 +msgid "Fluorescence" +msgstr "" + +#: ../share/filters/filters.svg.h:218 +msgid "Oversaturate colors which can be fluorescent in real world" +msgstr "" + +#: ../share/filters/filters.svg.h:219 +msgid "Tritone" +msgstr "" + +#: ../share/filters/filters.svg.h:219 +msgid "Create a tritone palette with hue selectable by flood" +msgstr "" + +#: ../share/patterns/patterns.svg.h:2 +msgid "Stripes 1:1" +msgstr "" + +#: ../share/patterns/patterns.svg.h:3 +msgid "Stripes 1:1 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:4 +msgid "Stripes 1:1.5" +msgstr "" + +#: ../share/patterns/patterns.svg.h:5 +msgid "Stripes 1:1.5 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:6 +msgid "Stripes 1:2" +msgstr "" + +#: ../share/patterns/patterns.svg.h:7 +msgid "Stripes 1:2 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:8 +msgid "Stripes 1:3" +msgstr "" + +#: ../share/patterns/patterns.svg.h:9 +msgid "Stripes 1:3 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:10 +msgid "Stripes 1:4" +msgstr "" + +#: ../share/patterns/patterns.svg.h:11 +msgid "Stripes 1:4 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:12 +msgid "Stripes 1:5" +msgstr "" + +#: ../share/patterns/patterns.svg.h:13 +msgid "Stripes 1:5 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:14 +msgid "Stripes 1:8" +msgstr "" + +#: ../share/patterns/patterns.svg.h:15 +msgid "Stripes 1:8 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:16 +msgid "Stripes 1:10" +msgstr "" + +#: ../share/patterns/patterns.svg.h:17 +msgid "Stripes 1:10 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:18 +msgid "Stripes 1:16" +msgstr "" + +#: ../share/patterns/patterns.svg.h:19 +msgid "Stripes 1:16 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:20 +msgid "Stripes 1:32" +msgstr "" + +#: ../share/patterns/patterns.svg.h:21 +msgid "Stripes 1:32 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:22 +msgid "Stripes 1:64" +msgstr "" + +#: ../share/patterns/patterns.svg.h:23 +msgid "Stripes 2:1" +msgstr "" + +#: ../share/patterns/patterns.svg.h:24 +msgid "Stripes 2:1 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:25 +msgid "Stripes 4:1" +msgstr "" + +#: ../share/patterns/patterns.svg.h:26 +msgid "Stripes 4:1 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:27 +msgid "Checkerboard" +msgstr "" + +#: ../share/patterns/patterns.svg.h:28 +msgid "Checkerboard white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:29 +msgid "Packed circles" +msgstr "" + +#: ../share/patterns/patterns.svg.h:30 +msgid "Polka dots, small" +msgstr "" + +#: ../share/patterns/patterns.svg.h:31 +msgid "Polka dots, small white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:32 +msgid "Polka dots, medium" +msgstr "" + +#: ../share/patterns/patterns.svg.h:33 +msgid "Polka dots, medium white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:34 +msgid "Polka dots, large" +msgstr "" + +#: ../share/patterns/patterns.svg.h:35 +msgid "Polka dots, large white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:36 +msgid "Wavy" +msgstr "" + +#: ../share/patterns/patterns.svg.h:37 +msgid "Wavy white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:38 +msgid "Camouflage" +msgstr "" + +#: ../share/patterns/patterns.svg.h:39 +msgid "Ermine" +msgstr "" + +#: ../share/patterns/patterns.svg.h:40 +msgid "Sand (bitmap)" +msgstr "" + +#: ../share/patterns/patterns.svg.h:41 +msgid "Cloth (bitmap)" +msgstr "" + +#: ../share/patterns/patterns.svg.h:42 +msgid "Old paint (bitmap)" +msgstr "" + +#: ../src/arc-context.cpp:319 +msgid "" +"Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" +msgstr "" + +#: ../src/arc-context.cpp:320 ../src/rect-context.cpp:362 +msgid "Shift: draw around the starting point" +msgstr "" + +#: ../src/arc-context.cpp:471 +#, c-format +msgid "" +"Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " +"to draw around the starting point" +msgstr "" + +#: ../src/arc-context.cpp:473 +#, c-format +msgid "" +"Ellipse: %s × %s; with Ctrl to make square or integer-" +"ratio ellipse; with Shift to draw around the starting point" +msgstr "" + +#: ../src/arc-context.cpp:499 +msgid "Create ellipse" +msgstr "" + +#: ../src/box3d-context.cpp:429 ../src/box3d-context.cpp:436 +#: ../src/box3d-context.cpp:443 ../src/box3d-context.cpp:450 +#: ../src/box3d-context.cpp:457 ../src/box3d-context.cpp:464 +msgid "Change perspective (angle of PLs)" +msgstr "" + +#. status text +#: ../src/box3d-context.cpp:622 +msgid "3D Box; with Shift to extrude along the Z axis" +msgstr "" + +#: ../src/box3d-context.cpp:650 +msgid "Create 3D box" +msgstr "" + +#: ../src/box3d.cpp:315 +msgid "3D Box" +msgstr "" + +#: ../src/connector-context.cpp:526 +msgid "Creating new connector" +msgstr "" + +#: ../src/connector-context.cpp:775 +msgid "Connector endpoint drag cancelled." +msgstr "" + +#: ../src/connector-context.cpp:824 +msgid "Reroute connector" +msgstr "" + +#. Flush pending updates +#: ../src/connector-context.cpp:988 +msgid "Create connector" +msgstr "" + +#: ../src/connector-context.cpp:1012 +msgid "Finishing connector" +msgstr "" + +#: ../src/connector-context.cpp:1154 +msgid "Connection point: click or drag to create a new connector" +msgstr "" + +#: ../src/connector-context.cpp:1227 +msgid "Connector endpoint: drag to reroute or connect to new shapes" +msgstr "" + +#: ../src/connector-context.cpp:1339 +msgid "Select at least one non-connector object." +msgstr "" + +#: ../src/connector-context.cpp:1344 ../src/widgets/toolbox.cpp:6997 +msgid "Make connectors avoid selected objects" +msgstr "" + +#: ../src/connector-context.cpp:1345 ../src/widgets/toolbox.cpp:7007 +msgid "Make connectors ignore selected objects" +msgstr "" + +#: ../src/context-fns.cpp:36 ../src/context-fns.cpp:65 +msgid "Current layer is hidden. Unhide it to be able to draw on it." +msgstr "" + +#: ../src/context-fns.cpp:42 ../src/context-fns.cpp:71 +msgid "Current layer is locked. Unlock it to be able to draw on it." +msgstr "" + +#: ../src/desktop.cpp:830 +msgid "No previous zoom." +msgstr "" + +#: ../src/desktop.cpp:855 +msgid "No next zoom." +msgstr "" + +#: ../src/desktop-events.cpp:187 +msgid "Create guide" +msgstr "" + +#: ../src/desktop-events.cpp:391 +msgid "Move guide" +msgstr "" + +#: ../src/desktop-events.cpp:398 ../src/desktop-events.cpp:445 +#: ../src/ui/dialog/guides.cpp:125 +msgid "Delete guide" +msgstr "" + +#: ../src/desktop-events.cpp:425 +#, c-format +msgid "Guideline: %s" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:155 +msgid "Nothing selected." +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:161 +msgid "More than one object selected." +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:168 +#, c-format +msgid "Object has %d tiled clones." +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:173 +msgid "Object has no tiled clones." +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:976 +msgid "Select one object whose tiled clones to unclump." +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:998 +msgid "Unclump tiled clones" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1028 +msgid "Select one object whose tiled clones to remove." +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1051 +msgid "Delete tiled clones" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1097 ../src/selection-chemistry.cpp:1883 +msgid "Select an object to clone." +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1103 +msgid "" +"If you want to clone several objects, group them and clone the " +"group." +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1112 +msgid "Creating tiled clones..." +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1515 +msgid "Create tiled clones" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1706 +msgid "Per row:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1719 +msgid "Per column:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1727 +msgid "Randomize:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1888 +msgid "_Symmetry" +msgstr "" + +#. 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:1896 +msgid "Select one of the 17 symmetry groups for the tiling" +msgstr "" + +#. TRANSLATORS: "translation" means "shift" / "displacement" here. +#: ../src/dialogs/clonetiler.cpp:1907 +msgid "P1: simple translation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1908 +msgid "P2: 180° rotation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1909 +msgid "PM: reflection" +msgstr "" + +#. TRANSLATORS: "glide reflection" is a reflection and a translation combined. +#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html +#: ../src/dialogs/clonetiler.cpp:1912 +msgid "PG: glide reflection" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1913 +msgid "CM: reflection + glide reflection" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1914 +msgid "PMM: reflection + reflection" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1915 +msgid "PMG: reflection + 180° rotation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1916 +msgid "PGG: glide reflection + 180° rotation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1917 +msgid "CMM: reflection + reflection + 180° rotation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1918 +msgid "P4: 90° rotation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1919 +msgid "P4M: 90° rotation + 45° reflection" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1920 +msgid "P4G: 90° rotation + 90° reflection" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1921 +msgid "P3: 120° rotation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1922 +msgid "P31M: reflection + 120° rotation, dense" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1923 +msgid "P3M1: reflection + 120° rotation, sparse" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1924 +msgid "P6: 60° rotation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1925 +msgid "P6M: reflection + 60° rotation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1953 +msgid "S_hift" +msgstr "" + +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount +#: ../src/dialogs/clonetiler.cpp:1963 +#, no-c-format +msgid "Shift X:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1971 +#, no-c-format +msgid "Horizontal shift per row (in % of tile width)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1979 +#, no-c-format +msgid "Horizontal shift per column (in % of tile width)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1986 +msgid "Randomize the horizontal shift by this percentage" +msgstr "" + +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount +#: ../src/dialogs/clonetiler.cpp:1996 +#, no-c-format +msgid "Shift Y:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2004 +#, no-c-format +msgid "Vertical shift per row (in % of tile height)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2012 +#, no-c-format +msgid "Vertical shift per column (in % of tile height)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2019 +msgid "Randomize the vertical shift by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2027 ../src/dialogs/clonetiler.cpp:2175 +msgid "Exponent:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2034 +msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2041 +msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" +msgstr "" + +#. TRANSLATORS: "Alternate" is a verb here +#: ../src/dialogs/clonetiler.cpp:2049 ../src/dialogs/clonetiler.cpp:2219 +#: ../src/dialogs/clonetiler.cpp:2296 ../src/dialogs/clonetiler.cpp:2372 +#: ../src/dialogs/clonetiler.cpp:2421 ../src/dialogs/clonetiler.cpp:2552 +msgid "Alternate:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2055 +msgid "Alternate the sign of shifts for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2060 +msgid "Alternate the sign of shifts for each column" +msgstr "" + +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/dialogs/clonetiler.cpp:2067 ../src/dialogs/clonetiler.cpp:2237 +#: ../src/dialogs/clonetiler.cpp:2314 +msgid "Cumulate:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2073 +msgid "Cumulate the shifts for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2078 +msgid "Cumulate the shifts for each column" +msgstr "" + +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/dialogs/clonetiler.cpp:2085 +msgid "Exclude tile:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2091 +msgid "Exclude tile height in shift" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2096 +msgid "Exclude tile width in shift" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2105 +msgid "Sc_ale" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2113 +msgid "Scale X:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2121 +#, no-c-format +msgid "Horizontal scale per row (in % of tile width)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2129 +#, no-c-format +msgid "Horizontal scale per column (in % of tile width)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2136 +msgid "Randomize the horizontal scale by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2144 +msgid "Scale Y:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2152 +#, no-c-format +msgid "Vertical scale per row (in % of tile height)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2160 +#, no-c-format +msgid "Vertical scale per column (in % of tile height)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2167 +msgid "Randomize the vertical scale by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2182 +msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2189 +msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2197 +msgid "Base:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2204 ../src/dialogs/clonetiler.cpp:2211 +msgid "" +"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2225 +msgid "Alternate the sign of scales for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2230 +msgid "Alternate the sign of scales for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2243 +msgid "Cumulate the scales for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2248 +msgid "Cumulate the scales for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2257 +msgid "_Rotation" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2265 +msgid "Angle:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2273 +#, no-c-format +msgid "Rotate tiles by this angle for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2281 +#, no-c-format +msgid "Rotate tiles by this angle for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2288 +msgid "Randomize the rotation angle by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2302 +msgid "Alternate the rotation direction for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2307 +msgid "Alternate the rotation direction for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2320 +msgid "Cumulate the rotation for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2325 +msgid "Cumulate the rotation for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2334 +msgid "_Blur & opacity" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2343 +msgid "Blur:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2350 +msgid "Blur tiles by this percentage for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2357 +msgid "Blur tiles by this percentage for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2364 +msgid "Randomize the tile blur by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2378 +msgid "Alternate the sign of blur change for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2383 +msgid "Alternate the sign of blur change for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2392 +msgid "Fade out:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2399 +msgid "Decrease tile opacity by this percentage for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2406 +msgid "Decrease tile opacity by this percentage for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2413 +msgid "Randomize the tile opacity by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2427 +msgid "Alternate the sign of opacity change for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2432 +msgid "Alternate the sign of opacity change for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2440 +msgid "Co_lor" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2445 +msgid "Initial color: " +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2449 +msgid "Initial color of tiled clones" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2449 +msgid "" +"Initial color for clones (works only if the original has unset fill or " +"stroke)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2464 +msgid "H:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2471 +msgid "Change the tile hue by this percentage for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2478 +msgid "Change the tile hue by this percentage for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2485 +msgid "Randomize the tile hue by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2494 +msgid "S:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2501 +msgid "Change the color saturation by this percentage for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2508 +msgid "Change the color saturation by this percentage for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2515 +msgid "Randomize the color saturation by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2523 +msgid "L:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2530 +msgid "Change the color lightness by this percentage for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2537 +msgid "Change the color lightness by this percentage for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2544 +msgid "Randomize the color lightness by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2558 +msgid "Alternate the sign of color changes for each row" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2563 +msgid "Alternate the sign of color changes for each column" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2571 +msgid "_Trace" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2578 +msgid "Trace the drawing under the tiles" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2582 +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:2596 +msgid "1. Pick from the drawing:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2608 +msgid "Pick the visible color and opacity" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2615 ../src/dialogs/clonetiler.cpp:2764 +#: ../src/extension/internal/bitmap/opacity.cpp:37 +#: ../src/extension/internal/bitmap/opacity.cpp:39 +#: ../src/widgets/toolbox.cpp:4326 ../share/extensions/interp_att_g.inx.h:12 +msgid "Opacity" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2616 +msgid "Pick the total accumulated opacity" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2623 +msgid "R" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2624 +msgid "Pick the Red component of the color" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2631 +msgid "G" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2632 +msgid "Pick the Green component of the color" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2639 +msgid "B" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2640 +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:2649 +msgid "clonetiler|H" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2650 +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:2659 +msgid "clonetiler|S" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2660 +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:2669 +msgid "clonetiler|L" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2670 +msgid "Pick the lightness of the color" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2680 +msgid "2. Tweak the picked value:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2690 +msgid "Gamma-correct:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2695 +msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2702 +msgid "Randomize:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2707 +msgid "Randomize the picked value by this percentage" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2714 +msgid "Invert:" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2718 +msgid "Invert the picked value" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2724 +msgid "3. Apply the value to the clones':" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2734 +msgid "Presence" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2737 +msgid "" +"Each clone is created with the probability determined by the picked value in " +"that point" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2744 +msgid "Size" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2747 +msgid "Each clone's size is determined by the picked value in that point" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2757 +msgid "" +"Each clone is painted by the picked color (the original must have unset fill " +"or stroke)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2767 +msgid "Each clone's opacity is determined by the picked value in that point" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2794 +msgid "How many rows in the tiling" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2814 +msgid "How many columns in the tiling" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2844 +msgid "Width of the rectangle to be filled" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2869 +msgid "Height of the rectangle to be filled" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2884 +msgid "Rows, columns: " +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2885 +msgid "Create the specified number of rows and columns" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2894 +msgid "Width, height: " +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2895 +msgid "Fill the specified width and height with the tiling" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2911 +msgid "Use saved size and position of the tile" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2914 +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:2938 +msgid " _Create " +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2940 +msgid "Create and tile the clones of the selection" +msgstr "" + +#. TRANSLATORS: if a group of objects are "clumped" together, then they +#. are unevenly spread in the given amount of space - as shown in the +#. diagrams on the left in the following screenshot: +#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png +#. So unclumping is the process of spreading a number of objects out more evenly. +#: ../src/dialogs/clonetiler.cpp:2955 +msgid " _Unclump " +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2956 +msgid "Spread out clones to reduce clumping; can be applied repeatedly" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2962 +msgid " Re_move " +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2963 +msgid "Remove existing tiled clones of the selected object (siblings only)" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:2979 +msgid " R_eset " +msgstr "" + +#. TRANSLATORS: "change" is a noun here +#: ../src/dialogs/clonetiler.cpp:2981 +msgid "" +"Reset all shifts, scales, rotates, opacity and color changes in the dialog " +"to zero" +msgstr "" + +#: ../src/dialogs/export.cpp:146 ../src/verbs.cpp:2623 +msgid "_Page" +msgstr "" + +#: ../src/dialogs/export.cpp:146 ../src/verbs.cpp:2627 +msgid "_Drawing" +msgstr "" + +#: ../src/dialogs/export.cpp:146 ../src/verbs.cpp:2629 +msgid "_Selection" +msgstr "" + +#: ../src/dialogs/export.cpp:146 +msgid "_Custom" +msgstr "" + +#: ../src/dialogs/export.cpp:271 +msgid "Export area" +msgstr "" + +#: ../src/dialogs/export.cpp:285 +msgid "Units:" +msgstr "" + +#: ../src/dialogs/export.cpp:313 +msgid "_x0:" +msgstr "" + +#: ../src/dialogs/export.cpp:318 +msgid "x_1:" +msgstr "" + +#: ../src/dialogs/export.cpp:323 +msgid "Wid_th:" +msgstr "" + +#: ../src/dialogs/export.cpp:329 +msgid "_y0:" +msgstr "" + +#: ../src/dialogs/export.cpp:334 +msgid "y_1:" +msgstr "" + +#: ../src/dialogs/export.cpp:339 +msgid "Hei_ght:" +msgstr "" + +#: ../src/dialogs/export.cpp:471 +msgid "Bitmap size" +msgstr "" + +#: ../src/dialogs/export.cpp:484 ../src/ui/widget/page-sizer.cpp:230 +msgid "_Width:" +msgstr "" + +#: ../src/dialogs/export.cpp:484 ../src/dialogs/export.cpp:498 +msgid "pixels at" +msgstr "" + +#: ../src/dialogs/export.cpp:492 +msgid "dp_i" +msgstr "" + +#: ../src/dialogs/export.cpp:498 ../src/ui/widget/page-sizer.cpp:231 +msgid "_Height:" +msgstr "" + +#: ../src/dialogs/export.cpp:509 ../src/ui/dialog/inkscape-preferences.cpp:768 +#: ../src/ui/dialog/inkscape-preferences.cpp:1180 +msgid "dpi" +msgstr "" + +#. true = has mnemonic +#: ../src/dialogs/export.cpp:520 +msgid "_Filename" +msgstr "" + +#: ../src/dialogs/export.cpp:590 +msgid "_Browse..." +msgstr "" + +#: ../src/dialogs/export.cpp:619 +msgid "Batch export all selected objects" +msgstr "" + +#: ../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 "" + +#: ../src/dialogs/export.cpp:631 +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 "" + +#: ../src/dialogs/export.cpp:656 +msgid "Export the bitmap file with these settings" +msgstr "" + +#: ../src/dialogs/export.cpp:682 +#, c-format +msgid "Batch export %d selected object" +msgid_plural "Batch export %d selected objects" +msgstr[0] "" +msgstr[1] "" + +#: ../src/dialogs/export.cpp:1013 +msgid "Export in progress" +msgstr "" + +#: ../src/dialogs/export.cpp:1101 +#, c-format +msgid "Exporting %d files" +msgstr "" + +#: ../src/dialogs/export.cpp:1145 ../src/dialogs/export.cpp:1222 +#, c-format +msgid "Could not export to filename %s.\n" +msgstr "" + +#: ../src/dialogs/export.cpp:1175 +msgid "You have to enter a filename" +msgstr "" + +#: ../src/dialogs/export.cpp:1180 +msgid "The chosen area to be exported is invalid" +msgstr "" + +#: ../src/dialogs/export.cpp:1195 +#, c-format +msgid "Directory %s does not exist or is not a directory.\n" +msgstr "" + +#: ../src/dialogs/export.cpp:1207 +#, c-format +msgid "Exporting %s (%lu x %lu)" +msgstr "" + +#: ../src/dialogs/export.cpp:1331 ../src/dialogs/export.cpp:1366 +msgid "Select a filename for exporting" +msgstr "" + +#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed +#: ../src/dialogs/find.cpp:362 ../src/ui/dialog/find.cpp:437 +#, c-format +msgid "%d object found (out of %d), %s match." +msgid_plural "%d objects found (out of %d), %s match." +msgstr[0] "" +msgstr[1] "" + +#: ../src/dialogs/find.cpp:365 ../src/ui/dialog/find.cpp:440 +msgid "exact" +msgstr "" + +#: ../src/dialogs/find.cpp:365 ../src/ui/dialog/find.cpp:440 +msgid "partial" +msgstr "" + +#: ../src/dialogs/find.cpp:372 ../src/ui/dialog/find.cpp:447 +msgid "No objects found" +msgstr "" + +#: ../src/dialogs/find.cpp:530 +msgid "T_ype: " +msgstr "" + +#: ../src/dialogs/find.cpp:537 ../src/ui/dialog/find.cpp:69 +msgid "Search in all object types" +msgstr "" + +#: ../src/dialogs/find.cpp:537 ../src/ui/dialog/find.cpp:69 +msgid "All types" +msgstr "" + +#: ../src/dialogs/find.cpp:548 ../src/ui/dialog/find.cpp:70 +msgid "Search all shapes" +msgstr "" + +#: ../src/dialogs/find.cpp:548 ../src/ui/dialog/find.cpp:70 +msgid "All shapes" +msgstr "" + +#: ../src/dialogs/find.cpp:565 ../src/ui/dialog/find.cpp:71 +msgid "Search rectangles" +msgstr "" + +#: ../src/dialogs/find.cpp:565 ../src/ui/dialog/find.cpp:71 +msgid "Rectangles" +msgstr "" + +#: ../src/dialogs/find.cpp:570 ../src/ui/dialog/find.cpp:72 +msgid "Search ellipses, arcs, circles" +msgstr "" + +#: ../src/dialogs/find.cpp:570 ../src/ui/dialog/find.cpp:72 +msgid "Ellipses" +msgstr "" + +#: ../src/dialogs/find.cpp:575 ../src/ui/dialog/find.cpp:73 +msgid "Search stars and polygons" +msgstr "" + +#: ../src/dialogs/find.cpp:575 ../src/ui/dialog/find.cpp:73 +msgid "Stars" +msgstr "" + +#: ../src/dialogs/find.cpp:580 ../src/ui/dialog/find.cpp:74 +msgid "Search spirals" +msgstr "" + +#: ../src/dialogs/find.cpp:580 ../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:593 ../src/ui/dialog/find.cpp:75 +msgid "Search paths, lines, polylines" +msgstr "" + +#: ../src/dialogs/find.cpp:593 ../src/ui/dialog/find.cpp:75 +#: ../src/widgets/toolbox.cpp:2091 +msgid "Paths" +msgstr "" + +#: ../src/dialogs/find.cpp:598 ../src/ui/dialog/find.cpp:76 +msgid "Search text objects" +msgstr "" + +#: ../src/dialogs/find.cpp:598 ../src/ui/dialog/find.cpp:76 +msgid "Texts" +msgstr "" + +#: ../src/dialogs/find.cpp:603 ../src/ui/dialog/find.cpp:77 +msgid "Search groups" +msgstr "" + +#: ../src/dialogs/find.cpp:603 ../src/ui/dialog/find.cpp:77 +msgid "Groups" +msgstr "" + +#: ../src/dialogs/find.cpp:608 ../src/ui/dialog/find.cpp:82 +msgid "Search clones" +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 +#. "Clones" is a noun indicating type of object to find +#: ../src/dialogs/find.cpp:612 ../src/ui/dialog/find.cpp:82 +msgid "find|Clones" +msgstr "" + +#: ../src/dialogs/find.cpp:617 ../src/ui/dialog/find.cpp:83 +msgid "Search images" +msgstr "" + +#: ../src/dialogs/find.cpp:617 ../src/ui/dialog/find.cpp:83 +#: ../share/extensions/embedimage.inx.h:3 +#: ../share/extensions/extractimage.inx.h:2 +msgid "Images" +msgstr "" + +#: ../src/dialogs/find.cpp:622 ../src/ui/dialog/find.cpp:84 +msgid "Search offset objects" +msgstr "" + +#: ../src/dialogs/find.cpp:622 ../src/ui/dialog/find.cpp:84 +msgid "Offsets" +msgstr "" + +#: ../src/dialogs/find.cpp:687 ../src/ui/dialog/find.cpp:60 +msgid "_Text: " +msgstr "" + +#: ../src/dialogs/find.cpp:687 ../src/ui/dialog/find.cpp:60 +msgid "Find objects by their text content (exact or partial match)" +msgstr "" + +#: ../src/dialogs/find.cpp:688 ../src/ui/dialog/find.cpp:61 +msgid "_ID: " +msgstr "" + +#: ../src/dialogs/find.cpp:688 ../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:689 ../src/ui/dialog/find.cpp:62 +msgid "_Style: " +msgstr "" + +#: ../src/dialogs/find.cpp:689 ../src/ui/dialog/find.cpp:62 +msgid "" +"Find objects by the value of the style attribute (exact or partial match)" +msgstr "" + +#: ../src/dialogs/find.cpp:690 ../src/ui/dialog/find.cpp:63 +msgid "_Attribute: " +msgstr "" + +#: ../src/dialogs/find.cpp:690 ../src/ui/dialog/find.cpp:63 +msgid "Find objects by the name of an attribute (exact or partial match)" +msgstr "" + +#: ../src/dialogs/find.cpp:704 ../src/ui/dialog/find.cpp:64 +msgid "Search in s_election" +msgstr "" + +#: ../src/dialogs/find.cpp:708 ../src/ui/dialog/find.cpp:64 +msgid "Limit search to the current selection" +msgstr "" + +#: ../src/dialogs/find.cpp:713 ../src/ui/dialog/find.cpp:65 +msgid "Search in current _layer" +msgstr "" + +#: ../src/dialogs/find.cpp:717 ../src/ui/dialog/find.cpp:65 +msgid "Limit search to the current layer" +msgstr "" + +#: ../src/dialogs/find.cpp:722 ../src/ui/dialog/find.cpp:66 +msgid "Include _hidden" +msgstr "" + +#: ../src/dialogs/find.cpp:726 ../src/ui/dialog/find.cpp:66 +msgid "Include hidden objects in search" +msgstr "" + +#: ../src/dialogs/find.cpp:731 ../src/ui/dialog/find.cpp:67 +msgid "Include l_ocked" +msgstr "" + +#: ../src/dialogs/find.cpp:735 ../src/ui/dialog/find.cpp:67 +msgid "Include locked objects in search" +msgstr "" + +#. TRANSLATORS: "Clear" is a verb here +#: ../src/dialogs/find.cpp:746 ../src/ui/dialog/debug.cpp:75 +#: ../src/ui/dialog/find.cpp:86 ../src/ui/dialog/messages.cpp:53 +#: ../src/ui/dialog/scriptdialog.cpp:209 +msgid "_Clear" +msgstr "" + +#: ../src/dialogs/find.cpp:746 ../src/ui/dialog/find.cpp:86 +msgid "Clear values" +msgstr "" + +#: ../src/dialogs/find.cpp:747 ../src/ui/dialog/find.cpp:87 +msgid "_Find" +msgstr "" + +#: ../src/dialogs/find.cpp:747 ../src/ui/dialog/find.cpp:87 +msgid "Select objects matching all of the fields you filled in" +msgstr "" + +#. Create the label for the object id +#: ../src/dialogs/item-properties.cpp:120 +#: ../src/dialogs/item-properties.cpp:334 +#: ../src/dialogs/item-properties.cpp:443 +#: ../src/dialogs/item-properties.cpp:450 +msgid "_Id" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:129 +msgid "" +"The id= attribute (only letters, digits, and the characters .-_: allowed)" +msgstr "" + +#. Button for setting the object's id, label, title and description. +#: ../src/dialogs/item-properties.cpp:143 ../src/verbs.cpp:2486 +#: ../src/verbs.cpp:2492 +msgid "_Set" +msgstr "" + +#. Create the label for the object label +#: ../src/dialogs/item-properties.cpp:152 +msgid "_Label" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:161 +msgid "A freeform label for the object" +msgstr "" + +#. Create the label for the object title +#: ../src/dialogs/item-properties.cpp:173 +msgid "_Title" +msgstr "" + +#. Create the frame for the object description +#: ../src/dialogs/item-properties.cpp:191 +msgid "_Description" +msgstr "" + +#. Hide +#: ../src/dialogs/item-properties.cpp:222 +msgid "_Hide" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:223 +msgid "Check to make the object invisible" +msgstr "" + +#. Lock +#. TRANSLATORS: "Lock" is a verb here +#: ../src/dialogs/item-properties.cpp:232 +msgid "L_ock" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:233 +msgid "Check to make the object insensitive (not selectable by mouse)" +msgstr "" + +#. Create the frame for interactivity options +#: ../src/dialogs/item-properties.cpp:243 +msgid "_Interactivity" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:317 +#: ../src/dialogs/item-properties.cpp:324 +msgid "Ref" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:402 +msgid "Lock object" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:402 +msgid "Unlock object" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:421 +msgid "Hide object" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:421 +msgid "Unhide object" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:445 +msgid "Id invalid! " +msgstr "" + +#: ../src/dialogs/item-properties.cpp:447 +msgid "Id exists! " +msgstr "" + +#: ../src/dialogs/item-properties.cpp:454 +msgid "Set object ID" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:469 +msgid "Set object label" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:477 +msgid "Set object title" +msgstr "" + +#: ../src/dialogs/item-properties.cpp:487 +msgid "Set object description" +msgstr "" + +#: ../src/dialogs/object-attributes.cpp:32 +msgid "Href:" +msgstr "" + +#. default x: +#. default y: +#: ../src/dialogs/object-attributes.cpp:33 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2191 +msgid "Target:" +msgstr "" + +#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); +#: ../src/dialogs/object-attributes.cpp:34 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2168 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2246 +msgid "Type:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute +#. Identifies the type of the related resource with an absolute URI +#: ../src/dialogs/object-attributes.cpp:37 +msgid "Role:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute +#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link. +#: ../src/dialogs/object-attributes.cpp:40 +msgid "Arcrole:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute +#: ../src/dialogs/object-attributes.cpp:42 +msgid "Title:" +msgstr "" + +#: ../src/dialogs/object-attributes.cpp:43 +#: ../share/extensions/polyhedron_3d.inx.h:36 +msgid "Show:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute +#: ../src/dialogs/object-attributes.cpp:45 +msgid "Actuate:" +msgstr "" + +#: ../src/dialogs/object-attributes.cpp:50 +msgid "URL:" +msgstr "" + +#: ../src/dialogs/object-attributes.cpp:51 +#: ../src/dialogs/object-attributes.cpp:59 ../src/ui/dialog/guides.cpp:43 +#: ../src/ui/view/edit-widget.cpp:1074 ../src/widgets/desktop-widget.cpp:504 +#: ../src/widgets/toolbox.cpp:1472 +msgid "X:" +msgstr "" + +#: ../src/dialogs/object-attributes.cpp:52 +#: ../src/dialogs/object-attributes.cpp:60 ../src/ui/dialog/guides.cpp:44 +#: ../src/ui/view/edit-widget.cpp:1075 ../src/widgets/desktop-widget.cpp:507 +#: ../src/widgets/toolbox.cpp:1490 +msgid "Y:" +msgstr "" + +#: ../src/dialogs/object-attributes.cpp:53 +#: ../src/dialogs/object-attributes.cpp:61 ../src/widgets/toolbox.cpp:4124 +#: ../src/widgets/toolbox.cpp:4715 ../src/widgets/toolbox.cpp:5734 +msgid "Width:" +msgstr "" + +#: ../src/dialogs/object-attributes.cpp:54 +#: ../src/dialogs/object-attributes.cpp:62 +msgid "Height:" +msgstr "" + +#: ../src/dialogs/object-attributes.cpp:106 +#, c-format +msgid "%s Properties" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:444 +#, c-format +msgid "Finished, %d words added to dictionary" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:446 +#, c-format +msgid "Finished, nothing suspicious found" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:559 +#, c-format +msgid "Not in dictionary (%s): %s" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:711 +msgid "Checking..." +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:781 +msgid "Fix spelling" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:955 +msgid "Suggestions:" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:967 +msgid "_Accept" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:967 +msgid "Accept the chosen suggestion" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:969 +msgid "_Ignore once" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:969 +msgid "Ignore this word only once" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:971 +msgid "_Ignore" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:971 +msgid "Ignore this word in this session" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:978 +msgid "A_dd to dictionary:" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:978 +msgid "Add this word to the chosen dictionary" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:1002 +msgid "_Stop" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:1002 +msgid "Stop the check" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:1004 +msgid "_Start" +msgstr "" + +#: ../src/dialogs/spellcheck.cpp:1004 +msgid "Start the check" +msgstr "" + +#: ../src/dialogs/text-edit.cpp:198 +msgid "Font" +msgstr "" + +#: ../src/dialogs/text-edit.cpp:221 ../share/extensions/svgcalendar.inx.h:12 +msgid "Layout" +msgstr "" + +#: ../src/dialogs/text-edit.cpp:235 +msgid "Align lines left" +msgstr "" + +#. TRANSLATORS: `Center' here is a verb. +#: ../src/dialogs/text-edit.cpp:250 +msgid "Center lines" +msgstr "" + +#: ../src/dialogs/text-edit.cpp:264 +msgid "Align lines right" +msgstr "" + +#: ../src/dialogs/text-edit.cpp:278 +msgid "Justify lines" +msgstr "" + +#: ../src/dialogs/text-edit.cpp:300 ../src/widgets/toolbox.cpp:6804 +msgid "Horizontal text" +msgstr "" + +#: ../src/dialogs/text-edit.cpp:314 ../src/widgets/toolbox.cpp:6816 +msgid "Vertical text" +msgstr "" + +#: ../src/dialogs/text-edit.cpp:329 +msgid "Line spacing:" +msgstr "" + +#. Text +#: ../src/dialogs/text-edit.cpp:375 ../src/selection-describer.cpp:69 +#: ../src/ui/dialog/inkscape-preferences.cpp:522 ../src/verbs.cpp:2522 +#: ../share/extensions/lorem_ipsum.inx.h:5 +#: ../share/extensions/render_alphabetsoup.inx.h:5 +#: ../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 "" + +#: ../src/dialogs/text-edit.cpp:422 +msgid "Set as default" +msgstr "" + +#: ../src/dialogs/text-edit.cpp:665 ../src/text-context.cpp:1493 +msgid "Set text style" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:152 +msgid "Click to select nodes, drag to rearrange." +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:163 +msgid "Click attribute to edit." +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:167 +#, c-format +msgid "" +"Attribute %s selected. Press Ctrl+Enter when done editing to " +"commit changes." +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:263 +msgid "Drag to reorder nodes" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:283 +msgid "New element node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:305 +msgid "New text node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:326 ../src/dialogs/xml-tree.cpp:1409 +#: ../src/nodepath.cpp:2249 +msgid "Duplicate node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:347 +msgid "nodeAsInXMLdialogTooltip|Delete node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:363 ../src/dialogs/xml-tree.cpp:1571 +msgid "Unindent node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:378 ../src/dialogs/xml-tree.cpp:1550 +msgid "Indent node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:390 ../src/dialogs/xml-tree.cpp:1503 +msgid "Raise node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:402 ../src/dialogs/xml-tree.cpp:1520 +msgid "Lower node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:447 ../src/dialogs/xml-tree.cpp:1444 +msgid "Delete attribute" +msgstr "" + +#. TRANSLATORS: "Attribute" is a noun here +#: ../src/dialogs/xml-tree.cpp:492 +msgid "Attribute name" +msgstr "" + +#. TRANSLATORS: "Set" is a verb here +#: ../src/dialogs/xml-tree.cpp:512 ../src/widgets/sp-attribute-widget.cpp:158 +#: ../src/widgets/sp-attribute-widget.cpp:765 +msgid "Set attribute" +msgstr "" + +#. TRANSLATORS: "Set" is a verb here +#: ../src/dialogs/xml-tree.cpp:514 +msgid "Set" +msgstr "" + +#. TRANSLATORS: "Attribute" is a noun here +#: ../src/dialogs/xml-tree.cpp:537 +msgid "Attribute value" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:874 +msgid "Drag XML subtree" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:1311 +msgid "New element node..." +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:1333 +msgid "Cancel" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:1341 +msgid "Create" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:1375 +msgid "Create new element node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:1391 +msgid "Create new text node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:1426 +msgid "nodeAsInXMLinHistoryDialog|Delete node" +msgstr "" + +#: ../src/dialogs/xml-tree.cpp:1473 +msgid "Change attribute" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:396 ../src/display/canvas-grid.cpp:670 +msgid "Grid _units:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:398 ../src/display/canvas-grid.cpp:672 +msgid "_Origin X:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:398 ../src/display/canvas-grid.cpp:672 +#: ../src/ui/dialog/inkscape-preferences.cpp:978 +#: ../src/ui/dialog/inkscape-preferences.cpp:999 +msgid "X coordinate of grid origin" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:400 ../src/display/canvas-grid.cpp:674 +msgid "O_rigin Y:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:400 ../src/display/canvas-grid.cpp:674 +#: ../src/ui/dialog/inkscape-preferences.cpp:979 +#: ../src/ui/dialog/inkscape-preferences.cpp:1000 +msgid "Y coordinate of grid origin" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:402 ../src/display/canvas-grid.cpp:678 +msgid "Spacing _Y:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:402 +#: ../src/ui/dialog/inkscape-preferences.cpp:1002 +msgid "Base length of z-axis" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:404 +#: ../src/ui/dialog/inkscape-preferences.cpp:1005 +#: ../src/widgets/toolbox.cpp:3422 +msgid "Angle X:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:404 +#: ../src/ui/dialog/inkscape-preferences.cpp:1005 +msgid "Angle of x-axis" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:406 +#: ../src/ui/dialog/inkscape-preferences.cpp:1006 +#: ../src/widgets/toolbox.cpp:3501 +msgid "Angle Z:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:406 +#: ../src/ui/dialog/inkscape-preferences.cpp:1006 +msgid "Angle of z-axis" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:410 ../src/display/canvas-grid.cpp:682 +msgid "Grid line _color:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:410 ../src/display/canvas-grid.cpp:682 +msgid "Grid line color" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:410 ../src/display/canvas-grid.cpp:682 +msgid "Color of grid lines" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:415 ../src/display/canvas-grid.cpp:687 +msgid "Ma_jor grid line color:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:415 ../src/display/canvas-grid.cpp:687 +msgid "Major grid line color" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:416 ../src/display/canvas-grid.cpp:688 +msgid "Color of the major (highlighted) grid lines" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:420 ../src/display/canvas-grid.cpp:692 +msgid "_Major grid line every:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:420 ../src/display/canvas-grid.cpp:692 +msgid "lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:39 +msgid "Rectangular grid" +msgstr "" + +#: ../src/display/canvas-grid.cpp:40 +msgid "Axonometric grid" +msgstr "" + +#: ../src/display/canvas-grid.cpp:258 +msgid "Create new grid" +msgstr "" + +#: ../src/display/canvas-grid.cpp:324 +msgid "_Enabled" +msgstr "" + +#: ../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 +msgid "Snap to visible _grid lines only" +msgstr "" + +#: ../src/display/canvas-grid.cpp:330 +msgid "" +"When zoomed out, not all grid lines will be displayed. Only the visible ones " +"will be snapped to" +msgstr "" + +#: ../src/display/canvas-grid.cpp:334 +msgid "_Visible" +msgstr "" + +#: ../src/display/canvas-grid.cpp:335 +msgid "" +"Determines whether the grid is displayed or not. Objects are still snapped " +"to invisible grids." +msgstr "" + +#: ../src/display/canvas-grid.cpp:676 +msgid "Spacing _X:" +msgstr "" + +#: ../src/display/canvas-grid.cpp:676 +#: ../src/ui/dialog/inkscape-preferences.cpp:982 +msgid "Distance between vertical grid lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:678 +#: ../src/ui/dialog/inkscape-preferences.cpp:983 +msgid "Distance between horizontal grid lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:711 +msgid "_Show dots instead of lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:712 +msgid "If set, displays dots at gridpoints instead of gridlines" +msgstr "" + +#. TRANSLATORS: undefined target for snapping +#: ../src/display/snap-indicator.cpp:60 ../src/display/snap-indicator.cpp:63 +#: ../src/display/snap-indicator.cpp:148 ../src/display/snap-indicator.cpp:151 +msgid "UNDEFINED" +msgstr "" + +#: ../src/display/snap-indicator.cpp:66 +msgid "grid line" +msgstr "" + +#: ../src/display/snap-indicator.cpp:69 +msgid "grid intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:72 +msgid "guide" +msgstr "" + +#: ../src/display/snap-indicator.cpp:75 +msgid "guide intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:78 +msgid "guide origin" +msgstr "" + +#: ../src/display/snap-indicator.cpp:81 +msgid "grid-guide intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:84 +msgid "cusp node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:87 +msgid "smooth node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:90 +msgid "path" +msgstr "" + +#: ../src/display/snap-indicator.cpp:93 +msgid "path intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:96 +msgid "bounding box corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:99 +msgid "bounding box side" +msgstr "" + +#: ../src/display/snap-indicator.cpp:102 +msgid "bounding box" +msgstr "" + +#: ../src/display/snap-indicator.cpp:105 +msgid "page border" +msgstr "" + +#: ../src/display/snap-indicator.cpp:108 +msgid "line midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:111 +msgid "object midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:114 +msgid "object rotation center" +msgstr "" + +#: ../src/display/snap-indicator.cpp:117 +msgid "handle" +msgstr "" + +#: ../src/display/snap-indicator.cpp:120 +msgid "bounding box side midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:123 +msgid "bounding box midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:126 +msgid "page corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:129 +msgid "convex hull corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:132 +msgid "quadrant point" +msgstr "" + +#: ../src/display/snap-indicator.cpp:135 +msgid "center" +msgstr "" + +#: ../src/display/snap-indicator.cpp:138 +msgid "corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:141 +msgid "text baseline" +msgstr "" + +#: ../src/display/snap-indicator.cpp:154 +msgid "Bounding box corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:157 +msgid "Bounding box midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:160 +msgid "Bounding box side midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:163 +msgid "Smooth node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:166 +msgid "Cusp node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:169 +msgid "Line midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:172 +msgid "Object midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:175 +msgid "Object rotation center" +msgstr "" + +#: ../src/display/snap-indicator.cpp:178 +msgid "Handle" +msgstr "" + +#: ../src/display/snap-indicator.cpp:181 +msgid "Path intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:184 +msgid "Guide" +msgstr "" + +#: ../src/display/snap-indicator.cpp:187 +msgid "Guide origin" +msgstr "" + +#: ../src/display/snap-indicator.cpp:190 +msgid "Convex hull corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:193 +msgid "Quadrant point" +msgstr "" + +#: ../src/display/snap-indicator.cpp:196 ../src/widgets/toolbox.cpp:6734 +msgid "Center" +msgstr "" + +#: ../src/display/snap-indicator.cpp:199 +msgid "Corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:202 +msgid "Text baseline" +msgstr "" + +#: ../src/display/snap-indicator.cpp:241 +msgid " to " +msgstr "" + +#: ../src/document.cpp:445 +#, c-format +msgid "New document %d" +msgstr "" + +#: ../src/document.cpp:477 +#, c-format +msgid "Memory document %d" +msgstr "" + +#: ../src/document.cpp:632 +#, c-format +msgid "Unnamed document %d" +msgstr "" + +#. We hit green anchor, closing Green-Blue-Red +#: ../src/draw-context.cpp:581 +msgid "Path is closed." +msgstr "" + +#. We hit bot start and end of single curve, closing paths +#: ../src/draw-context.cpp:596 +msgid "Closing path." +msgstr "" + +#: ../src/draw-context.cpp:706 +msgid "Draw path" +msgstr "" + +#: ../src/draw-context.cpp:867 +msgid "Creating single dot" +msgstr "" + +#: ../src/draw-context.cpp:868 +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:302 +#, c-format +msgid " alpha %.3g" +msgstr "" + +#. where the color is picked, to show in the statusbar +#: ../src/dropper-context.cpp:304 +#, c-format +msgid ", averaged with radius %d" +msgstr "" + +#: ../src/dropper-context.cpp:304 +#, c-format +msgid " under cursor" +msgstr "" + +#. message, to show in the statusbar +#: ../src/dropper-context.cpp:306 +msgid "Release mouse to set color." +msgstr "" + +#: ../src/dropper-context.cpp:306 ../src/tools-switch.cpp:208 +msgid "" +"Click to set fill, Shift+click to set stroke; drag to " +"average color in area; with Alt to pick inverse color; Ctrl+C " +"to copy the color under mouse to clipboard" +msgstr "" + +#: ../src/dropper-context.cpp:344 +msgid "Set picked color" +msgstr "" + +#: ../src/dyna-draw-context.cpp:615 +msgid "" +"Guide path selected; start drawing along the guide with Ctrl" +msgstr "" + +#: ../src/dyna-draw-context.cpp:617 +msgid "Select a guide path to track with Ctrl" +msgstr "" + +#: ../src/dyna-draw-context.cpp:752 +msgid "Tracking: connection to guide path lost!" +msgstr "" + +#: ../src/dyna-draw-context.cpp:752 +msgid "Tracking a guide path" +msgstr "" + +#: ../src/dyna-draw-context.cpp:755 +msgid "Drawing a calligraphic stroke" +msgstr "" + +#: ../src/dyna-draw-context.cpp:1044 +msgid "Draw calligraphic stroke" +msgstr "" + +#: ../src/eraser-context.cpp:527 +msgid "Drawing an eraser stroke" +msgstr "" + +#: ../src/eraser-context.cpp:830 +msgid "Draw eraser stroke" +msgstr "" + +#: ../src/event-context.cpp:618 +msgid "Space+mouse drag to pan canvas" +msgstr "" + +#: ../src/event-log.cpp:37 +msgid "[Unchanged]" +msgstr "" + +#. Edit +#: ../src/event-log.cpp:264 ../src/event-log.cpp:267 ../src/verbs.cpp:2276 +msgid "_Undo" +msgstr "" + +#: ../src/event-log.cpp:274 ../src/event-log.cpp:278 ../src/verbs.cpp:2278 +msgid "_Redo" +msgstr "" + +#: ../src/extension/dependency.cpp:246 +msgid "Dependency:" +msgstr "" + +#: ../src/extension/dependency.cpp:247 +msgid " type: " +msgstr "" + +#: ../src/extension/dependency.cpp:248 +msgid " location: " +msgstr "" + +#: ../src/extension/dependency.cpp:249 +msgid " string: " +msgstr "" + +#: ../src/extension/dependency.cpp:252 +msgid " description: " +msgstr "" + +#: ../src/extension/effect.cpp:39 +msgid " (No preferences)" +msgstr "" + +#. This is some filler text, needs to change before relase +#: ../src/extension/error-file.cpp:53 +msgid "" +"One or more extensions failed to load\n" +"\n" +"The failed extensions have been skipped. Inkscape will continue to run " +"normally but those extensions will be unavailable. For details to " +"troubleshoot this problem, please refer to the error log located at: " +msgstr "" + +#: ../src/extension/error-file.cpp:63 +msgid "Show dialog on startup" +msgstr "" + +#: ../src/extension/execution-env.cpp:134 +#, c-format +msgid "'%s' working, please wait..." +msgstr "" + +#. 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 "" + +#: ../src/extension/extension.cpp:255 +msgid "an ID was not defined for it." +msgstr "" + +#: ../src/extension/extension.cpp:259 +msgid "there was no name defined for it." +msgstr "" + +#: ../src/extension/extension.cpp:263 +msgid "the XML description of it got lost." +msgstr "" + +#: ../src/extension/extension.cpp:267 +msgid "no implementation was defined for the extension." +msgstr "" + +#. std::cout << "Failed: " << *(_deps[i]) << std::endl; +#: ../src/extension/extension.cpp:274 +msgid "a dependency was not met." +msgstr "" + +#: ../src/extension/extension.cpp:294 +msgid "Extension \"" +msgstr "" + +#: ../src/extension/extension.cpp:294 +msgid "\" failed to load because " +msgstr "" + +#: ../src/extension/extension.cpp:625 +#, c-format +msgid "Could not create extension error log file '%s'" +msgstr "" + +#: ../src/extension/extension.cpp:723 +msgid "Name:" +msgstr "" + +#: ../src/extension/extension.cpp:724 +msgid "ID:" +msgstr "" + +#: ../src/extension/extension.cpp:725 +msgid "State:" +msgstr "" + +#: ../src/extension/extension.cpp:725 +msgid "Loaded" +msgstr "" + +#: ../src/extension/extension.cpp:725 +msgid "Unloaded" +msgstr "" + +#: ../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." +msgstr "" + +#: ../src/extension/implementation/script.cpp:1060 +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:274 +msgid "Null external module directory name. Modules will not be loaded." +msgstr "" + +#: ../src/extension/init.cpp:288 +#: ../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 "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:38 +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: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:64 +#: ../src/widgets/toolbox.cpp:3095 ../src/widgets/toolbox.cpp:4124 +#: ../share/extensions/foldablebox.inx.h:9 +#: ../share/extensions/interp_att_g.inx.h:26 +msgid "Width" +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:3112 +#: ../share/extensions/foldablebox.inx.h:4 +#: ../share/extensions/interp_att_g.inx.h:6 +msgid "Height" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 +#: ../src/filter-enums.cpp:32 ../src/live_effects/effect.cpp:99 +#: ../src/live_effects/lpe-ruler.cpp:50 +msgid "Offset" +msgstr "" + +#: ../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:45 +#: ../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 "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:48 +msgid "Apply adaptive thresholding to selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:44 +msgid "Add Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:46 ../src/rdf.cpp:238 +msgid "Type" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:47 +msgid "Uniform Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:48 +msgid "Gaussian Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:49 +msgid "Multiplicative Gaussian Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:50 +msgid "Impulse Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:51 +msgid "Laplacian Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:52 +msgid "Poisson Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:59 +msgid "Add random noise to selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/blur.cpp:37 +msgid "Blur" +msgstr "" + +#: ../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 +msgid "Radius" +msgstr "" + +#: ../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 "" + +#: ../src/extension/internal/bitmap/blur.cpp:46 +msgid "Blur selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:47 +#: ../src/extension/internal/bitmap/levelChannel.cpp:53 +msgid "Channel" +msgstr "" + +#. TODO: find an unused layer number, forming name from _("Layer ") + "%d" +#: ../src/extension/internal/bitmap/channel.cpp:49 +#: ../src/ui/dialog/layer-properties.cpp:178 +#: ../src/ui/dialog/layer-properties.cpp:200 +msgid "Layer" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:50 +#: ../src/extension/internal/bitmap/levelChannel.cpp:54 +msgid "Red Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:51 +#: ../src/extension/internal/bitmap/levelChannel.cpp:55 +msgid "Green Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:52 +#: ../src/extension/internal/bitmap/levelChannel.cpp:56 +msgid "Blue Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:53 +#: ../src/extension/internal/bitmap/levelChannel.cpp:57 +msgid "Cyan Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:54 +#: ../src/extension/internal/bitmap/levelChannel.cpp:58 +msgid "Magenta Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:55 +#: ../src/extension/internal/bitmap/levelChannel.cpp:59 +msgid "Yellow Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:56 +#: ../src/extension/internal/bitmap/levelChannel.cpp:60 +msgid "Black Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:57 +#: ../src/extension/internal/bitmap/levelChannel.cpp:61 +msgid "Opacity Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:58 +#: ../src/extension/internal/bitmap/levelChannel.cpp:62 +msgid "Matte Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:65 +msgid "Extract specific channel from image." +msgstr "" + +#: ../src/extension/internal/bitmap/charcoal.cpp:37 +msgid "Charcoal" +msgstr "" + +#: ../src/extension/internal/bitmap/charcoal.cpp:46 +msgid "Apply charcoal stylization to selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/colorize.cpp:57 +msgid "Colorize selected bitmap(s) with specified color, using given opacity." +msgstr "" + +#: ../src/extension/internal/bitmap/contrast.cpp:39 +msgid "Contrast" +msgstr "" + +#: ../src/extension/internal/bitmap/contrast.cpp:41 +msgid "Adjust" +msgstr "" + +#: ../src/extension/internal/bitmap/contrast.cpp:47 +msgid "Increase or decrease contrast in bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/cycleColormap.cpp:36 +msgid "Cycle Colormap" +msgstr "" + +#: ../src/extension/internal/bitmap/cycleColormap.cpp:38 +#: ../src/extension/internal/bitmap/spread.cpp:38 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:44 +msgid "Amount" +msgstr "" + +#: ../src/extension/internal/bitmap/cycleColormap.cpp:44 +msgid "Cycle colormap(s) of selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/despeckle.cpp:35 +msgid "Despeckle" +msgstr "" + +#: ../src/extension/internal/bitmap/despeckle.cpp:42 +msgid "Reduce speckle noise of selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/edge.cpp:36 +msgid "Edge" +msgstr "" + +#: ../src/extension/internal/bitmap/edge.cpp:44 +msgid "Highlight edges of selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/emboss.cpp:46 +msgid "Emboss selected bitmap(s) -- highlight edges with 3D effect." +msgstr "" + +#: ../src/extension/internal/bitmap/enhance.cpp:34 +msgid "Enhance" +msgstr "" + +#: ../src/extension/internal/bitmap/enhance.cpp:41 +msgid "Enhance selected bitmap(s) -- minimize noise." +msgstr "" + +#: ../src/extension/internal/bitmap/equalize.cpp:34 +msgid "Equalize" +msgstr "" + +#: ../src/extension/internal/bitmap/equalize.cpp:41 +msgid "Equalize selected bitmap(s) -- histogram equalization." +msgstr "" + +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:37 +#: ../src/filter-enums.cpp:28 +msgid "Gaussian Blur" +msgstr "" + +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:39 +#: ../src/extension/internal/bitmap/implode.cpp:38 +#: ../src/extension/internal/bitmap/solarize.cpp:38 +msgid "Factor" +msgstr "" + +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:46 +msgid "Gaussian blur selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/implode.cpp:36 +msgid "Implode" +msgstr "" + +#: ../src/extension/internal/bitmap/implode.cpp:44 +msgid "Implode selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:51 +msgid "Level (with Channel)" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:64 +#: ../src/extension/internal/bitmap/level.cpp:42 +msgid "Black Point" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:65 +#: ../src/extension/internal/bitmap/level.cpp:43 +msgid "White Point" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:66 +#: ../src/extension/internal/bitmap/level.cpp:44 +msgid "Gamma Correction" +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." +msgstr "" + +#: ../src/extension/internal/bitmap/level.cpp:40 +msgid "Level" +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." +msgstr "" + +#: ../src/extension/internal/bitmap/medianFilter.cpp:36 +msgid "Median" +msgstr "" + +#: ../src/extension/internal/bitmap/medianFilter.cpp:44 +msgid "" +"Replace each pixel component with the median color in a circular " +"neighborhood." +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:39 +msgid "HSB Adjust" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:41 +#: ../src/flood-context.cpp:250 ../src/widgets/sp-color-icc-selector.cpp:236 +#: ../src/widgets/sp-color-icc-selector.cpp:237 +#: ../src/widgets/sp-color-scales.cpp:426 +#: ../src/widgets/sp-color-scales.cpp:427 ../src/widgets/toolbox.cpp:4281 +#: ../share/extensions/color_randomize.inx.h:2 +msgid "Hue" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:42 +#: ../src/flood-context.cpp:251 ../src/ui/dialog/inkscape-preferences.cpp:830 +#: ../src/widgets/sp-color-icc-selector.cpp:236 +#: ../src/widgets/sp-color-icc-selector.cpp:237 +#: ../src/widgets/sp-color-scales.cpp:429 +#: ../src/widgets/sp-color-scales.cpp:430 ../src/widgets/toolbox.cpp:4296 +#: ../share/extensions/color_randomize.inx.h:5 +msgid "Saturation" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:43 +msgid "Brightness" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:49 +msgid "" +"Adjust the amount of hue, saturation, and brightness in selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/negate.cpp:35 +msgid "Negate" +msgstr "" + +#: ../src/extension/internal/bitmap/negate.cpp:42 +msgid "Negate (take inverse) selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/normalize.cpp:35 +msgid "Normalize" +msgstr "" + +#: ../src/extension/internal/bitmap/normalize.cpp:42 +msgid "" +"Normalize selected bitmap(s), expanding color range to the full possible " +"range of color." +msgstr "" + +#: ../src/extension/internal/bitmap/oilPaint.cpp:36 +msgid "Oil Paint" +msgstr "" + +#: ../src/extension/internal/bitmap/oilPaint.cpp:44 +msgid "Stylize selected bitmap(s) so that they appear to be painted with oils." +msgstr "" + +#: ../src/extension/internal/bitmap/opacity.cpp:45 +msgid "Modify opacity channel(s) of selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/raise.cpp:39 +msgid "Raise" +msgstr "" + +#: ../src/extension/internal/bitmap/raise.cpp:43 +msgid "Raised" +msgstr "" + +#: ../src/extension/internal/bitmap/raise.cpp:49 +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 "" + +#: ../src/extension/internal/bitmap/reduceNoise.cpp:41 +#: ../share/extensions/lindenmayer.inx.h:26 +msgid "Order" +msgstr "" + +#: ../src/extension/internal/bitmap/reduceNoise.cpp:47 +msgid "" +"Reduce noise in selected bitmap(s) using a noise peak elimination filter." +msgstr "" + +#: ../src/extension/internal/bitmap/sample.cpp:38 +msgid "Resample" +msgstr "" + +#: ../src/extension/internal/bitmap/sample.cpp:47 +msgid "" +"Alter the resolution of selected image by resizing it to the given pixel size" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:39 +msgid "Shade" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:41 +#: ../src/ui/dialog/filter-effects-dialog.cpp:955 +msgid "Azimuth" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:42 +#: ../src/ui/dialog/filter-effects-dialog.cpp:956 +msgid "Elevation" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:43 +msgid "Colored Shading" +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 +msgid "Sharpen selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/solarize.cpp:44 +msgid "Solarize selected bitmap(s), like overexposing photographic film." +msgstr "" + +#: ../src/extension/internal/bitmap/spread.cpp:36 +msgid "Dither" +msgstr "" + +#: ../src/extension/internal/bitmap/spread.cpp:44 +msgid "" +"Randomly scatter pixels in selected bitmap(s), within the given radius of " +"the original position" +msgstr "" + +#: ../src/extension/internal/bitmap/swirl.cpp:36 +msgid "Swirl" +msgstr "" + +#: ../src/extension/internal/bitmap/swirl.cpp:38 +#: ../share/extensions/grid_polar.inx.h:7 +msgid "Degrees" +msgstr "" + +#: ../src/extension/internal/bitmap/swirl.cpp:44 +msgid "Swirl selected bitmap(s) around center point." +msgstr "" + +#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html +#: ../src/extension/internal/bitmap/threshold.cpp:37 +#: ../src/extension/internal/bitmap/threshold.cpp:39 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:45 +msgid "Threshold" +msgstr "" + +#: ../src/extension/internal/bitmap/threshold.cpp:45 +msgid "Threshold selected bitmap(s)." +msgstr "" + +#: ../src/extension/internal/bitmap/unsharpmask.cpp:40 +msgid "Unsharp Mask" +msgstr "" + +#: ../src/extension/internal/bitmap/unsharpmask.cpp:51 +msgid "Sharpen selected bitmap(s) using unsharp mask algorithms." +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:37 +msgid "Wave" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:39 +msgid "Amplitude" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:40 +msgid "Wavelength" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:46 +msgid "Alter selected bitmap(s) along sine wave." +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:134 +msgid "Inset/Outset Halo" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:136 +msgid "Width in px of the halo" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:137 +msgid "Number of steps" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:137 +msgid "Number of inset/outset copies of the object to make" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:141 +#: ../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 +msgid "Generate from Path" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:274 +#: ../share/extensions/ps_input.inx.h:1 +msgid "PostScript" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:276 +#: ../src/extension/internal/cairo-ps-out.cpp:313 +msgid "Restrict to PS level" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:277 +#: ../src/extension/internal/cairo-ps-out.cpp:314 +msgid "PostScript level 3" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:279 +#: ../src/extension/internal/cairo-ps-out.cpp:316 +msgid "PostScript level 2" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:282 +#: ../src/extension/internal/cairo-ps-out.cpp:319 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:219 +#: ../src/extension/internal/emf-win32-inout.cpp:2430 +msgid "Convert texts to paths" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:283 +#: ../src/extension/internal/cairo-ps-out.cpp:320 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:220 +msgid "Rasterize filter effects" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:284 +#: ../src/extension/internal/cairo-ps-out.cpp:321 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:221 +msgid "Resolution for rasterization (dpi)" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:285 +#: ../src/extension/internal/cairo-ps-out.cpp:322 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:222 +msgid "Export area is drawing" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:286 +#: ../src/extension/internal/cairo-ps-out.cpp:323 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:223 +msgid "Export area is page" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:287 +#: ../src/extension/internal/cairo-ps-out.cpp:324 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:224 +msgid "Limit export to the object with ID" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:291 +#: ../share/extensions/ps_input.inx.h:2 +msgid "PostScript (*.ps)" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:292 +msgid "PostScript File" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:311 +#: ../share/extensions/eps_input.inx.h:2 +msgid "Encapsulated PostScript" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:328 +#: ../share/extensions/eps_input.inx.h:3 +msgid "Encapsulated PostScript (*.eps)" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:329 +msgid "Encapsulated PostScript File" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:216 +msgid "Restrict to PDF version" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:217 +msgid "PDF 1.4" +msgstr "" + +#: ../src/extension/internal/emf-win32-inout.cpp:2400 +msgid "EMF Input" +msgstr "" + +#: ../src/extension/internal/emf-win32-inout.cpp:2405 +msgid "Enhanced Metafiles (*.emf)" +msgstr "" + +#: ../src/extension/internal/emf-win32-inout.cpp:2406 +msgid "Enhanced Metafiles" +msgstr "" + +#: ../src/extension/internal/emf-win32-inout.cpp:2414 +msgid "WMF Input" +msgstr "" + +#: ../src/extension/internal/emf-win32-inout.cpp:2419 +msgid "Windows Metafiles (*.wmf)" +msgstr "" + +#: ../src/extension/internal/emf-win32-inout.cpp:2420 +msgid "Windows Metafiles" +msgstr "" + +#: ../src/extension/internal/emf-win32-inout.cpp:2428 +msgid "EMF Output" +msgstr "" + +#: ../src/extension/internal/emf-win32-inout.cpp:2434 +msgid "Enhanced Metafile (*.emf)" +msgstr "" + +#: ../src/extension/internal/emf-win32-inout.cpp:2435 +msgid "Enhanced Metafile" +msgstr "" + +#: ../src/extension/internal/filter/drop-shadow.h:35 +msgid "Drop Shadow" +msgstr "" + +#: ../src/extension/internal/filter/drop-shadow.h:37 +#: ../src/extension/internal/filter/drop-shadow.h:92 +msgid "Blur radius, px" +msgstr "" + +#: ../src/extension/internal/filter/drop-shadow.h:38 +#: ../src/extension/internal/filter/drop-shadow.h:93 +#: ../src/ui/widget/object-composite-settings.cpp:62 +#: ../src/ui/widget/selected-style.cpp:1033 +#: ../src/ui/widget/selected-style.cpp:1034 +msgid "Opacity, %" +msgstr "" + +#: ../src/extension/internal/filter/drop-shadow.h:39 +#: ../src/extension/internal/filter/drop-shadow.h:94 +msgid "Horizontal offset, px" +msgstr "" + +#: ../src/extension/internal/filter/drop-shadow.h:40 +#: ../src/extension/internal/filter/drop-shadow.h:95 +msgid "Vertical offset, px" +msgstr "" + +#: ../src/extension/internal/filter/drop-shadow.h:44 +#: ../src/extension/internal/filter/drop-shadow.h:99 +#: ../src/extension/internal/filter/filter.cpp:214 +#: ../src/extension/internal/filter/filter-file.cpp:148 +#: ../src/extension/internal/filter/snow.h:38 +#: ../src/ui/dialog/inkscape-preferences.cpp:733 +msgid "Filters" +msgstr "" + +#: ../src/extension/internal/filter/drop-shadow.h:48 +msgid "Black, blurred drop shadow" +msgstr "" + +#: ../src/extension/internal/filter/drop-shadow.h:90 +msgid "Drop Glow" +msgstr "" + +#: ../src/extension/internal/filter/drop-shadow.h:103 +msgid "White, blurred drop glow" +msgstr "" + +#: ../src/extension/internal/filter/filter-file.cpp:32 +msgid "Bundled" +msgstr "" + +#: ../src/extension/internal/filter/filter-file.cpp:33 +msgid "Personal" +msgstr "" + +#: ../src/extension/internal/filter/filter-file.cpp:44 +msgid "Null external module directory name. Filters will not be loaded." +msgstr "" + +#: ../src/extension/internal/filter/snow.h:32 +msgid "Snow crest" +msgstr "" + +#: ../src/extension/internal/filter/snow.h:34 +msgid "Drift Size" +msgstr "" + +#: ../src/extension/internal/filter/snow.h:42 +msgid "Snow has fallen on object" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:127 +#, c-format +msgid "%s GDK pixbuf Input" +msgstr "" + +#: ../src/extension/internal/gimpgrad.cpp:274 +msgid "GIMP Gradients" +msgstr "" + +#: ../src/extension/internal/gimpgrad.cpp:279 +msgid "GIMP Gradient (*.ggr)" +msgstr "" + +#: ../src/extension/internal/gimpgrad.cpp:280 +msgid "Gradients used in GIMP" +msgstr "" + +#: ../src/extension/internal/grid.cpp:192 ../src/ui/widget/panel.cpp:112 +msgid "Grid" +msgstr "" + +#: ../src/extension/internal/grid.cpp:194 +msgid "Line Width" +msgstr "" + +#: ../src/extension/internal/grid.cpp:195 +msgid "Horizontal Spacing" +msgstr "" + +#: ../src/extension/internal/grid.cpp:196 +msgid "Vertical Spacing" +msgstr "" + +#: ../src/extension/internal/grid.cpp:197 +msgid "Horizontal Offset" +msgstr "" + +#: ../src/extension/internal/grid.cpp:198 +msgid "Vertical Offset" +msgstr "" + +#: ../src/extension/internal/grid.cpp:202 +#: ../share/extensions/draw_from_triangle.inx.h:30 +#: ../share/extensions/eqtexsvg.inx.h:3 +#: ../share/extensions/foldablebox.inx.h:6 +#: ../share/extensions/funcplot.inx.h:13 ../share/extensions/gears.inx.h:5 +#: ../share/extensions/grid_cartesian.inx.h:15 +#: ../share/extensions/grid_polar.inx.h:18 +#: ../share/extensions/guides_creator.inx.h:17 +#: ../share/extensions/lindenmayer.inx.h:31 +#: ../share/extensions/param_curves.inx.h:9 +#: ../share/extensions/perfectboundcover.inx.h:17 +#: ../share/extensions/polyhedron_3d.inx.h:31 +#: ../share/extensions/printing-marks.inx.h:14 +#: ../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/svgcalendar.inx.h:22 +#: ../share/extensions/triangle.inx.h:10 +msgid "Render" +msgstr "" + +#: ../src/extension/internal/grid.cpp:204 +msgid "Draw a path which is a grid" +msgstr "" + +#: ../src/extension/internal/javafx-out.cpp:965 +msgid "JavaFX Output" +msgstr "" + +#: ../src/extension/internal/javafx-out.cpp:970 +msgid "JavaFX (*.fx)" +msgstr "" + +#: ../src/extension/internal/javafx-out.cpp:971 +msgid "JavaFX Raytracer File" +msgstr "" + +#: ../src/extension/internal/latex-pstricks.cpp:337 +msgid "LaTeX Print" +msgstr "" + +#: ../src/extension/internal/latex-pstricks-out.cpp:105 +msgid "LaTeX Output" +msgstr "" + +#: ../src/extension/internal/latex-pstricks-out.cpp:110 +msgid "LaTeX With PSTricks macros (*.tex)" +msgstr "" + +#: ../src/extension/internal/latex-pstricks-out.cpp:111 +msgid "LaTeX PSTricks File" +msgstr "" + +#: ../src/extension/internal/odf.cpp:2417 +msgid "OpenDocument Drawing Output" +msgstr "" + +#: ../src/extension/internal/odf.cpp:2422 +msgid "OpenDocument drawing (*.odg)" +msgstr "" + +#: ../src/extension/internal/odf.cpp:2423 +msgid "OpenDocument drawing file" +msgstr "" + +#. TRANSLATORS: The following are document crop settings for PDF import +#. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/ +#: ../src/extension/internal/pdfinput/pdf-input.cpp:56 +msgid "media box" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:57 +msgid "crop box" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:58 +msgid "trim box" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:59 +msgid "bleed box" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:60 +msgid "art box" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:72 +msgid "Select page:" +msgstr "" + +#. Display total number of pages +#: ../src/extension/internal/pdfinput/pdf-input.cpp:86 +#, c-format +msgid "out of %i" +msgstr "" + +#. Crop settings +#: ../src/extension/internal/pdfinput/pdf-input.cpp:92 +msgid "Clip to:" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:104 +msgid "Page settings" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:106 +msgid "Precision of approximating gradient meshes:" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:107 +msgid "" +"Note: setting the precision too high may result in a large SVG file " +"and slow performance." +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:112 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:393 +msgid "rough" +msgstr "" + +#. Text options +#: ../src/extension/internal/pdfinput/pdf-input.cpp:116 +msgid "Text handling:" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:118 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:119 +msgid "Import text as text" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:120 +msgid "Replace PDF fonts by closest-named installed fonts" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:123 +msgid "Embed images" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:126 +msgid "Import settings" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:248 +msgid "PDF Import Settings" +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/extension/internal/pdfinput/pdf-input.cpp:396 +msgid "pdfinput|medium" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:397 +msgid "fine" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:398 +msgid "very fine" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:753 +msgid "PDF Input" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:758 +msgid "Adobe PDF (*.pdf)" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:759 +msgid "Adobe Portable Document Format" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:766 +msgid "AI Input" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:771 +msgid "Adobe Illustrator 9.0 and above (*.ai)" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:772 +msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" +msgstr "" + +#: ../src/extension/internal/pov-out.cpp:700 +msgid "PovRay Output" +msgstr "" + +#: ../src/extension/internal/pov-out.cpp:705 +msgid "PovRay (*.pov) (paths and shapes only)" +msgstr "" + +#: ../src/extension/internal/pov-out.cpp:706 +msgid "PovRay Raytracer File" +msgstr "" + +#: ../src/extension/internal/svg.cpp:55 +msgid "SVG Input" +msgstr "" + +#: ../src/extension/internal/svg.cpp:60 +msgid "Scalable Vector Graphic (*.svg)" +msgstr "" + +#: ../src/extension/internal/svg.cpp:61 +msgid "Inkscape native file format and W3C standard" +msgstr "" + +#: ../src/extension/internal/svg.cpp:69 +msgid "SVG Output Inkscape" +msgstr "" + +#: ../src/extension/internal/svg.cpp:74 +msgid "Inkscape SVG (*.svg)" +msgstr "" + +#: ../src/extension/internal/svg.cpp:75 +msgid "SVG format with Inkscape extensions" +msgstr "" + +#: ../src/extension/internal/svg.cpp:83 +msgid "SVG Output" +msgstr "" + +#: ../src/extension/internal/svg.cpp:88 +msgid "Plain SVG (*.svg)" +msgstr "" + +#: ../src/extension/internal/svg.cpp:89 +msgid "Scalable Vector Graphics format as defined by the W3C" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:47 +msgid "SVGZ Input" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:53 ../src/extension/internal/svgz.cpp:67 +msgid "Compressed Inkscape SVG (*.svgz)" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:54 +msgid "SVG file format compressed with GZip" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:62 ../src/extension/internal/svgz.cpp:76 +msgid "SVGZ Output" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:68 +msgid "Inkscape's native file format compressed with GZip" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:81 +msgid "Compressed plain SVG (*.svgz)" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:82 +msgid "Scalable Vector Graphics format compressed with GZip" +msgstr "" + +#: ../src/extension/internal/win32.cpp:485 +msgid "Windows 32-bit Print" +msgstr "" + +#: ../src/extension/internal/wpg-input.cpp:102 +msgid "WPG Input" +msgstr "" + +#: ../src/extension/internal/wpg-input.cpp:107 +msgid "WordPerfect Graphics (*.wpg)" +msgstr "" + +#: ../src/extension/internal/wpg-input.cpp:108 +msgid "Vector graphics format used by Corel WordPerfect" +msgstr "" + +#: ../src/extension/prefdialog.cpp:236 +msgid "Live preview" +msgstr "" + +#: ../src/extension/prefdialog.cpp:236 +msgid "Is the effect previewed live on canvas?" +msgstr "" + +#. 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:107 +msgid "Format autodetect failed. The file is being opened as SVG." +msgstr "" + +#: ../src/file.cpp:147 +msgid "default.svg" +msgstr "" + +#: ../src/file.cpp:265 ../src/file.cpp:1071 +#, c-format +msgid "Failed to load the requested file %s" +msgstr "" + +#: ../src/file.cpp:290 +msgid "Document not saved yet. Cannot revert." +msgstr "" + +#: ../src/file.cpp:296 +#, c-format +msgid "Changes will be lost! Are you sure you want to reload document %s?" +msgstr "" + +#: ../src/file.cpp:325 +msgid "Document reverted." +msgstr "" + +#: ../src/file.cpp:327 +msgid "Document not reverted." +msgstr "" + +#: ../src/file.cpp:477 +msgid "Select file to open" +msgstr "" + +#: ../src/file.cpp:564 +msgid "Vacuum <defs>" +msgstr "" + +#: ../src/file.cpp:569 +#, c-format +msgid "Removed %i unused definition in <defs>." +msgid_plural "Removed %i unused definitions in <defs>." +msgstr[0] "" +msgstr[1] "" + +#: ../src/file.cpp:574 +msgid "No unused definitions in <defs>." +msgstr "" + +#: ../src/file.cpp:605 +#, c-format +msgid "" +"No Inkscape extension found to save document (%s). This may have been " +"caused by an unknown filename extension." +msgstr "" + +#: ../src/file.cpp:606 ../src/file.cpp:614 ../src/file.cpp:622 +#: ../src/file.cpp:628 ../src/file.cpp:633 +msgid "Document not saved." +msgstr "" + +#: ../src/file.cpp:613 +#, c-format +msgid "" +"File %s is write protected. Please remove write protection and try again." +msgstr "" + +#: ../src/file.cpp:621 +#, c-format +msgid "File %s could not be saved." +msgstr "" + +#: ../src/file.cpp:638 +msgid "Document saved." +msgstr "" + +#. We are saving for the first time; create a unique default filename +#: ../src/file.cpp:770 ../src/file.cpp:1208 +#, c-format +msgid "drawing%s" +msgstr "" + +#: ../src/file.cpp:776 +#, c-format +msgid "drawing-%d%s" +msgstr "" + +#: ../src/file.cpp:780 +#, c-format +msgid "%s" +msgstr "" + +#: ../src/file.cpp:795 +msgid "Select file to save a copy to" +msgstr "" + +#: ../src/file.cpp:797 +msgid "Select file to save to" +msgstr "" + +#: ../src/file.cpp:892 +msgid "No changes need to be saved." +msgstr "" + +#: ../src/file.cpp:909 +msgid "Saving document..." +msgstr "" + +#: ../src/file.cpp:1068 +msgid "Import" +msgstr "" + +#: ../src/file.cpp:1118 +msgid "Select file to import" +msgstr "" + +#: ../src/file.cpp:1230 +msgid "Select file to export to" +msgstr "" + +#: ../src/file.cpp:1473 ../src/verbs.cpp:2265 +msgid "Import From Open Clip Art Library" +msgstr "" + +#: ../src/filter-enums.cpp:20 +msgid "Blend" +msgstr "" + +#: ../src/filter-enums.cpp:21 +msgid "Color Matrix" +msgstr "" + +#: ../src/filter-enums.cpp:22 +msgid "Component Transfer" +msgstr "" + +#: ../src/filter-enums.cpp:23 +msgid "Composite" +msgstr "" + +#: ../src/filter-enums.cpp:24 +msgid "Convolve Matrix" +msgstr "" + +#: ../src/filter-enums.cpp:25 +msgid "Diffuse Lighting" +msgstr "" + +#: ../src/filter-enums.cpp:26 +msgid "Displacement Map" +msgstr "" + +#: ../src/filter-enums.cpp:27 +msgid "Flood" +msgstr "" + +#: ../src/filter-enums.cpp:29 ../src/selection-describer.cpp:55 +msgid "Image" +msgstr "" + +#: ../src/filter-enums.cpp:30 +msgid "Merge" +msgstr "" + +#: ../src/filter-enums.cpp:33 +msgid "Specular Lighting" +msgstr "" + +#: ../src/filter-enums.cpp:34 +msgid "Tile" +msgstr "" + +#: ../src/filter-enums.cpp:35 ../src/filter-enums.cpp:119 +msgid "Turbulence" +msgstr "" + +#: ../src/filter-enums.cpp:40 +msgid "Source Graphic" +msgstr "" + +#: ../src/filter-enums.cpp:41 +msgid "Source Alpha" +msgstr "" + +#: ../src/filter-enums.cpp:42 +msgid "Background Image" +msgstr "" + +#: ../src/filter-enums.cpp:43 +msgid "Background Alpha" +msgstr "" + +#: ../src/filter-enums.cpp:44 +msgid "Fill Paint" +msgstr "" + +#: ../src/filter-enums.cpp:45 +msgid "Stroke Paint" +msgstr "" + +#. 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/filter-enums.cpp:53 +msgid "filterBlendMode|Normal" +msgstr "" + +#: ../src/filter-enums.cpp:54 +msgid "Multiply" +msgstr "" + +#: ../src/filter-enums.cpp:55 +msgid "Screen" +msgstr "" + +#: ../src/filter-enums.cpp:56 +msgid "Darken" +msgstr "" + +#: ../src/filter-enums.cpp:57 +msgid "Lighten" +msgstr "" + +#: ../src/filter-enums.cpp:63 +msgid "Matrix" +msgstr "" + +#: ../src/filter-enums.cpp:64 +msgid "Saturate" +msgstr "" + +#: ../src/filter-enums.cpp:65 +msgid "Hue Rotate" +msgstr "" + +#: ../src/filter-enums.cpp:66 +msgid "Luminance to Alpha" +msgstr "" + +#. File +#: ../src/filter-enums.cpp:72 ../src/verbs.cpp:2242 +msgid "Default" +msgstr "" + +#: ../src/filter-enums.cpp:73 +msgid "Over" +msgstr "" + +#: ../src/filter-enums.cpp:74 +msgid "In" +msgstr "" + +#: ../src/filter-enums.cpp:75 +msgid "Out" +msgstr "" + +#: ../src/filter-enums.cpp:76 +msgid "Atop" +msgstr "" + +#: ../src/filter-enums.cpp:77 +msgid "XOR" +msgstr "" + +#: ../src/filter-enums.cpp:78 +msgid "Arithmetic" +msgstr "" + +#: ../src/filter-enums.cpp:84 +msgid "Identity" +msgstr "" + +#: ../src/filter-enums.cpp:85 +msgid "Table" +msgstr "" + +#: ../src/filter-enums.cpp:86 +msgid "Discrete" +msgstr "" + +#: ../src/filter-enums.cpp:87 +msgid "Linear" +msgstr "" + +#: ../src/filter-enums.cpp:88 +msgid "Gamma" +msgstr "" + +#: ../src/filter-enums.cpp:94 ../src/selection-chemistry.cpp:316 +#: ../src/widgets/gradient-selector.cpp:139 +msgid "Duplicate" +msgstr "" + +#: ../src/filter-enums.cpp:95 +msgid "Wrap" +msgstr "" + +#: ../src/filter-enums.cpp:96 ../src/flood-context.cpp:264 +#: ../src/live_effects/lpe-ruler.cpp:34 +#: ../src/ui/dialog/document-properties.cpp:327 +#: ../src/ui/dialog/filter-effects-dialog.cpp:468 +#: ../src/ui/dialog/inkscape-preferences.cpp:259 +#: ../src/ui/dialog/inkscape-preferences.cpp:422 +#: ../src/ui/dialog/inkscape-preferences.cpp:554 +#: ../src/ui/dialog/inkscape-preferences.cpp:1151 +#: ../src/ui/dialog/inkscape-preferences.cpp:1216 ../src/verbs.cpp:2239 +#: ../src/widgets/stroke-style.cpp:765 ../src/widgets/toolbox.cpp:3887 +#: ../share/extensions/grid_polar.inx.h:16 +#: ../share/extensions/guides_creator.inx.h:15 +#: ../share/extensions/scour.inx.h:7 +msgid "None" +msgstr "" + +#: ../src/filter-enums.cpp:102 ../src/flood-context.cpp:247 +#: ../src/widgets/sp-color-icc-selector.cpp:234 +#: ../src/widgets/sp-color-scales.cpp:400 +#: ../src/widgets/sp-color-scales.cpp:401 +msgid "Red" +msgstr "" + +#: ../src/filter-enums.cpp:103 ../src/flood-context.cpp:248 +#: ../src/widgets/sp-color-icc-selector.cpp:234 +#: ../src/widgets/sp-color-scales.cpp:403 +#: ../src/widgets/sp-color-scales.cpp:404 +msgid "Green" +msgstr "" + +#: ../src/filter-enums.cpp:104 ../src/flood-context.cpp:249 +#: ../src/widgets/sp-color-icc-selector.cpp:234 +#: ../src/widgets/sp-color-scales.cpp:406 +#: ../src/widgets/sp-color-scales.cpp:407 +msgid "Blue" +msgstr "" + +#: ../src/filter-enums.cpp:105 ../src/flood-context.cpp:253 +msgid "Alpha" +msgstr "" + +#: ../src/filter-enums.cpp:111 +msgid "Erode" +msgstr "" + +#: ../src/filter-enums.cpp:112 +msgid "Dilate" +msgstr "" + +#: ../src/filter-enums.cpp:118 +msgid "Fractal Noise" +msgstr "" + +#: ../src/filter-enums.cpp:125 +msgid "Distant Light" +msgstr "" + +#: ../src/filter-enums.cpp:126 +msgid "Point Light" +msgstr "" + +#: ../src/filter-enums.cpp:127 +msgid "Spot Light" +msgstr "" + +#: ../src/flood-context.cpp:246 +msgid "Visible Colors" +msgstr "" + +#: ../src/flood-context.cpp:252 ../src/widgets/sp-color-icc-selector.cpp:237 +#: ../src/widgets/sp-color-scales.cpp:432 +#: ../src/widgets/sp-color-scales.cpp:433 ../src/widgets/toolbox.cpp:4311 +#: ../share/extensions/color_randomize.inx.h:3 +msgid "Lightness" +msgstr "" + +#: ../src/flood-context.cpp:265 ../src/ui/dialog/inkscape-preferences.cpp:1072 +msgid "Small" +msgstr "" + +#: ../src/flood-context.cpp:266 +msgid "Medium" +msgstr "" + +#: ../src/flood-context.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1072 +msgid "Large" +msgstr "" + +#: ../src/flood-context.cpp:469 +msgid "Too much inset, the result is empty." +msgstr "" + +#: ../src/flood-context.cpp:509 +#, c-format +msgid "" +"Area filled, path with %d node created and unioned with selection." +msgid_plural "" +"Area filled, path with %d nodes created and unioned with selection." +msgstr[0] "" +msgstr[1] "" + +#: ../src/flood-context.cpp:513 +#, c-format +msgid "Area filled, path with %d node created." +msgid_plural "Area filled, path with %d nodes created." +msgstr[0] "" +msgstr[1] "" + +#: ../src/flood-context.cpp:785 ../src/flood-context.cpp:1099 +msgid "Area is not bounded, cannot fill." +msgstr "" + +#: ../src/flood-context.cpp:1104 +msgid "" +"Only the visible part of the bounded area was filled. If you want to " +"fill all of the area, undo, zoom out, and fill again." +msgstr "" + +#: ../src/flood-context.cpp:1122 ../src/flood-context.cpp:1282 +msgid "Fill bounded area" +msgstr "" + +#: ../src/flood-context.cpp:1142 +msgid "Set style on object" +msgstr "" + +#: ../src/flood-context.cpp:1201 +msgid "Draw over areas to add to fill, hold Alt for touch fill" +msgstr "" + +#: ../src/gradient-context.cpp:132 ../src/gradient-drag.cpp:75 +msgid "Linear gradient start" +msgstr "" + +#. POINT_LG_BEGIN +#: ../src/gradient-context.cpp:133 ../src/gradient-drag.cpp:76 +msgid "Linear gradient end" +msgstr "" + +#: ../src/gradient-context.cpp:134 ../src/gradient-drag.cpp:77 +msgid "Linear gradient mid stop" +msgstr "" + +#: ../src/gradient-context.cpp:135 ../src/gradient-drag.cpp:78 +msgid "Radial gradient center" +msgstr "" + +#: ../src/gradient-context.cpp:136 ../src/gradient-context.cpp:137 +#: ../src/gradient-drag.cpp:79 ../src/gradient-drag.cpp:80 +msgid "Radial gradient radius" +msgstr "" + +#: ../src/gradient-context.cpp:138 ../src/gradient-drag.cpp:81 +msgid "Radial gradient focus" +msgstr "" + +#. POINT_RG_FOCUS +#: ../src/gradient-context.cpp:139 ../src/gradient-context.cpp:140 +#: ../src/gradient-drag.cpp:82 ../src/gradient-drag.cpp:83 +msgid "Radial gradient mid stop" +msgstr "" + +#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message +#: ../src/gradient-context.cpp:165 +#, c-format +msgid "%s selected" +msgstr "" + +#. TRANSLATORS: Mind the space in front. This is part of a compound message +#: ../src/gradient-context.cpp:167 ../src/gradient-context.cpp:176 +#, 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:168 ../src/gradient-context.cpp:177 +#: ../src/gradient-context.cpp:184 +#, 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:174 +#, c-format +msgid "" +"One handle merging %d stop (drag with Shift to separate) selected" +msgid_plural "" +"One handle merging %d stops (drag with Shift to separate) selected" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) +#: ../src/gradient-context.cpp:182 +#, c-format +msgid "%d gradient handle selected out of %d" +msgid_plural "%d gradient handles selected out of %d" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: The plural refers to number of selected objects +#: ../src/gradient-context.cpp:189 +#, c-format +msgid "No gradient handles selected out of %d on %d selected object" +msgid_plural "" +"No gradient handles selected out of %d on %d selected objects" +msgstr[0] "" +msgstr[1] "" + +#: ../src/gradient-context.cpp:389 ../src/gradient-context.cpp:482 +#: ../src/widgets/gradient-vector.cpp:744 +msgid "Add gradient stop" +msgstr "" + +#: ../src/gradient-context.cpp:457 +msgid "Simplify gradient" +msgstr "" + +#: ../src/gradient-context.cpp:534 +msgid "Create default gradient" +msgstr "" + +#: ../src/gradient-context.cpp:588 +msgid "Draw around handles to select them" +msgstr "" + +#: ../src/gradient-context.cpp:686 +msgid "Ctrl: snap gradient angle" +msgstr "" + +#: ../src/gradient-context.cpp:687 +msgid "Shift: draw gradient around the starting point" +msgstr "" + +#: ../src/gradient-context.cpp:807 +msgid "Invert gradient" +msgstr "" + +#: ../src/gradient-context.cpp:924 +#, c-format +msgid "Gradient for %d object; with Ctrl to snap angle" +msgid_plural "Gradient for %d objects; with Ctrl to snap angle" +msgstr[0] "" +msgstr[1] "" + +#: ../src/gradient-context.cpp:928 +msgid "Select objects on which to create gradient." +msgstr "" + +#: ../src/gradient-drag.cpp:591 +msgid "Merge gradient handles" +msgstr "" + +#: ../src/gradient-drag.cpp:912 +msgid "Move gradient handle" +msgstr "" + +#: ../src/gradient-drag.cpp:965 ../src/widgets/gradient-vector.cpp:776 +msgid "Delete gradient stop" +msgstr "" + +#: ../src/gradient-drag.cpp:1129 +#, c-format +msgid "" +"%s %d for: %s%s; drag with Ctrl to snap offset; click with Ctrl" +"+Alt to delete stop" +msgstr "" + +#: ../src/gradient-drag.cpp:1133 ../src/gradient-drag.cpp:1140 +msgid " (stroke)" +msgstr "" + +#: ../src/gradient-drag.cpp:1137 +#, c-format +msgid "" +"%s for: %s%s; drag with Ctrl to snap angle, with Ctrl+Alt to " +"preserve angle, with Ctrl+Shift to scale around center" +msgstr "" + +#: ../src/gradient-drag.cpp:1145 +#, c-format +msgid "" +"Radial gradient center and focus; drag with Shift to " +"separate focus" +msgstr "" + +#: ../src/gradient-drag.cpp:1148 +#, c-format +msgid "" +"Gradient point shared by %d gradient; drag with Shift to " +"separate" +msgid_plural "" +"Gradient point shared by %d gradients; drag with Shift to " +"separate" +msgstr[0] "" +msgstr[1] "" + +#: ../src/gradient-drag.cpp:1823 +msgid "Move gradient handle(s)" +msgstr "" + +#: ../src/gradient-drag.cpp:1859 +msgid "Move gradient mid stop(s)" +msgstr "" + +#: ../src/gradient-drag.cpp:2147 +msgid "Delete gradient stop(s)" +msgstr "" + +#: ../src/helper/units.cpp:37 ../src/live_effects/lpe-ruler.cpp:43 +#: ../share/extensions/foldablebox.inx.h:8 +#: ../share/extensions/interp_att_g.inx.h:24 +#: ../share/extensions/printing-marks.inx.h:19 +msgid "Unit" +msgstr "" + +#. Add the units menu. +#: ../src/helper/units.cpp:37 ../src/widgets/select-toolbar.cpp:504 +#: ../src/widgets/toolbox.cpp:1504 ../src/widgets/toolbox.cpp:3156 +#: ../src/widgets/toolbox.cpp:5660 ../src/widgets/toolbox.cpp:7203 +msgid "Units" +msgstr "" + +#: ../src/helper/units.cpp:38 +msgid "Point" +msgstr "" + +#: ../src/helper/units.cpp:38 ../src/ui/widget/selected-style.cpp:293 +msgid "pt" +msgstr "" + +#: ../src/helper/units.cpp:38 ../share/extensions/perfectboundcover.inx.h:15 +msgid "Points" +msgstr "" + +#: ../src/helper/units.cpp:38 +msgid "Pt" +msgstr "" + +#: ../src/helper/units.cpp:39 +msgid "Pica" +msgstr "" + +#: ../src/helper/units.cpp:39 +msgid "pc" +msgstr "" + +#: ../src/helper/units.cpp:39 +msgid "Picas" +msgstr "" + +#: ../src/helper/units.cpp:39 +msgid "Pc" +msgstr "" + +#: ../src/helper/units.cpp:40 +msgid "Pixel" +msgstr "" + +#: ../src/helper/units.cpp:40 ../src/ui/dialog/inkscape-preferences.cpp:246 +#: ../src/ui/dialog/inkscape-preferences.cpp:250 +#: ../src/ui/dialog/inkscape-preferences.cpp:253 +#: ../src/ui/widget/selected-style.cpp:289 +msgid "px" +msgstr "" + +#: ../src/helper/units.cpp:40 +msgid "Pixels" +msgstr "" + +#: ../src/helper/units.cpp:40 +msgid "Px" +msgstr "" + +#. You can add new elements from this point forward +#: ../src/helper/units.cpp:42 ../share/extensions/straightseg.inx.h:3 +msgid "Percent" +msgstr "" + +#: ../src/helper/units.cpp:42 ../src/ui/dialog/inkscape-preferences.cpp:266 +msgid "%" +msgstr "" + +#: ../src/helper/units.cpp:42 +msgid "Percents" +msgstr "" + +#: ../src/helper/units.cpp:43 +msgid "Millimeter" +msgstr "" + +#: ../src/helper/units.cpp:43 ../src/ui/widget/selected-style.cpp:297 +msgid "mm" +msgstr "" + +#: ../src/helper/units.cpp:43 +msgid "Millimeters" +msgstr "" + +#: ../src/helper/units.cpp:44 +msgid "Centimeter" +msgstr "" + +#: ../src/helper/units.cpp:44 +msgid "cm" +msgstr "" + +#: ../src/helper/units.cpp:44 +msgid "Centimeters" +msgstr "" + +#: ../src/helper/units.cpp:45 +msgid "Meter" +msgstr "" + +#: ../src/helper/units.cpp:45 +msgid "m" +msgstr "" + +#: ../src/helper/units.cpp:45 +msgid "Meters" +msgstr "" + +#. no svg_unit +#: ../src/helper/units.cpp:46 +msgid "Inch" +msgstr "" + +#: ../src/helper/units.cpp:46 +msgid "in" +msgstr "" + +#: ../src/helper/units.cpp:46 +msgid "Inches" +msgstr "" + +#: ../src/helper/units.cpp:47 +msgid "Foot" +msgstr "" + +#: ../src/helper/units.cpp:47 +msgid "ft" +msgstr "" + +#: ../src/helper/units.cpp:47 +msgid "Feet" +msgstr "" + +#. 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 "" + +#: ../src/helper/units.cpp:50 +msgid "em" +msgstr "" + +#: ../src/helper/units.cpp:50 +msgid "Em squares" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/REC-CSS2/syndata.html#length-units +#: ../src/helper/units.cpp:52 +msgid "Ex square" +msgstr "" + +#: ../src/helper/units.cpp:52 +msgid "ex" +msgstr "" + +#: ../src/helper/units.cpp:52 +msgid "Ex squares" +msgstr "" + +#: ../src/inkscape.cpp:328 +msgid "Autosaving documents..." +msgstr "" + +#: ../src/inkscape.cpp:399 +msgid "Autosave failed! Could not find inkscape extension to save document." +msgstr "" + +#: ../src/inkscape.cpp:402 ../src/inkscape.cpp:409 +#, c-format +msgid "Autosave failed! File %s could not be saved." +msgstr "" + +#: ../src/inkscape.cpp:424 +msgid "Autosave complete." +msgstr "" + +#: ../src/inkscape.cpp:661 +msgid "Untitled document" +msgstr "" + +#. Show nice dialog box +#: ../src/inkscape.cpp:691 +msgid "Inkscape encountered an internal error and will close now.\n" +msgstr "" + +#: ../src/inkscape.cpp:692 +msgid "" +"Automatic backups of unsaved documents were done to the following " +"locations:\n" +msgstr "" + +#: ../src/inkscape.cpp:693 +msgid "Automatic backup of the following documents failed:\n" +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:868 +msgid "Commands Bar" +msgstr "" + +#: ../src/interface.cpp:868 +msgid "Show or hide the Commands bar (under the menu)" +msgstr "" + +#: ../src/interface.cpp:870 +msgid "Snap Controls Bar" +msgstr "" + +#: ../src/interface.cpp:870 +msgid "Show or hide the snapping controls" +msgstr "" + +#: ../src/interface.cpp:872 +msgid "Tool Controls Bar" +msgstr "" + +#: ../src/interface.cpp:872 +msgid "Show or hide the Tool Controls bar" +msgstr "" + +#: ../src/interface.cpp:874 +msgid "_Toolbox" +msgstr "" + +#: ../src/interface.cpp:874 +msgid "Show or hide the main toolbox (on the left)" +msgstr "" + +#: ../src/interface.cpp:880 +msgid "_Palette" +msgstr "" + +#: ../src/interface.cpp:880 +msgid "Show or hide the color palette" +msgstr "" + +#: ../src/interface.cpp:882 +msgid "_Statusbar" +msgstr "" + +#: ../src/interface.cpp:882 +msgid "Show or hide the statusbar (at the bottom of the window)" +msgstr "" + +#: ../src/interface.cpp:956 +#, c-format +msgid "Verb \"%s\" Unknown" +msgstr "" + +#: ../src/interface.cpp:995 +msgid "Open _Recent" +msgstr "" + +#. TRANSLATORS: #%s is the id of the group e.g. , not a number. +#: ../src/interface.cpp:1096 +#, c-format +msgid "Enter group #%s" +msgstr "" + +#: ../src/interface.cpp:1107 +msgid "Go to parent" +msgstr "" + +#: ../src/interface.cpp:1198 ../src/interface.cpp:1284 +#: ../src/interface.cpp:1387 ../src/ui/widget/selected-style.cpp:468 +msgid "Drop color" +msgstr "" + +#: ../src/interface.cpp:1237 ../src/interface.cpp:1347 +msgid "Drop color on gradient" +msgstr "" + +#: ../src/interface.cpp:1400 +msgid "Could not parse SVG data" +msgstr "" + +#: ../src/interface.cpp:1439 +msgid "Drop SVG" +msgstr "" + +#: ../src/interface.cpp:1495 +msgid "Drop bitmap image" +msgstr "" + +#: ../src/interface.cpp:1587 +#, c-format +msgid "" +"A file named \"%s\" already exists. Do " +"you want to replace it?\n" +"\n" +"The file already exists in \"%s\". Replacing it will overwrite its contents." +msgstr "" + +#: ../src/interface.cpp:1594 ../share/extensions/web-set-att.inx.h:5 +#: ../share/extensions/web-transmit-att.inx.h:5 +msgid "Replace" +msgstr "" + +#: ../src/io/sys.cpp:446 ../src/io/sys.cpp:454 +#, c-format +msgid "Failed to read from child pipe (%s)" +msgstr "" + +#: ../src/io/sys.cpp:478 +#, c-format +msgid "Failed to change to directory '%s' (%s)" +msgstr "" + +#: ../src/io/sys.cpp:484 ../src/io/sys.cpp:710 +#, c-format +msgid "Failed to execute child process (%s)" +msgstr "" + +#: ../src/io/sys.cpp:657 +#, c-format +msgid "Invalid program name: %s" +msgstr "" + +#: ../src/io/sys.cpp:667 ../src/io/sys.cpp:956 +#, c-format +msgid "Invalid string in argument vector at %d: %s" +msgstr "" + +#: ../src/io/sys.cpp:678 ../src/io/sys.cpp:971 +#, c-format +msgid "Invalid string in environment: %s" +msgstr "" + +#: ../src/io/sys.cpp:739 +#, c-format +msgid "Failed to create pipe for communicating with child process (%s)" +msgstr "" + +#: ../src/io/sys.cpp:952 +#, c-format +msgid "Invalid working directory: %s" +msgstr "" + +#: ../src/io/sys.cpp:1020 +#, c-format +msgid "Failed to execute helper program (%s)" +msgstr "" + +#: ../src/knot.cpp:431 +msgid "Node or handle drag canceled." +msgstr "" + +#: ../src/knotholder.cpp:135 +msgid "Change handle" +msgstr "" + +#: ../src/knotholder.cpp:214 +msgid "Move handle" +msgstr "" + +#. TRANSLATORS: This refers to the pattern that's inside the object +#: ../src/knotholder.cpp:235 +msgid "Move the pattern fill inside the object" +msgstr "" + +#: ../src/knotholder.cpp:238 +msgid "Scale the pattern fill; uniformly if with Ctrl" +msgstr "" + +#: ../src/knotholder.cpp:241 +msgid "Rotate the pattern fill; with Ctrl to snap angle" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:108 +msgid "Master" +msgstr "" + +#: ../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 +msgid "Dockbar style" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:117 +msgid "Dockbar style to show items on it" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:175 ../src/ui/dialog/inkscape-preferences.cpp:549 +#: ../src/ui/dialog/inkscape-preferences.cpp:570 +msgid "Floating" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:176 +msgid "Whether the dock is floating in its own window" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:183 ../src/libgdl/gdl-dock-master.c:144 +msgid "Default title" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:184 +msgid "Default title for the newly created floating docks" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:191 +msgid "Width for the dock when it's of floating type" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:199 +msgid "Height for the dock when it's of floating type" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:206 +msgid "Float X" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:207 +msgid "X coordinate for a floating dock" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:214 +msgid "Float Y" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:215 +msgid "Y coordinate for a floating dock" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:499 +#, c-format +msgid "Dock #%d" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:287 +msgid "Orientation" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:288 +msgid "Orientation of the docking item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:303 +msgid "Resizable" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:304 +msgid "If set, the dock item can be resized when docked in a panel" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:311 +msgid "Item behavior" +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 "" + +#: ../src/libgdl/gdl-dock-item.c:320 ../src/libgdl/gdl-dock-master.c:151 +msgid "Locked" +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 "" + +#: ../src/libgdl/gdl-dock-item.c:329 +msgid "Preferred width" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:330 +msgid "Preferred width for the dock item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:336 +msgid "Preferred height" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:337 +msgid "Preferred height for the dock item" +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." +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 "" + +#: ../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 +msgid "UnLock" +msgstr "" + +#. Hide menuitem. +#: ../src/libgdl/gdl-dock-item.c:1486 +msgid "Hide" +msgstr "" + +#. Lock menuitem +#: ../src/libgdl/gdl-dock-item.c:1491 +msgid "Lock" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:1717 +#, c-format +msgid "Attempt to bind an unbound item %p" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:395 +msgid "Iconify" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:395 +msgid "Iconify this dock" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:397 +msgid "Close" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:397 +msgid "Close this dock" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:706 +#: ../src/libgdl/gdl-dock-tablabel.c:128 +msgid "Controlling dock item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:707 +msgid "Dockitem which 'owns' this grip" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:145 +msgid "Default title for newly created floating docks" +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 "" + +#: ../src/libgdl/gdl-dock-master.c:160 ../src/libgdl/gdl-switcher.c:706 +msgid "Switcher Style" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:161 ../src/libgdl/gdl-switcher.c:707 +msgid "Switcher buttons style" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:168 +msgid "Expand direction" +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 "" + +#: ../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 "" + +#: ../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 "" + +#: ../src/libgdl/gdl-dock-notebook.c:134 +#: ../src/ui/dialog/align-and-distribute.cpp:919 +#: ../src/ui/dialog/document-properties.cpp:118 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1410 +#: ../src/widgets/desktop-widget.cpp:1572 +msgid "Page" +msgstr "" + +#: ../src/libgdl/gdl-dock-notebook.c:135 +msgid "The index of the current page" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:120 ../src/ui/widget/page-sizer.cpp:237 +msgid "Name" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:121 +msgid "Unique name for identifying the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:128 +msgid "Long name" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:129 +msgid "Human readable name for the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:135 +msgid "Stock Icon" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:136 +msgid "Stock icon for the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:142 +msgid "Pixbuf Icon" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:143 +msgid "Pixbuf icon for the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:148 +msgid "Dock master" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:149 +msgid "Dock master this dock object is bound to" +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" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:563 +#, c-format +msgid "" +"Dock operation requested in a non-bound object %p. The application might " +"crash" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:570 +#, c-format +msgid "Cannot dock %p to %p because they belong to different masters" +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)" +msgstr "" + +#: ../src/libgdl/gdl-dock-paned.c:132 +msgid "Position" +msgstr "" + +#: ../src/libgdl/gdl-dock-paned.c:133 +msgid "Position of the divider in pixels" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:143 +msgid "Sticky" +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" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:151 +msgid "Host" +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 +msgid "Next placement" +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 "" + +#: ../src/libgdl/gdl-dock-placeholder.c:170 +msgid "Width for the widget when it's attached to the placeholder" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:178 +msgid "Height for the widget when it's attached to the placeholder" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:184 +msgid "Floating Toplevel" +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 +msgid "X-Coordinate" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:192 +msgid "X coordinate for dock when floating" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:198 +msgid "Y-Coordinate" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:199 +msgid "Y coordinate for dock when floating" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:494 +msgid "Attempt to dock a dock object to an unbound placeholder" +msgstr "" + +#: ../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 "" + +#: ../src/libgdl/gdl-dock-placeholder.c:643 +#, c-format +msgid "" +"Something weird happened while getting the child placement for %p from " +"parent %p" +msgstr "" + +#: ../src/libgdl/gdl-dock-tablabel.c:129 +msgid "Dockitem which 'owns' this tablabel" +msgstr "" + +#: ../src/libnrtype/FontFactory.cpp:806 +msgid "Ignoring font without family that will crash Pango" +msgstr "" + +#: ../src/live_effects/effect.cpp:88 +msgid "doEffect stack test" +msgstr "" + +#: ../src/live_effects/effect.cpp:89 +msgid "Angle bisector" +msgstr "" + +#. TRANSLATORS: boolean operations +#: ../src/live_effects/effect.cpp:91 +msgid "Boolops" +msgstr "" + +#: ../src/live_effects/effect.cpp:92 +msgid "Circle (by center and radius)" +msgstr "" + +#: ../src/live_effects/effect.cpp:93 +msgid "Circle by 3 points" +msgstr "" + +#: ../src/live_effects/effect.cpp:94 +msgid "Dynamic stroke" +msgstr "" + +#: ../src/live_effects/effect.cpp:95 ../share/extensions/extrude.inx.h:1 +msgid "Extrude" +msgstr "" + +#: ../src/live_effects/effect.cpp:96 +msgid "Lattice Deformation" +msgstr "" + +#: ../src/live_effects/effect.cpp:97 +msgid "Line Segment" +msgstr "" + +#: ../src/live_effects/effect.cpp:98 +msgid "Mirror symmetry" +msgstr "" + +#: ../src/live_effects/effect.cpp:100 +msgid "Parallel" +msgstr "" + +#: ../src/live_effects/effect.cpp:101 +msgid "Path length" +msgstr "" + +#: ../src/live_effects/effect.cpp:102 +msgid "Perpendicular bisector" +msgstr "" + +#: ../src/live_effects/effect.cpp:103 +msgid "Perspective path" +msgstr "" + +#: ../src/live_effects/effect.cpp:104 +msgid "Rotate copies" +msgstr "" + +#: ../src/live_effects/effect.cpp:105 +msgid "Recursive skeleton" +msgstr "" + +#: ../src/live_effects/effect.cpp:106 +msgid "Tangent to curve" +msgstr "" + +#: ../src/live_effects/effect.cpp:107 +msgid "Text label" +msgstr "" + +#. 0.46 +#: ../src/live_effects/effect.cpp:110 +msgid "Bend" +msgstr "" + +#: ../src/live_effects/effect.cpp:111 +msgid "Gears" +msgstr "" + +#: ../src/live_effects/effect.cpp:112 +msgid "Pattern Along Path" +msgstr "" + +#. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG +#: ../src/live_effects/effect.cpp:113 +msgid "Stitch Sub-Paths" +msgstr "" + +#. 0.47 +#: ../src/live_effects/effect.cpp:115 +msgid "VonKoch" +msgstr "" + +#: ../src/live_effects/effect.cpp:116 +msgid "Knot" +msgstr "" + +#: ../src/live_effects/effect.cpp:117 +msgid "Construct grid" +msgstr "" + +#: ../src/live_effects/effect.cpp:118 +msgid "Spiro spline" +msgstr "" + +#: ../src/live_effects/effect.cpp:119 +msgid "Envelope Deformation" +msgstr "" + +#: ../src/live_effects/effect.cpp:120 +msgid "Interpolate Sub-Paths" +msgstr "" + +#: ../src/live_effects/effect.cpp:121 +msgid "Hatches (rough)" +msgstr "" + +#: ../src/live_effects/effect.cpp:122 +msgid "Sketch" +msgstr "" + +#: ../src/live_effects/effect.cpp:123 +msgid "Ruler" +msgstr "" + +#: ../src/live_effects/effect.cpp:279 +msgid "Is visible?" +msgstr "" + +#: ../src/live_effects/effect.cpp:279 +msgid "" +"If unchecked, the effect remains applied to the object but is temporarily " +"disabled on canvas" +msgstr "" + +#: ../src/live_effects/effect.cpp:300 +msgid "No effect" +msgstr "" + +#: ../src/live_effects/effect.cpp:347 +#, c-format +msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" +msgstr "" + +#: ../src/live_effects/effect.cpp:645 +#, c-format +msgid "Editing parameter %s." +msgstr "" + +#: ../src/live_effects/effect.cpp:650 +msgid "None of the applied path effect's parameters can be edited on-canvas." +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:55 +msgid "Bend path" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:55 +msgid "Path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:56 +msgid "Width of the path" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:57 +#: ../src/live_effects/lpe-patternalongpath.cpp:65 +msgid "Width in units of length" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:57 +msgid "Scale the width of the path in units of its length" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:58 +msgid "Original path is vertical" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:58 +msgid "Rotates the original 90 degrees, before bending it along the bend path" +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:28 +msgid "Size X" +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:28 +msgid "The size of the grid in X direction." +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:29 +msgid "Size Y" +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:29 +msgid "The size of the grid in Y direction." +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:42 +msgid "Stitch path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:42 +msgid "The path that will be used as stitch." +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:43 +msgid "Number of paths" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:43 +msgid "The number of paths that will be generated." +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:44 +msgid "Start edge variance" +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" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:45 +msgid "Start spacing variance" +msgstr "" + +#: ../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 "" + +#: ../src/live_effects/lpe-curvestitch.cpp:46 +msgid "End edge variance" +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" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:47 +msgid "End spacing variance" +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" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:48 +msgid "Scale width" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:48 +msgid "Scale the width of the stitch path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:49 +msgid "Scale width relative to length" +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:33 +msgid "Top bend path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:33 +msgid "Top path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:34 +msgid "Right bend path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:34 +msgid "Right path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:35 +msgid "Bottom bend path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:35 +msgid "Bottom path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:36 +msgid "Left bend path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:36 +msgid "Left path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:37 +msgid "Enable left & right paths" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:37 +msgid "Enable the left and right deformation paths" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:38 +msgid "Enable top & bottom paths" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:38 +msgid "Enable the top and bottom deformation paths" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:212 +msgid "Teeth" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:212 +msgid "The number of teeth" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:213 +msgid "Phi" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:213 +msgid "" +"Tooth pressure angle (typically 20-25 deg). The ratio of teeth not in " +"contact." +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:30 +msgid "Trajectory" +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:30 +msgid "Path along which intermediate steps are created." +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:31 +#: ../src/ui/dialog/inkscape-preferences.cpp:242 +msgid "Steps" +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:31 +msgid "Determines the number of steps from start to end path." +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:32 +msgid "Equidistant spacing" +msgstr "" + +#: ../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 "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-knot.cpp:329 +msgid "Fixed width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:329 +msgid "Size of hidden region of lower string" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:330 +msgid "In units of stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:330 +msgid "Consider 'Interruption width' as a ratio of stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:331 ../src/widgets/stroke-style.cpp:1093 +#: ../share/extensions/edge3d.inx.h:9 +msgid "Stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:331 +msgid "Add the stroke width to the interruption size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:332 +msgid "Crossing path stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:332 +msgid "Add crossed stroke width to the interruption size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:333 +msgid "Switcher size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:333 +msgid "Orientation indicator/switcher size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:334 +msgid "Crossing Signs" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:334 +msgid "Crossings signs" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:345 +msgid "Drag to select a crossing, click to flip it" +msgstr "" + +#. / @todo Is this the right verb? +#: ../src/live_effects/lpe-knot.cpp:638 +msgid "Change knot crossing" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:52 +#: ../share/extensions/pathalongpath.inx.h:11 +msgid "Single" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:53 +#: ../share/extensions/pathalongpath.inx.h:12 +msgid "Single, stretched" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:54 +#: ../share/extensions/pathalongpath.inx.h:8 +msgid "Repeated" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:55 +#: ../share/extensions/pathalongpath.inx.h:9 +msgid "Repeated, stretched" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:61 +msgid "Pattern source" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:61 +msgid "Path to put along the skeleton path" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:62 +msgid "Pattern copies" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:62 +msgid "How many pattern copies to place along the skeleton path" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:64 +msgid "Width of the pattern" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:66 +msgid "Scale the width of the pattern in units of its length" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:68 +msgid "Spacing" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:70 +#, no-c-format +msgid "" +"Space between copies of the pattern. Negative values allowed, but are " +"limited to -90% of pattern width." +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:72 +#: ../share/extensions/pathalongpath.inx.h:5 +#: ../share/extensions/pathscatter.inx.h:7 +msgid "Normal offset" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:73 +#: ../share/extensions/pathalongpath.inx.h:15 +#: ../share/extensions/pathscatter.inx.h:13 +msgid "Tangential offset" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:74 +msgid "Offsets in unit of pattern size" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:75 +msgid "" +"Spacing, tangential and normal offset are expressed as a ratio of width/" +"height" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:77 +#: ../share/extensions/pathalongpath.inx.h:7 +#: ../share/extensions/pathscatter.inx.h:9 +msgid "Pattern is vertical" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:77 +msgid "Rotate pattern 90 deg before applying" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:79 +msgid "Fuse nearby ends" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:79 +msgid "Fuse ends closer than this number. 0 means don't fuse." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:226 +msgid "Frequency randomness" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:226 +msgid "Variation of distance between hatches, in %." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:227 +msgid "Growth" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:227 +msgid "Growth of distance between hatches." +msgstr "" + +#. FIXME: top/bottom names are inverted in the UI/svg and in the code!! +#: ../src/live_effects/lpe-rough-hatches.cpp:229 +msgid "Half-turns smoothness: 1st side, in" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:229 +msgid "" +"Set smoothness/sharpness of path when reaching a 'bottom' half-turn. " +"0=sharp, 1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:230 +msgid "1st side, out" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:230 +msgid "" +"Set smoothness/sharpness of path when leaving a 'bottom' half-turn. 0=sharp, " +"1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:231 +msgid "2nd side, in" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:231 +msgid "" +"Set smoothness/sharpness of path when reaching a 'top' half-turn. 0=sharp, " +"1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:232 +msgid "2nd side, out" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:232 +msgid "" +"Set smoothness/sharpness of path when leaving a 'top' half-turn. 0=sharp, " +"1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:233 +msgid "Magnitude jitter: 1st side" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:233 +msgid "Randomly moves 'bottom' half-turns to produce magnitude variations." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:234 +#: ../src/live_effects/lpe-rough-hatches.cpp:236 +#: ../src/live_effects/lpe-rough-hatches.cpp:238 +msgid "2nd side" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:234 +msgid "Randomly moves 'top' half-turns to produce magnitude variations." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:235 +msgid "Parallelism jitter: 1st side" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:235 +msgid "" +"Add direction randomness by moving 'bottom' half-turns tangentially to the " +"boundary." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:236 +msgid "" +"Add direction randomness by randomly moving 'top' half-turns tangentially to " +"the boundary." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:237 +msgid "Variance: 1st side" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:237 +msgid "Randomness of 'bottom' half-turns smoothness" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:238 +msgid "Randomness of 'top' half-turns smoothness" +msgstr "" + +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:240 +msgid "Generate thick/thin path" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:240 +msgid "Simulate a stroke of varying width" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:241 +msgid "Bend hatches" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:241 +msgid "Add a global bend to the hatches (slower)" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:242 +msgid "Thickness: at 1st side" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:242 +msgid "Width at 'bottom' half-turns" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:243 +msgid "at 2nd side" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:243 +msgid "Width at 'top' half-turns" +msgstr "" + +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:245 +msgid "from 2nd to 1st side" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:245 +msgid "Width from 'top' to 'bottom'" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:246 +msgid "from 1st to 2nd side" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:246 +msgid "Width from 'bottom' to 'top'" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:248 +msgid "Hatches width and dir" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:248 +msgid "Defines hatches frequency and direction" +msgstr "" + +#. +#. bender(_("Global bending"), _("Relative position to a reference point defines global bending direction and amount"), "bender", &wr, this, NULL, Geom::Point(-5,0)), +#: ../src/live_effects/lpe-rough-hatches.cpp:251 +msgid "Global bending" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:251 +msgid "" +"Relative position to a reference point defines global bending direction and " +"amount" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:27 ../share/extensions/restack.inx.h:7 +msgid "Left" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:28 ../share/extensions/restack.inx.h:14 +msgid "Right" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:29 ../src/live_effects/lpe-ruler.cpp:37 +msgid "Both" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:35 ../src/widgets/toolbox.cpp:5168 +msgid "Start" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:36 ../src/widgets/toolbox.cpp:5181 +msgid "End" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:44 +msgid "Mark distance" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:44 +msgid "Distance between successive ruler marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:45 +msgid "Major length" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:45 +msgid "Length of major ruler marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:46 +msgid "Minor length" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:46 +msgid "Length of minor ruler marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:47 +msgid "Major steps" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:47 +msgid "Draw a major mark every ... steps" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:48 +msgid "Shift marks by" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:48 +msgid "Shift marks by this many steps" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:49 +msgid "Mark direction" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:49 +msgid "Direction of marks (when viewing along the path from start to end)" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:50 +msgid "Offset of first mark" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:51 +msgid "Border marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:51 +msgid "Choose whether to draw marks at the beginning and end of the path" +msgstr "" + +#. 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 "" + +#: ../src/live_effects/lpe-sketch.cpp:35 +msgid "Draw that many approximating strokes" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:36 +msgid "Max stroke length" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:37 +msgid "Maximum length of approximating strokes" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:38 +msgid "Stroke length variation" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:39 +msgid "Random variation of stroke length (relative to maximum length)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:40 +msgid "Max. overlap" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:41 +msgid "How much successive strokes should overlap (relative to maximum length)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:42 +msgid "Overlap variation" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:43 +msgid "Random variation of overlap (relative to maximum overlap)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:44 +msgid "Max. end tolerance" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:45 +msgid "" +"Maximum distance between ends of original and approximating paths (relative " +"to maximum length)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:46 +msgid "Average offset" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:47 +msgid "Average distance each stroke is away from the original path" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:48 +msgid "Max. tremble" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:49 +msgid "Maximum tremble magnitude" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:50 +msgid "Tremble frequency" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:51 +msgid "Average number of tremble periods in a stroke" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:53 +msgid "Construction lines" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:54 +msgid "How many construction lines (tangents) to draw" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:55 ../src/selection-chemistry.cpp:1516 +#: ../src/seltrans.cpp:531 ../src/ui/dialog/transformation.cpp:738 +#: ../share/extensions/interp_att_g.inx.h:16 +#: ../share/extensions/render_alphabetsoup.inx.h:4 +msgid "Scale" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:56 +msgid "" +"Scale factor relating curvature and length of construction lines (try " +"5*offset)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:57 +msgid "Max. length" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:57 +msgid "Maximum length of construction lines" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:58 +msgid "Length variation" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:58 +msgid "Random variation of the length of construction lines" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:59 +msgid "Placement randomness" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:59 +msgid "0: evenly distributed construction lines, 1: purely random placement" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:61 +msgid "k_min" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:61 +msgid "min curvature" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:62 +msgid "k_max" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:62 +msgid "max curvature" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:47 +msgid "Nb of generations" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:47 +msgid "Depth of the recursion --- keep low!!" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:48 +msgid "Generating path" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:48 +msgid "Path whose segments define the iterated transforms" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:49 +msgid "Use uniform transforms only" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:49 +msgid "" +"2 consecutive segments are used to reverse/preserve orientation only " +"(otherwise, they define a general transform)." +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:50 +msgid "Draw all generations" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:50 +msgid "If unchecked, draw only the last generation" +msgstr "" + +#. ,draw_boxes(_("Display boxes"), _("Display boxes instead of paths only"), "draw_boxes", &wr, this, true) +#: ../src/live_effects/lpe-vonkoch.cpp:52 +msgid "Reference segment" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:52 +msgid "The reference segment. Defaults to the horizontal midline of the bbox." +msgstr "" + +#. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this), +#. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this), +#. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug. +#: ../src/live_effects/lpe-vonkoch.cpp:56 +msgid "Max complexity" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:56 +msgid "Disable effect if the output is too complex" +msgstr "" + +#: ../src/live_effects/parameter/bool.cpp:69 +msgid "Change bool parameter" +msgstr "" + +#: ../src/live_effects/parameter/enum.h:50 +msgid "Change enumeration parameter" +msgstr "" + +#: ../src/live_effects/parameter/parameter.cpp:139 +msgid "Change scalar parameter" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:158 +msgid "Edit on-canvas" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:168 +msgid "Copy path" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:178 +msgid "Paste path" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:188 +msgid "Link to path" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:409 +msgid "Paste path parameter" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:441 +msgid "Link path parameter to path" +msgstr "" + +#: ../src/live_effects/parameter/point.cpp:91 +msgid "Change point parameter" +msgstr "" + +#: ../src/live_effects/parameter/random.cpp:137 +msgid "Change random parameter" +msgstr "" + +#: ../src/live_effects/parameter/text.cpp:101 +msgid "Change text parameter" +msgstr "" + +#: ../src/live_effects/parameter/unit.cpp:77 +msgid "Change unit parameter" +msgstr "" + +#: ../src/main-cmdlineact.cpp:49 +#, c-format +msgid "Unable to find verb ID '%s' specified on the command line.\n" +msgstr "" + +#: ../src/main-cmdlineact.cpp:61 +#, c-format +msgid "Unable to find node ID: '%s'\n" +msgstr "" + +#: ../src/main.cpp:265 +msgid "Print the Inkscape version number" +msgstr "" + +#: ../src/main.cpp:270 +msgid "Do not use X server (only process files from console)" +msgstr "" + +#: ../src/main.cpp:275 +msgid "Try to use X server (even if $DISPLAY is not set)" +msgstr "" + +#: ../src/main.cpp:280 +msgid "Open specified document(s) (option string may be excluded)" +msgstr "" + +#: ../src/main.cpp:281 ../src/main.cpp:286 ../src/main.cpp:291 +#: ../src/main.cpp:358 ../src/main.cpp:363 ../src/main.cpp:368 +#: ../src/main.cpp:373 ../src/main.cpp:379 +msgid "FILENAME" +msgstr "" + +#: ../src/main.cpp:285 +msgid "Print document(s) to specified output file (use '| program' for pipe)" +msgstr "" + +#: ../src/main.cpp:290 +msgid "Export document to a PNG file" +msgstr "" + +#: ../src/main.cpp:295 +msgid "" +"Resolution for exporting to bitmap and for rasterization of filters in PS/" +"EPS/PDF (default 90)" +msgstr "" + +#: ../src/main.cpp:296 ../src/ui/widget/rendering-options.cpp:43 +msgid "DPI" +msgstr "" + +#: ../src/main.cpp:300 +msgid "" +"Exported area in SVG user units (default is the page; 0,0 is lower-left " +"corner)" +msgstr "" + +#: ../src/main.cpp:301 +msgid "x0:y0:x1:y1" +msgstr "" + +#: ../src/main.cpp:305 +msgid "Exported area is the entire drawing (not page)" +msgstr "" + +#: ../src/main.cpp:310 +msgid "Exported area is the entire page" +msgstr "" + +#: ../src/main.cpp:315 +msgid "" +"Snap the bitmap export area outwards to the nearest integer values (in SVG " +"user units)" +msgstr "" + +#: ../src/main.cpp:320 +msgid "The width of exported bitmap in pixels (overrides export-dpi)" +msgstr "" + +#: ../src/main.cpp:321 +msgid "WIDTH" +msgstr "" + +#: ../src/main.cpp:325 +msgid "The height of exported bitmap in pixels (overrides export-dpi)" +msgstr "" + +#: ../src/main.cpp:326 +msgid "HEIGHT" +msgstr "" + +#: ../src/main.cpp:330 +msgid "The ID of the object to export" +msgstr "" + +#: ../src/main.cpp:331 ../src/main.cpp:424 +msgid "ID" +msgstr "" + +#. TRANSLATORS: this means: "Only export the object whose id is given in --export-id". +#. See "man inkscape" for details. +#: ../src/main.cpp:337 +msgid "" +"Export just the object with export-id, hide all others (only with export-id)" +msgstr "" + +#: ../src/main.cpp:342 +msgid "Use stored filename and DPI hints when exporting (only with export-id)" +msgstr "" + +#: ../src/main.cpp:347 +msgid "Background color of exported bitmap (any SVG-supported color string)" +msgstr "" + +#: ../src/main.cpp:348 +msgid "COLOR" +msgstr "" + +#: ../src/main.cpp:352 +msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" +msgstr "" + +#: ../src/main.cpp:353 +msgid "VALUE" +msgstr "" + +#: ../src/main.cpp:357 +msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" +msgstr "" + +#: ../src/main.cpp:362 +msgid "Export document to a PS file" +msgstr "" + +#: ../src/main.cpp:367 +msgid "Export document to an EPS file" +msgstr "" + +#: ../src/main.cpp:372 +msgid "Export document to a PDF file" +msgstr "" + +#: ../src/main.cpp:378 +msgid "Export document to an Enhanced Metafile (EMF) File" +msgstr "" + +#: ../src/main.cpp:384 +msgid "Convert text object to paths on export (PS, EPS, PDF)" +msgstr "" + +#: ../src/main.cpp:389 +msgid "" +"Render filtered objects without filters, instead of rasterizing (PS, EPS, " +"PDF)" +msgstr "" + +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:395 +msgid "" +"Query the X coordinate of the drawing or, if specified, of the object with --" +"query-id" +msgstr "" + +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:401 +msgid "" +"Query the Y coordinate of the drawing or, if specified, of the object with --" +"query-id" +msgstr "" + +#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:407 +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:413 +msgid "" +"Query the height of the drawing or, if specified, of the object with --query-" +"id" +msgstr "" + +#: ../src/main.cpp:418 +msgid "List id,x,y,w,h for all objects" +msgstr "" + +#: ../src/main.cpp:423 +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:429 +msgid "Print out the extension directory and exit" +msgstr "" + +#: ../src/main.cpp:434 +msgid "Remove unused definitions from the defs section(s) of the document" +msgstr "" + +#: ../src/main.cpp:439 +msgid "List the IDs of all the verbs in Inkscape" +msgstr "" + +#: ../src/main.cpp:444 +msgid "Verb to call when Inkscape opens." +msgstr "" + +#: ../src/main.cpp:445 +msgid "VERB-ID" +msgstr "" + +#: ../src/main.cpp:449 +msgid "Object ID to select when Inkscape opens." +msgstr "" + +#: ../src/main.cpp:450 +msgid "OBJECT-ID" +msgstr "" + +#: ../src/main.cpp:454 +msgid "Start Inkscape in interactive shell mode." +msgstr "" + +#: ../src/main.cpp:762 ../src/main.cpp:1088 +msgid "" +"[OPTIONS...] [FILE...]\n" +"\n" +"Available options:" +msgstr "" + +#. ## Add a menu for clear() +#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:74 +#: ../src/ui/dialog/messages.cpp:52 ../src/ui/dialog/scriptdialog.cpp:208 +msgid "_File" +msgstr "" + +#: ../src/menus-skeleton.h:17 +msgid "_New" +msgstr "" + +#. TODO look at some dynamic option for changing the menu tree: +#. " \n" +#: ../src/menus-skeleton.h:49 ../src/verbs.cpp:2488 ../src/verbs.cpp:2494 +msgid "_Edit" +msgstr "" + +#: ../src/menus-skeleton.h:59 ../src/verbs.cpp:2288 +msgid "Paste Si_ze" +msgstr "" + +#: ../src/menus-skeleton.h:71 +msgid "Clo_ne" +msgstr "" + +#: ../src/menus-skeleton.h:91 +msgid "_View" +msgstr "" + +#: ../src/menus-skeleton.h:92 +msgid "_Zoom" +msgstr "" + +#: ../src/menus-skeleton.h:108 +msgid "_Display mode" +msgstr "" + +#: ../src/menus-skeleton.h:120 +msgid "Show/Hide" +msgstr "" + +#. " \n" +#. Not quite ready to be in the menus. +#. " \n" +#: ../src/menus-skeleton.h:139 +msgid "_Layer" +msgstr "" + +#: ../src/menus-skeleton.h:159 +msgid "_Object" +msgstr "" + +#: ../src/menus-skeleton.h:166 +msgid "Cli_p" +msgstr "" + +#: ../src/menus-skeleton.h:170 +msgid "Mas_k" +msgstr "" + +#: ../src/menus-skeleton.h:174 +msgid "Patter_n" +msgstr "" + +#: ../src/menus-skeleton.h:198 +msgid "_Path" +msgstr "" + +#: ../src/menus-skeleton.h:225 +msgid "_Text" +msgstr "" + +#: ../src/menus-skeleton.h:244 +msgid "Filter_s" +msgstr "" + +#: ../src/menus-skeleton.h:250 +msgid "Exte_nsions" +msgstr "" + +#: ../src/menus-skeleton.h:257 +msgid "Whiteboa_rd" +msgstr "" + +#: ../src/menus-skeleton.h:261 +msgid "_Help" +msgstr "" + +#: ../src/menus-skeleton.h:265 +msgid "Tutorials" +msgstr "" + +#: ../src/node-context.cpp:228 +msgid "" +"Ctrl: toggle node type, snap handle angle, move hor/vert; Ctrl" +"+Alt: move along handles" +msgstr "" + +#: ../src/node-context.cpp:229 +msgid "" +"Shift: toggle node selection, disable snapping, rotate both handles" +msgstr "" + +#: ../src/node-context.cpp:230 +msgid "Alt: lock handle length; Ctrl+Alt: move along handles" +msgstr "" + +#: ../src/nodepath.cpp:755 ../src/seltrans.cpp:624 +msgid "Stamp" +msgstr "" + +#: ../src/nodepath.cpp:1671 ../src/nodepath.cpp:1697 +msgid "Move nodes vertically" +msgstr "" + +#: ../src/nodepath.cpp:1673 ../src/nodepath.cpp:1699 +msgid "Move nodes horizontally" +msgstr "" + +#: ../src/nodepath.cpp:1675 ../src/nodepath.cpp:1701 ../src/nodepath.cpp:1716 +#: ../src/nodepath.cpp:3625 +msgid "Move nodes" +msgstr "" + +#: ../src/nodepath.cpp:1754 +msgid "" +"Node handle: drag to shape the curve; with Ctrl to snap angle; " +"with Alt to lock length; with Shift to rotate both handles" +msgstr "" + +#: ../src/nodepath.cpp:1924 +msgid "Align nodes" +msgstr "" + +#: ../src/nodepath.cpp:1986 +msgid "Distribute nodes" +msgstr "" + +#: ../src/nodepath.cpp:2024 +msgid "Add nodes" +msgstr "" + +#: ../src/nodepath.cpp:2026 ../src/nodepath.cpp:2128 +msgid "Add node" +msgstr "" + +#: ../src/nodepath.cpp:2220 +msgid "Break path" +msgstr "" + +#: ../src/nodepath.cpp:2276 +msgid "Close subpath" +msgstr "" + +#: ../src/nodepath.cpp:2337 +msgid "Join nodes" +msgstr "" + +#: ../src/nodepath.cpp:2364 +msgid "Close subpath by segment" +msgstr "" + +#: ../src/nodepath.cpp:2418 +msgid "Join nodes by segment" +msgstr "" + +#: ../src/nodepath.cpp:2431 ../src/nodepath.cpp:2446 +msgid "To join, you must have two endnodes selected." +msgstr "" + +#: ../src/nodepath.cpp:2603 ../src/nodepath.cpp:2639 ../src/nodepath.cpp:2643 +msgid "Delete nodes" +msgstr "" + +#: ../src/nodepath.cpp:2605 +msgid "Delete nodes preserving shape" +msgstr "" + +#: ../src/nodepath.cpp:2662 ../src/nodepath.cpp:2676 +msgid "" +"Select two non-endpoint nodes on a path between which to delete " +"segments." +msgstr "" + +#: ../src/nodepath.cpp:2772 +msgid "Cannot find path between nodes." +msgstr "" + +#: ../src/nodepath.cpp:2804 ../src/widgets/toolbox.cpp:1343 +msgid "Delete segment" +msgstr "" + +#: ../src/nodepath.cpp:2825 +msgid "Change segment type" +msgstr "" + +#: ../src/nodepath.cpp:2842 ../src/nodepath.cpp:3579 +msgid "Change node type" +msgstr "" + +#: ../src/nodepath.cpp:3529 ../src/widgets/toolbox.cpp:1300 +msgid "Delete node" +msgstr "" + +#: ../src/nodepath.cpp:3871 +msgid "Retract handle" +msgstr "" + +#: ../src/nodepath.cpp:3926 +msgid "Move node handle" +msgstr "" + +#: ../src/nodepath.cpp:4111 +#, c-format +msgid "" +"Node handle: angle %0.2f°, length %s; with Ctrl to snap " +"angle; with Alt to lock length; with Shift to rotate both " +"handles" +msgstr "" + +#: ../src/nodepath.cpp:4305 +msgid "Rotate nodes" +msgstr "" + +#: ../src/nodepath.cpp:4420 +msgid "Cannot scale nodes when all are at the same location." +msgstr "" + +#: ../src/nodepath.cpp:4446 +msgid "Scale nodes" +msgstr "" + +#: ../src/nodepath.cpp:4490 +msgid "Flip nodes" +msgstr "" + +#: ../src/nodepath.cpp:4659 +msgid "" +"Node: drag to edit the path; with Ctrl to snap to horizontal/" +"vertical; with Ctrl+Alt to snap to handles' directions" +msgstr "" + +#. TRANSLATORS: "end" is an adjective here (NOT a verb) +#: ../src/nodepath.cpp:4892 +msgid "end node" +msgstr "" + +#. TRANSLATORS: "cusp" means "sharp" (cusp node); see also the Advanced Tutorial +#: ../src/nodepath.cpp:4897 +msgid "cusp" +msgstr "" + +#. TRANSLATORS: "smooth" is an adjective here +#: ../src/nodepath.cpp:4900 +msgid "smooth" +msgstr "" + +#: ../src/nodepath.cpp:4902 +msgid "auto" +msgstr "" + +#: ../src/nodepath.cpp:4904 +msgid "symmetric" +msgstr "" + +#. TRANSLATORS: "end" is an adjective here (NOT a verb) +#: ../src/nodepath.cpp:4910 +msgid "end node, handle retracted (drag with Shift to extend)" +msgstr "" + +#: ../src/nodepath.cpp:4912 +msgid "one handle retracted (drag with Shift to extend)" +msgstr "" + +#: ../src/nodepath.cpp:4915 +msgid "both handles retracted (drag with Shift to extend)" +msgstr "" + +#: ../src/nodepath.cpp:4927 +msgid "" +"Drag nodes or node handles; Alt+drag nodes to sculpt; " +"arrow keys to move nodes, < > to scale, [ ] to " +"rotate" +msgstr "" + +#: ../src/nodepath.cpp:4928 +msgid "Drag the node or its handles; arrow keys to move the node" +msgstr "" + +#: ../src/nodepath.cpp:4954 ../src/nodepath.cpp:4966 +msgid "Select a single object to edit its nodes or handles." +msgstr "" + +#: ../src/nodepath.cpp:4958 +#, c-format +msgid "" +"0 out of %i node selected. Click, Shift+click, " +"or drag around nodes to select." +msgid_plural "" +"0 out of %i nodes selected. Click, Shift+click, " +"or drag around nodes to select." +msgstr[0] "" +msgstr[1] "" + +#: ../src/nodepath.cpp:4964 +msgid "Drag the handles of the object to modify it." +msgstr "" + +#: ../src/nodepath.cpp:4972 +#, c-format +msgid "%i of %i node selected; %s. %s." +msgid_plural "%i of %i nodes selected; %s. %s." +msgstr[0] "" +msgstr[1] "" + +#: ../src/nodepath.cpp:4979 +#, c-format +msgid "" +"%i of %i node selected in %i of %i subpaths. %s." +msgid_plural "" +"%i of %i nodes selected in %i of %i subpaths. %s." +msgstr[0] "" +msgstr[1] "" + +#: ../src/nodepath.cpp:4985 +#, c-format +msgid "%i of %i node selected. %s." +msgid_plural "%i of %i nodes selected. %s." +msgstr[0] "" +msgstr[1] "" + +#: ../src/object-edit.cpp:439 +msgid "" +"Adjust the horizontal rounding radius; with Ctrl to make the " +"vertical radius the same" +msgstr "" + +#: ../src/object-edit.cpp:443 +msgid "" +"Adjust the vertical rounding radius; with Ctrl to make the " +"horizontal radius the same" +msgstr "" + +#: ../src/object-edit.cpp:447 ../src/object-edit.cpp:451 +msgid "" +"Adjust the width and height of the rectangle; with Ctrl to " +"lock ratio or stretch in one dimension only" +msgstr "" + +#: ../src/object-edit.cpp:685 ../src/object-edit.cpp:688 +#: ../src/object-edit.cpp:691 ../src/object-edit.cpp:694 +msgid "" +"Resize box in X/Y direction; with Shift along the Z axis; with " +"Ctrl to constrain to the directions of edges or diagonals" +msgstr "" + +#: ../src/object-edit.cpp:697 ../src/object-edit.cpp:700 +#: ../src/object-edit.cpp:703 ../src/object-edit.cpp:706 +msgid "" +"Resize box along the Z axis; with Shift in X/Y direction; with " +"Ctrl to constrain to the directions of edges or diagonals" +msgstr "" + +#: ../src/object-edit.cpp:709 +msgid "Move the box in perspective" +msgstr "" + +#: ../src/object-edit.cpp:927 +msgid "Adjust ellipse width, with Ctrl to make circle" +msgstr "" + +#: ../src/object-edit.cpp:930 +msgid "Adjust ellipse height, with Ctrl to make circle" +msgstr "" + +#: ../src/object-edit.cpp:933 +msgid "" +"Position the start point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" + +#: ../src/object-edit.cpp:937 +msgid "" +"Position the end point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" + +#: ../src/object-edit.cpp:1076 +msgid "" +"Adjust the tip radius of the star or polygon; with Shift to " +"round; with Alt to randomize" +msgstr "" + +#: ../src/object-edit.cpp:1083 +msgid "" +"Adjust the base radius of the star; with Ctrl to keep star " +"rays radial (no skew); with Shift to round; with Alt to " +"randomize" +msgstr "" + +#: ../src/object-edit.cpp:1272 +msgid "" +"Roll/unroll the spiral from inside; with Ctrl to snap angle; " +"with Alt to converge/diverge" +msgstr "" + +#: ../src/object-edit.cpp:1275 +msgid "" +"Roll/unroll the spiral from outside; with Ctrl to snap angle; " +"with Shift to scale/rotate" +msgstr "" + +#: ../src/object-edit.cpp:1319 +msgid "Adjust the offset distance" +msgstr "" + +#: ../src/object-edit.cpp:1355 +msgid "Drag to resize the flowed text frame" +msgstr "" + +#: ../src/path-chemistry.cpp:49 +msgid "Select object(s) to combine." +msgstr "" + +#: ../src/path-chemistry.cpp:53 +msgid "Combining paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:161 +msgid "Combine" +msgstr "" + +#: ../src/path-chemistry.cpp:168 +msgid "No path(s) to combine in the selection." +msgstr "" + +#: ../src/path-chemistry.cpp:180 +msgid "Select path(s) to break apart." +msgstr "" + +#: ../src/path-chemistry.cpp:184 +msgid "Breaking apart paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:271 +msgid "Break apart" +msgstr "" + +#: ../src/path-chemistry.cpp:273 +msgid "No path(s) to break apart in the selection." +msgstr "" + +#: ../src/path-chemistry.cpp:285 +msgid "Select object(s) to convert to path." +msgstr "" + +#: ../src/path-chemistry.cpp:291 +msgid "Converting objects to paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:313 +msgid "Object to path" +msgstr "" + +#: ../src/path-chemistry.cpp:315 +msgid "No objects to convert to path in the selection." +msgstr "" + +#: ../src/path-chemistry.cpp:551 +msgid "Select path(s) to reverse." +msgstr "" + +#: ../src/path-chemistry.cpp:560 +msgid "Reversing paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:594 +msgid "Reverse path" +msgstr "" + +#: ../src/path-chemistry.cpp:596 +msgid "No paths to reverse in the selection." +msgstr "" + +#: ../src/pencil-context.cpp:269 ../src/pen-context.cpp:493 +msgid "Continuing selected path" +msgstr "" + +#: ../src/pencil-context.cpp:277 ../src/pen-context.cpp:503 +msgid "Creating new path" +msgstr "" + +#: ../src/pencil-context.cpp:280 ../src/pen-context.cpp:505 +msgid "Appending to selected path" +msgstr "" + +#: ../src/pencil-context.cpp:381 +msgid "Release here to close and finish the path." +msgstr "" + +#: ../src/pencil-context.cpp:387 +msgid "Drawing a freehand path" +msgstr "" + +#: ../src/pencil-context.cpp:392 +msgid "Drag to continue the path from this point." +msgstr "" + +#. Write curves to object +#: ../src/pencil-context.cpp:466 +msgid "Finishing freehand" +msgstr "" + +#: ../src/pencil-context.cpp:522 ../src/pen-context.cpp:253 +msgid "Drawing cancelled" +msgstr "" + +#: ../src/pencil-context.cpp:572 +msgid "" +"Sketch mode: holding Alt interpolates between sketched paths. " +"Release Alt to finalize." +msgstr "" + +#: ../src/pencil-context.cpp:600 +msgid "Finishing freehand sketch" +msgstr "" + +#: ../src/pen-context.cpp:662 +msgid "Click or click and drag to close and finish the path." +msgstr "" + +#: ../src/pen-context.cpp:672 +msgid "" +"Click or click and drag to continue the path from this point." +msgstr "" + +#: ../src/pen-context.cpp:1266 +#, c-format +msgid "" +"Curve segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" +msgstr "" + +#: ../src/pen-context.cpp:1267 +#, c-format +msgid "" +"Line segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" +msgstr "" + +#: ../src/pen-context.cpp:1285 +#, c-format +msgid "" +"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " +"angle" +msgstr "" + +#: ../src/pen-context.cpp:1307 +#, c-format +msgid "" +"Curve handle, symmetric: angle %3.2f°, length %s; with Ctrl to snap angle, with Shift to move this handle only" +msgstr "" + +#: ../src/pen-context.cpp:1308 +#, c-format +msgid "" +"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " +"angle, with Shift to move this handle only" +msgstr "" + +#: ../src/pen-context.cpp:1355 +msgid "Drawing finished" +msgstr "" + +#: ../src/persp3d.cpp:335 +msgid "Toggle vanishing point" +msgstr "" + +#: ../src/persp3d.cpp:346 +msgid "Toggle multiple vanishing points" +msgstr "" + +#: ../src/preferences.cpp:129 +msgid "" +"Inkscape will run with default settings, and new settings will not be saved. " +msgstr "" + +#. the creation failed +#. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:144 +#, c-format +msgid "Cannot create profile directory %s." +msgstr "" + +#. The profile dir is not actually a directory +#. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:162 +#, c-format +msgid "%s is not a valid directory." +msgstr "" + +#. The write failed. +#. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), +#. Glib::filename_to_utf8(_prefs_filename)), not_saved); +#: ../src/preferences.cpp:173 +#, c-format +msgid "Failed to create the preferences file %s." +msgstr "" + +#: ../src/preferences.cpp:209 +#, c-format +msgid "The preferences file %s is not a regular file." +msgstr "" + +#: ../src/preferences.cpp:219 +#, c-format +msgid "The preferences file %s could not be read." +msgstr "" + +#: ../src/preferences.cpp:230 +#, c-format +msgid "The preferences file %s is not a valid XML document." +msgstr "" + +#: ../src/preferences.cpp:239 +#, c-format +msgid "The file %s is not a valid Inkscape preferences file." +msgstr "" + +#: ../src/preferences-skeleton.h:98 +msgid "Dip pen" +msgstr "" + +#: ../src/preferences-skeleton.h:99 +msgid "Marker" +msgstr "" + +#: ../src/preferences-skeleton.h:100 +msgid "Brush" +msgstr "" + +#: ../src/preferences-skeleton.h:101 +msgid "Wiggly" +msgstr "" + +#: ../src/preferences-skeleton.h:102 +msgid "Splotchy" +msgstr "" + +#: ../src/preferences-skeleton.h:103 +msgid "Tracing" +msgstr "" + +#: ../src/rdf.cpp:172 +msgid "CC Attribution" +msgstr "" + +#: ../src/rdf.cpp:177 +msgid "CC Attribution-ShareAlike" +msgstr "" + +#: ../src/rdf.cpp:182 +msgid "CC Attribution-NoDerivs" +msgstr "" + +#: ../src/rdf.cpp:187 +msgid "CC Attribution-NonCommercial" +msgstr "" + +#: ../src/rdf.cpp:192 +msgid "CC Attribution-NonCommercial-ShareAlike" +msgstr "" + +#: ../src/rdf.cpp:197 +msgid "CC Attribution-NonCommercial-NoDerivs" +msgstr "" + +#: ../src/rdf.cpp:202 +msgid "Public Domain" +msgstr "" + +#: ../src/rdf.cpp:207 +msgid "FreeArt" +msgstr "" + +#: ../src/rdf.cpp:212 +msgid "Open Font License" +msgstr "" + +#: ../src/rdf.cpp:229 +msgid "Title" +msgstr "" + +#: ../src/rdf.cpp:230 +msgid "Name by which this document is formally known." +msgstr "" + +#: ../src/rdf.cpp:232 +msgid "Date" +msgstr "" + +#: ../src/rdf.cpp:233 +msgid "Date associated with the creation of this document (YYYY-MM-DD)." +msgstr "" + +#: ../src/rdf.cpp:235 +msgid "Format" +msgstr "" + +#: ../src/rdf.cpp:236 +msgid "The physical or digital manifestation of this document (MIME type)." +msgstr "" + +#: ../src/rdf.cpp:239 +msgid "Type of document (DCMI Type)." +msgstr "" + +#: ../src/rdf.cpp:242 +msgid "Creator" +msgstr "" + +#: ../src/rdf.cpp:243 +msgid "" +"Name of entity primarily responsible for making the content of this document." +msgstr "" + +#: ../src/rdf.cpp:245 +msgid "Rights" +msgstr "" + +#: ../src/rdf.cpp:246 +msgid "" +"Name of entity with rights to the Intellectual Property of this document." +msgstr "" + +#: ../src/rdf.cpp:248 +msgid "Publisher" +msgstr "" + +#: ../src/rdf.cpp:249 +msgid "Name of entity responsible for making this document available." +msgstr "" + +#: ../src/rdf.cpp:252 +msgid "Identifier" +msgstr "" + +#: ../src/rdf.cpp:253 +msgid "Unique URI to reference this document." +msgstr "" + +#: ../src/rdf.cpp:255 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1438 +msgid "Source" +msgstr "" + +#: ../src/rdf.cpp:256 +msgid "Unique URI to reference the source of this document." +msgstr "" + +#: ../src/rdf.cpp:258 +msgid "Relation" +msgstr "" + +#: ../src/rdf.cpp:259 +msgid "Unique URI to a related document." +msgstr "" + +#: ../src/rdf.cpp:261 +msgid "Language" +msgstr "" + +#: ../src/rdf.cpp:262 +msgid "" +"Two-letter language tag with optional subtags for the language of this " +"document. (e.g. 'en-GB')" +msgstr "" + +#: ../src/rdf.cpp:264 +msgid "Keywords" +msgstr "" + +#: ../src/rdf.cpp:265 +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/rdf.cpp:269 +msgid "Coverage" +msgstr "" + +#: ../src/rdf.cpp:270 +msgid "Extent or scope of this document." +msgstr "" + +#: ../src/rdf.cpp:273 ../src/ui/widget/page-sizer.cpp:239 +msgid "Description" +msgstr "" + +#: ../src/rdf.cpp:274 +msgid "A short account of the content of this document." +msgstr "" + +#. FIXME: need to handle 1 agent per line of input +#: ../src/rdf.cpp:278 +msgid "Contributors" +msgstr "" + +#: ../src/rdf.cpp:279 +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/rdf.cpp:283 +msgid "URI" +msgstr "" + +#. TRANSLATORS: this is where you put a URL to a page that defines the license +#: ../src/rdf.cpp:285 +msgid "URI to this document's license's namespace definition." +msgstr "" + +#. TRANSLATORS: fragment of XML representing the license of the document +#: ../src/rdf.cpp:289 +msgid "Fragment" +msgstr "" + +#: ../src/rdf.cpp:290 +msgid "XML fragment for the RDF 'License' section." +msgstr "" + +#: ../src/rect-context.cpp:361 +msgid "" +"Ctrl: make square or integer-ratio rect, lock a rounded corner " +"circular" +msgstr "" + +#: ../src/rect-context.cpp:508 +#, c-format +msgid "" +"Rectangle: %s × %s (constrained to ratio %d:%d); with Shift to draw around the starting point" +msgstr "" + +#: ../src/rect-context.cpp:511 +#, c-format +msgid "" +"Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " +"Shift to draw around the starting point" +msgstr "" + +#: ../src/rect-context.cpp:513 +#, c-format +msgid "" +"Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " +"Shift to draw around the starting point" +msgstr "" + +#: ../src/rect-context.cpp:517 +#, c-format +msgid "" +"Rectangle: %s × %s; with Ctrl to make square or integer-" +"ratio rectangle; with Shift to draw around the starting point" +msgstr "" + +#: ../src/rect-context.cpp:542 +msgid "Create rectangle" +msgstr "" + +#: ../src/select-context.cpp:233 +msgid "Move canceled." +msgstr "" + +#: ../src/select-context.cpp:241 +msgid "Selection canceled." +msgstr "" + +#: ../src/select-context.cpp:555 +msgid "" +"Draw over objects to select them; release Alt to switch to " +"rubberband selection" +msgstr "" + +#: ../src/select-context.cpp:557 +msgid "" +"Drag around objects to select them; press Alt to switch to " +"touch selection" +msgstr "" + +#: ../src/select-context.cpp:721 +msgid "Ctrl: click to select in groups; drag to move hor/vert" +msgstr "" + +#: ../src/select-context.cpp:722 +msgid "Shift: click to toggle select; drag for rubberband selection" +msgstr "" + +#: ../src/select-context.cpp:723 +msgid "" +"Alt: click to select under; drag to move selected or select by touch" +msgstr "" + +#: ../src/select-context.cpp:898 +msgid "Selected object is not a group. Cannot enter." +msgstr "" + +#: ../src/selection-chemistry.cpp:195 +msgid "Delete text" +msgstr "" + +#: ../src/selection-chemistry.cpp:203 +msgid "Nothing was deleted." +msgstr "" + +#: ../src/selection-chemistry.cpp:221 ../src/text-context.cpp:995 +#: ../src/ui/dialog/swatches.cpp:471 ../src/widgets/toolbox.cpp:1304 +#: ../src/widgets/toolbox.cpp:5752 +msgid "Delete" +msgstr "" + +#: ../src/selection-chemistry.cpp:249 +msgid "Select object(s) to duplicate." +msgstr "" + +#: ../src/selection-chemistry.cpp:341 +msgid "Delete all" +msgstr "" + +#: ../src/selection-chemistry.cpp:464 +msgid "Select some objects to group." +msgstr "" + +#: ../src/selection-chemistry.cpp:537 ../src/selection-describer.cpp:53 +msgid "Group" +msgstr "" + +#: ../src/selection-chemistry.cpp:551 +msgid "Select a group to ungroup." +msgstr "" + +#: ../src/selection-chemistry.cpp:592 +msgid "No groups to ungroup in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:598 ../src/sp-item-group.cpp:516 +msgid "Ungroup" +msgstr "" + +#: ../src/selection-chemistry.cpp:688 +msgid "Select object(s) to raise." +msgstr "" + +#: ../src/selection-chemistry.cpp:694 ../src/selection-chemistry.cpp:756 +#: ../src/selection-chemistry.cpp:790 ../src/selection-chemistry.cpp:854 +msgid "" +"You cannot raise/lower objects from different groups or layers." +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 +#. "Raise" means "to raise an object" in the undo history +#: ../src/selection-chemistry.cpp:736 +msgid "undo_action|Raise" +msgstr "" + +#: ../src/selection-chemistry.cpp:748 +msgid "Select object(s) to raise to top." +msgstr "" + +#: ../src/selection-chemistry.cpp:771 +msgid "Raise to top" +msgstr "" + +#: ../src/selection-chemistry.cpp:784 +msgid "Select object(s) to lower." +msgstr "" + +#: ../src/selection-chemistry.cpp:834 +msgid "Lower" +msgstr "" + +#: ../src/selection-chemistry.cpp:846 +msgid "Select object(s) to lower to bottom." +msgstr "" + +#: ../src/selection-chemistry.cpp:881 +msgid "Lower to bottom" +msgstr "" + +#: ../src/selection-chemistry.cpp:888 +msgid "Nothing to undo." +msgstr "" + +#: ../src/selection-chemistry.cpp:895 +msgid "Nothing to redo." +msgstr "" + +#: ../src/selection-chemistry.cpp:955 +msgid "Paste" +msgstr "" + +#: ../src/selection-chemistry.cpp:962 +msgid "Paste style" +msgstr "" + +#: ../src/selection-chemistry.cpp:971 +msgid "Paste live path effect" +msgstr "" + +#: ../src/selection-chemistry.cpp:991 +msgid "Select object(s) to remove live path effects from." +msgstr "" + +#: ../src/selection-chemistry.cpp:1003 +msgid "Remove live path effect" +msgstr "" + +#: ../src/selection-chemistry.cpp:1014 +msgid "Select object(s) to remove filters from." +msgstr "" + +#: ../src/selection-chemistry.cpp:1024 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1336 +msgid "Remove filter" +msgstr "" + +#: ../src/selection-chemistry.cpp:1033 +msgid "Paste size" +msgstr "" + +#: ../src/selection-chemistry.cpp:1041 +msgid "Paste size separately" +msgstr "" + +#: ../src/selection-chemistry.cpp:1050 +msgid "Select object(s) to move to the layer above." +msgstr "" + +#: ../src/selection-chemistry.cpp:1076 +msgid "Raise to next layer" +msgstr "" + +#: ../src/selection-chemistry.cpp:1083 +msgid "No more layers above." +msgstr "" + +#: ../src/selection-chemistry.cpp:1095 +msgid "Select object(s) to move to the layer below." +msgstr "" + +#: ../src/selection-chemistry.cpp:1121 +msgid "Lower to previous layer" +msgstr "" + +#: ../src/selection-chemistry.cpp:1128 +msgid "No more layers below." +msgstr "" + +#: ../src/selection-chemistry.cpp:1315 +msgid "Remove transform" +msgstr "" + +#: ../src/selection-chemistry.cpp:1418 +msgid "Rotate 90° CCW" +msgstr "" + +#: ../src/selection-chemistry.cpp:1418 +msgid "Rotate 90° CW" +msgstr "" + +#: ../src/selection-chemistry.cpp:1439 ../src/seltrans.cpp:534 +#: ../src/ui/dialog/transformation.cpp:760 +msgid "Rotate" +msgstr "" + +#: ../src/selection-chemistry.cpp:1486 +msgid "Rotate by pixels" +msgstr "" + +#: ../src/selection-chemistry.cpp:1541 +msgid "Scale by whole factor" +msgstr "" + +#: ../src/selection-chemistry.cpp:1556 +msgid "Move vertically" +msgstr "" + +#: ../src/selection-chemistry.cpp:1559 +msgid "Move horizontally" +msgstr "" + +#: ../src/selection-chemistry.cpp:1562 ../src/selection-chemistry.cpp:1588 +#: ../src/seltrans.cpp:528 ../src/ui/dialog/transformation.cpp:681 +msgid "Move" +msgstr "" + +#: ../src/selection-chemistry.cpp:1582 +msgid "Move vertically by pixels" +msgstr "" + +#: ../src/selection-chemistry.cpp:1585 +msgid "Move horizontally by pixels" +msgstr "" + +#: ../src/selection-chemistry.cpp:1713 +msgid "The selection has no applied path effect." +msgstr "" + +#: ../src/selection-chemistry.cpp:1760 +msgid "The selection has no applied clip path." +msgstr "" + +#: ../src/selection-chemistry.cpp:1762 +msgid "The selection has no applied mask." +msgstr "" + +#: ../src/selection-chemistry.cpp:1919 +msgid "action|Clone" +msgstr "" + +#: ../src/selection-chemistry.cpp:1935 +msgid "Select clones to relink." +msgstr "" + +#: ../src/selection-chemistry.cpp:1942 +msgid "Copy an object to clipboard to relink clones to." +msgstr "" + +#: ../src/selection-chemistry.cpp:1966 +msgid "No clones to relink in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:1969 +msgid "Relink clone" +msgstr "" + +#: ../src/selection-chemistry.cpp:1983 +msgid "Select clones to unlink." +msgstr "" + +#: ../src/selection-chemistry.cpp:2032 +msgid "No clones to unlink in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:2036 +msgid "Unlink clone" +msgstr "" + +#: ../src/selection-chemistry.cpp:2049 +msgid "" +"Select a clone to go to its original. Select a linked offset " +"to go to its source. Select a text on path to go to the path. Select " +"a flowed text to go to its frame." +msgstr "" + +#: ../src/selection-chemistry.cpp:2072 +msgid "" +"Cannot find the object to select (orphaned clone, offset, textpath, " +"flowed text?)" +msgstr "" + +#: ../src/selection-chemistry.cpp:2078 +msgid "" +"The object you're trying to select is not visible (it is in <" +"defs>)" +msgstr "" + +#: ../src/selection-chemistry.cpp:2124 +msgid "Select object(s) to convert to marker." +msgstr "" + +#: ../src/selection-chemistry.cpp:2192 +msgid "Objects to marker" +msgstr "" + +#: ../src/selection-chemistry.cpp:2220 +msgid "Select object(s) to convert to guides." +msgstr "" + +#: ../src/selection-chemistry.cpp:2232 +msgid "Objects to guides" +msgstr "" + +#: ../src/selection-chemistry.cpp:2248 +msgid "Select object(s) to convert to pattern." +msgstr "" + +#: ../src/selection-chemistry.cpp:2336 +msgid "Objects to pattern" +msgstr "" + +#: ../src/selection-chemistry.cpp:2352 +msgid "Select an object with pattern fill to extract objects from." +msgstr "" + +#: ../src/selection-chemistry.cpp:2405 +msgid "No pattern fills in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:2408 +msgid "Pattern to objects" +msgstr "" + +#: ../src/selection-chemistry.cpp:2493 +msgid "Select object(s) to make a bitmap copy." +msgstr "" + +#: ../src/selection-chemistry.cpp:2497 +msgid "Rendering bitmap..." +msgstr "" + +#: ../src/selection-chemistry.cpp:2676 +msgid "Create bitmap" +msgstr "" + +#: ../src/selection-chemistry.cpp:2708 +msgid "Select object(s) to create clippath or mask from." +msgstr "" + +#: ../src/selection-chemistry.cpp:2711 +msgid "Select mask object and object(s) to apply clippath or mask to." +msgstr "" + +#: ../src/selection-chemistry.cpp:2818 +msgid "Set clipping path" +msgstr "" + +#: ../src/selection-chemistry.cpp:2820 +msgid "Set mask" +msgstr "" + +#: ../src/selection-chemistry.cpp:2833 +msgid "Select object(s) to remove clippath or mask from." +msgstr "" + +#: ../src/selection-chemistry.cpp:2906 +msgid "Release clipping path" +msgstr "" + +#: ../src/selection-chemistry.cpp:2908 +msgid "Release mask" +msgstr "" + +#: ../src/selection-chemistry.cpp:2924 +msgid "Select object(s) to fit canvas to." +msgstr "" + +#. Fit Page +#: ../src/selection-chemistry.cpp:2944 ../src/verbs.cpp:2723 +msgid "Fit Page to Selection" +msgstr "" + +#: ../src/selection-chemistry.cpp:2969 ../src/verbs.cpp:2725 +msgid "Fit Page to Drawing" +msgstr "" + +#: ../src/selection-chemistry.cpp:2985 ../src/verbs.cpp:2727 +msgid "Fit Page to Selection or Drawing" +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 +#. "Link" means internet link (anchor) +#: ../src/selection-describer.cpp:45 +msgid "web|Link" +msgstr "" + +#: ../src/selection-describer.cpp:47 +msgid "Circle" +msgstr "" + +#. ellipse +#: ../src/selection-describer.cpp:49 ../src/selection-describer.cpp:76 +#: ../src/ui/dialog/inkscape-preferences.cpp:474 ../src/verbs.cpp:2510 +#: ../src/widgets/toolbox.cpp:3890 +msgid "Ellipse" +msgstr "" + +#: ../src/selection-describer.cpp:51 +msgid "Flowed text" +msgstr "" + +#: ../src/selection-describer.cpp:57 +msgid "Line" +msgstr "" + +#: ../src/selection-describer.cpp:59 +msgid "Path" +msgstr "" + +#: ../src/selection-describer.cpp:61 ../src/widgets/toolbox.cpp:2726 +msgid "Polygon" +msgstr "" + +#: ../src/selection-describer.cpp:63 +msgid "Polyline" +msgstr "" + +#. Rectangle +#: ../src/selection-describer.cpp:65 +#: ../src/ui/dialog/inkscape-preferences.cpp:464 ../src/verbs.cpp:2506 +msgid "Rectangle" +msgstr "" + +#. 3D box +#: ../src/selection-describer.cpp:67 +#: ../src/ui/dialog/inkscape-preferences.cpp:469 ../src/verbs.cpp:2508 +msgid "3D Box" +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 +#. "Clone" is a noun, type of object +#: ../src/selection-describer.cpp:74 +msgid "object|Clone" +msgstr "" + +#: ../src/selection-describer.cpp:78 +msgid "Offset path" +msgstr "" + +#. spiral +#: ../src/selection-describer.cpp:80 +#: ../src/ui/dialog/inkscape-preferences.cpp:482 ../src/verbs.cpp:2514 +msgid "Spiral" +msgstr "" + +#. star +#: ../src/selection-describer.cpp:82 +#: ../src/ui/dialog/inkscape-preferences.cpp:478 ../src/verbs.cpp:2512 +#: ../src/widgets/toolbox.cpp:2733 +msgid "Star" +msgstr "" + +#: ../src/selection-describer.cpp:128 +msgid "Click selection to toggle scale/rotation handles" +msgstr "" + +#. no items +#: ../src/selection-describer.cpp:130 +msgid "" +"No objects selected. Click, Shift+click, or drag around objects to select." +msgstr "" + +#: ../src/selection-describer.cpp:139 +msgid "root" +msgstr "" + +#: ../src/selection-describer.cpp:151 +#, c-format +msgid "layer %s" +msgstr "" + +#: ../src/selection-describer.cpp:153 +#, c-format +msgid "layer %s" +msgstr "" + +#: ../src/selection-describer.cpp:162 +#, c-format +msgid "%s" +msgstr "" + +#: ../src/selection-describer.cpp:171 +#, c-format +msgid " in %s" +msgstr "" + +#: ../src/selection-describer.cpp:173 +#, c-format +msgid " in group %s (%s)" +msgstr "" + +#: ../src/selection-describer.cpp:175 +#, c-format +msgid " in %i parents (%s)" +msgid_plural " in %i parents (%s)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/selection-describer.cpp:178 +#, c-format +msgid " in %i layers" +msgid_plural " in %i layers" +msgstr[0] "" +msgstr[1] "" + +#: ../src/selection-describer.cpp:188 +msgid "Use Shift+D to look up original" +msgstr "" + +#: ../src/selection-describer.cpp:192 +msgid "Use Shift+D to look up path" +msgstr "" + +#: ../src/selection-describer.cpp:196 +msgid "Use Shift+D to look up frame" +msgstr "" + +#. this is only used with 2 or more objects +#: ../src/selection-describer.cpp:211 ../src/tweak-context.cpp:202 +#, c-format +msgid "%i object selected" +msgid_plural "%i objects selected" +msgstr[0] "" +msgstr[1] "" + +#. this is only used with 2 or more objects +#: ../src/selection-describer.cpp:216 +#, c-format +msgid "%i object of type %s" +msgid_plural "%i objects of type %s" +msgstr[0] "" +msgstr[1] "" + +#. this is only used with 2 or more objects +#: ../src/selection-describer.cpp:221 +#, c-format +msgid "%i object of types %s, %s" +msgid_plural "%i objects of types %s, %s" +msgstr[0] "" +msgstr[1] "" + +#. this is only used with 2 or more objects +#: ../src/selection-describer.cpp:226 +#, c-format +msgid "%i object of types %s, %s, %s" +msgid_plural "%i objects of types %s, %s, %s" +msgstr[0] "" +msgstr[1] "" + +#. this is only used with 2 or more objects +#: ../src/selection-describer.cpp:231 +#, c-format +msgid "%i object of %i types" +msgid_plural "%i objects of %i types" +msgstr[0] "" +msgstr[1] "" + +#: ../src/selection-describer.cpp:236 +#, c-format +msgid "%s%s. %s." +msgstr "" + +#: ../src/seltrans.cpp:537 ../src/ui/dialog/transformation.cpp:819 +msgid "Skew" +msgstr "" + +#: ../src/seltrans.cpp:549 +msgid "Set center" +msgstr "" + +#: ../src/seltrans.cpp:646 +msgid "" +"Center of rotation and skewing: drag to reposition; scaling with " +"Shift also uses this center" +msgstr "" + +#: ../src/seltrans.cpp:673 +msgid "" +"Squeeze or stretch selection; with Ctrl to scale uniformly; " +"with Shift to scale around rotation center" +msgstr "" + +#: ../src/seltrans.cpp:674 +msgid "" +"Scale selection; with Ctrl to scale uniformly; with Shift to scale around rotation center" +msgstr "" + +#: ../src/seltrans.cpp:678 +msgid "" +"Skew selection; with Ctrl to snap angle; with Shift to " +"skew around the opposite side" +msgstr "" + +#: ../src/seltrans.cpp:679 +msgid "" +"Rotate selection; with Ctrl to snap angle; with Shift " +"to rotate around the opposite corner" +msgstr "" + +#: ../src/seltrans.cpp:813 +msgid "Reset center" +msgstr "" + +#: ../src/seltrans.cpp:1058 ../src/seltrans.cpp:1157 +#, c-format +msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" +msgstr "" + +#. TRANSLATORS: don't modify the first ";" +#. (it will NOT be displayed as ";" - only the second one will be) +#: ../src/seltrans.cpp:1269 +#, c-format +msgid "Skew: %0.2f°; with Ctrl to snap angle" +msgstr "" + +#. TRANSLATORS: don't modify the first ";" +#. (it will NOT be displayed as ";" - only the second one will be) +#: ../src/seltrans.cpp:1329 +#, c-format +msgid "Rotate: %0.2f°; with Ctrl to snap angle" +msgstr "" + +#: ../src/seltrans.cpp:1371 +#, c-format +msgid "Move center to %s, %s" +msgstr "" + +#: ../src/seltrans.cpp:1541 +#, c-format +msgid "" +"Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " +"with Shift to disable snapping" +msgstr "" + +#: ../src/shape-editor.cpp:472 +msgid "Drag curve" +msgstr "" + +#: ../src/sp-anchor.cpp:178 +#, c-format +msgid "Link to %s" +msgstr "" + +#: ../src/sp-anchor.cpp:182 +msgid "Link without URI" +msgstr "" + +#: ../src/sp-ellipse.cpp:502 ../src/sp-ellipse.cpp:879 +msgid "Ellipse" +msgstr "" + +#: ../src/sp-ellipse.cpp:643 +msgid "Circle" +msgstr "" + +#: ../src/sp-ellipse.cpp:874 +msgid "Segment" +msgstr "" + +#: ../src/sp-ellipse.cpp:876 +msgid "Arc" +msgstr "" + +#. TRANSLATORS: "Flow region" is an area where text is allowed to flow +#: ../src/sp-flowregion.cpp:270 +#, c-format +msgid "Flow region" +msgstr "" + +#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the +#. * flow excluded region. flowRegionExclude in SVG 1.2: see +#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and +#. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem. +#: ../src/sp-flowregion.cpp:487 +#, c-format +msgid "Flow excluded region" +msgstr "" + +#: ../src/sp-flowtext.cpp:376 +#, c-format +msgid "Flowed text (%d character)" +msgid_plural "Flowed text (%d characters)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/sp-flowtext.cpp:378 +#, c-format +msgid "Linked flowed text (%d character)" +msgid_plural "Linked flowed text (%d characters)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/sp-guide.cpp:287 +msgid "Guides Around Page" +msgstr "" + +#: ../src/sp-guide.cpp:421 +msgid "" +"Shift+drag to rotate, Ctrl+drag to move origin, Del to " +"delete" +msgstr "" + +#: ../src/sp-guide.cpp:426 +#, c-format +msgid "vertical, at %s" +msgstr "" + +#: ../src/sp-guide.cpp:429 +#, c-format +msgid "horizontal, at %s" +msgstr "" + +#: ../src/sp-guide.cpp:434 +#, c-format +msgid "at %d degrees, through (%s,%s)" +msgstr "" + +#: ../src/sp-image.cpp:1128 +msgid "embedded" +msgstr "" + +#: ../src/sp-image.cpp:1136 +#, c-format +msgid "Image with bad reference: %s" +msgstr "" + +#: ../src/sp-image.cpp:1137 +#, c-format +msgid "Image %d × %d: %s" +msgstr "" + +#: ../src/spiral-context.cpp:319 +msgid "Ctrl: snap angle" +msgstr "" + +#: ../src/spiral-context.cpp:321 +msgid "Alt: lock spiral radius" +msgstr "" + +#: ../src/spiral-context.cpp:453 +#, c-format +msgid "" +"Spiral: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" + +#: ../src/spiral-context.cpp:479 +msgid "Create spiral" +msgstr "" + +#: ../src/sp-item.cpp:1035 +msgid "Object" +msgstr "" + +#: ../src/sp-item.cpp:1052 +#, c-format +msgid "%s; clipped" +msgstr "" + +#: ../src/sp-item.cpp:1057 +#, c-format +msgid "%s; masked" +msgstr "" + +#: ../src/sp-item.cpp:1065 +#, c-format +msgid "%s; filtered (%s)" +msgstr "" + +#: ../src/sp-item.cpp:1067 +#, c-format +msgid "%s; filtered" +msgstr "" + +#: ../src/sp-item-group.cpp:761 +#, c-format +msgid "Group of %d object" +msgid_plural "Group of %d objects" +msgstr[0] "" +msgstr[1] "" + +#: ../src/sp-line.cpp:194 +msgid "Line" +msgstr "" + +#: ../src/splivarot.cpp:66 ../src/splivarot.cpp:72 +msgid "Union" +msgstr "" + +#: ../src/splivarot.cpp:78 +msgid "Intersection" +msgstr "" + +#: ../src/splivarot.cpp:84 ../src/splivarot.cpp:90 +msgid "Difference" +msgstr "" + +#: ../src/splivarot.cpp:96 +msgid "Exclusion" +msgstr "" + +#: ../src/splivarot.cpp:101 +msgid "Division" +msgstr "" + +#: ../src/splivarot.cpp:106 +msgid "Cut path" +msgstr "" + +#: ../src/splivarot.cpp:121 +msgid "Select at least 2 paths to perform a boolean operation." +msgstr "" + +#: ../src/splivarot.cpp:125 +msgid "Select at least 1 path to perform a boolean union." +msgstr "" + +#: ../src/splivarot.cpp:131 +msgid "" +"Select exactly 2 paths to perform difference, division, or path cut." +msgstr "" + +#: ../src/splivarot.cpp:147 ../src/splivarot.cpp:162 +msgid "" +"Unable to determine the z-order of the objects selected for " +"difference, XOR, division, or path cut." +msgstr "" + +#: ../src/splivarot.cpp:192 +msgid "" +"One of the objects is not a path, cannot perform boolean operation." +msgstr "" + +#: ../src/splivarot.cpp:633 +msgid "Select stroked path(s) to convert stroke to path." +msgstr "" + +#: ../src/splivarot.cpp:976 +msgid "Convert stroke to path" +msgstr "" + +#. TRANSLATORS: "to outline" means "to convert stroke to path" +#: ../src/splivarot.cpp:979 +msgid "No stroked paths in the selection." +msgstr "" + +#: ../src/splivarot.cpp:1062 +msgid "Selected object is not a path, cannot inset/outset." +msgstr "" + +#: ../src/splivarot.cpp:1181 ../src/splivarot.cpp:1250 +msgid "Create linked offset" +msgstr "" + +#: ../src/splivarot.cpp:1182 ../src/splivarot.cpp:1251 +msgid "Create dynamic offset" +msgstr "" + +#: ../src/splivarot.cpp:1276 +msgid "Select path(s) to inset/outset." +msgstr "" + +#: ../src/splivarot.cpp:1494 +msgid "Outset path" +msgstr "" + +#: ../src/splivarot.cpp:1494 +msgid "Inset path" +msgstr "" + +#: ../src/splivarot.cpp:1496 +msgid "No paths to inset/outset in the selection." +msgstr "" + +#: ../src/splivarot.cpp:1674 +msgid "Simplifying paths (separately):" +msgstr "" + +#: ../src/splivarot.cpp:1676 +msgid "Simplifying paths:" +msgstr "" + +#: ../src/splivarot.cpp:1713 +#, c-format +msgid "%s %d of %d paths simplified..." +msgstr "" + +#: ../src/splivarot.cpp:1725 +#, c-format +msgid "%d paths simplified." +msgstr "" + +#: ../src/splivarot.cpp:1739 +msgid "Select path(s) to simplify." +msgstr "" + +#: ../src/splivarot.cpp:1753 +msgid "Simplify" +msgstr "" + +#: ../src/splivarot.cpp:1755 +msgid "No paths to simplify in the selection." +msgstr "" + +#: ../src/sp-lpe-item.cpp:363 +msgid "An exception occurred during execution of the Path Effect." +msgstr "" + +#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign +#: ../src/sp-offset.cpp:426 +#, c-format +msgid "Linked offset, %s by %f pt" +msgstr "" + +#: ../src/sp-offset.cpp:427 ../src/sp-offset.cpp:431 +msgid "outset" +msgstr "" + +#: ../src/sp-offset.cpp:427 ../src/sp-offset.cpp:431 +msgid "inset" +msgstr "" + +#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign +#: ../src/sp-offset.cpp:430 +#, c-format +msgid "Dynamic offset, %s by %f pt" +msgstr "" + +#: ../src/sp-path.cpp:156 +#, c-format +msgid "Path (%i node, path effect: %s)" +msgid_plural "Path (%i nodes, path effect: %s)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/sp-path.cpp:159 +#, c-format +msgid "Path (%i node)" +msgid_plural "Path (%i nodes)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/sp-polygon.cpp:226 +msgid "Polygon" +msgstr "" + +#: ../src/sp-polyline.cpp:177 +msgid "Polyline" +msgstr "" + +#: ../src/sp-rect.cpp:223 +msgid "Rectangle" +msgstr "" + +#. TRANSLATORS: since turn count isn't an integer, please adjust the +#. string as needed to deal with an localized plural forms. +#: ../src/sp-spiral.cpp:325 +#, c-format +msgid "Spiral with %3f turns" +msgstr "" + +#: ../src/sp-star.cpp:309 +#, c-format +msgid "Star with %d vertex" +msgid_plural "Star with %d vertices" +msgstr[0] "" +msgstr[1] "" + +#: ../src/sp-star.cpp:313 +#, c-format +msgid "Polygon with %d vertex" +msgid_plural "Polygon with %d vertices" +msgstr[0] "" +msgstr[1] "" + +#: ../src/sp-switch.cpp:100 +#, c-format +msgid "Conditional group of %d object" +msgid_plural "Conditional group of %d objects" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: For description of font with no name. +#: ../src/sp-text.cpp:419 +msgid "<no name found>" +msgstr "" + +#: ../src/sp-text.cpp:425 +#, c-format +msgid "Text on path (%s, %s)" +msgstr "" + +#: ../src/sp-text.cpp:426 +#, c-format +msgid "Text (%s, %s)" +msgstr "" + +#: ../src/sp-tref.cpp:368 +#, c-format +msgid "Cloned character data%s%s" +msgstr "" + +#: ../src/sp-tref.cpp:369 +msgid " from " +msgstr "" + +#: ../src/sp-tref.cpp:374 +msgid "Orphaned cloned character data" +msgstr "" + +#: ../src/sp-tspan.cpp:284 +msgid "Text span" +msgstr "" + +#. TRANSLATORS: Used for statusbar description for long chains: +#. * "Clone of: Clone of: ... in Layer 1". +#: ../src/sp-use.cpp:327 +msgid "..." +msgstr "" + +#: ../src/sp-use.cpp:335 +#, c-format +msgid "Clone of: %s" +msgstr "" + +#: ../src/sp-use.cpp:339 +msgid "Orphaned clone" +msgstr "" + +#: ../src/star-context.cpp:333 +msgid "Ctrl: snap angle; keep rays radial" +msgstr "" + +#: ../src/star-context.cpp:464 +#, c-format +msgid "" +"Polygon: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" + +#: ../src/star-context.cpp:465 +#, c-format +msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" + +#: ../src/star-context.cpp:494 +msgid "Create star" +msgstr "" + +#: ../src/text-chemistry.cpp:104 +msgid "Select a text and a path to put text on path." +msgstr "" + +#: ../src/text-chemistry.cpp:109 +msgid "" +"This text object is already put on a path. Remove it from the path " +"first. Use Shift+D to look up its path." +msgstr "" + +#. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it +#: ../src/text-chemistry.cpp:115 +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 visible in order to be put on a path." +msgstr "" + +#: ../src/text-chemistry.cpp:192 ../src/verbs.cpp:2364 +msgid "Put text on path" +msgstr "" + +#: ../src/text-chemistry.cpp:204 +msgid "Select a text on path to remove it from path." +msgstr "" + +#: ../src/text-chemistry.cpp:226 +msgid "No texts-on-paths in the selection." +msgstr "" + +#: ../src/text-chemistry.cpp:229 ../src/verbs.cpp:2366 +msgid "Remove text from path" +msgstr "" + +#: ../src/text-chemistry.cpp:269 ../src/text-chemistry.cpp:290 +msgid "Select text(s) to remove kerns from." +msgstr "" + +#: ../src/text-chemistry.cpp:293 +msgid "Remove manual kerns" +msgstr "" + +#: ../src/text-chemistry.cpp:313 +msgid "" +"Select a text and one or more paths or shapes to flow text " +"into frame." +msgstr "" + +#: ../src/text-chemistry.cpp:381 +msgid "Flow text into shape" +msgstr "" + +#: ../src/text-chemistry.cpp:403 +msgid "Select a flowed text to unflow it." +msgstr "" + +#: ../src/text-chemistry.cpp:477 +msgid "Unflow flowed text" +msgstr "" + +#: ../src/text-chemistry.cpp:489 +msgid "Select flowed text(s) to convert." +msgstr "" + +#: ../src/text-chemistry.cpp:507 +msgid "The flowed text(s) must be visible in order to be converted." +msgstr "" + +#: ../src/text-chemistry.cpp:535 +msgid "Convert flowed text to text" +msgstr "" + +#: ../src/text-chemistry.cpp:540 +msgid "No flowed text(s) to convert in the selection." +msgstr "" + +#: ../src/text-context.cpp:441 +msgid "Click to edit the text, drag to select part of the text." +msgstr "" + +#: ../src/text-context.cpp:443 +msgid "" +"Click to edit the flowed text, drag to select part of the text." +msgstr "" + +#: ../src/text-context.cpp:498 +msgid "Create text" +msgstr "" + +#: ../src/text-context.cpp:522 +msgid "Non-printable character" +msgstr "" + +#: ../src/text-context.cpp:537 +msgid "Insert Unicode character" +msgstr "" + +#: ../src/text-context.cpp:572 +#, c-format +msgid "Unicode (Enter to finish): %s: %s" +msgstr "" + +#: ../src/text-context.cpp:574 ../src/text-context.cpp:849 +msgid "Unicode (Enter to finish): " +msgstr "" + +#: ../src/text-context.cpp:649 +#, c-format +msgid "Flowed text frame: %s × %s" +msgstr "" + +#: ../src/text-context.cpp:681 +msgid "Type text; Enter to start new line." +msgstr "" + +#: ../src/text-context.cpp:694 +msgid "Flowed text is created." +msgstr "" + +#: ../src/text-context.cpp:696 +msgid "Create flowed text" +msgstr "" + +#: ../src/text-context.cpp:698 +msgid "" +"The frame is too small for the current font size. Flowed text not " +"created." +msgstr "" + +#: ../src/text-context.cpp:834 +msgid "No-break space" +msgstr "" + +#: ../src/text-context.cpp:836 +msgid "Insert no-break space" +msgstr "" + +#: ../src/text-context.cpp:873 +msgid "Make bold" +msgstr "" + +#: ../src/text-context.cpp:891 +msgid "Make italic" +msgstr "" + +#: ../src/text-context.cpp:930 +msgid "New line" +msgstr "" + +#: ../src/text-context.cpp:964 +msgid "Backspace" +msgstr "" + +#: ../src/text-context.cpp:1012 +msgid "Kern to the left" +msgstr "" + +#: ../src/text-context.cpp:1037 +msgid "Kern to the right" +msgstr "" + +#: ../src/text-context.cpp:1062 +msgid "Kern up" +msgstr "" + +#: ../src/text-context.cpp:1088 +msgid "Kern down" +msgstr "" + +#: ../src/text-context.cpp:1165 +msgid "Rotate counterclockwise" +msgstr "" + +#: ../src/text-context.cpp:1186 +msgid "Rotate clockwise" +msgstr "" + +#: ../src/text-context.cpp:1203 +msgid "Contract line spacing" +msgstr "" + +#: ../src/text-context.cpp:1211 +msgid "Contract letter spacing" +msgstr "" + +#: ../src/text-context.cpp:1230 +msgid "Expand line spacing" +msgstr "" + +#: ../src/text-context.cpp:1238 +msgid "Expand letter spacing" +msgstr "" + +#: ../src/text-context.cpp:1368 +msgid "Paste text" +msgstr "" + +#: ../src/text-context.cpp:1602 +#, c-format +msgid "" +"Type or edit flowed text (%d characters); Enter to start new " +"paragraph." +msgstr "" + +#: ../src/text-context.cpp:1604 +#, c-format +msgid "Type or edit text (%d characters); Enter to start new line." +msgstr "" + +#: ../src/text-context.cpp:1612 ../src/tools-switch.cpp:190 +msgid "" +"Click to select or create text, drag to create flowed text; " +"then type." +msgstr "" + +#: ../src/text-context.cpp:1722 +msgid "Type text" +msgstr "" + +#: ../src/text-editing.cpp:40 +msgid "You cannot edit cloned character data." +msgstr "" + +#: ../src/tools-switch.cpp:130 +msgid "" +"To edit a path, click, Shift+click, or drag around " +"nodes to select them, then drag nodes and handles. Click on an " +"object to select." +msgstr "" + +#: ../src/tools-switch.cpp:136 +msgid "To tweak a path by pushing, select it and drag over it." +msgstr "" + +#: ../src/tools-switch.cpp:142 +msgid "" +"Drag to create a rectangle. Drag controls to round corners and " +"resize. Click to select." +msgstr "" + +#: ../src/tools-switch.cpp:148 +msgid "" +"Drag to create a 3D box. Drag controls to resize in " +"perspective. Click to select (with Ctrl+Alt for single faces)." +msgstr "" + +#: ../src/tools-switch.cpp:154 +msgid "" +"Drag to create an ellipse. Drag controls to make an arc or " +"segment. Click to select." +msgstr "" + +#: ../src/tools-switch.cpp:160 +msgid "" +"Drag to create a star. Drag controls to edit the star shape. " +"Click to select." +msgstr "" + +#: ../src/tools-switch.cpp:166 +msgid "" +"Drag to create a spiral. Drag controls to edit the spiral " +"shape. Click to select." +msgstr "" + +#: ../src/tools-switch.cpp:172 +msgid "" +"Drag to create a freehand line. Shift appends to selected " +"path, Alt activates sketch mode." +msgstr "" + +#: ../src/tools-switch.cpp:178 +msgid "" +"Click or click and drag to start a path; with Shift to " +"append to selected path. Ctrl+click to create single dots (straight " +"line modes only)." +msgstr "" + +#: ../src/tools-switch.cpp:184 +msgid "" +"Drag to draw a calligraphic stroke; with Ctrl to track a guide " +"path. Arrow keys adjust width (left/right) and angle (up/down)." +msgstr "" + +#: ../src/tools-switch.cpp:196 +msgid "" +"Drag or double click to create a gradient on selected objects, " +"drag handles to adjust gradients." +msgstr "" + +#: ../src/tools-switch.cpp:202 +msgid "" +"Click or drag around an area to zoom in, Shift+click to " +"zoom out." +msgstr "" + +#: ../src/tools-switch.cpp:214 +msgid "Click and drag between shapes to create a connector." +msgstr "" + +#: ../src/tools-switch.cpp:220 +msgid "" +"Click to paint a bounded area, Shift+click to union the new " +"fill with the current selection, Ctrl+click to change the clicked " +"object's fill and stroke to the current setting." +msgstr "" + +#: ../src/tools-switch.cpp:226 +msgid "Drag to erase." +msgstr "" + +#: ../src/tools-switch.cpp:232 +msgid "Choose a subtool from the toolbar" +msgstr "" + +#: ../src/trace/potrace/inkscape-potrace.cpp:524 +#: ../src/trace/potrace/inkscape-potrace.cpp:598 +#, c-format +msgid "Trace: %d. %ld nodes" +msgstr "" + +#: ../src/trace/trace.cpp:71 ../src/trace/trace.cpp:136 +#: ../src/trace/trace.cpp:144 ../src/trace/trace.cpp:243 +msgid "Select an image to trace" +msgstr "" + +#: ../src/trace/trace.cpp:106 +msgid "Select only one image to trace" +msgstr "" + +#: ../src/trace/trace.cpp:124 +msgid "Select one image and one or more shapes above it" +msgstr "" + +#: ../src/trace/trace.cpp:234 +msgid "Trace: No active desktop" +msgstr "" + +#: ../src/trace/trace.cpp:334 +msgid "Invalid SIOX result" +msgstr "" + +#: ../src/trace/trace.cpp:439 +msgid "Trace: No active document" +msgstr "" + +#: ../src/trace/trace.cpp:462 +msgid "Trace: Image has no bitmap data" +msgstr "" + +#: ../src/trace/trace.cpp:469 +msgid "Trace: Starting trace..." +msgstr "" + +#. ## inform the document, so we can undo +#: ../src/trace/trace.cpp:571 +msgid "Trace bitmap" +msgstr "" + +#: ../src/trace/trace.cpp:575 +#, c-format +msgid "Trace: Done. %ld nodes created" +msgstr "" + +#: ../src/tweak-context.cpp:204 +#, c-format +msgid "Nothing selected" +msgstr "" + +#: ../src/tweak-context.cpp:210 +#, c-format +msgid "%s. Drag to move." +msgstr "" + +#: ../src/tweak-context.cpp:214 +#, c-format +msgid "%s. Drag or click to move in; with Shift to move out." +msgstr "" + +#: ../src/tweak-context.cpp:218 +#, c-format +msgid "%s. Drag or click to move randomly." +msgstr "" + +#: ../src/tweak-context.cpp:222 +#, c-format +msgid "%s. Drag or click to scale down; with Shift to scale up." +msgstr "" + +#: ../src/tweak-context.cpp:226 +#, c-format +msgid "" +"%s. Drag or click to rotate clockwise; with Shift, " +"counterclockwise." +msgstr "" + +#: ../src/tweak-context.cpp:230 +#, c-format +msgid "%s. Drag or click to duplicate; with Shift, delete." +msgstr "" + +#: ../src/tweak-context.cpp:234 +#, c-format +msgid "%s. Drag to push paths." +msgstr "" + +#: ../src/tweak-context.cpp:238 +#, c-format +msgid "%s. Drag or click to inset paths; with Shift to outset." +msgstr "" + +#: ../src/tweak-context.cpp:246 +#, c-format +msgid "%s. Drag or click to attract paths; with Shift to repel." +msgstr "" + +#: ../src/tweak-context.cpp:254 +#, c-format +msgid "%s. Drag or click to roughen paths." +msgstr "" + +#: ../src/tweak-context.cpp:258 +#, c-format +msgid "%s. Drag or click to paint objects with color." +msgstr "" + +#: ../src/tweak-context.cpp:262 +#, c-format +msgid "%s. Drag or click to randomize colors." +msgstr "" + +#: ../src/tweak-context.cpp:266 +#, c-format +msgid "" +"%s. Drag or click to increase blur; with Shift to decrease." +msgstr "" + +#: ../src/tweak-context.cpp:1223 +msgid "Nothing selected! Select objects to tweak." +msgstr "" + +#: ../src/tweak-context.cpp:1259 +msgid "Move tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1263 +msgid "Move in/out tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1267 +msgid "Move jitter tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1271 +msgid "Scale tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1275 +msgid "Rotate tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1279 +msgid "Duplicate/delete tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1283 +msgid "Push path tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1287 +msgid "Shrink/grow path tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1291 +msgid "Attract/repel path tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1295 +msgid "Roughen path tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1299 +msgid "Color paint tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1303 +msgid "Color jitter tweak" +msgstr "" + +#: ../src/tweak-context.cpp:1307 +msgid "Blur tweak" +msgstr "" + +#. check whether something is selected +#: ../src/ui/clipboard.cpp:257 +msgid "Nothing was copied." +msgstr "" + +#: ../src/ui/clipboard.cpp:318 ../src/ui/clipboard.cpp:520 +#: ../src/ui/clipboard.cpp:544 +msgid "Nothing on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:374 +msgid "Select object(s) to paste style to." +msgstr "" + +#: ../src/ui/clipboard.cpp:385 ../src/ui/clipboard.cpp:403 +msgid "No style on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:425 +msgid "Select object(s) to paste size to." +msgstr "" + +#: ../src/ui/clipboard.cpp:432 +msgid "No size on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:483 +msgid "Select object(s) to paste live path effect to." +msgstr "" + +#. no_effect: +#: ../src/ui/clipboard.cpp:507 +msgid "No effect on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:527 ../src/ui/clipboard.cpp:554 +msgid "Clipboard does not contain a path." +msgstr "" + +#. Item dialog +#: ../src/ui/context-menu.cpp:105 +msgid "Object _Properties" +msgstr "" + +#. Select item +#: ../src/ui/context-menu.cpp:115 +msgid "_Select This" +msgstr "" + +#. Create link +#: ../src/ui/context-menu.cpp:125 +msgid "_Create Link" +msgstr "" + +#. 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:306 ../src/verbs.cpp:2360 +msgid "_Ungroup" +msgstr "" + +#. Link dialog +#: ../src/ui/context-menu.cpp:346 +msgid "Link _Properties" +msgstr "" + +#. Select item +#: ../src/ui/context-menu.cpp:352 +msgid "_Follow Link" +msgstr "" + +#. Reset transformations +#: ../src/ui/context-menu.cpp:357 +msgid "_Remove Link" +msgstr "" + +#. Link dialog +#: ../src/ui/context-menu.cpp:405 +msgid "Image _Properties" +msgstr "" + +#: ../src/ui/context-menu.cpp:411 +msgid "Edit Externally..." +msgstr "" + +#. Item dialog +#: ../src/ui/context-menu.cpp:504 +msgid "_Fill and Stroke" +msgstr "" + +#. * +#. * Constructor +#. +#: ../src/ui/dialog/aboutbox.cpp:77 +msgid "About Inkscape" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:88 +msgid "_Splash" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:92 +msgid "_Authors" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:94 +msgid "_Translators" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:96 +msgid "_License" +msgstr "" + +#. TRANSLATORS: This is the filename of the `About Inkscape' picture in +#. the `screens' directory. Thus the translation of "about.svg" should be +#. the filename of its translated version, e.g. about.zh.svg for Chinese. +#. +#. N.B. about.svg changes once per release. (We should probably rename +#. the original to about-0.40.svg etc. as soon as we have a translation. +#. If we do so, then add an item to release-checklist saying that the +#. string here should be changed.) +#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the +#. native filename encoding... and the filename passed to sp_document_new +#. should be in UTF-*8.. +#: ../src/ui/dialog/aboutbox.cpp:149 +msgid "about.svg" +msgstr "" + +#. TRANSLATORS: Put here your name (and other national contributors') +#. one per line in the form of: name surname (email). Use \n for newline. +#: ../src/ui/dialog/aboutbox.cpp:371 +msgid "translator-credits" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:238 +#: ../src/ui/dialog/align-and-distribute.cpp:787 +msgid "Align" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:397 +#: ../src/ui/dialog/align-and-distribute.cpp:788 +msgid "Distribute" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:466 +msgid "Minimum horizontal gap (in px units) between bounding boxes" +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 +#. "H:" stands for horizontal gap +#: ../src/ui/dialog/align-and-distribute.cpp:470 +msgid "gap|H:" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:478 +msgid "Minimum vertical gap (in px units) between bounding boxes" +msgstr "" + +#. TRANSLATORS: Vertical gap +#: ../src/ui/dialog/align-and-distribute.cpp:480 +msgid "V:" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:509 +#: ../src/ui/dialog/align-and-distribute.cpp:789 +#: ../src/widgets/toolbox.cpp:7068 +msgid "Remove overlaps" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:540 +#: ../src/widgets/toolbox.cpp:6931 +msgid "Arrange connector network" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:571 +msgid "Unclump" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:642 +msgid "Randomize positions" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:739 +msgid "Distribute text baselines" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:759 +msgid "Align text baselines" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:790 +msgid "Connector network layout" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:791 +#: ../src/widgets/toolbox.cpp:2083 +msgid "Nodes" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:797 +msgid "Relative to: " +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:798 +msgid "Treat selection as group: " +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:804 +msgid "Align right edges of objects to the left edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:807 +msgid "Align left edges" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:810 +msgid "Center on vertical axis" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:813 +msgid "Align right sides" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:816 +msgid "Align left edges of objects to the right edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:819 +msgid "Align bottom edges of objects to the top edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:822 +msgid "Align top edges" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:825 +msgid "Center on horizontal axis" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:828 +msgid "Align bottom edges" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:831 +msgid "Align top edges of objects to the bottom edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:836 +msgid "Align baseline anchors of texts horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:839 +msgid "Align baselines of texts" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:844 +msgid "Make horizontal gaps between objects equal" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:848 +msgid "Distribute left edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:851 +msgid "Distribute centers equidistantly horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:854 +msgid "Distribute right edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:858 +msgid "Make vertical gaps between objects equal" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:862 +msgid "Distribute top edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:865 +msgid "Distribute centers equidistantly vertically" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:868 +msgid "Distribute bottom edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:873 +msgid "Distribute baseline anchors of texts horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:876 +msgid "Distribute baselines of texts vertically" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:881 +msgid "Randomize centers in both dimensions" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:884 +msgid "Unclump objects: try to equalize edge-to-edge distances" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:889 +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:7031 +msgid "Nicely arrange selected connector network" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:901 +msgid "Align selected nodes to a common horizontal line" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:904 +msgid "Align selected nodes to a common vertical line" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:907 +msgid "Distribute selected nodes horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:910 +msgid "Distribute selected nodes vertically" +msgstr "" + +#. Rest of the widgetry +#: ../src/ui/dialog/align-and-distribute.cpp:915 +msgid "Last selected" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:916 +msgid "First selected" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:917 +msgid "Biggest object" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:918 +msgid "Smallest object" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:921 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1414 +#: ../src/ui/dialog/icon-preview.cpp:178 +#: ../src/widgets/desktop-widget.cpp:1580 +msgid "Selection" +msgstr "" + +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:38 +msgid "Profile name:" +msgstr "" + +#. When changing the interval or enabling/disabling the autosave function, +#. * update our running configuration +#. * +#. * FIXME! +#. * the inkscape_autosave_init should be called AFTER the values have been changed +#. * (which cannot be guaranteed from here) - use a PrefObserver somewhere +#. +#. +#. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. +#. ----------- +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:52 +#: ../src/ui/dialog/inkscape-preferences.cpp:1145 +msgid "Save" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:68 +msgid "Messages" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:77 ../src/ui/dialog/messages.cpp:55 +msgid "Capture log messages" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:79 ../src/ui/dialog/messages.cpp:57 +msgid "Release log messages" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:73 +msgid "Metadata" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:74 +msgid "License" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:154 +msgid "Dublin Core Entities" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:176 +msgid "License" +msgstr "" + +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:90 +msgid "Show page _border" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:90 +msgid "If set, rectangular page border is shown" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:91 +msgid "Border on _top of drawing" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:91 +msgid "If set, border is always on top of the drawing" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:92 +msgid "_Show border shadow" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:92 +msgid "If set, page border shows a shadow on its right and lower side" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:93 +msgid "Back_ground:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:93 +msgid "Background color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:93 +msgid "" +"Color and transparency of the page background (also used for bitmap export)" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:94 +msgid "Border _color:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:94 +msgid "Page border color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:94 +msgid "Color of the page border" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:95 +msgid "Default _units:" +msgstr "" + +#. --------------------------------------------------------------- +#. General snap options +#: ../src/ui/dialog/document-properties.cpp:99 +msgid "Show _guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:99 +msgid "Show or hide guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:100 +msgid "_Snap guides while dragging" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:100 +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; only a small " +"part of the guide near the cursor will snap)" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:102 +msgid "Guide co_lor:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:102 +msgid "Guideline color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:102 +msgid "Color of guidelines" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:103 +msgid "_Highlight color:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:103 +msgid "Highlighted guideline color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:103 +msgid "Color of a guideline when it is under mouse" +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 +#. "New" refers to grid +#: ../src/ui/dialog/document-properties.cpp:109 +msgid "Grid|_New" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:109 +msgid "Create new grid." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:110 +msgid "_Remove" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:110 +msgid "Remove selected grid." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:119 +#: ../src/widgets/toolbox.cpp:2172 +msgid "Guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1014 +#: ../src/widgets/toolbox.cpp:2163 +msgid "Grids" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:121 ../src/verbs.cpp:2587 +#: ../src/widgets/toolbox.cpp:2028 +msgid "Snap" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Color Management" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:123 +msgid "Scripting" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:221 +msgid "General" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:223 +msgid "Border" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:225 +msgid "Format" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:253 +msgid "Guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:272 +msgid "Snap _distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:272 +msgid "Snap only when _closer than:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:272 +#: ../src/ui/dialog/document-properties.cpp:278 +#: ../src/ui/dialog/document-properties.cpp:284 +msgid "Always snap" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:273 +msgid "Snapping distance, in screen pixels, for snapping to objects" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:273 +msgid "Always snap to objects, regardless of their distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:274 +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:278 +msgid "Snap d_istance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:278 +msgid "Snap only when c_loser than:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:279 +msgid "Snapping distance, in screen pixels, for snapping to grid" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:279 +msgid "Always snap to grids, regardless of the distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:280 +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:284 +msgid "Snap dist_ance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:284 +msgid "Snap only when close_r than:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:285 +msgid "Snapping distance, in screen pixels, for snapping to guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:285 +msgid "Always snap to guides, regardless of the distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:286 +msgid "" +"If set, objects only snap to a guide when it's within the range specified " +"below" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:290 +msgid "Snap to objects" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:292 +msgid "Snap to grids" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:294 +msgid "Snap to guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:323 +msgid "(invalid UTF-8 string)" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:349 +#, c-format +msgid "Color profiles directory (%s) is unavailable." +msgstr "" + +#. TODO check if this next line was sometimes needed. It being there caused an assertion. +#. Inkscape::GC::release(defsRepr); +#. inform the document, so we can undo +#. Color Management +#: ../src/ui/dialog/document-properties.cpp:451 ../src/verbs.cpp:2739 +msgid "Link Color Profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:524 +msgid "Remove linked color profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:538 +msgid "Linked Color Profiles:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:540 +msgid "Available Color Profiles:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:542 +msgid "Link Profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:573 +msgid "Profile Name" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:604 +msgid "External script files:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:606 +#: ../src/ui/dialog/swatches.cpp:463 +msgid "Add" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:629 +msgid "Filename" +msgstr "" + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:669 +msgid "Add external script..." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:693 +msgid "Remove external script" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:774 +msgid "Creation" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:775 +msgid "Defined grids" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:985 +msgid "Remove grid" +msgstr "" + +#: ../src/ui/dialog/extension-editor.cpp:80 +msgid "Information" +msgstr "" + +#: ../src/ui/dialog/extension-editor.cpp:81 +#: ../share/extensions/draw_from_triangle.inx.h:20 +#: ../share/extensions/dxf_input.inx.h:9 +#: ../share/extensions/dxf_outlines.inx.h:8 +#: ../share/extensions/lindenmayer.inx.h:23 +#: ../share/extensions/measure.inx.h:2 ../share/extensions/scour.inx.h:4 +msgid "Help" +msgstr "" + +#: ../src/ui/dialog/extension-editor.cpp:82 +msgid "Parameters" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:383 +msgid "No preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:489 +msgid "too large for preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:577 +msgid "Enable preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:711 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:712 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:197 +msgid "All Inkscape Files" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:716 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:717 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:196 +msgid "All Files" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:722 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:723 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:198 +msgid "All Images" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:727 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:728 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:199 +msgid "All Vectors" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:732 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:733 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:200 +msgid "All Bitmaps" +msgstr "" + +#. ###### File options +#. ###### Do we want the .xxx extension automatically added? +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:927 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1475 +msgid "Append filename extension automatically" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1085 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1339 +msgid "Guess from extension" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1360 +msgid "Left edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1361 +msgid "Top edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1362 +msgid "Right edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1363 +msgid "Bottom edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1364 +msgid "Source width" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1365 +msgid "Source height" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1366 +msgid "Destination width" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1367 +msgid "Destination height" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1368 +msgid "Resolution (dots per inch)" +msgstr "" + +#. ######################################### +#. ## EXTRA WIDGET -- SOURCE SIDE +#. ######################################### +#. ##### Export options buttons/spinners, etc +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1406 +msgid "Document" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1418 +#: ../share/extensions/color_custom.inx.h:3 +msgid "Custom" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1458 +msgid "Cairo" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1461 +msgid "Antialias" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1464 +msgid "Background" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1487 +msgid "Destination" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-win32.cpp:476 +msgid "Show Preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-win32.cpp:611 +msgid "No file selected" +msgstr "" + +#: ../src/ui/dialog/fill-and-stroke.cpp:48 +#: ../share/extensions/interp_att_g.inx.h:4 +msgid "Fill" +msgstr "" + +#: ../src/ui/dialog/fill-and-stroke.cpp:49 +msgid "Stroke _paint" +msgstr "" + +#: ../src/ui/dialog/fill-and-stroke.cpp:50 +msgid "Stroke st_yle" +msgstr "" + +#. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor +#: ../src/ui/dialog/filter-effects-dialog.cpp:465 +msgid "" +"This matrix determines a linear transform on color space. Each line affects " +"one of the color components. Each column determines how much of each color " +"component from the input is passed to the output. The last column does not " +"depend on input colors, so can be used to adjust a constant component value." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:575 +msgid "Image File" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:578 +msgid "Selected SVG Element" +msgstr "" + +#. TODO: any image, not just svg +#: ../src/ui/dialog/filter-effects-dialog.cpp:648 +msgid "Select an image to be used as feImage input" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:740 +msgid "This SVG filter effect does not require any parameters." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:746 +msgid "This SVG filter effect is not yet implemented in Inkscape." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:938 +msgid "Light Source:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:955 +msgid "Direction angle for the light source on the XY plane, in degrees" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:956 +msgid "Direction angle for the light source on the YZ plane, in degrees" +msgstr "" + +#. default x: +#. default y: +#. default z: +#: ../src/ui/dialog/filter-effects-dialog.cpp:959 +#: ../src/ui/dialog/filter-effects-dialog.cpp:962 +msgid "Location" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:959 +#: ../src/ui/dialog/filter-effects-dialog.cpp:962 +#: ../src/ui/dialog/filter-effects-dialog.cpp:965 +msgid "X coordinate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:959 +#: ../src/ui/dialog/filter-effects-dialog.cpp:962 +#: ../src/ui/dialog/filter-effects-dialog.cpp:965 +msgid "Y coordinate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:959 +#: ../src/ui/dialog/filter-effects-dialog.cpp:962 +#: ../src/ui/dialog/filter-effects-dialog.cpp:965 +msgid "Z coordinate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:965 +msgid "Points At" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:966 +msgid "Specular Exponent" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:966 +msgid "Exponent value controlling the focus for the light source" +msgstr "" + +#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. +#: ../src/ui/dialog/filter-effects-dialog.cpp:968 +msgid "Cone Angle" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:968 +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:1029 +msgid "New light source" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1070 +msgid "_Duplicate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1096 +msgid "_Filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1110 +msgid "R_ename" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1213 +msgid "Rename filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1249 +msgid "Apply filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1318 +msgid "filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 +msgid "Add filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1351 +msgid "Duplicate filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1418 +msgid "_Effect" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1426 +msgid "Connections" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1542 +msgid "Remove filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1914 +msgid "Remove merge node" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2030 +msgid "Reorder filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2064 +msgid "Add Effect:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2065 +msgid "No effect selected" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2066 +msgid "No filter selected" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2104 +msgid "Effect parameters" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2105 +msgid "Filter General Settings" +msgstr "" + +#. default x: +#. default y: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2161 +msgid "Coordinates:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2161 +msgid "X coordinate of the left corners of filter effects region" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2161 +msgid "Y coordinate of the upper corners of filter effects region" +msgstr "" + +#. default width: +#. default height: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2162 +msgid "Dimensions:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2162 +msgid "Width of filter effects region" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2162 +msgid "Height of filter effects region" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2165 +#: ../src/widgets/toolbox.cpp:3859 ../src/widgets/toolbox.cpp:4250 +#: ../share/extensions/extrude.inx.h:4 +msgid "Mode:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2168 +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:2169 +msgid "Value(s):" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2183 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2223 +msgid "Operator:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2184 +msgid "K1:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2184 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2185 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2186 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2187 +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:2185 +msgid "K2:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2186 +msgid "K3:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2187 +msgid "K4:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2190 +#: ../src/ui/dialog/tracedialog.cpp:581 +msgid "Size:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2190 +msgid "width of the convolve matrix" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2190 +msgid "height of the convolve matrix" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2191 +msgid "" +"X coordinate of the target point in the convolve matrix. The convolution is " +"applied to pixels around this point." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2191 +msgid "" +"Y coordinate of the target point in the convolve matrix. The convolution is " +"applied to pixels around this point." +msgstr "" + +#. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) +#: ../src/ui/dialog/filter-effects-dialog.cpp:2193 +msgid "Kernel:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2193 +msgid "" +"This matrix describes the convolve operation that is applied to the input " +"image in order to calculate the pixel colors at the output. Different " +"arrangements of values in this matrix result in various possible visual " +"effects. An identity matrix would lead to a motion blur effect (parallel to " +"the matrix diagonal) while a matrix filled with a constant non-zero value " +"would lead to a common blur effect." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2195 +msgid "Divisor:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2195 +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:2196 +msgid "Bias:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2196 +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:2197 +msgid "Edge Mode:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2197 +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:2198 +msgid "Preserve Alpha" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2198 +msgid "If set, the alpha channel won't be altered by this filter primitive." +msgstr "" + +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2201 +msgid "Diffuse Color:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2201 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2234 +msgid "Defines the color of the light source" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2235 +msgid "Surface Scale:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2235 +msgid "" +"This value amplifies the heights of the bump map defined by the input alpha " +"channel" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2236 +msgid "Constant:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2236 +msgid "This constant affects the Phong lighting model." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2204 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2238 +msgid "Kernel Unit Length:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2208 +msgid "Scale:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2208 +msgid "This defines the intensity of the displacement effect." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2209 +msgid "X displacement:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2209 +msgid "Color component that controls the displacement in the X direction" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2210 +msgid "Y displacement:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2210 +msgid "Color component that controls the displacement in the Y direction" +msgstr "" + +#. default: black +#: ../src/ui/dialog/filter-effects-dialog.cpp:2213 +msgid "Flood Color:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2213 +msgid "The whole filter region will be filled with this color." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2214 +#: ../src/widgets/toolbox.cpp:5299 +msgid "Opacity:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2217 +msgid "Standard Deviation:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2217 +msgid "The standard deviation for the blur operation." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2223 +msgid "" +"Erode: performs \"thinning\" of input image.\n" +"Dilate: performs \"fattenning\" of input image." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2224 +msgid "Radius:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2227 +msgid "Source of Image:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2230 +msgid "Delta X:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2230 +msgid "This is how far the input image gets shifted to the right" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2231 +msgid "Delta Y:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2231 +msgid "This is how far the input image gets shifted downwards" +msgstr "" + +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2234 +msgid "Specular Color:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2237 +msgid "Exponent:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2237 +msgid "Exponent for specular term, larger is more \"shiny\"." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2246 +msgid "" +"Indicates whether the filter primitive should perform a noise or turbulence " +"function." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2247 +msgid "Base Frequency:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2248 +msgid "Octaves:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2249 +msgid "Seed:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2249 +msgid "The starting number for the pseudo random number generator." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2261 +msgid "Add filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2278 +msgid "" +"The feBlend filter primitive provides 4 image blending modes: screen, " +"multiply, darken and lighten." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2282 +msgid "" +"The feColorMatrix filter primitive applies a matrix transformation to " +"color of each rendered pixel. This allows for effects like turning object to " +"grayscale, modifying color saturation and changing color hue." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2286 +msgid "" +"The feComponentTransfer filter primitive manipulates the input's " +"color components (red, green, blue, and alpha) according to particular " +"transfer functions, allowing operations like brightness and contrast " +"adjustment, color balance, and thresholding." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2290 +msgid "" +"The feComposite filter primitive composites two images using one of " +"the Porter-Duff blending modes or the arithmetic mode described in SVG " +"standard. Porter-Duff blending modes are essentially logical operations " +"between the corresponding pixel values of the images." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2294 +msgid "" +"The feConvolveMatrix lets you specify a Convolution to be applied on " +"the image. Common effects created using convolution matrices are blur, " +"sharpening, embossing and edge detection. Note that while gaussian blur can " +"be created using this filter primitive, the special gaussian blur primitive " +"is faster and resolution-independent." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2298 +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives create " +"\"embossed\" shadings. The input's alpha channel is used to provide depth " +"information: higher opacity areas are raised toward the viewer and lower " +"opacity areas recede away from the viewer." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2302 +msgid "" +"The feDisplacementMap filter primitive displaces the pixels in the " +"first input using the second input as a displacement map, that shows from " +"how far the pixel should come from. Classical examples are whirl and pinch " +"effects." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2306 +msgid "" +"The feFlood filter primitive fills the region with a given color and " +"opacity. It is usually used as an input to other filters to apply color to " +"a graphic." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2310 +msgid "" +"The feGaussianBlur filter primitive uniformly blurs its input. It is " +"commonly used together with feOffset to create a drop shadow effect." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2314 +msgid "" +"The feImage filter primitive fills the region with an external image " +"or another part of the document." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2318 +msgid "" +"The feMerge filter primitive composites several temporary images " +"inside the filter primitive to a single image. It uses normal alpha " +"compositing for this. This is equivalent to using several feBlend primitives " +"in 'normal' mode or several feComposite primitives in 'over' mode." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2322 +msgid "" +"The feMorphology filter primitive provides erode and dilate effects. " +"For single-color objects erode makes the object thinner and dilate makes it " +"thicker." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2326 +msgid "" +"The feOffset filter primitive offsets the image by an user-defined " +"amount. For example, this is useful for drop shadows, where the shadow is in " +"a slightly different position than the actual object." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2330 +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives create " +"\"embossed\" shadings. The input's alpha channel is used to provide depth " +"information: higher opacity areas are raised toward the viewer and lower " +"opacity areas recede away from the viewer." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2334 +msgid "" +"The feTile filter primitive tiles a region with its input graphic" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2338 +msgid "" +"The feTurbulence filter primitive renders Perlin noise. This kind of " +"noise is useful in simulating several nature phenomena like clouds, fire and " +"smoke and in generating complex textures like marble or granite." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2357 +msgid "Duplicate filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2410 +msgid "Set filter primitive attribute" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:42 +msgid "Unit:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:45 +msgid "Angle (degrees):" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:46 +msgid "Rela_tive change" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:46 +msgid "Move and/or rotate the guide relative to current settings" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:112 +msgid "Set guide properties" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:151 +msgid "Guideline" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:239 +#, c-format +msgid "Guideline ID: %s" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:245 +#, c-format +msgid "Current: %s" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:130 +#, c-format +msgid "%d x %d" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:180 +msgid "Selection only or whole document" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:188 +msgid "Refresh the icons" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:169 +msgid "Mouse" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:171 +msgid "Grab sensitivity:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:171 +#: ../src/ui/dialog/inkscape-preferences.cpp:174 +#: ../src/ui/dialog/inkscape-preferences.cpp:190 +#: ../src/ui/dialog/inkscape-preferences.cpp:194 +#: ../src/ui/dialog/inkscape-preferences.cpp:204 +msgid "pixels" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:172 +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:174 +msgid "Click/drag threshold:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:175 +msgid "" +"Maximum mouse drag (in screen pixels) which is considered a click, not a drag" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:177 +msgid "Use pressure-sensitive tablet (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:179 +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:181 +msgid "Switch tool based on tablet device (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:183 +msgid "" +"Change tool as different devices are used on the tablet (pen, eraser, mouse)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:188 +msgid "Scrolling" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:190 +msgid "Mouse wheel scrolls by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:191 +msgid "" +"One mouse wheel notch scrolls by this distance in screen pixels " +"(horizontally with Shift)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:192 +msgid "Ctrl+arrows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:194 +msgid "Scroll by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:195 +msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:197 +msgid "Acceleration:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:198 +msgid "" +"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " +"acceleration)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:199 +msgid "Autoscrolling" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:201 +msgid "Speed:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:202 +msgid "" +"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " +"autoscroll off)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:204 +#: ../src/ui/dialog/tracedialog.cpp:420 ../src/ui/dialog/tracedialog.cpp:453 +#: ../src/ui/dialog/tracedialog.cpp:596 ../src/widgets/toolbox.cpp:7185 +msgid "Threshold:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:205 +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:206 +msgid "Left mouse button pans when Space is pressed" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:208 +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 "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:209 +msgid "Mouse wheel zooms by default" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:211 +msgid "" +"When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " +"off, it zooms with Ctrl and scrolls without Ctrl." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:217 +msgid "Enable snap indicator" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:219 +msgid "After snapping, a symbol is drawn at the point that has snapped" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:222 +msgid "Delay (in ms):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:223 +msgid "" +"Postpone snapping as long as the mouse is moving, and then wait an " +"additional fraction of a second. This additional delay is specified here. " +"When set to zero or to a very small number, snapping will be immediate." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:225 +msgid "Only snap the node closest to the pointer" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:227 +msgid "" +"Only try to snap the node that is initially closest to the mouse pointer" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:230 +msgid "Weight factor:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:231 +msgid "" +"When multiple snap solutions are found, then Inkscape can either prefer the " +"closest transformation (when set to 0), or prefer the node that was " +"initially the closest to the pointer (when set to 1)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:233 +msgid "Snap the mouse pointer when dragging a constrained knot" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:235 +msgid "" +"When dragging a knot along a constraint line, then snap the position of the " +"mouse pointer instead of snapping the projection of the knot onto the " +"constraint line" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:237 +msgid "Snapping" +msgstr "" + +#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here +#: ../src/ui/dialog/inkscape-preferences.cpp:246 +msgid "Arrow keys move by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:247 +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:250 +msgid "> and < scale by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:251 +msgid "" +"Pressing > or < scales selection up or down by this increment (in px units)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:253 +msgid "Inset/Outset by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:254 +msgid "" +"Inset and Outset commands displace the path by this distance (in px units)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:255 +msgid "Compass-like display of angles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:257 +msgid "" +"When on, angles are displayed with 0 at north, 0 to 360 range, positive " +"clockwise; otherwise with 0 at east, -180 to 180 range, positive " +"counterclockwise" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:263 +msgid "Rotation snaps every:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:263 +msgid "degrees" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:264 +msgid "" +"Rotating with Ctrl pressed snaps every that much degrees; also, pressing " +"[ or ] rotates by this amount" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:266 +msgid "Zoom in/out by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:267 +msgid "" +"Zoom tool click, +/- keys, and middle click zoom in and out by this " +"multiplier" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:273 +msgid "Show selection cue" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:274 +msgid "" +"Whether selected objects display a selection cue (the same as in selector)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:280 +msgid "Enable gradient editing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:281 +msgid "Whether selected objects display gradient editing controls" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:286 +msgid "Conversion to guides uses edges instead of bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:287 +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:294 +msgid "Ctrl+click dot size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:294 +msgid "times current stroke width" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:295 +msgid "Size of dots created with Ctrl+click (relative to current stroke width)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:310 +msgid "No objects selected to take the style from." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:319 +msgid "" +"More than one object selected. Cannot take style from multiple " +"objects." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:352 +msgid "Create new objects with:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:354 +msgid "Last used style" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:356 +msgid "Apply the style you last set on an object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:361 +msgid "This tool's own style:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:365 +msgid "" +"Each tool may store its own style to apply to the newly created objects. Use " +"the button below to set it." +msgstr "" + +#. style swatch +#: ../src/ui/dialog/inkscape-preferences.cpp:369 +msgid "Take from selection" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:374 +msgid "This tool's style of new objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:381 +msgid "Remember the style of the (first) selected object as this tool's style" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:386 +msgid "Tools" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:389 +msgid "Bounding box to use:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:390 +msgid "Visual bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:392 +msgid "This bounding box includes stroke width, markers, filter margins, etc." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:393 +msgid "Geometric bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:395 +msgid "This bounding box includes only the bare path" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:397 +msgid "Conversion to guides:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:398 +msgid "Keep objects after conversion to guides" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:400 +msgid "" +"When converting an object to guides, don't delete the object after the " +"conversion." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:401 +msgid "Treat groups as a single object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:403 +msgid "" +"Treat groups as a single object during conversion to guides rather than " +"converting each child separately." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:405 +msgid "Average all sketches" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:406 +msgid "Width is in absolute units" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:407 +msgid "Select new path" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:408 +msgid "Don't attach connectors to text objects" +msgstr "" + +#. Selector +#: ../src/ui/dialog/inkscape-preferences.cpp:411 +msgid "Selector" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:414 +msgid "When transforming, show:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:415 +msgid "Objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:417 +msgid "Show the actual objects when moving or transforming" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:418 +msgid "Box outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:420 +msgid "Show only a box outline of the objects when moving or transforming" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:421 +msgid "Per-object selection cue:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:424 +msgid "No per-object selection indication" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:425 +msgid "Mark" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:427 +msgid "Each selected object has a diamond mark in the top left corner" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:428 +msgid "Box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:430 +msgid "Each selected object displays its bounding box" +msgstr "" + +#. Node +#: ../src/ui/dialog/inkscape-preferences.cpp:433 +msgid "Node" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:436 +msgid "Path outline:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:437 +#: ../src/ui/dialog/inkscape-preferences.cpp:438 +msgid "Path outline color" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:438 +msgid "Selects the color used for showing the path outline." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:439 +msgid "Path outline flash on mouse-over" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:440 +msgid "When hovering over a path, briefly flash its outline." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:441 +msgid "Suppress path outline flash when one path selected" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:442 +msgid "If a path is selected, do not continue flashing path outlines." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:444 +msgid "Flash time" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:444 +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:447 ../src/verbs.cpp:2504 +msgid "Tweak" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:448 +msgid "Paint objects with:" +msgstr "" + +#. Zoom +#: ../src/ui/dialog/inkscape-preferences.cpp:453 +#: ../src/ui/view/edit-widget.cpp:1062 ../src/verbs.cpp:2526 +#: ../src/widgets/desktop-widget.cpp:483 +msgid "Zoom" +msgstr "" + +#. Shapes +#: ../src/ui/dialog/inkscape-preferences.cpp:458 +msgid "Shapes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:490 +msgid "Sketch mode" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:492 +msgid "" +"If on, the sketch result will be the normal average of all sketches made, " +"instead of averaging the old result with the new sketch." +msgstr "" + +#. Pen +#: ../src/ui/dialog/inkscape-preferences.cpp:495 ../src/verbs.cpp:2518 +msgid "Pen" +msgstr "" + +#. Calligraphy +#: ../src/ui/dialog/inkscape-preferences.cpp:501 ../src/verbs.cpp:2520 +msgid "Calligraphy" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:505 +msgid "" +"If on, pen width is in absolute units (px) independent of zoom; otherwise " +"pen width depends on zoom so that it looks the same at any zoom" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:507 +msgid "" +"If on, each newly created object will be selected (deselecting previous " +"selection)" +msgstr "" + +#. Paint Bucket +#: ../src/ui/dialog/inkscape-preferences.cpp:509 ../src/verbs.cpp:2532 +msgid "Paint Bucket" +msgstr "" + +#. Eraser +#: ../src/ui/dialog/inkscape-preferences.cpp:514 ../src/verbs.cpp:2536 +msgid "Eraser" +msgstr "" + +#. LPETool +#: ../src/ui/dialog/inkscape-preferences.cpp:518 ../src/verbs.cpp:2538 +msgid "LPE Tool" +msgstr "" + +#. Gradient +#: ../src/ui/dialog/inkscape-preferences.cpp:528 ../src/verbs.cpp:2524 +msgid "Gradient" +msgstr "" + +#. Connector +#: ../src/ui/dialog/inkscape-preferences.cpp:532 ../src/verbs.cpp:2530 +msgid "Connector" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:535 +msgid "If on, connector attachment points will not be shown for text objects" +msgstr "" + +#. Dropper +#: ../src/ui/dialog/inkscape-preferences.cpp:537 ../src/verbs.cpp:2528 +msgid "Dropper" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:544 +msgid "Save and restore window geometry for each document" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:545 +msgid "Remember and use last window's geometry" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:546 +msgid "Don't save window geometry" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:548 +#: ../src/ui/dialog/inkscape-preferences.cpp:568 +msgid "Dockable" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:551 +msgid "Dialogs are hidden in taskbar" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:552 +msgid "Zoom when window is resized" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:553 +msgid "Show close button on dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:555 +msgid "Normal" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:556 +msgid "Aggressive" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:558 +msgid "Saving window geometry (size and position):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:560 +msgid "Let the window manager determine placement of all windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:562 +msgid "" +"Remember and use the last window's geometry (saves geometry to user " +"preferences)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:564 +msgid "" +"Save and restore window geometry for each document (saves geometry in the " +"document)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:566 +msgid "Dialog behavior (requires restart):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:573 +msgid "Dialogs on top:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:576 +msgid "Dialogs are treated as regular windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:578 +msgid "Dialogs stay on top of document windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:580 +msgid "Same as Normal but may work better with some window managers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:584 +msgid "Dialog Transparency:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:586 +msgid "Opacity when focused:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:588 +msgid "Opacity when unfocused:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:590 +msgid "Time of opacity change animation:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:593 +msgid "Miscellaneous:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:596 +msgid "Whether dialog windows are to be hidden in the window manager taskbar" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:599 +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:601 +msgid "Whether dialog windows have a close button (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:602 +msgid "Windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:607 +msgid "Move in parallel" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:609 +msgid "Stay unmoved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:611 +msgid "Move according to transform" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:613 +msgid "Are unlinked" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:615 +msgid "Are deleted" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:618 +msgid "When the original moves, its clones and linked offsets:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:620 +msgid "Clones are translated by the same vector as their original." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:622 +msgid "Clones preserve their positions when their original is moved." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:624 +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:625 +msgid "When the original is deleted, its clones:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:627 +msgid "Orphaned clones are converted to regular objects." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:629 +msgid "Orphaned clones are deleted along with their original." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:631 +msgid "When duplicating original+clones:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:633 +msgid "Relink duplicated clones" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:635 +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:638 +msgid "Clones" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:643 +msgid "When applying, use the topmost selected object as clippath/mask" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:645 +msgid "" +"Uncheck this to use the bottom selected object as the clipping path or mask" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:646 +msgid "Remove clippath/mask object after applying" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:648 +msgid "" +"After applying, remove the object used as the clipping path or mask from the " +"drawing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:649 +msgid "Clippaths and masks" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:654 +#: ../src/widgets/select-toolbar.cpp:544 +msgid "Scale stroke width" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:655 +msgid "Scale rounded corners in rectangles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:656 +msgid "Transform gradients" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:657 +msgid "Transform patterns" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:658 +msgid "Optimized" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:659 +msgid "Preserved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:662 +#: ../src/widgets/select-toolbar.cpp:545 +msgid "When scaling objects, scale the stroke width by the same proportion" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:664 +#: ../src/widgets/select-toolbar.cpp:556 +msgid "When scaling rectangles, scale the radii of rounded corners" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:666 +#: ../src/widgets/select-toolbar.cpp:567 +msgid "Move gradients (in fill or stroke) along with the objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:668 +#: ../src/widgets/select-toolbar.cpp:578 +msgid "Move patterns (in fill or stroke) along with the objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:669 +msgid "Store transformation:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:671 +msgid "" +"If possible, apply transformation to objects without adding a transform= " +"attribute" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:673 +msgid "Always store transformation as a transform= attribute on objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:675 +msgid "Transforms" +msgstr "" + +#. blur quality +#. filter quality +#: ../src/ui/dialog/inkscape-preferences.cpp:681 +#: ../src/ui/dialog/inkscape-preferences.cpp:705 +msgid "Best quality (slowest)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:683 +#: ../src/ui/dialog/inkscape-preferences.cpp:707 +msgid "Better quality (slower)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:685 +#: ../src/ui/dialog/inkscape-preferences.cpp:709 +msgid "Average quality" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:687 +#: ../src/ui/dialog/inkscape-preferences.cpp:711 +msgid "Lower quality (faster)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:689 +#: ../src/ui/dialog/inkscape-preferences.cpp:713 +msgid "Lowest quality (fastest)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:692 +msgid "Gaussian blur quality for display:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:694 +#: ../src/ui/dialog/inkscape-preferences.cpp:718 +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:696 +#: ../src/ui/dialog/inkscape-preferences.cpp:720 +msgid "Better quality, but slower display" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/inkscape-preferences.cpp:722 +msgid "Average quality, acceptable display speed" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:700 +#: ../src/ui/dialog/inkscape-preferences.cpp:724 +msgid "Lower quality (some artifacts), but display is faster" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:702 +#: ../src/ui/dialog/inkscape-preferences.cpp:726 +msgid "Lowest quality (considerable artifacts), but display is fastest" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:716 +msgid "Filter effects quality for display:" +msgstr "" + +#. show infobox +#: ../src/ui/dialog/inkscape-preferences.cpp:729 +msgid "Show filter primitives infobox" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:731 +msgid "" +"Show icons and descriptions for the filter primitives available at the " +"filter effects dialog." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:739 +msgid "Select in all layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:740 +msgid "Select only within current layer" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:741 +msgid "Select in current layer and sublayers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:742 +msgid "Ignore hidden objects and layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:743 +msgid "Ignore locked objects and layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:744 +msgid "Deselect upon layer change" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:746 +msgid "Ctrl+A, Tab, Shift+Tab:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:748 +msgid "Make keyboard selection commands work on objects in all layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:750 +msgid "Make keyboard selection commands work on objects in current layer only" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:752 +msgid "" +"Make keyboard selection commands work on objects in current layer and all " +"its sublayers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:754 +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:756 +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:759 +msgid "" +"Uncheck this to be able to keep the current objects selected when the " +"current layer changes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:761 +msgid "Selecting" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:768 +msgid "Default export resolution:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:769 +msgid "Default bitmap resolution (in dots per inch) in the Export dialog" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:771 +msgid "Open Clip Art Library Server Name:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:772 +msgid "" +"The server name of the Open Clip Art Library webdav server. It's used by the " +"Import and Export to OCAL function." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:774 +msgid "Open Clip Art Library Username:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:775 +msgid "The username used to log into Open Clip Art Library." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:777 +msgid "Open Clip Art Library Password:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:778 +msgid "The password used to log into Open Clip Art Library." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:780 +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:830 +msgid "Perceptual" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:830 +msgid "Relative Colorimetric" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:830 +msgid "Absolute Colorimetric" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:834 +msgid "(Note: Color management has been disabled in this build)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:838 +msgid "Display adjustment" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:848 +#, c-format +msgid "" +"The ICC profile to use to calibrate display output.\n" +"Searched directories:%s" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:849 +msgid "Display profile:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:854 +msgid "Retrieve profile from display" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:857 +msgid "Retrieve profiles from those attached to displays via XICC." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:859 +msgid "Retrieve profiles from those attached to displays." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:864 +msgid "Display rendering intent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:865 +#: ../src/ui/dialog/inkscape-preferences.cpp:888 +msgid "The rendering intent to use to calibrate display output." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:867 +msgid "Proofing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:869 +msgid "Simulate output on screen" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:871 +msgid "Simulates output of target device." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:873 +msgid "Mark out of gamut colors" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:875 +msgid "Highlights colors that are out of gamut for the target device." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:880 +msgid "Out of gamut warning color:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:881 +msgid "Selects the color used for out of gamut warning." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:883 +msgid "Device profile:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:884 +msgid "The ICC profile to use to simulate device output." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:887 +msgid "Device rendering intent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:890 +msgid "Black point compensation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:892 +msgid "Enables black point compensation." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:894 +msgid "Preserve black" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:899 +msgid "(LittleCMS 1.15 or later required)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:901 +msgid "Preserve K channel in CMYK -> CMYK transforms" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:914 +#: ../src/widgets/sp-color-icc-selector.cpp:306 +#: ../src/widgets/sp-color-icc-selector.cpp:579 +msgid "" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:959 +msgid "Color management" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:964 +msgid "Major grid line emphasizing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:966 +msgid "Don't emphasize gridlines when zoomed out" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:967 +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:969 +msgid "Default grid settings" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:975 +#: ../src/ui/dialog/inkscape-preferences.cpp:996 +msgid "Grid units:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:978 +#: ../src/ui/dialog/inkscape-preferences.cpp:999 +msgid "Origin X:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:979 +#: ../src/ui/dialog/inkscape-preferences.cpp:1000 +msgid "Origin Y:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:982 +msgid "Spacing X:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:983 +#: ../src/ui/dialog/inkscape-preferences.cpp:1002 +msgid "Spacing Y:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:985 +#: ../src/ui/dialog/inkscape-preferences.cpp:986 +#: ../src/ui/dialog/inkscape-preferences.cpp:1007 +#: ../src/ui/dialog/inkscape-preferences.cpp:1008 +msgid "Grid line color:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:986 +#: ../src/ui/dialog/inkscape-preferences.cpp:1008 +msgid "Color used for normal grid lines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:987 +#: ../src/ui/dialog/inkscape-preferences.cpp:988 +#: ../src/ui/dialog/inkscape-preferences.cpp:1009 +#: ../src/ui/dialog/inkscape-preferences.cpp:1010 +msgid "Major grid line color:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:988 +#: ../src/ui/dialog/inkscape-preferences.cpp:1010 +msgid "Color used for major (highlighted) grid lines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:990 +#: ../src/ui/dialog/inkscape-preferences.cpp:1012 +msgid "Major grid line every:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:991 +msgid "Show dots instead of lines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:992 +msgid "If set, display dots at gridpoints instead of gridlines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1019 +msgid "Use named colors" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1020 +msgid "" +"If set, write the CSS name of the color when available (e.g. 'red' or " +"'magenta') instead of the numeric value" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1022 +msgid "XML formatting" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1024 +msgid "Inline attributes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1025 +msgid "Put attributes on the same line as the element tag" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1028 +msgid "Indent, spaces:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1028 +msgid "" +"The number of spaces to use for indenting nested elements; set to 0 for no " +"indentation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1030 +msgid "Path data" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1032 +msgid "Allow relative coordinates" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1033 +msgid "If set, relative coordinates may be used in path data" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1035 +msgid "Force repeat commands" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1036 +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:1038 +msgid "Numbers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1041 +msgid "Numeric precision:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1041 +msgid "How many digits to write after the decimal dot" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1044 +msgid "Minimum exponent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1044 +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:1046 +msgid "SVG output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +msgid "System default" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +msgid "Albanian (sq)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +msgid "Amharic (am)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +msgid "Arabic (ar)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +msgid "Armenian (hy)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +msgid "Azerbaijani (az)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +msgid "Basque (eu)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +msgid "Belarusian (be)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 +msgid "Bulgarian (bg)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 +msgid "Bengali (bn)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 +msgid "Breton (br)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 +msgid "Catalan (ca)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 +msgid "Valencian Catalan (ca@valencia)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 +msgid "Chinese/China (zh_CN)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1053 +msgid "Chinese/Taiwan (zh_TW)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1053 +msgid "Croatian (hr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1053 +msgid "Czech (cs)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 +msgid "Danish (da)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 +msgid "Dutch (nl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 +msgid "Dzongkha (dz)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 +msgid "German (de)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 +msgid "Greek (el)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 +msgid "English (en)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 +msgid "English/Australia (en_AU)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 +msgid "English/Canada (en_CA)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 +msgid "English/Great Britain (en_GB)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 +msgid "Pig Latin (en_US@piglatin)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1056 +msgid "Esperanto (eo)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1056 +msgid "Estonian (et)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1056 +msgid "Finnish (fi)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +msgid "French (fr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +msgid "Irish (ga)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +msgid "Galician (gl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +msgid "Hebrew (he)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +msgid "Hungarian (hu)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 +msgid "Indonesian (id)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 +msgid "Italian (it)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 +msgid "Japanese (ja)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 +msgid "Khmer (km)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 +msgid "Kinyarwanda (rw)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 +msgid "Korean (ko)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 +msgid "Lithuanian (lt)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 +msgid "Macedonian (mk)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +msgid "Mongolian (mn)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +msgid "Nepali (ne)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +msgid "Norwegian BokmÃ¥l (nb)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +msgid "Norwegian Nynorsk (nn)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +msgid "Panjabi (pa)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1060 +msgid "Polish (pl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1060 +msgid "Portuguese (pt)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1060 +msgid "Portuguese/Brazil (pt_BR)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1060 +msgid "Romanian (ro)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1060 +msgid "Russian (ru)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 +msgid "Serbian (sr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 +msgid "Serbian in Latin script (sr@latin)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 +msgid "Slovak (sk)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 +msgid "Slovenian (sl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 +msgid "Spanish (es)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 +msgid "Spanish/Mexico (es_MX)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1062 +msgid "Swedish (sv)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1062 +msgid "Thai (th)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1062 +msgid "Turkish (tr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1062 +msgid "Ukrainian (uk)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1062 +msgid "Vietnamese (vi)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1069 +msgid "Language (requires restart):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1070 +msgid "Set the language for menus and number formats" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1072 +msgid "Smaller" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1076 +msgid "Toolbox icon size" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 +msgid "Set the size for the tool icons (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1080 +msgid "Control bar icon size" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1081 +msgid "" +"Set the size for the icons in tools' control bars to use (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1084 +msgid "Secondary toolbar icon size" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1085 +msgid "" +"Set the size for the icons in secondary toolbars to use (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1088 +msgid "Work-around color sliders not drawing." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1090 +msgid "" +"When on, will attempt to work around bugs in certain GTK themes drawing " +"color sliders." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1096 +msgid "Clear list" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1101 +msgid "Maximum documents in Open Recent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1102 +msgid "" +"Set the maximum length of the Open Recent list in the File menu, or clear " +"the list" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1105 +msgid "Zoom correction factor (in %):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1106 +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:1108 +msgid "Interface" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1114 +msgid "Use current directory for \"Save As ...\"" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1116 +msgid "" +"When this option is on, the \"Save as...\" dialog will always open in the " +"directory where the currently open document is. When it's off, it will open " +"in the directory where you last saved a file using that dialog." +msgstr "" + +#. Autosave options +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +msgid "Enable autosave (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +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:1123 +msgid "Interval (in minutes):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +msgid "Interval (in minutes) at which document will be autosaved" +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/ui/dialog/inkscape-preferences.cpp:1127 +msgid "filesystem|Path:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +msgid "The directory where autosaves will be written" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +msgid "Maximum number of autosaves:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +msgid "" +"Maximum number of autosaved files; use this to limit the storage space used" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1151 +msgid "2x2" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1151 +msgid "4x4" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1151 +msgid "8x8" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1151 +msgid "16x16" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1155 +msgid "Oversample bitmaps:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1158 +msgid "Automatically reload bitmaps" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1160 +msgid "Automatically reload linked images when file is changed on disk" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1174 +msgid "Bitmap editor:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1180 +msgid "Resolution for Create Bitmap Copy:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1181 +msgid "Resolution used by the Create Bitmap Copy command" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1183 +msgid "Bitmaps" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1235 +msgid "Language:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1236 +msgid "Set the main spell check language" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1239 +msgid "Second language:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1240 +msgid "" +"Set the second spell check language; checking will only stop on words " +"unknown in ALL chosen languages" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1243 +msgid "Third language:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1244 +msgid "" +"Set the third spell check language; checking will only stop on words unknown " +"in ALL chosen languages" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1246 +msgid "Ignore words with digits" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +msgid "Ignore words containing digits, such as \"R2D2\"" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +msgid "Ignore words in ALL CAPITALS" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1252 +msgid "Ignore words in all capitals, such as \"IUPAC\"" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +msgid "Spellcheck" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1273 +msgid "Add label comments to printing output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1275 +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:1277 +msgid "Prevent sharing of gradient definitions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1279 +msgid "" +"When on, shared gradient definitions are automatically forked on change; " +"uncheck to allow sharing of gradient definitions so that editing one object " +"may affect other objects using the same gradient" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1282 +msgid "Simplification threshold:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1283 +msgid "" +"How strong is the Node tool's Simplify command by default. If you invoke " +"this command several times in quick succession, it will act more and more " +"aggressively; invoking it again after a pause restores the default threshold." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1286 +msgid "Latency skew:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1286 +msgid "(requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1287 +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:1289 +msgid "Pre-render named icons" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1291 +msgid "" +"When on, named icons will be rendered before displaying the ui. This is for " +"working around bugs in GTK+ named icon notification" +msgstr "" + +#. TRANSLATORS: following strings are paths in Inkscape preferences - Misc - System info +#: ../src/ui/dialog/inkscape-preferences.cpp:1297 +msgid "User config: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1301 +msgid "User data: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1305 +msgid "User cache: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1309 +msgid "System config: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1312 +msgid "System data: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1315 +msgid "PIXMAP: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1319 +msgid "DATA: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1323 +msgid "UI: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1332 +msgid "Icon theme: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1347 +msgid "System info" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1347 +msgid "General system information" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1349 +msgid "Misc" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:41 +msgid "Layer name:" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:109 +msgid "Add layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:147 +msgid "Above current" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:151 +msgid "Below current" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:154 +msgid "As sublayer of current" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:158 +msgid "Position:" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:176 +msgid "Rename Layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:179 +msgid "_Rename" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:192 +msgid "Rename layer" +msgstr "" + +#. TRANSLATORS: This means "The layer has been renamed" +#: ../src/ui/dialog/layer-properties.cpp:194 +msgid "Renamed layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:198 +msgid "Add Layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:201 +msgid "_Add" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:225 +msgid "New layer created." +msgstr "" + +#: ../src/ui/dialog/layers.cpp:495 ../src/ui/widget/layer-selector.cpp:595 +msgid "Unhide layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:495 ../src/ui/widget/layer-selector.cpp:595 +msgid "Hide layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:506 ../src/ui/widget/layer-selector.cpp:587 +msgid "Lock layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:506 ../src/ui/widget/layer-selector.cpp:587 +msgid "Unlock layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:656 +msgid "New" +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/ui/dialog/layers.cpp:663 +msgid "layers|Top" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:669 +msgid "Up" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:675 +msgid "Dn" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:681 +msgid "Bot" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:691 +msgid "X" +msgstr "" + +#. TRANSLATORS: this dialog is accessible via menu Path - Path Effect Editor... +#: ../src/ui/dialog/livepatheffect-editor.cpp:78 +msgid "Apply new effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:79 +msgid "Current effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:80 +msgid "Effect list" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:269 +msgid "Unknown effect is applied" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:272 +msgid "No effect applied" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:276 +msgid "Item is not a path or shape" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:280 +msgid "Only one item can be selected" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:284 +msgid "Empty selection" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:308 +msgid "Unknown effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:374 +msgid "Create and apply path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:391 +msgid "Remove path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:407 +msgid "Move path effect up" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:423 +msgid "Move path effect down" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:462 +msgid "Activate path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:462 +msgid "Deactivate path effect" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:94 +msgid "Heap" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:95 +msgid "In Use" +msgstr "" + +#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused. +#. More typical usage is to call this memory "free" rather than "slack". +#: ../src/ui/dialog/memory.cpp:98 +msgid "Slack" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:99 +msgid "Total" +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 +msgid "Unknown" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:165 +msgid "Combined" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:207 +msgid "Recalculate" +msgstr "" + +#: ../src/ui/dialog/messages.cpp:73 +msgid "Ready." +msgstr "" + +#: ../src/ui/dialog/messages.cpp:74 +msgid "" +"Enable log display by setting dialogs.debug 'redirect' attribute to 1 in " +"preferences.xml" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:422 +msgid "Error while reading the Open Clip Art RSS feed" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:461 +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 "" + +#: ../src/ui/dialog/ocaldialogs.cpp:475 +msgid "Server supplied malformed Clip Art feed" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:566 +msgid "Search for:" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:567 +msgid "No files matched your search" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:578 +msgid "Search" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:595 +msgid "Files found" +msgstr "" + +#: ../src/ui/dialog/print.cpp:93 +msgid "Could not open temporary PNG for bitmap printing" +msgstr "" + +#: ../src/ui/dialog/print.cpp:136 +msgid "Could not set up Document" +msgstr "" + +#: ../src/ui/dialog/print.cpp:140 +msgid "Failed to set CairoRenderContext" +msgstr "" + +#. set up dialog title, based on document name +#: ../src/ui/dialog/print.cpp:180 +msgid "SVG Document" +msgstr "" + +#: ../src/ui/dialog/print.cpp:181 +msgid "Print" +msgstr "" + +#. build custom preferences tab +#: ../src/ui/dialog/print.cpp:215 +msgid "Rendering" +msgstr "" + +#: ../src/ui/dialog/scriptdialog.cpp:211 +msgid "_Execute Javascript" +msgstr "" + +#: ../src/ui/dialog/scriptdialog.cpp:213 +msgid "_Execute Python" +msgstr "" + +#: ../src/ui/dialog/scriptdialog.cpp:215 +msgid "_Execute Ruby" +msgstr "" + +#: ../src/ui/dialog/scriptdialog.cpp:224 +msgid "Script" +msgstr "" + +#: ../src/ui/dialog/scriptdialog.cpp:234 +msgid "Output" +msgstr "" + +#: ../src/ui/dialog/scriptdialog.cpp:244 +msgid "Errors" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:121 +msgid "Set SVG Font attribute" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:174 +msgid "Adjust kerning value" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:364 +msgid "Family Name:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:374 +msgid "Set width:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:433 +msgid "glyph" +msgstr "" + +#. SPGlyph* glyph = +#: ../src/ui/dialog/svg-fonts-dialog.cpp:465 +msgid "Add glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:481 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:525 +msgid "Select a path to define the curves of a glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:489 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:533 +msgid "The selected object does not have a path description." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:504 +msgid "No glyph selected in the SVGFonts dialog." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:509 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:551 +msgid "Set glyph curves" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:570 +msgid "Reset missing-glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:585 +msgid "Edit glyph name" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:598 +msgid "Set glyph unicode" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:608 +msgid "Remove font" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:623 +msgid "Remove glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:638 +msgid "Remove kerning pair" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:648 +msgid "Missing Glyph:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:652 +msgid "From selection..." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:654 +#: ../src/ui/widget/preferences-widget.cpp:590 +msgid "Reset" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:665 +msgid "Glyph name" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:666 +msgid "Matching string" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:669 +msgid "Add Glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:676 +msgid "Get curves from selection..." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:726 +msgid "Add kerning pair" +msgstr "" + +#. Kerning Setup: +#: ../src/ui/dialog/svg-fonts-dialog.cpp:734 +msgid "Kerning Setup:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:736 +msgid "1st Glyph:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:738 +msgid "2nd Glyph:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:741 +msgid "Add pair" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:753 +msgid "First Unicode range" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:754 +msgid "Second Unicode range" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:761 +msgid "Kerning value:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:819 +msgid "Set font family" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:828 +msgid "font" +msgstr "" + +#. select_font(font); +#: ../src/ui/dialog/svg-fonts-dialog.cpp:842 +msgid "Add font" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:862 +msgid "_Font" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:870 +msgid "_Global Settings" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:871 +msgid "_Glyphs" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:872 +msgid "_Kerning" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:879 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:880 +msgid "Sample Text" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:884 +msgid "Preview Text:" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:331 +#, c-format +msgid "" +"Color: %s; Click to set fill, Shift+click to set stroke" +msgstr "" + +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:442 +msgid "Set fill" +msgstr "" + +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:450 +msgid "Set stroke" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:476 ../src/widgets/gradient-selector.cpp:144 +#: ../src/widgets/gradient-toolbar.cpp:466 +msgid "Edit..." +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:488 +msgid "Convert" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:651 +msgid "Change color definition" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:852 +msgid "Remove stroke color" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:852 +msgid "Remove fill color" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:857 +msgid "Set stroke color to none" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:857 +msgid "Set fill color to none" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:874 +msgid "Set stroke color from swatch" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:874 +msgid "Set fill color from swatch" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:1198 +#, c-format +msgid "Palettes directory (%s) is unavailable." +msgstr "" + +#: ../src/ui/dialog/tile.cpp:346 +msgid "Arrange in a grid" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:652 +msgid "Rows:" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:660 +msgid "Number of rows" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:664 +msgid "Equal height" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:674 +msgid "If not set, each row has the height of the tallest object in it" +msgstr "" + +#. #### Radio buttons to control vertical alignment #### +#. #### Radio buttons to control horizontal alignment #### +#: ../src/ui/dialog/tile.cpp:680 ../src/ui/dialog/tile.cpp:750 +msgid "Align:" +msgstr "" + +#. #### Number of columns #### +#: ../src/ui/dialog/tile.cpp:722 +msgid "Columns:" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:730 +msgid "Number of columns" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:734 +msgid "Equal width" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:743 +msgid "If not set, each column has the width of the widest object in it" +msgstr "" + +#. #### Radio buttons to control spacing manually or to fit selection bbox #### +#: ../src/ui/dialog/tile.cpp:789 +msgid "Fit into selection box" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:795 +msgid "Set spacing:" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:815 +msgid "Vertical spacing between rows (px units)" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:840 +msgid "Horizontal spacing between columns (px units)" +msgstr "" + +#. ## The OK button +#: ../src/ui/dialog/tile.cpp:863 +msgid "tileClonesDialog|Arrange" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:864 +msgid "Arrange selected objects" +msgstr "" + +#. #### begin left panel +#. ### begin notebook +#. ## begin mode page +#. # begin single scan +#. brightness +#: ../src/ui/dialog/tracedialog.cpp:406 +msgid "Brightness cutoff" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:410 +msgid "Trace by a given brightness level" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:418 +msgid "Brightness cutoff for black/white" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:425 +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:430 +msgid "Edge detection" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:434 +msgid "Trace with optimal edge detection by J. Canny's algorithm" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:451 +msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" +msgstr "" + +#. quantization +#. TRANSLATORS: Color Quantization: the process of reducing the number +#. of colors in an image by selecting an optimized set of representative +#. colors and then re-applying this reduced set to the original image. +#: ../src/ui/dialog/tracedialog.cpp:463 +msgid "Color quantization" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:467 +msgid "Trace along the boundaries of reduced colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:475 +msgid "The number of reduced colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:477 +msgid "Colors:" +msgstr "" + +#. swap black and white +#: ../src/ui/dialog/tracedialog.cpp:483 +msgid "Invert image" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:488 +msgid "Invert black and white regions" +msgstr "" + +#. # end single scan +#. # begin multiple scan +#: ../src/ui/dialog/tracedialog.cpp:497 +msgid "Brightness steps" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:501 +msgid "Trace the given number of brightness levels" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:508 +msgid "Scans:" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:511 +msgid "The desired number of scans" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:515 +#: ../share/extensions/svgcalendar.inx.h:6 +msgid "Colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:519 +msgid "Trace the given number of reduced colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:523 +msgid "Grays" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:527 +msgid "Same as Colors, but the result is converted to grayscale" +msgstr "" + +#. TRANSLATORS: "Smooth" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:532 +msgid "Smooth" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:536 +msgid "Apply Gaussian blur to the bitmap before tracing" +msgstr "" + +#. TRANSLATORS: "Stack" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:539 +msgid "Stack scans" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:542 +msgid "" +"Stack scans on top of one another (no gaps) instead of tiling (usually with " +"gaps)" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:545 +msgid "Remove background" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:550 +msgid "Remove bottom (background) layer when done" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:554 +msgid "Multiple scans: creates a group of paths" +msgstr "" + +#. # end multiple scan +#. ## end mode page +#: ../src/ui/dialog/tracedialog.cpp:563 ../src/widgets/toolbox.cpp:4249 +#: ../share/extensions/triangle.inx.h:9 +msgid "Mode" +msgstr "" + +#. ## begin option page +#. # potrace parameters +#: ../src/ui/dialog/tracedialog.cpp:569 +msgid "Suppress speckles" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:571 +msgid "Ignore small spots (speckles) in the bitmap" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:579 +msgid "Speckles of up to this many pixels will be suppressed" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:584 +msgid "Smooth corners" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:586 +msgid "Smooth out sharp corners of the trace" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:595 +msgid "Increase this to smooth corners more" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:599 +msgid "Optimize paths" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:602 +msgid "Try to optimize paths by joining adjacent Bezier curve segments" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:610 +msgid "" +"Increase this to reduce the number of nodes in the trace by more aggressive " +"optimization" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:611 +msgid "Tolerance:" +msgstr "" + +#. ## end option page +#: ../src/ui/dialog/tracedialog.cpp:617 ../src/ui/dialog/tracedialog.cpp:623 +#: ../share/extensions/dxf_input.inx.h:11 +#: ../share/extensions/dxf_outlines.inx.h:9 ../share/extensions/scour.inx.h:10 +msgid "Options" +msgstr "" + +#. ### credits +#: ../src/ui/dialog/tracedialog.cpp:627 +msgid "" +"Inkscape bitmap tracing\n" +"is based on Potrace,\n" +"created by Peter Selinger\n" +"\n" +"http://potrace.sourceforge.net" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:630 +msgid "Credits" +msgstr "" + +#. #### begin right panel +#. ## SIOX +#: ../src/ui/dialog/tracedialog.cpp:644 +msgid "SIOX foreground selection" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:647 +msgid "Cover the area you want to select as the foreground" +msgstr "" + +#. ## preview +#: ../src/ui/dialog/tracedialog.cpp:652 +msgid "Update" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:658 +msgid "" +"Preview the intermediate bitmap with the current settings, without actual " +"tracing" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:662 +msgid "Preview" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:679 +msgid "Abort a trace in progress" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:683 +msgid "Execute the trace" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/dialog/transformation.cpp:92 +msgid "_Horizontal" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:82 +msgid "Horizontal displacement (relative) or position (absolute)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:94 +msgid "_Vertical" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:84 +msgid "Vertical displacement (relative) or position (absolute)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:86 +msgid "_Width" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:86 +msgid "Horizontal size (absolute or percentage of current)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:88 +msgid "_Height" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:88 +msgid "Vertical size (absolute or percentage of current)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:90 +msgid "A_ngle" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:90 +msgid "Rotation angle (positive = counterclockwise)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:92 +msgid "" +"Horizontal skew angle (positive = counterclockwise), or absolute " +"displacement, or percentage displacement" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:94 +msgid "" +"Vertical skew angle (positive = counterclockwise), or absolute displacement, " +"or percentage displacement" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:97 +msgid "Transformation matrix element A" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:98 +msgid "Transformation matrix element B" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:99 +msgid "Transformation matrix element C" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:100 +msgid "Transformation matrix element D" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:101 +msgid "Transformation matrix element E" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:102 +msgid "Transformation matrix element F" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:104 +msgid "Rela_tive move" +msgstr "" + +#: ../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:105 +msgid "Scale proportionally" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:105 +msgid "Preserve the width/height ratio of the scaled objects" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:106 +msgid "Apply to each _object separately" +msgstr "" + +#: ../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:107 +msgid "Edit c_urrent matrix" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:107 +msgid "" +"Edit the current transform= matrix; otherwise, post-multiply transform= by " +"this matrix" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:117 +msgid "_Move" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:120 +msgid "_Scale" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:123 +msgid "_Rotate" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:126 +msgid "Ske_w" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:129 +msgid "Matri_x" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:153 +msgid "Reset the values on the current tab to defaults" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:160 +msgid "Apply transformation to selection" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:846 +msgid "Edit transformation matrix" +msgstr "" + +#: ../src/ui/view/edit-widget.cpp:330 ../src/ui/view/edit-widget.cpp:335 +#: ../src/ui/view/edit-widget.cpp:343 ../src/ui/view/edit-widget.cpp:348 +#: ../src/ui/view/edit-widget.cpp:353 ../src/ui/view/edit-widget.cpp:368 +#: ../src/ui/view/edit-widget.cpp:381 ../src/ui/view/edit-widget.cpp:386 +#: ../src/ui/view/edit-widget.cpp:400 ../src/ui/view/edit-widget.cpp:404 +#: ../src/ui/view/edit-widget.cpp:412 ../src/ui/view/edit-widget.cpp:416 +#: ../src/ui/view/edit-widget.cpp:420 ../src/ui/view/edit-widget.cpp:756 +#: ../src/ui/view/edit-widget.cpp:761 ../src/ui/view/edit-widget.cpp:867 +#: ../src/ui/view/edit-widget.cpp:871 ../src/ui/view/edit-widget.cpp:992 +msgid "PLACEHOLDER, do not translate" +msgstr "" + +#: ../src/ui/view/edit-widget.cpp:1051 ../src/widgets/desktop-widget.cpp:379 +msgid "Zoom drawing if window size changes" +msgstr "" + +#: ../src/ui/view/edit-widget.cpp:1072 ../src/widgets/desktop-widget.cpp:503 +msgid "Cursor coordinates" +msgstr "" + +#: ../src/ui/view/edit-widget.cpp:1082 ../src/widgets/desktop-widget.cpp:518 +msgid "Z:" +msgstr "" + +#: ../src/ui/view/edit-widget.cpp:1089 +msgid "" +"Welcome to Inkscape! Use shape or drawing tools to create objects; " +"use selector (arrow) to move or transform them." +msgstr "" + +#: ../src/ui/view/edit-widget.cpp:1200 ../src/widgets/desktop-widget.cpp:838 +#, c-format +msgid "" +"Save changes to document \"%s\" before " +"closing?\n" +"\n" +"If you close without saving, your changes will be discarded." +msgstr "" + +#: ../src/ui/view/edit-widget.cpp:1211 ../src/ui/view/edit-widget.cpp:1259 +#: ../src/widgets/desktop-widget.cpp:845 ../src/widgets/desktop-widget.cpp:902 +msgid "Close _without saving" +msgstr "" + +#: ../src/ui/view/edit-widget.cpp:1247 ../src/widgets/desktop-widget.cpp:894 +#, c-format +msgid "" +"The file \"%s\" was saved with a " +"format (%s) that may cause data loss!\n" +"\n" +"Do you want to save this file as an Inkscape SVG?" +msgstr "" + +#: ../src/ui/view/edit-widget.cpp:1262 ../src/widgets/desktop-widget.cpp:905 +msgid "_Save as SVG" +msgstr "" + +#: ../src/ui/widget/filter-effect-chooser.cpp:25 +msgid "_Blend mode:" +msgstr "" + +#: ../src/ui/widget/filter-effect-chooser.cpp:26 +msgid "B_lur:" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:114 +msgid "Toggle current layer visibility" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:135 +msgid "Lock or unlock current layer" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:138 +msgid "Current layer" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:566 +msgid "(root)" +msgstr "" + +#: ../src/ui/widget/licensor.cpp:35 +msgid "Proprietary" +msgstr "" + +#: ../src/ui/widget/licensor.cpp:38 +msgid "MetadataLicence|Other" +msgstr "" + +#: ../src/ui/widget/object-composite-settings.cpp:172 +msgid "Change blur" +msgstr "" + +#: ../src/ui/widget/object-composite-settings.cpp:212 +#: ../src/ui/widget/selected-style.cpp:857 +#: ../src/ui/widget/selected-style.cpp:1151 +msgid "Change opacity" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:229 +msgid "U_nits:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:230 +msgid "Width of paper" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:231 +msgid "Height of paper" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:277 +msgid "P_age size:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:285 +msgid "Page orientation:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:288 +msgid "_Landscape" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:293 +msgid "_Portrait" +msgstr "" + +#. ## Set up custom size frame +#: ../src/ui/widget/page-sizer.cpp:300 +msgid "Custom size" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:313 +msgid "_Fit page to selection" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:314 +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:377 +msgid "Set page size" +msgstr "" + +#: ../src/ui/widget/panel.cpp:111 +msgid "List" +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/ui/widget/panel.cpp:136 +msgid "swatches|Size" +msgstr "" + +#: ../src/ui/widget/panel.cpp:140 +msgid "tiny" +msgstr "" + +#: ../src/ui/widget/panel.cpp:141 +msgid "small" +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 +#. "medium" indicates size of colour swatches +#: ../src/ui/widget/panel.cpp:145 +msgid "swatchesHeight|medium" +msgstr "" + +#: ../src/ui/widget/panel.cpp:146 +msgid "large" +msgstr "" + +#: ../src/ui/widget/panel.cpp:147 +msgid "huge" +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/ui/widget/panel.cpp:171 +msgid "swatches|Width" +msgstr "" + +#: ../src/ui/widget/panel.cpp:175 +msgid "narrower" +msgstr "" + +#: ../src/ui/widget/panel.cpp:176 +msgid "narrow" +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 +#. "medium" indicates width of colour swatches +#: ../src/ui/widget/panel.cpp:180 +msgid "swatchesWidth|medium" +msgstr "" + +#: ../src/ui/widget/panel.cpp:181 +msgid "wide" +msgstr "" + +#: ../src/ui/widget/panel.cpp:182 +msgid "wider" +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 +#. "Wrap" indicates how colour swatches are displayed +#: ../src/ui/widget/panel.cpp:215 +msgid "swatches|Wrap" +msgstr "" + +#: ../src/ui/widget/random.cpp:123 +msgid "" +"Reseed the random number generator; this creates a different sequence of " +"random numbers." +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:39 +msgid "Backend" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:40 +msgid "Vector" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:41 +msgid "Bitmap" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:42 +msgid "Bitmap options" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:44 +msgid "Preferred resolution of rendering, in dots per inch." +msgstr "" + +#: ../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 "" + +#: ../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 "" + +#: ../src/ui/widget/selected-style.cpp:112 +#: ../src/ui/widget/style-swatch.cpp:117 +msgid "Fill:" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:113 +#: ../src/ui/widget/style-swatch.cpp:118 +msgid "Stroke:" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:114 +msgid "O:" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:156 +msgid "N/A" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:159 +#: ../src/ui/widget/selected-style.cpp:1026 +#: ../src/ui/widget/selected-style.cpp:1027 +msgid "Nothing selected" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:161 +#: ../src/ui/widget/style-swatch.cpp:296 +msgid "None" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:164 +#: ../src/ui/widget/style-swatch.cpp:298 +msgid "No fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:164 +#: ../src/ui/widget/style-swatch.cpp:298 +msgid "No stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:166 +#: ../src/ui/widget/style-swatch.cpp:277 ../src/widgets/paint-selector.cpp:189 +msgid "Pattern" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:169 +#: ../src/ui/widget/style-swatch.cpp:279 ../src/widgets/paint-selector.cpp:997 +msgid "Pattern fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:169 +#: ../src/ui/widget/style-swatch.cpp:279 +msgid "Pattern stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:171 +msgid "L" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:174 +#: ../src/ui/widget/style-swatch.cpp:271 +msgid "Linear gradient fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:174 +#: ../src/ui/widget/style-swatch.cpp:271 +msgid "Linear gradient stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:181 +msgid "R" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:184 +#: ../src/ui/widget/style-swatch.cpp:275 +msgid "Radial gradient fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:184 +#: ../src/ui/widget/style-swatch.cpp:275 +msgid "Radial gradient stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:191 +msgid "Different" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:194 +msgid "Different fills" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:194 +msgid "Different strokes" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:196 +#: ../src/ui/widget/style-swatch.cpp:301 +msgid "Unset" +msgstr "" + +#. TRANSLATORS COMMENT: unset is a verb here +#: ../src/ui/widget/selected-style.cpp:199 +#: ../src/ui/widget/selected-style.cpp:257 +#: ../src/ui/widget/selected-style.cpp:499 +#: ../src/ui/widget/style-swatch.cpp:303 ../src/widgets/fill-style.cpp:528 +msgid "Unset fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:199 +#: ../src/ui/widget/selected-style.cpp:257 +#: ../src/ui/widget/selected-style.cpp:515 +#: ../src/ui/widget/style-swatch.cpp:303 ../src/widgets/stroke-style.cpp:462 +msgid "Unset stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:202 +msgid "Flat color fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:202 +msgid "Flat color stroke" +msgstr "" + +#. TRANSLATOR COMMENT: A means "Averaged" +#: ../src/ui/widget/selected-style.cpp:205 +msgid "a" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:208 +msgid "Fill is averaged over selected objects" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:208 +msgid "Stroke is averaged over selected objects" +msgstr "" + +#. TRANSLATOR COMMENT: M means "Multiple" +#: ../src/ui/widget/selected-style.cpp:211 +msgid "m" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:214 +msgid "Multiple selected objects have the same fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:214 +msgid "Multiple selected objects have the same stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:216 +msgid "Edit fill..." +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:216 +msgid "Edit stroke..." +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:220 +msgid "Last set color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:224 +msgid "Last selected color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:232 +msgid "White" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:236 +#: ../src/widgets/sp-color-icc-selector.cpp:238 +#: ../src/widgets/sp-color-scales.cpp:463 +#: ../src/widgets/sp-color-scales.cpp:464 +msgid "Black" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:240 +msgid "Copy color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:244 +msgid "Paste color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:248 +#: ../src/ui/widget/selected-style.cpp:782 +msgid "Swap fill and stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:252 +#: ../src/ui/widget/selected-style.cpp:524 +#: ../src/ui/widget/selected-style.cpp:533 +msgid "Make fill opaque" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:252 +msgid "Make stroke opaque" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:261 +#: ../src/ui/widget/selected-style.cpp:481 ../src/widgets/fill-style.cpp:385 +msgid "Remove fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:261 +#: ../src/ui/widget/selected-style.cpp:490 ../src/widgets/stroke-style.cpp:336 +msgid "Remove stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:314 +msgid "Remove" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:545 +msgid "Apply last set color to fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:557 +msgid "Apply last set color to stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:568 +msgid "Apply last selected color to fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:579 +msgid "Apply last selected color to stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:599 +msgid "Invert fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:619 +msgid "Invert stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:631 +msgid "White fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:643 +msgid "White stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:655 +msgid "Black fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:667 +msgid "Black stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:710 +msgid "Paste fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:728 +msgid "Paste stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:892 +msgid "Change stroke width" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:987 +msgid ", drag to adjust" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1068 +#, c-format +msgid "Stroke width: %.5g%s%s" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1072 +msgid " (averaged)" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1100 +msgid "0 (transparent)" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1124 +msgid "100% (opaque)" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1278 +msgid "Adjust saturation" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1280 +#, c-format +msgid "" +"Adjusting saturation: was %.3g, now %.3g (diff %.3g); with " +"Ctrl to adjust lightness, without modifiers to adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1284 +msgid "Adjust lightness" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1286 +#, c-format +msgid "" +"Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " +"Shift to adjust saturation, without modifiers to adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1290 +msgid "Adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1292 +#, c-format +msgid "" +"Adjusting hue: was %.3g, now %.3g (diff %.3g); with Shift to adjust saturation, with Ctrl to adjust lightness" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1401 +#: ../src/ui/widget/selected-style.cpp:1415 +msgid "Adjust stroke width" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1402 +#, c-format +msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" +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 +#. "Link" means to _link_ two sliders together +#: ../src/ui/widget/spin-slider.cpp:120 +msgid "sliders|Link" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:269 +msgid "L Gradient" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:273 +msgid "R Gradient" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:289 +#, c-format +msgid "Fill: %06x/%.3g" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:291 +#, c-format +msgid "Stroke: %06x/%.3g" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:323 +#, c-format +msgid "Stroke width: %.5g%s" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:339 +#, c-format +msgid "O:%.3g" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:341 +#, c-format +msgid "O:.%d" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:346 +#, c-format +msgid "Opacity: %.3g" +msgstr "" + +#: ../src/vanishing-point.cpp:123 +msgid "Split vanishing points" +msgstr "" + +#: ../src/vanishing-point.cpp:168 +msgid "Merge vanishing points" +msgstr "" + +#: ../src/vanishing-point.cpp:224 +msgid "3D box: Move vanishing point" +msgstr "" + +#: ../src/vanishing-point.cpp:305 +#, c-format +msgid "Finite vanishing point shared by %d box" +msgid_plural "" +"Finite vanishing point shared by %d boxes; drag with Shift to separate selected box(es)" +msgstr[0] "" +msgstr[1] "" + +#. This won't make sense any more when infinite VPs are not shown on the canvas, +#. but currently we update the status message anyway +#: ../src/vanishing-point.cpp:312 +#, c-format +msgid "Infinite vanishing point shared by %d box" +msgid_plural "" +"Infinite vanishing point shared by %d boxes; drag with " +"Shift to separate selected box(es)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/vanishing-point.cpp:320 +#, c-format +msgid "" +"shared by %d box; drag with Shift to separate selected box(es)" +msgid_plural "" +"shared by %d boxes; drag with Shift to separate selected box" +"(es)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/verbs.cpp:1140 +msgid "Switch to next layer" +msgstr "" + +#: ../src/verbs.cpp:1141 +msgid "Switched to next layer." +msgstr "" + +#: ../src/verbs.cpp:1143 +msgid "Cannot go past last layer." +msgstr "" + +#: ../src/verbs.cpp:1152 +msgid "Switch to previous layer" +msgstr "" + +#: ../src/verbs.cpp:1153 +msgid "Switched to previous layer." +msgstr "" + +#: ../src/verbs.cpp:1155 +msgid "Cannot go before first layer." +msgstr "" + +#: ../src/verbs.cpp:1172 ../src/verbs.cpp:1268 ../src/verbs.cpp:1300 +#: ../src/verbs.cpp:1306 +msgid "No current layer." +msgstr "" + +#: ../src/verbs.cpp:1201 ../src/verbs.cpp:1205 +#, c-format +msgid "Raised layer %s." +msgstr "" + +#: ../src/verbs.cpp:1202 +msgid "Layer to top" +msgstr "" + +#: ../src/verbs.cpp:1206 +msgid "Raise layer" +msgstr "" + +#: ../src/verbs.cpp:1209 ../src/verbs.cpp:1213 +#, c-format +msgid "Lowered layer %s." +msgstr "" + +#: ../src/verbs.cpp:1210 +msgid "Layer to bottom" +msgstr "" + +#: ../src/verbs.cpp:1214 +msgid "Lower layer" +msgstr "" + +#: ../src/verbs.cpp:1223 +msgid "Cannot move layer any further." +msgstr "" + +#: ../src/verbs.cpp:1237 ../src/verbs.cpp:1255 +#, c-format +msgid "%s copy" +msgstr "" + +#: ../src/verbs.cpp:1263 +msgid "Duplicate layer" +msgstr "" + +#. TRANSLATORS: this means "The layer has been duplicated." +#: ../src/verbs.cpp:1266 +msgid "Duplicated layer." +msgstr "" + +#: ../src/verbs.cpp:1295 +msgid "Delete layer" +msgstr "" + +#. TRANSLATORS: this means "The layer has been deleted." +#: ../src/verbs.cpp:1298 +msgid "Deleted layer." +msgstr "" + +#: ../src/verbs.cpp:1309 +msgid "Toggle layer solo" +msgstr "" + +#: ../src/verbs.cpp:1389 +msgid "Flip horizontally" +msgstr "" + +#: ../src/verbs.cpp:1404 +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:1912 +msgid "tutorial-basic.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:1916 +msgid "tutorial-shapes.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:1920 +msgid "tutorial-advanced.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:1924 +msgid "tutorial-tracing.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:1928 +msgid "tutorial-calligraphy.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:1932 +msgid "tutorial-elements.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:1936 +msgid "tutorial-tips.svg" +msgstr "" + +#: ../src/verbs.cpp:2212 ../src/verbs.cpp:2731 +msgid "Unlock all objects in the current layer" +msgstr "" + +#: ../src/verbs.cpp:2216 ../src/verbs.cpp:2733 +msgid "Unlock all objects in all layers" +msgstr "" + +#: ../src/verbs.cpp:2220 ../src/verbs.cpp:2735 +msgid "Unhide all objects in the current layer" +msgstr "" + +#: ../src/verbs.cpp:2224 ../src/verbs.cpp:2737 +msgid "Unhide all objects in all layers" +msgstr "" + +#: ../src/verbs.cpp:2239 +msgid "Does nothing" +msgstr "" + +#: ../src/verbs.cpp:2242 +msgid "Create new document from the default template" +msgstr "" + +#: ../src/verbs.cpp:2244 +msgid "_Open..." +msgstr "" + +#: ../src/verbs.cpp:2245 +msgid "Open an existing document" +msgstr "" + +#: ../src/verbs.cpp:2246 +msgid "Re_vert" +msgstr "" + +#: ../src/verbs.cpp:2247 +msgid "Revert to the last saved version of document (changes will be lost)" +msgstr "" + +#: ../src/verbs.cpp:2248 +msgid "_Save" +msgstr "" + +#: ../src/verbs.cpp:2248 +msgid "Save document" +msgstr "" + +#: ../src/verbs.cpp:2250 +msgid "Save _As..." +msgstr "" + +#: ../src/verbs.cpp:2251 +msgid "Save document under a new name" +msgstr "" + +#: ../src/verbs.cpp:2252 +msgid "Save a Cop_y..." +msgstr "" + +#: ../src/verbs.cpp:2253 +msgid "Save a copy of the document under a new name" +msgstr "" + +#: ../src/verbs.cpp:2254 +msgid "_Print..." +msgstr "" + +#: ../src/verbs.cpp:2254 +msgid "Print document" +msgstr "" + +#. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) +#: ../src/verbs.cpp:2257 +msgid "Vac_uum Defs" +msgstr "" + +#: ../src/verbs.cpp:2257 +msgid "" +"Remove unused definitions (such as gradients or clipping paths) from the <" +"defs> of the document" +msgstr "" + +#: ../src/verbs.cpp:2259 +msgid "Print Previe_w" +msgstr "" + +#: ../src/verbs.cpp:2260 +msgid "Preview document printout" +msgstr "" + +#: ../src/verbs.cpp:2261 +msgid "_Import..." +msgstr "" + +#: ../src/verbs.cpp:2262 +msgid "Import a bitmap or SVG image into this document" +msgstr "" + +#: ../src/verbs.cpp:2263 +msgid "_Export Bitmap..." +msgstr "" + +#: ../src/verbs.cpp:2264 +msgid "Export this document or a selection as a bitmap image" +msgstr "" + +#: ../src/verbs.cpp:2265 +msgid "Import a document from Open Clip Art Library" +msgstr "" + +#. new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL), +#: ../src/verbs.cpp:2267 +msgid "N_ext Window" +msgstr "" + +#: ../src/verbs.cpp:2268 +msgid "Switch to the next document window" +msgstr "" + +#: ../src/verbs.cpp:2269 +msgid "P_revious Window" +msgstr "" + +#: ../src/verbs.cpp:2270 +msgid "Switch to the previous document window" +msgstr "" + +#: ../src/verbs.cpp:2271 +msgid "_Close" +msgstr "" + +#: ../src/verbs.cpp:2272 +msgid "Close this document window" +msgstr "" + +#: ../src/verbs.cpp:2273 +msgid "_Quit" +msgstr "" + +#: ../src/verbs.cpp:2273 +msgid "Quit Inkscape" +msgstr "" + +#: ../src/verbs.cpp:2276 +msgid "Undo last action" +msgstr "" + +#: ../src/verbs.cpp:2279 +msgid "Do again the last undone action" +msgstr "" + +#: ../src/verbs.cpp:2280 +msgid "Cu_t" +msgstr "" + +#: ../src/verbs.cpp:2281 +msgid "Cut selection to clipboard" +msgstr "" + +#: ../src/verbs.cpp:2282 +msgid "_Copy" +msgstr "" + +#: ../src/verbs.cpp:2283 +msgid "Copy selection to clipboard" +msgstr "" + +#: ../src/verbs.cpp:2284 +msgid "_Paste" +msgstr "" + +#: ../src/verbs.cpp:2285 +msgid "Paste objects from clipboard to mouse point, or paste text" +msgstr "" + +#: ../src/verbs.cpp:2286 +msgid "Paste _Style" +msgstr "" + +#: ../src/verbs.cpp:2287 +msgid "Apply the style of the copied object to selection" +msgstr "" + +#: ../src/verbs.cpp:2289 +msgid "Scale selection to match the size of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2290 +msgid "Paste _Width" +msgstr "" + +#: ../src/verbs.cpp:2291 +msgid "Scale selection horizontally to match the width of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2292 +msgid "Paste _Height" +msgstr "" + +#: ../src/verbs.cpp:2293 +msgid "Scale selection vertically to match the height of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2294 +msgid "Paste Size Separately" +msgstr "" + +#: ../src/verbs.cpp:2295 +msgid "Scale each selected object to match the size of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2296 +msgid "Paste Width Separately" +msgstr "" + +#: ../src/verbs.cpp:2297 +msgid "" +"Scale each selected object horizontally to match the width of the copied " +"object" +msgstr "" + +#: ../src/verbs.cpp:2298 +msgid "Paste Height Separately" +msgstr "" + +#: ../src/verbs.cpp:2299 +msgid "" +"Scale each selected object vertically to match the height of the copied " +"object" +msgstr "" + +#: ../src/verbs.cpp:2300 +msgid "Paste _In Place" +msgstr "" + +#: ../src/verbs.cpp:2301 +msgid "Paste objects from clipboard to the original location" +msgstr "" + +#: ../src/verbs.cpp:2302 +msgid "Paste Path _Effect" +msgstr "" + +#: ../src/verbs.cpp:2303 +msgid "Apply the path effect of the copied object to selection" +msgstr "" + +#: ../src/verbs.cpp:2304 +msgid "Remove Path _Effect" +msgstr "" + +#: ../src/verbs.cpp:2305 +msgid "Remove any path effects from selected objects" +msgstr "" + +#: ../src/verbs.cpp:2306 +msgid "Remove Filters" +msgstr "" + +#: ../src/verbs.cpp:2307 +msgid "Remove any filters from selected objects" +msgstr "" + +#: ../src/verbs.cpp:2308 +msgid "_Delete" +msgstr "" + +#: ../src/verbs.cpp:2309 +msgid "Delete selection" +msgstr "" + +#: ../src/verbs.cpp:2310 +msgid "Duplic_ate" +msgstr "" + +#: ../src/verbs.cpp:2311 +msgid "Duplicate selected objects" +msgstr "" + +#: ../src/verbs.cpp:2312 +msgid "Create Clo_ne" +msgstr "" + +#: ../src/verbs.cpp:2313 +msgid "Create a clone (a copy linked to the original) of selected object" +msgstr "" + +#: ../src/verbs.cpp:2314 +msgid "Unlin_k Clone" +msgstr "" + +#: ../src/verbs.cpp:2315 +msgid "" +"Cut the selected clones' links to the originals, turning them into " +"standalone objects" +msgstr "" + +#: ../src/verbs.cpp:2316 +msgid "Relink to Copied" +msgstr "" + +#: ../src/verbs.cpp:2317 +msgid "Relink the selected clones to the object currently on the clipboard" +msgstr "" + +#: ../src/verbs.cpp:2318 +msgid "Select _Original" +msgstr "" + +#: ../src/verbs.cpp:2319 +msgid "Select the object to which the selected clone is linked" +msgstr "" + +#: ../src/verbs.cpp:2320 +msgid "Objects to _Marker" +msgstr "" + +#: ../src/verbs.cpp:2321 +msgid "Convert selection to a line marker" +msgstr "" + +#: ../src/verbs.cpp:2322 +msgid "Objects to Gu_ides" +msgstr "" + +#: ../src/verbs.cpp:2323 +msgid "" +"Convert selected objects to a collection of guidelines aligned with their " +"edges" +msgstr "" + +#: ../src/verbs.cpp:2324 +msgid "Objects to Patter_n" +msgstr "" + +#: ../src/verbs.cpp:2325 +msgid "Convert selection to a rectangle with tiled pattern fill" +msgstr "" + +#: ../src/verbs.cpp:2326 +msgid "Pattern to _Objects" +msgstr "" + +#: ../src/verbs.cpp:2327 +msgid "Extract objects from a tiled pattern fill" +msgstr "" + +#: ../src/verbs.cpp:2328 +msgid "Clea_r All" +msgstr "" + +#: ../src/verbs.cpp:2329 +msgid "Delete all objects from document" +msgstr "" + +#: ../src/verbs.cpp:2330 +msgid "Select Al_l" +msgstr "" + +#: ../src/verbs.cpp:2331 +msgid "Select all objects or all nodes" +msgstr "" + +#: ../src/verbs.cpp:2332 +msgid "Select All in All La_yers" +msgstr "" + +#: ../src/verbs.cpp:2333 +msgid "Select all objects in all visible and unlocked layers" +msgstr "" + +#: ../src/verbs.cpp:2334 +msgid "In_vert Selection" +msgstr "" + +#: ../src/verbs.cpp:2335 +msgid "Invert selection (unselect what is selected and select everything else)" +msgstr "" + +#: ../src/verbs.cpp:2336 +msgid "Invert in All Layers" +msgstr "" + +#: ../src/verbs.cpp:2337 +msgid "Invert selection in all visible and unlocked layers" +msgstr "" + +#: ../src/verbs.cpp:2338 +msgid "Select Next" +msgstr "" + +#: ../src/verbs.cpp:2339 +msgid "Select next object or node" +msgstr "" + +#: ../src/verbs.cpp:2340 +msgid "Select Previous" +msgstr "" + +#: ../src/verbs.cpp:2341 +msgid "Select previous object or node" +msgstr "" + +#: ../src/verbs.cpp:2342 +msgid "D_eselect" +msgstr "" + +#: ../src/verbs.cpp:2343 +msgid "Deselect any selected objects or nodes" +msgstr "" + +#: ../src/verbs.cpp:2344 +msgid "_Guides Around Page" +msgstr "" + +#: ../src/verbs.cpp:2345 +msgid "Create four guides aligned with the page borders" +msgstr "" + +#: ../src/verbs.cpp:2346 +msgid "Next Path Effect Parameter" +msgstr "" + +#: ../src/verbs.cpp:2347 +msgid "Show next Path Effect parameter for editing" +msgstr "" + +#. Selection +#: ../src/verbs.cpp:2350 +msgid "Raise to _Top" +msgstr "" + +#: ../src/verbs.cpp:2351 +msgid "Raise selection to top" +msgstr "" + +#: ../src/verbs.cpp:2352 +msgid "Lower to _Bottom" +msgstr "" + +#: ../src/verbs.cpp:2353 +msgid "Lower selection to bottom" +msgstr "" + +#: ../src/verbs.cpp:2354 +msgid "_Raise" +msgstr "" + +#: ../src/verbs.cpp:2355 +msgid "Raise selection one step" +msgstr "" + +#: ../src/verbs.cpp:2356 +msgid "_Lower" +msgstr "" + +#: ../src/verbs.cpp:2357 +msgid "Lower selection one step" +msgstr "" + +#: ../src/verbs.cpp:2358 +msgid "_Group" +msgstr "" + +#: ../src/verbs.cpp:2359 +msgid "Group selected objects" +msgstr "" + +#: ../src/verbs.cpp:2361 +msgid "Ungroup selected groups" +msgstr "" + +#: ../src/verbs.cpp:2363 +msgid "_Put on Path" +msgstr "" + +#: ../src/verbs.cpp:2365 +msgid "_Remove from Path" +msgstr "" + +#: ../src/verbs.cpp:2367 +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:2370 +msgid "Remove all manual kerns and glyph rotations from a text object" +msgstr "" + +#: ../src/verbs.cpp:2372 +msgid "_Union" +msgstr "" + +#: ../src/verbs.cpp:2373 +msgid "Create union of selected paths" +msgstr "" + +#: ../src/verbs.cpp:2374 +msgid "_Intersection" +msgstr "" + +#: ../src/verbs.cpp:2375 +msgid "Create intersection of selected paths" +msgstr "" + +#: ../src/verbs.cpp:2376 +msgid "_Difference" +msgstr "" + +#: ../src/verbs.cpp:2377 +msgid "Create difference of selected paths (bottom minus top)" +msgstr "" + +#: ../src/verbs.cpp:2378 +msgid "E_xclusion" +msgstr "" + +#: ../src/verbs.cpp:2379 +msgid "" +"Create exclusive OR of selected paths (those parts that belong to only one " +"path)" +msgstr "" + +#: ../src/verbs.cpp:2380 +msgid "Di_vision" +msgstr "" + +#: ../src/verbs.cpp:2381 +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:2384 +msgid "Cut _Path" +msgstr "" + +#: ../src/verbs.cpp:2385 +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:2389 +msgid "Outs_et" +msgstr "" + +#: ../src/verbs.cpp:2390 +msgid "Outset selected paths" +msgstr "" + +#: ../src/verbs.cpp:2392 +msgid "O_utset Path by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2393 +msgid "Outset selected paths by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2395 +msgid "O_utset Path by 10 px" +msgstr "" + +#: ../src/verbs.cpp:2396 +msgid "Outset selected paths by 10 px" +msgstr "" + +#. TRANSLATORS: "inset": contract a shape by offsetting the object's path, +#. i.e. by displacing it perpendicular to the path in each point. +#. See also the Advanced Tutorial for explanation. +#: ../src/verbs.cpp:2400 +msgid "I_nset" +msgstr "" + +#: ../src/verbs.cpp:2401 +msgid "Inset selected paths" +msgstr "" + +#: ../src/verbs.cpp:2403 +msgid "I_nset Path by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2404 +msgid "Inset selected paths by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2406 +msgid "I_nset Path by 10 px" +msgstr "" + +#: ../src/verbs.cpp:2407 +msgid "Inset selected paths by 10 px" +msgstr "" + +#: ../src/verbs.cpp:2409 +msgid "D_ynamic Offset" +msgstr "" + +#: ../src/verbs.cpp:2409 +msgid "Create a dynamic offset object" +msgstr "" + +#: ../src/verbs.cpp:2411 +msgid "_Linked Offset" +msgstr "" + +#: ../src/verbs.cpp:2412 +msgid "Create a dynamic offset object linked to the original path" +msgstr "" + +#: ../src/verbs.cpp:2414 +msgid "_Stroke to Path" +msgstr "" + +#: ../src/verbs.cpp:2415 +msgid "Convert selected object's stroke to paths" +msgstr "" + +#: ../src/verbs.cpp:2416 +msgid "Si_mplify" +msgstr "" + +#: ../src/verbs.cpp:2417 +msgid "Simplify selected paths (remove extra nodes)" +msgstr "" + +#: ../src/verbs.cpp:2418 +msgid "_Reverse" +msgstr "" + +#: ../src/verbs.cpp:2419 +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:2421 +msgid "_Trace Bitmap..." +msgstr "" + +#: ../src/verbs.cpp:2422 +msgid "Create one or more paths from a bitmap by tracing it" +msgstr "" + +#: ../src/verbs.cpp:2423 +msgid "_Make a Bitmap Copy" +msgstr "" + +#: ../src/verbs.cpp:2424 +msgid "Export selection to a bitmap and insert it into document" +msgstr "" + +#: ../src/verbs.cpp:2425 +msgid "_Combine" +msgstr "" + +#: ../src/verbs.cpp:2426 +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:2429 +msgid "Break _Apart" +msgstr "" + +#: ../src/verbs.cpp:2430 +msgid "Break selected paths into subpaths" +msgstr "" + +#: ../src/verbs.cpp:2431 +msgid "Rows and Columns..." +msgstr "" + +#: ../src/verbs.cpp:2432 +msgid "Arrange selected objects in a table" +msgstr "" + +#. Layer +#: ../src/verbs.cpp:2434 +msgid "_Add Layer..." +msgstr "" + +#: ../src/verbs.cpp:2435 +msgid "Create a new layer" +msgstr "" + +#: ../src/verbs.cpp:2436 +msgid "Re_name Layer..." +msgstr "" + +#: ../src/verbs.cpp:2437 +msgid "Rename the current layer" +msgstr "" + +#: ../src/verbs.cpp:2438 +msgid "Switch to Layer Abov_e" +msgstr "" + +#: ../src/verbs.cpp:2439 +msgid "Switch to the layer above the current" +msgstr "" + +#: ../src/verbs.cpp:2440 +msgid "Switch to Layer Belo_w" +msgstr "" + +#: ../src/verbs.cpp:2441 +msgid "Switch to the layer below the current" +msgstr "" + +#: ../src/verbs.cpp:2442 +msgid "Move Selection to Layer Abo_ve" +msgstr "" + +#: ../src/verbs.cpp:2443 +msgid "Move selection to the layer above the current" +msgstr "" + +#: ../src/verbs.cpp:2444 +msgid "Move Selection to Layer Bel_ow" +msgstr "" + +#: ../src/verbs.cpp:2445 +msgid "Move selection to the layer below the current" +msgstr "" + +#: ../src/verbs.cpp:2446 +msgid "Layer to _Top" +msgstr "" + +#: ../src/verbs.cpp:2447 +msgid "Raise the current layer to the top" +msgstr "" + +#: ../src/verbs.cpp:2448 +msgid "Layer to _Bottom" +msgstr "" + +#: ../src/verbs.cpp:2449 +msgid "Lower the current layer to the bottom" +msgstr "" + +#: ../src/verbs.cpp:2450 +msgid "_Raise Layer" +msgstr "" + +#: ../src/verbs.cpp:2451 +msgid "Raise the current layer" +msgstr "" + +#: ../src/verbs.cpp:2452 +msgid "_Lower Layer" +msgstr "" + +#: ../src/verbs.cpp:2453 +msgid "Lower the current layer" +msgstr "" + +#: ../src/verbs.cpp:2454 +msgid "Duplicate Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2455 +msgid "Duplicate an existing layer" +msgstr "" + +#: ../src/verbs.cpp:2456 +msgid "_Delete Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2457 +msgid "Delete the current layer" +msgstr "" + +#: ../src/verbs.cpp:2458 +msgid "_Show/hide other layers" +msgstr "" + +#: ../src/verbs.cpp:2459 +msgid "Solo the current layer" +msgstr "" + +#. Object +#: ../src/verbs.cpp:2462 +msgid "Rotate _90° CW" +msgstr "" + +#. This is shared between tooltips and statusbar, so they +#. must use UTF-8, not HTML entities for special characters. +#: ../src/verbs.cpp:2465 +msgid "Rotate selection 90° clockwise" +msgstr "" + +#: ../src/verbs.cpp:2466 +msgid "Rotate 9_0° CCW" +msgstr "" + +#. This is shared between tooltips and statusbar, so they +#. must use UTF-8, not HTML entities for special characters. +#: ../src/verbs.cpp:2469 +msgid "Rotate selection 90° counter-clockwise" +msgstr "" + +#: ../src/verbs.cpp:2470 +msgid "Remove _Transformations" +msgstr "" + +#: ../src/verbs.cpp:2471 +msgid "Remove transformations from object" +msgstr "" + +#: ../src/verbs.cpp:2472 +msgid "_Object to Path" +msgstr "" + +#: ../src/verbs.cpp:2473 +msgid "Convert selected object to path" +msgstr "" + +#: ../src/verbs.cpp:2474 +msgid "_Flow into Frame" +msgstr "" + +#: ../src/verbs.cpp:2475 +msgid "" +"Put text into a frame (path or shape), creating a flowed text linked to the " +"frame object" +msgstr "" + +#: ../src/verbs.cpp:2476 +msgid "_Unflow" +msgstr "" + +#: ../src/verbs.cpp:2477 +msgid "Remove text from frame (creates a single-line text object)" +msgstr "" + +#: ../src/verbs.cpp:2478 +msgid "_Convert to Text" +msgstr "" + +#: ../src/verbs.cpp:2479 +msgid "Convert flowed text to regular text object (preserves appearance)" +msgstr "" + +#: ../src/verbs.cpp:2481 +msgid "Flip _Horizontal" +msgstr "" + +#: ../src/verbs.cpp:2481 +msgid "Flip selected objects horizontally" +msgstr "" + +#: ../src/verbs.cpp:2484 +msgid "Flip _Vertical" +msgstr "" + +#: ../src/verbs.cpp:2484 +msgid "Flip selected objects vertically" +msgstr "" + +#: ../src/verbs.cpp:2487 +msgid "Apply mask to selection (using the topmost object as mask)" +msgstr "" + +#: ../src/verbs.cpp:2489 +msgid "Edit mask" +msgstr "" + +#: ../src/verbs.cpp:2490 ../src/verbs.cpp:2496 +msgid "_Release" +msgstr "" + +#: ../src/verbs.cpp:2491 +msgid "Remove mask from selection" +msgstr "" + +#: ../src/verbs.cpp:2493 +msgid "" +"Apply clipping path to selection (using the topmost object as clipping path)" +msgstr "" + +#: ../src/verbs.cpp:2495 ../src/widgets/toolbox.cpp:1446 +msgid "Edit clipping path" +msgstr "" + +#: ../src/verbs.cpp:2497 +msgid "Remove clipping path from selection" +msgstr "" + +#. Tools +#: ../src/verbs.cpp:2500 +msgid "Select" +msgstr "" + +#: ../src/verbs.cpp:2501 +msgid "Select and transform objects" +msgstr "" + +#: ../src/verbs.cpp:2502 +msgid "Node Edit" +msgstr "" + +#: ../src/verbs.cpp:2503 +msgid "Edit paths by nodes" +msgstr "" + +#: ../src/verbs.cpp:2505 +msgid "Tweak objects by sculpting or painting" +msgstr "" + +#: ../src/verbs.cpp:2507 +msgid "Create rectangles and squares" +msgstr "" + +#: ../src/verbs.cpp:2509 +msgid "Create 3D boxes" +msgstr "" + +#: ../src/verbs.cpp:2511 +msgid "Create circles, ellipses, and arcs" +msgstr "" + +#: ../src/verbs.cpp:2513 +msgid "Create stars and polygons" +msgstr "" + +#: ../src/verbs.cpp:2515 +msgid "Create spirals" +msgstr "" + +#: ../src/verbs.cpp:2517 +msgid "Draw freehand lines" +msgstr "" + +#: ../src/verbs.cpp:2519 +msgid "Draw Bezier curves and straight lines" +msgstr "" + +#: ../src/verbs.cpp:2521 +msgid "Draw calligraphic or brush strokes" +msgstr "" + +#: ../src/verbs.cpp:2523 +msgid "Create and edit text objects" +msgstr "" + +#: ../src/verbs.cpp:2525 +msgid "Create and edit gradients" +msgstr "" + +#: ../src/verbs.cpp:2527 +msgid "Zoom in or out" +msgstr "" + +#: ../src/verbs.cpp:2529 +msgid "Pick colors from image" +msgstr "" + +#: ../src/verbs.cpp:2531 +msgid "Create diagram connectors" +msgstr "" + +#: ../src/verbs.cpp:2533 +msgid "Fill bounded areas" +msgstr "" + +#: ../src/verbs.cpp:2534 +msgid "LPE Edit" +msgstr "" + +#: ../src/verbs.cpp:2535 +msgid "Edit Path Effect parameters" +msgstr "" + +#: ../src/verbs.cpp:2537 +msgid "Erase existing paths" +msgstr "" + +#: ../src/verbs.cpp:2539 +msgid "Do geometric constructions" +msgstr "" + +#. Tool prefs +#: ../src/verbs.cpp:2541 +msgid "Selector Preferences" +msgstr "" + +#: ../src/verbs.cpp:2542 +msgid "Open Preferences for the Selector tool" +msgstr "" + +#: ../src/verbs.cpp:2543 +msgid "Node Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2544 +msgid "Open Preferences for the Node tool" +msgstr "" + +#: ../src/verbs.cpp:2545 +msgid "Tweak Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2546 +msgid "Open Preferences for the Tweak tool" +msgstr "" + +#: ../src/verbs.cpp:2547 +msgid "Rectangle Preferences" +msgstr "" + +#: ../src/verbs.cpp:2548 +msgid "Open Preferences for the Rectangle tool" +msgstr "" + +#: ../src/verbs.cpp:2549 +msgid "3D Box Preferences" +msgstr "" + +#: ../src/verbs.cpp:2550 +msgid "Open Preferences for the 3D Box tool" +msgstr "" + +#: ../src/verbs.cpp:2551 +msgid "Ellipse Preferences" +msgstr "" + +#: ../src/verbs.cpp:2552 +msgid "Open Preferences for the Ellipse tool" +msgstr "" + +#: ../src/verbs.cpp:2553 +msgid "Star Preferences" +msgstr "" + +#: ../src/verbs.cpp:2554 +msgid "Open Preferences for the Star tool" +msgstr "" + +#: ../src/verbs.cpp:2555 +msgid "Spiral Preferences" +msgstr "" + +#: ../src/verbs.cpp:2556 +msgid "Open Preferences for the Spiral tool" +msgstr "" + +#: ../src/verbs.cpp:2557 +msgid "Pencil Preferences" +msgstr "" + +#: ../src/verbs.cpp:2558 +msgid "Open Preferences for the Pencil tool" +msgstr "" + +#: ../src/verbs.cpp:2559 +msgid "Pen Preferences" +msgstr "" + +#: ../src/verbs.cpp:2560 +msgid "Open Preferences for the Pen tool" +msgstr "" + +#: ../src/verbs.cpp:2561 +msgid "Calligraphic Preferences" +msgstr "" + +#: ../src/verbs.cpp:2562 +msgid "Open Preferences for the Calligraphy tool" +msgstr "" + +#: ../src/verbs.cpp:2563 +msgid "Text Preferences" +msgstr "" + +#: ../src/verbs.cpp:2564 +msgid "Open Preferences for the Text tool" +msgstr "" + +#: ../src/verbs.cpp:2565 +msgid "Gradient Preferences" +msgstr "" + +#: ../src/verbs.cpp:2566 +msgid "Open Preferences for the Gradient tool" +msgstr "" + +#: ../src/verbs.cpp:2567 +msgid "Zoom Preferences" +msgstr "" + +#: ../src/verbs.cpp:2568 +msgid "Open Preferences for the Zoom tool" +msgstr "" + +#: ../src/verbs.cpp:2569 +msgid "Dropper Preferences" +msgstr "" + +#: ../src/verbs.cpp:2570 +msgid "Open Preferences for the Dropper tool" +msgstr "" + +#: ../src/verbs.cpp:2571 +msgid "Connector Preferences" +msgstr "" + +#: ../src/verbs.cpp:2572 +msgid "Open Preferences for the Connector tool" +msgstr "" + +#: ../src/verbs.cpp:2573 +msgid "Paint Bucket Preferences" +msgstr "" + +#: ../src/verbs.cpp:2574 +msgid "Open Preferences for the Paint Bucket tool" +msgstr "" + +#: ../src/verbs.cpp:2575 +msgid "Eraser Preferences" +msgstr "" + +#: ../src/verbs.cpp:2576 +msgid "Open Preferences for the Eraser tool" +msgstr "" + +#: ../src/verbs.cpp:2577 +msgid "LPE Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2578 +msgid "Open Preferences for the LPETool tool" +msgstr "" + +#. Zoom/View +#: ../src/verbs.cpp:2581 +msgid "Zoom In" +msgstr "" + +#: ../src/verbs.cpp:2581 +msgid "Zoom in" +msgstr "" + +#: ../src/verbs.cpp:2582 +msgid "Zoom Out" +msgstr "" + +#: ../src/verbs.cpp:2582 +msgid "Zoom out" +msgstr "" + +#: ../src/verbs.cpp:2583 +msgid "_Rulers" +msgstr "" + +#: ../src/verbs.cpp:2583 +msgid "Show or hide the canvas rulers" +msgstr "" + +#: ../src/verbs.cpp:2584 +msgid "Scroll_bars" +msgstr "" + +#: ../src/verbs.cpp:2584 +msgid "Show or hide the canvas scrollbars" +msgstr "" + +#: ../src/verbs.cpp:2585 +msgid "_Grid" +msgstr "" + +#: ../src/verbs.cpp:2585 +msgid "Show or hide the grid" +msgstr "" + +#: ../src/verbs.cpp:2586 +msgid "G_uides" +msgstr "" + +#: ../src/verbs.cpp:2586 +msgid "Show or hide guides (drag from a ruler to create a guide)" +msgstr "" + +#: ../src/verbs.cpp:2587 +msgid "Toggle snapping on or off" +msgstr "" + +#: ../src/verbs.cpp:2588 +msgid "Nex_t Zoom" +msgstr "" + +#: ../src/verbs.cpp:2588 +msgid "Next zoom (from the history of zooms)" +msgstr "" + +#: ../src/verbs.cpp:2590 +msgid "Pre_vious Zoom" +msgstr "" + +#: ../src/verbs.cpp:2590 +msgid "Previous zoom (from the history of zooms)" +msgstr "" + +#: ../src/verbs.cpp:2592 +msgid "Zoom 1:_1" +msgstr "" + +#: ../src/verbs.cpp:2592 +msgid "Zoom to 1:1" +msgstr "" + +#: ../src/verbs.cpp:2594 +msgid "Zoom 1:_2" +msgstr "" + +#: ../src/verbs.cpp:2594 +msgid "Zoom to 1:2" +msgstr "" + +#: ../src/verbs.cpp:2596 +msgid "_Zoom 2:1" +msgstr "" + +#: ../src/verbs.cpp:2596 +msgid "Zoom to 2:1" +msgstr "" + +#: ../src/verbs.cpp:2599 +msgid "_Fullscreen" +msgstr "" + +#: ../src/verbs.cpp:2599 +msgid "Stretch this document window to full screen" +msgstr "" + +#: ../src/verbs.cpp:2602 +msgid "Toggle _Focus Mode" +msgstr "" + +#: ../src/verbs.cpp:2602 +msgid "Remove excess toolbars to focus on drawing" +msgstr "" + +#: ../src/verbs.cpp:2604 +msgid "Duplic_ate Window" +msgstr "" + +#: ../src/verbs.cpp:2604 +msgid "Open a new window with the same document" +msgstr "" + +#: ../src/verbs.cpp:2606 +msgid "_New View Preview" +msgstr "" + +#: ../src/verbs.cpp:2607 +msgid "New View Preview" +msgstr "" + +#. "view_new_preview" +#: ../src/verbs.cpp:2609 +msgid "_Normal" +msgstr "" + +#: ../src/verbs.cpp:2610 +msgid "Switch to normal display mode" +msgstr "" + +#: ../src/verbs.cpp:2611 +msgid "No _Filters" +msgstr "" + +#: ../src/verbs.cpp:2612 +msgid "Switch to normal display without filters" +msgstr "" + +#: ../src/verbs.cpp:2613 +msgid "_Outline" +msgstr "" + +#: ../src/verbs.cpp:2614 +msgid "Switch to outline (wireframe) display mode" +msgstr "" + +#: ../src/verbs.cpp:2615 +msgid "_Toggle" +msgstr "" + +#: ../src/verbs.cpp:2616 +msgid "Toggle between normal and outline display modes" +msgstr "" + +#: ../src/verbs.cpp:2618 +msgid "Color-managed view" +msgstr "" + +#: ../src/verbs.cpp:2619 +msgid "Toggle color-managed display for this document window" +msgstr "" + +#: ../src/verbs.cpp:2621 +msgid "Ico_n Preview..." +msgstr "" + +#: ../src/verbs.cpp:2622 +msgid "Open a window to preview objects at different icon resolutions" +msgstr "" + +#: ../src/verbs.cpp:2624 +msgid "Zoom to fit page in window" +msgstr "" + +#: ../src/verbs.cpp:2625 +msgid "Page _Width" +msgstr "" + +#: ../src/verbs.cpp:2626 +msgid "Zoom to fit page width in window" +msgstr "" + +#: ../src/verbs.cpp:2628 +msgid "Zoom to fit drawing in window" +msgstr "" + +#: ../src/verbs.cpp:2630 +msgid "Zoom to fit selection in window" +msgstr "" + +#. Dialogs +#: ../src/verbs.cpp:2633 +msgid "In_kscape Preferences..." +msgstr "" + +#: ../src/verbs.cpp:2634 +msgid "Edit global Inkscape preferences" +msgstr "" + +#: ../src/verbs.cpp:2635 +msgid "_Document Properties..." +msgstr "" + +#: ../src/verbs.cpp:2636 +msgid "Edit properties of this document (to be saved with the document)" +msgstr "" + +#: ../src/verbs.cpp:2637 +msgid "Document _Metadata..." +msgstr "" + +#: ../src/verbs.cpp:2638 +msgid "Edit document metadata (to be saved with the document)" +msgstr "" + +#: ../src/verbs.cpp:2639 +msgid "_Fill and Stroke..." +msgstr "" + +#: ../src/verbs.cpp:2640 +msgid "" +"Edit objects' colors, gradients, stroke width, arrowheads, dash patterns..." +msgstr "" + +#. TRANSLATORS: "Swatches" means: color samples +#: ../src/verbs.cpp:2642 +msgid "S_watches..." +msgstr "" + +#: ../src/verbs.cpp:2643 +msgid "Select colors from a swatches palette" +msgstr "" + +#: ../src/verbs.cpp:2644 +msgid "Transfor_m..." +msgstr "" + +#: ../src/verbs.cpp:2645 +msgid "Precisely control objects' transformations" +msgstr "" + +#: ../src/verbs.cpp:2646 +msgid "_Align and Distribute..." +msgstr "" + +#: ../src/verbs.cpp:2647 +msgid "Align and distribute objects" +msgstr "" + +#: ../src/verbs.cpp:2648 +msgid "Undo _History..." +msgstr "" + +#: ../src/verbs.cpp:2649 +msgid "Undo History" +msgstr "" + +#: ../src/verbs.cpp:2650 +msgid "_Text and Font..." +msgstr "" + +#: ../src/verbs.cpp:2651 +msgid "View and select font family, font size and other text properties" +msgstr "" + +#: ../src/verbs.cpp:2652 +msgid "_XML Editor..." +msgstr "" + +#: ../src/verbs.cpp:2653 +msgid "View and edit the XML tree of the document" +msgstr "" + +#: ../src/verbs.cpp:2654 +msgid "_Find..." +msgstr "" + +#: ../src/verbs.cpp:2655 +msgid "Find objects in document" +msgstr "" + +#: ../src/verbs.cpp:2656 +msgid "Find and _Replace Text..." +msgstr "" + +#: ../src/verbs.cpp:2657 +msgid "Find and replace text in document" +msgstr "" + +#: ../src/verbs.cpp:2658 +msgid "Check Spellin_g..." +msgstr "" + +#: ../src/verbs.cpp:2659 +msgid "Check spelling of text in document" +msgstr "" + +#: ../src/verbs.cpp:2660 +msgid "_Messages..." +msgstr "" + +#: ../src/verbs.cpp:2661 +msgid "View debug messages" +msgstr "" + +#: ../src/verbs.cpp:2662 +msgid "S_cripts..." +msgstr "" + +#: ../src/verbs.cpp:2663 +msgid "Run scripts" +msgstr "" + +#: ../src/verbs.cpp:2664 +msgid "Show/Hide D_ialogs" +msgstr "" + +#: ../src/verbs.cpp:2665 +msgid "Show or hide all open dialogs" +msgstr "" + +#: ../src/verbs.cpp:2666 +msgid "Create Tiled Clones..." +msgstr "" + +#: ../src/verbs.cpp:2667 +msgid "" +"Create multiple clones of selected object, arranging them into a pattern or " +"scattering" +msgstr "" + +#: ../src/verbs.cpp:2668 +msgid "_Object Properties..." +msgstr "" + +#: ../src/verbs.cpp:2669 +msgid "Edit the ID, locked and visible status, and other object properties" +msgstr "" + +#. #ifdef WITH_INKBOARD +#. new DialogVerb(SP_VERB_XMPP_CLIENT, "DialogXmppClient", +#. N_("_Instant Messaging..."), N_("Jabber Instant Messaging Client"), NULL), +#. #endif +#: ../src/verbs.cpp:2674 +msgid "_Input Devices..." +msgstr "" + +#: ../src/verbs.cpp:2675 ../src/verbs.cpp:2677 +msgid "Configure extended input devices, such as a graphics tablet" +msgstr "" + +#: ../src/verbs.cpp:2676 +msgid "_Input Devices (new)..." +msgstr "" + +#: ../src/verbs.cpp:2678 +msgid "_Extensions..." +msgstr "" + +#: ../src/verbs.cpp:2679 +msgid "Query information about extensions" +msgstr "" + +#: ../src/verbs.cpp:2680 +msgid "Layer_s..." +msgstr "" + +#: ../src/verbs.cpp:2681 +msgid "View Layers" +msgstr "" + +#: ../src/verbs.cpp:2682 +msgid "Path Effect Editor..." +msgstr "" + +#: ../src/verbs.cpp:2683 +msgid "Manage, edit, and apply path effects" +msgstr "" + +#: ../src/verbs.cpp:2684 +msgid "Filter Editor..." +msgstr "" + +#: ../src/verbs.cpp:2685 +msgid "Manage, edit, and apply SVG filters" +msgstr "" + +#: ../src/verbs.cpp:2686 +msgid "SVG Font Editor..." +msgstr "" + +#: ../src/verbs.cpp:2687 +msgid "Edit SVG fonts" +msgstr "" + +#. Help +#: ../src/verbs.cpp:2690 +msgid "About E_xtensions" +msgstr "" + +#: ../src/verbs.cpp:2691 +msgid "Information on Inkscape extensions" +msgstr "" + +#: ../src/verbs.cpp:2692 +msgid "About _Memory" +msgstr "" + +#: ../src/verbs.cpp:2693 +msgid "Memory usage information" +msgstr "" + +#: ../src/verbs.cpp:2694 +msgid "_About Inkscape" +msgstr "" + +#: ../src/verbs.cpp:2695 +msgid "Inkscape version, authors, license" +msgstr "" + +#. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), +#. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), +#. Tutorials +#: ../src/verbs.cpp:2700 +msgid "Inkscape: _Basic" +msgstr "" + +#: ../src/verbs.cpp:2701 +msgid "Getting started with Inkscape" +msgstr "" + +#. "tutorial_basic" +#: ../src/verbs.cpp:2702 +msgid "Inkscape: _Shapes" +msgstr "" + +#: ../src/verbs.cpp:2703 +msgid "Using shape tools to create and edit shapes" +msgstr "" + +#: ../src/verbs.cpp:2704 +msgid "Inkscape: _Advanced" +msgstr "" + +#: ../src/verbs.cpp:2705 +msgid "Advanced Inkscape topics" +msgstr "" + +#. "tutorial_advanced" +#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) +#: ../src/verbs.cpp:2707 +msgid "Inkscape: T_racing" +msgstr "" + +#: ../src/verbs.cpp:2708 +msgid "Using bitmap tracing" +msgstr "" + +#. "tutorial_tracing" +#: ../src/verbs.cpp:2709 +msgid "Inkscape: _Calligraphy" +msgstr "" + +#: ../src/verbs.cpp:2710 +msgid "Using the Calligraphy pen tool" +msgstr "" + +#: ../src/verbs.cpp:2711 +msgid "_Elements of Design" +msgstr "" + +#: ../src/verbs.cpp:2712 +msgid "Principles of design in the tutorial form" +msgstr "" + +#. "tutorial_design" +#: ../src/verbs.cpp:2713 +msgid "_Tips and Tricks" +msgstr "" + +#: ../src/verbs.cpp:2714 +msgid "Miscellaneous tips and tricks" +msgstr "" + +#. "tutorial_tips" +#. Effect -- renamed Extension +#: ../src/verbs.cpp:2717 +msgid "Previous Extension" +msgstr "" + +#: ../src/verbs.cpp:2718 +msgid "Repeat the last extension with the same settings" +msgstr "" + +#: ../src/verbs.cpp:2719 +msgid "Previous Extension Settings..." +msgstr "" + +#: ../src/verbs.cpp:2720 +msgid "Repeat the last extension with new settings" +msgstr "" + +#: ../src/verbs.cpp:2724 +msgid "Fit the page to the current selection" +msgstr "" + +#: ../src/verbs.cpp:2726 +msgid "Fit the page to the drawing" +msgstr "" + +#: ../src/verbs.cpp:2728 +msgid "" +"Fit the page to the current selection or the drawing if there is no selection" +msgstr "" + +#. LockAndHide +#: ../src/verbs.cpp:2730 +msgid "Unlock All" +msgstr "" + +#: ../src/verbs.cpp:2732 +msgid "Unlock All in All Layers" +msgstr "" + +#: ../src/verbs.cpp:2734 +msgid "Unhide All" +msgstr "" + +#: ../src/verbs.cpp:2736 +msgid "Unhide All in All Layers" +msgstr "" + +#: ../src/verbs.cpp:2740 +msgid "Link an ICC color profile" +msgstr "" + +#: ../src/verbs.cpp:2741 +msgid "Remove Color Profile" +msgstr "" + +#: ../src/verbs.cpp:2742 +msgid "Remove a linked ICC color profile" +msgstr "" + +#: ../src/widgets/dash-selector.cpp:62 +msgid "Dash pattern" +msgstr "" + +#: ../src/widgets/dash-selector.cpp:77 +msgid "Pattern offset" +msgstr "" + +#. display the initial welcome message in the statusbar +#: ../src/widgets/desktop-widget.cpp:551 +msgid "" +"Welcome to Inkscape! Use shape or freehand tools to create objects; " +"use selector (arrow) to move or transform them." +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:615 +#, c-format +msgid "%s: %d (outline) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:617 +#, c-format +msgid "%s: %d - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:621 +#, c-format +msgid "%s (outline) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:623 +#, c-format +msgid "%s - Inkscape" +msgstr "" + +#: ../src/widgets/ege-paint-def.cpp:70 ../src/widgets/ege-paint-def.cpp:92 +#: ../src/widgets/gradient-selector.cpp:167 +msgid "none" +msgstr "" + +#: ../src/widgets/ege-paint-def.cpp:89 +msgid "remove" +msgstr "" + +#: ../src/widgets/fill-style.cpp:283 +msgid "Change fill rule" +msgstr "" + +#: ../src/widgets/fill-style.cpp:323 ../src/widgets/fill-style.cpp:397 +msgid "Set fill color" +msgstr "" + +#: ../src/widgets/fill-style.cpp:466 +msgid "Set gradient on fill" +msgstr "" + +#: ../src/widgets/fill-style.cpp:513 +msgid "Set pattern on fill" +msgstr "" + +#. Family frame +#: ../src/widgets/font-selector.cpp:157 +msgid "Font family" +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 +#. Style frame +#: ../src/widgets/font-selector.cpp:190 +msgid "fontselector|Style" +msgstr "" + +#: ../src/widgets/font-selector.cpp:228 +msgid "Font size:" +msgstr "" + +#. 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:641 ../src/widgets/toolbox.cpp:6522 +msgid "AaBbCcIiPpQq12369$€¢?.;/()" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute +#: ../src/widgets/gradient-selector.cpp:161 +msgid "" +"Whether to fill with flat color beyond the ends of the gradient vector " +"(spreadMethod=\"pad\"), or repeat the gradient in the same direction " +"(spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite " +"directions (spreadMethod=\"reflect\")" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:171 +msgid "reflected" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:175 +msgid "direct" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:183 +msgid "Repeat:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:155 +msgid "Assign gradient to object" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:189 +msgid "No gradients" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:198 +msgid "Nothing selected" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:209 +msgid "No gradients in selection" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:219 +msgid "Multiple gradients" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:467 +msgid "Edit the stops of the gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:527 ../src/widgets/toolbox.cpp:2630 +#: ../src/widgets/toolbox.cpp:2708 ../src/widgets/toolbox.cpp:3039 +#: ../src/widgets/toolbox.cpp:3077 ../src/widgets/toolbox.cpp:3692 +#: ../src/widgets/toolbox.cpp:3716 ../src/widgets/toolbox.cpp:5130 +#: ../src/widgets/toolbox.cpp:5159 +msgid "New:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:540 +msgid "Create linear gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:554 +msgid "Create radial (elliptic or circular) gradient" +msgstr "" + +#. TODO replace aux_toolbox_space(tbl, AUX_SPACING); +#: ../src/widgets/gradient-toolbar.cpp:569 +msgid "on" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:582 +msgid "Create gradient in the fill" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:596 +msgid "Create gradient in the stroke" +msgstr "" + +#. FIXME: implement averaging of all parameters for multiple selected +#. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); +#: ../src/widgets/gradient-toolbar.cpp:610 ../src/widgets/toolbox.cpp:2632 +#: ../src/widgets/toolbox.cpp:3047 ../src/widgets/toolbox.cpp:3065 +#: ../src/widgets/toolbox.cpp:3694 ../src/widgets/toolbox.cpp:3705 +#: ../src/widgets/toolbox.cpp:5133 ../src/widgets/toolbox.cpp:5144 +msgid "Change:" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:270 +#: ../src/widgets/paint-selector.cpp:885 ../src/widgets/stroke-style.cpp:820 +msgid "No document selected" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:276 +msgid "No gradients in document" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:282 +msgid "No gradient selected" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:547 +msgid "No stops in gradient" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:670 +msgid "Change gradient stop offset" +msgstr "" + +#. TRANSLATORS: "Stop" means: a "phase" of a gradient +#: ../src/widgets/gradient-vector.cpp:811 +msgid "Add stop" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:814 +msgid "Add another control stop to gradient" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:816 +msgid "Delete stop" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:819 +msgid "Delete current control stop from gradient" +msgstr "" + +#. Label +#: ../src/widgets/gradient-vector.cpp:830 +#: ../share/extensions/printing-marks.inx.h:9 +msgid "Offset:" +msgstr "" + +#. TRANSLATORS: "Stop" means: a "phase" of a gradient +#: ../src/widgets/gradient-vector.cpp:875 +msgid "Stop Color" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:905 +msgid "Gradient editor" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:1192 +msgid "Change gradient stop color" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:181 ../src/widgets/paint-selector.cpp:564 +msgid "No paint" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:183 ../src/widgets/paint-selector.cpp:636 +msgid "Flat color" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:185 ../src/widgets/paint-selector.cpp:707 +msgid "Linear gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:187 ../src/widgets/paint-selector.cpp:710 +msgid "Radial gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:191 +msgid "Unset paint (make it undefined so it can be inherited)" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty +#: ../src/widgets/paint-selector.cpp:203 +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 "" + +#: ../src/widgets/paint-selector.cpp:531 +msgid "No objects" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:542 +msgid "Multiple styles" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:553 +msgid "Paint is undefined" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:984 +msgid "" +"Use the Node tool to adjust position, scale, and rotation of the " +"pattern on canvas. Use Object > Pattern > Objects to Pattern to " +"create a new pattern from selection." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:247 +msgid "Transform by toolbar" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:304 +msgid "Now stroke width is scaled when objects are scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:306 +msgid "Now stroke width is not scaled when objects are scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:317 +msgid "" +"Now rounded rectangle corners are scaled when rectangles are " +"scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:319 +msgid "" +"Now rounded rectangle corners are not scaled when rectangles " +"are scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:330 +msgid "" +"Now gradients are transformed along with their objects when " +"those are transformed (moved, scaled, rotated, or skewed)." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:332 +msgid "" +"Now gradients remain fixed when objects are transformed " +"(moved, scaled, rotated, or skewed)." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:343 +msgid "" +"Now patterns are transformed along with their objects when " +"those are transformed (moved, scaled, rotated, or skewed)." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:345 +msgid "" +"Now patterns remain fixed 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:460 +msgid "select_toolbar|X position" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:460 +msgid "select_toolbar|X" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:462 +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:468 +msgid "select_toolbar|Y position" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:468 +msgid "select_toolbar|Y" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:470 +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:476 +msgid "select_toolbar|Width" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:476 +msgid "select_toolbar|W" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:478 +msgid "Width of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:485 +msgid "Lock width and height" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:486 +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:497 +msgid "select_toolbar|Height" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:497 +msgid "select_toolbar|H" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:499 +msgid "Height of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:536 +msgid "Affect:" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:536 +msgid "" +"Control whether or not to scale stroke widths, scale rectangle corners, " +"transform gradient fills, and transform pattern fills with the object" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:555 +msgid "Scale rounded corners" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:566 +msgid "Move gradients" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:577 +msgid "Move patterns" +msgstr "" + +#: ../src/widgets/sp-color-gtkselector.cpp:50 +msgid "System" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:111 +msgid "CMS" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:220 +#: ../src/widgets/sp-color-scales.cpp:399 +msgid "_R" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:220 +#: ../src/widgets/sp-color-icc-selector.cpp:221 +#: ../src/widgets/sp-color-scales.cpp:402 +msgid "_G" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:220 +#: ../src/widgets/sp-color-scales.cpp:405 +msgid "_B" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:222 +#: ../src/widgets/sp-color-icc-selector.cpp:223 +#: ../src/widgets/sp-color-scales.cpp:425 +msgid "_H" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:222 +#: ../src/widgets/sp-color-icc-selector.cpp:223 +#: ../src/widgets/sp-color-scales.cpp:428 +msgid "_S" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:223 +#: ../src/widgets/sp-color-scales.cpp:431 +msgid "_L" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:224 +#: ../src/widgets/sp-color-icc-selector.cpp:225 +#: ../src/widgets/sp-color-scales.cpp:453 +msgid "_C" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:224 +#: ../src/widgets/sp-color-icc-selector.cpp:225 +#: ../src/widgets/sp-color-scales.cpp:456 +msgid "_M" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:224 +#: ../src/widgets/sp-color-icc-selector.cpp:225 +#: ../src/widgets/sp-color-scales.cpp:459 +msgid "_Y" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:224 +#: ../src/widgets/sp-color-scales.cpp:462 +msgid "_K" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:235 +msgid "Gray" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:238 +#: ../src/widgets/sp-color-icc-selector.cpp:239 +#: ../src/widgets/sp-color-scales.cpp:454 +#: ../src/widgets/sp-color-scales.cpp:455 +msgid "Cyan" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:238 +#: ../src/widgets/sp-color-icc-selector.cpp:239 +#: ../src/widgets/sp-color-scales.cpp:457 +#: ../src/widgets/sp-color-scales.cpp:458 +msgid "Magenta" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:238 +#: ../src/widgets/sp-color-icc-selector.cpp:239 +#: ../src/widgets/sp-color-scales.cpp:460 +#: ../src/widgets/sp-color-scales.cpp:461 +msgid "Yellow" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:296 +msgid "Fix" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:299 +msgid "Fix RGB fallback to match icc-color() value." +msgstr "" + +#. Label +#: ../src/widgets/sp-color-icc-selector.cpp:380 +#: ../src/widgets/sp-color-scales.cpp:408 +#: ../src/widgets/sp-color-scales.cpp:434 +#: ../src/widgets/sp-color-scales.cpp:465 +#: ../src/widgets/sp-color-wheel-selector.cpp:134 +msgid "_A" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:390 +#: ../src/widgets/sp-color-icc-selector.cpp:402 +#: ../src/widgets/sp-color-scales.cpp:409 +#: ../src/widgets/sp-color-scales.cpp:410 +#: ../src/widgets/sp-color-scales.cpp:435 +#: ../src/widgets/sp-color-scales.cpp:436 +#: ../src/widgets/sp-color-scales.cpp:466 +#: ../src/widgets/sp-color-scales.cpp:467 +#: ../src/widgets/sp-color-wheel-selector.cpp:144 +#: ../src/widgets/sp-color-wheel-selector.cpp:156 +msgid "Alpha (opacity)" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:330 +msgid "RGBA_:" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:338 +msgid "Hexadecimal RGBA value of the color" +msgstr "" + +#: ../src/widgets/sp-color-scales.cpp:79 +msgid "RGB" +msgstr "" + +#: ../src/widgets/sp-color-scales.cpp:79 +msgid "HSL" +msgstr "" + +#: ../src/widgets/sp-color-scales.cpp:79 +msgid "CMYK" +msgstr "" + +#: ../src/widgets/sp-color-selector.cpp:64 +msgid "Unnamed" +msgstr "" + +#: ../src/widgets/sp-color-wheel-selector.cpp:61 +msgid "Wheel" +msgstr "" + +#: ../src/widgets/sp-xmlview-attr-list.cpp:46 +msgid "Attribute" +msgstr "" + +#: ../src/widgets/sp-xmlview-attr-list.cpp:47 +#: ../share/extensions/perfectboundcover.inx.h:19 +msgid "Value" +msgstr "" + +#: ../src/widgets/sp-xmlview-content.cpp:169 +msgid "Type text in a text node" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:286 ../src/widgets/stroke-style.cpp:345 +msgid "Set stroke color" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:397 +msgid "Set gradient on stroke" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:441 +msgid "Set pattern on stroke" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:904 +msgid "Set markers" +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 +#. Stroke width +#: ../src/widgets/stroke-style.cpp:1079 +msgid "StrokeWidth|Width:" +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/widgets/stroke-style.cpp:1117 +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/widgets/stroke-style.cpp:1129 +msgid "Miter join" +msgstr "" + +#. TRANSLATORS: Round join: joining lines with a rounded corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:1139 +msgid "Round join" +msgstr "" + +#. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:1149 +msgid "Bevel join" +msgstr "" + +#. 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/widgets/stroke-style.cpp:1161 +msgid "Miter limit:" +msgstr "" + +#: ../src/widgets/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/widgets/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/widgets/stroke-style.cpp:1193 +msgid "Butt cap" +msgstr "" + +#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the +#. line; the ends of the line are rounded +#: ../src/widgets/stroke-style.cpp:1201 +msgid "Round cap" +msgstr "" + +#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the +#. line; the ends of the line are square +#: ../src/widgets/stroke-style.cpp:1209 +msgid "Square cap" +msgstr "" + +#. Dash +#: ../src/widgets/stroke-style.cpp:1215 +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/widgets/stroke-style.cpp:1232 +msgid "Start Markers:" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1234 +msgid "Start Markers are drawn on the first node of a path or shape" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1243 +msgid "Mid Markers:" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1245 +msgid "" +"Mid Markers are drawn on every node of a path or shape except the first and " +"last nodes" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1254 +msgid "End Markers:" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1256 +msgid "End Markers are drawn on the last node of a path or shape" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1605 ../src/widgets/stroke-style.cpp:1701 +msgid "Set stroke style" +msgstr "" + +#: ../src/widgets/toolbox.cpp:183 +msgid "Color/opacity used for color tweaking" +msgstr "" + +#: ../src/widgets/toolbox.cpp:187 +msgid "Style of new stars" +msgstr "" + +#: ../src/widgets/toolbox.cpp:189 +msgid "Style of new rectangles" +msgstr "" + +#: ../src/widgets/toolbox.cpp:191 +msgid "Style of new 3D boxes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:193 +msgid "Style of new ellipses" +msgstr "" + +#: ../src/widgets/toolbox.cpp:195 +msgid "Style of new spirals" +msgstr "" + +#: ../src/widgets/toolbox.cpp:197 +msgid "Style of new paths created by Pencil" +msgstr "" + +#: ../src/widgets/toolbox.cpp:199 +msgid "Style of new paths created by Pen" +msgstr "" + +#: ../src/widgets/toolbox.cpp:201 +msgid "Style of new calligraphic strokes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:203 ../src/widgets/toolbox.cpp:205 +msgid "TBD" +msgstr "" + +#: ../src/widgets/toolbox.cpp:215 +msgid "Style of Paint Bucket fill objects" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1289 +msgid "Insert node" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1290 +msgid "Insert new nodes into selected segments" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1293 +msgid "Insert" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1301 +msgid "Delete selected nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1311 +msgid "Join endnodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1312 +msgid "Join selected endnodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1315 +msgid "Join" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1322 +msgid "Break nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1323 +msgid "Break path at selected nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1333 +msgid "Join with segment" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1334 +msgid "Join selected endnodes with a new segment" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1344 +msgid "Delete segment between two non-endpoint nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1353 +msgid "Node Cusp" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1354 +msgid "Make selected nodes corner" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1363 +msgid "Node Smooth" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1364 +msgid "Make selected nodes smooth" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1373 +msgid "Node Symmetric" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1374 +msgid "Make selected nodes symmetric" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1383 +msgid "Node Auto" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1384 +msgid "Make selected nodes auto-smooth" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1393 +msgid "Node Line" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1394 +msgid "Make selected segments lines" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1403 +msgid "Node Curve" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1404 +msgid "Make selected segments curves" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1413 +msgid "Show Handles" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1414 +msgid "Show the Bezier handles of selected nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1424 +msgid "Show Outline" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1425 +msgid "Show the outline of the path" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1435 +msgid "Next path effect parameter" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1436 +msgid "Show next path effect parameter for editing" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1447 +msgid "Edit the clipping path of the object" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1457 +msgid "Edit mask path" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1458 +msgid "Edit the mask of the object" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1472 +msgid "X coordinate:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1472 +msgid "X coordinate of selected node(s)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1490 +msgid "Y coordinate:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1490 +msgid "Y coordinate of selected node(s)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2028 +msgid "Enable snapping" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2037 +msgid "Bounding box" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2037 +msgid "Snap bounding box corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2046 +msgid "Bounding box edges" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2046 +msgid "Snap to edges of a bounding box" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2055 +msgid "Bounding box corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2055 +msgid "Snap to bounding box corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2064 +msgid "BBox Edge Midpoints" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2064 +msgid "Snap from and to midpoints of bounding box edges" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2074 +msgid "BBox Centers" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2074 +msgid "Snapping from and to centers of bounding boxes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2083 +msgid "Snap nodes or handles" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2091 +msgid "Snap to paths" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2100 +msgid "Path intersections" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2100 +msgid "Snap to path intersections" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2109 +msgid "To nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2109 +msgid "Snap to cusp nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2118 +msgid "Smooth nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2118 +msgid "Snap to smooth nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2127 +msgid "Line Midpoints" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2127 +msgid "Snap from and to midpoints of line segments" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2136 +msgid "Object Centers" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2136 +msgid "Snap from and to centers of objects" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2145 +msgid "Rotation Centers" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2145 +msgid "Snap from and to an item's rotation center" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2154 +msgid "Page border" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2154 +msgid "Snap to the page border" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2163 +msgid "Snap to grids" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2172 +msgid "Snap to guides" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2377 +msgid "Star: Change number of corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2422 +msgid "Star: Change spoke ratio" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2465 +msgid "Make polygon" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2465 +msgid "Make star" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2501 +msgid "Star: Change rounding" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2536 +msgid "Star: Change randomization" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2727 +msgid "Regular polygon (with one handle) instead of a star" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2734 +msgid "Star instead of a regular polygon (with one handle)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2755 +msgid "triangle/tri-star" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2755 +msgid "square/quad-star" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2755 +msgid "pentagon/five-pointed star" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2755 +msgid "hexagon/six-pointed star" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2758 +msgid "Corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2758 +msgid "Corners:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2758 +msgid "Number of corners of a polygon or star" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2771 +msgid "thin-ray star" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2771 +msgid "pentagram" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2771 +msgid "hexagram" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2771 +msgid "heptagram" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2771 +msgid "octagram" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2771 +msgid "regular polygon" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2774 +msgid "Spoke ratio" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2774 +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:2777 +msgid "Base radius to tip radius ratio" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2795 +msgid "stretched" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2795 +msgid "twisted" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2795 +msgid "slightly pinched" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2795 +msgid "NOT rounded" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2795 +msgid "slightly rounded" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2795 +msgid "visibly rounded" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2795 +msgid "well rounded" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2795 +msgid "amply rounded" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2795 ../src/widgets/toolbox.cpp:2810 +msgid "blown up" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2798 +msgid "Rounded" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2798 +msgid "Rounded:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2798 +msgid "How much rounded are the corners (0 for sharp)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2810 +msgid "NOT randomized" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2810 +msgid "slightly irregular" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2810 +msgid "visibly randomized" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2810 +msgid "strongly randomized" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2813 +msgid "Randomized" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2813 +msgid "Randomized:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2813 +msgid "Scatter randomly the corners and angles" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2828 ../src/widgets/toolbox.cpp:3767 +#: ../src/widgets/toolbox.cpp:4027 ../src/widgets/toolbox.cpp:7249 +msgid "Defaults" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2829 ../src/widgets/toolbox.cpp:3768 +msgid "" +"Reset shape parameters to defaults (use Inkscape Preferences > Tools to " +"change defaults)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2902 +msgid "Change rectangle" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3095 +msgid "W:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3095 +msgid "Width of rectangle" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3112 +msgid "H:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3112 +msgid "Height of rectangle" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3126 ../src/widgets/toolbox.cpp:3141 +msgid "not rounded" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3129 +msgid "Horizontal radius" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3129 +msgid "Rx:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3129 +msgid "Horizontal radius of rounded corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3144 +msgid "Vertical radius" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3144 +msgid "Ry:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3144 +msgid "Vertical radius of rounded corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3163 +msgid "Not rounded" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3164 +msgid "Make corners sharp" +msgstr "" + +#. TODO: use the correct axis here, too +#: ../src/widgets/toolbox.cpp:3352 +msgid "3D Box: Change perspective (angle of infinite axis)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3422 +msgid "Angle in X direction" +msgstr "" + +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/toolbox.cpp:3424 +msgid "Angle of PLs in X direction" +msgstr "" + +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/toolbox.cpp:3446 +msgid "State of VP in X direction" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3447 +msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3462 +msgid "Angle in Y direction" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3462 +msgid "Angle Y:" +msgstr "" + +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/toolbox.cpp:3464 +msgid "Angle of PLs in Y direction" +msgstr "" + +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/toolbox.cpp:3485 +msgid "State of VP in Y direction" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3486 +msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3501 +msgid "Angle in Z direction" +msgstr "" + +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/toolbox.cpp:3503 +msgid "Angle of PLs in Z direction" +msgstr "" + +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/toolbox.cpp:3524 +msgid "State of VP in Z direction" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3525 +msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3583 +msgid "Change spiral" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3724 +msgid "just a curve" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3724 +msgid "one full revolution" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3727 +msgid "Number of turns" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3727 +msgid "Turns:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3727 +msgid "Number of revolutions" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3738 +msgid "circle" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3738 +msgid "edge is much denser" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3738 +msgid "edge is denser" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3738 +msgid "even" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3738 +msgid "center is denser" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3738 +msgid "center is much denser" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3741 +msgid "Divergence" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3741 +msgid "Divergence:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3741 +msgid "How much denser/sparser are outer revolutions; 1 = uniform" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3752 +msgid "starts from center" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3752 +msgid "starts mid-way" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3752 +msgid "starts near edge" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3755 +msgid "Inner radius" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3755 +msgid "Inner radius:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3755 +msgid "Radius of the innermost revolution (relative to the spiral size)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3828 +msgid "Bezier" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3829 +msgid "Create regular Bezier path" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3835 +msgid "Spiro" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3836 +msgid "Create Spiro path" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3843 +msgid "Zigzag" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3844 +msgid "Create a sequence of straight line segments" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3850 +msgid "Paraxial" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3851 +msgid "Create a sequence of paraxial line segments" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3859 +msgid "Mode of new lines drawn by this tool" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3888 +msgid "Triangle in" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3889 +msgid "Triangle out" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3891 +msgid "From clipboard" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3916 ../src/widgets/toolbox.cpp:3917 +msgid "Shape:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:3916 +msgid "Shape of new paths drawn by this tool" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4001 +msgid "(many nodes, rough)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4001 ../src/widgets/toolbox.cpp:4121 +#: ../src/widgets/toolbox.cpp:4138 ../src/widgets/toolbox.cpp:4341 +#: ../src/widgets/toolbox.cpp:4712 ../src/widgets/toolbox.cpp:4745 +#: ../src/widgets/toolbox.cpp:5731 +msgid "(default)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4001 +msgid "(few nodes, smooth)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4004 +msgid "Smoothing:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4004 +msgid "Smoothing: " +msgstr "" + +#: ../src/widgets/toolbox.cpp:4005 +msgid "How much smoothing (simplifying) is applied to the line" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4028 +msgid "" +"Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " +"change defaults)" +msgstr "" + +#. Width +#: ../src/widgets/toolbox.cpp:4121 +msgid "(pinch tweak)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4121 +msgid "(broad tweak)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4124 +msgid "The width of the tweak area (relative to the visible canvas area)" +msgstr "" + +#. Force +#: ../src/widgets/toolbox.cpp:4138 +msgid "(minimum force)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4138 +msgid "(maximum force)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4141 +msgid "Force" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4141 +msgid "Force:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4141 +msgid "The force of the tweak action" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4159 +msgid "Move mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4160 +msgid "Move objects in any direction" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4166 +msgid "Move in/out mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4167 +msgid "Move objects towards cursor; with Shift from cursor" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4173 +msgid "Move jitter mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4174 +msgid "Move objects in random directions" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4180 +msgid "Scale mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4181 +msgid "Shrink objects, with Shift enlarge" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4187 +msgid "Rotate mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4188 +msgid "Rotate objects, with Shift counterclockwise" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4194 +msgid "Duplicate/delete mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4195 +msgid "Duplicate objects, with Shift delete" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4201 +msgid "Push mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4202 +msgid "Push parts of paths in any direction" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4208 +msgid "Shrink/grow mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4209 +msgid "Shrink (inset) parts of paths; with Shift grow (outset)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4215 +msgid "Attract/repel mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4216 +msgid "Attract parts of paths towards cursor; with Shift from cursor" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4222 +msgid "Roughen mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4223 +msgid "Roughen parts of paths" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4229 +msgid "Color paint mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4230 +msgid "Paint the tool's color upon selected objects" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4236 +msgid "Color jitter mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4237 +msgid "Jitter the colors of selected objects" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4243 +msgid "Blur mode" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4244 +msgid "Blur selected objects more; with Shift, blur less" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4271 +msgid "Channels:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4282 +msgid "In color mode, act on objects' hue" +msgstr "" + +#. TRANSLATORS: "H" here stands for hue +#: ../src/widgets/toolbox.cpp:4286 +msgid "H" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4297 +msgid "In color mode, act on objects' saturation" +msgstr "" + +#. TRANSLATORS: "S" here stands for Saturation +#: ../src/widgets/toolbox.cpp:4301 +msgid "S" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4312 +msgid "In color mode, act on objects' lightness" +msgstr "" + +#. TRANSLATORS: "L" here stands for Lightness +#: ../src/widgets/toolbox.cpp:4316 +msgid "L" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4327 +msgid "In color mode, act on objects' opacity" +msgstr "" + +#. TRANSLATORS: "O" here stands for Opacity +#: ../src/widgets/toolbox.cpp:4331 +msgid "O" +msgstr "" + +#. Fidelity +#: ../src/widgets/toolbox.cpp:4341 +msgid "(rough, simplified)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4341 +msgid "(fine, but many nodes)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4344 +msgid "Fidelity" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4344 +msgid "Fidelity:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4345 +msgid "" +"Low fidelity simplifies paths; high fidelity preserves path features but may " +"generate a lot of new nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4362 ../src/widgets/toolbox.cpp:4863 +msgid "Pressure" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4363 +msgid "Use the pressure of the input device to alter the force of tweak action" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4543 +msgid "No preset" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4561 +msgid "Save..." +msgstr "" + +#. Width +#: ../src/widgets/toolbox.cpp:4712 ../src/widgets/toolbox.cpp:5731 +msgid "(hairline)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4712 ../src/widgets/toolbox.cpp:5731 +msgid "(broad stroke)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4715 ../src/widgets/toolbox.cpp:5734 +msgid "Pen Width" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4716 +msgid "The width of the calligraphic pen (relative to the visible canvas area)" +msgstr "" + +#. Thinning +#: ../src/widgets/toolbox.cpp:4729 +msgid "(speed blows up stroke)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4729 +msgid "(slight widening)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4729 +msgid "(constant width)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4729 +msgid "(slight thinning, default)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4729 +msgid "(speed deflates stroke)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4732 +msgid "Stroke Thinning" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4732 +msgid "Thinning:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4733 +msgid "" +"How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 " +"makes them broader, 0 makes width independent of velocity)" +msgstr "" + +#. Angle +#: ../src/widgets/toolbox.cpp:4745 +msgid "(left edge up)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4745 +msgid "(horizontal)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4745 +msgid "(right edge up)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4748 +msgid "Pen Angle" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4748 +msgid "Angle:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4749 +msgid "" +"The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if " +"fixation = 0)" +msgstr "" + +#. Fixation +#: ../src/widgets/toolbox.cpp:4763 +msgid "(perpendicular to stroke, \"brush\")" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4763 +msgid "(almost fixed, default)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4763 +msgid "(fixed by Angle, \"pen\")" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4766 +msgid "Fixation" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4766 +msgid "Fixation:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4767 +msgid "" +"Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " +"fixed angle)" +msgstr "" + +#. Cap Rounding +#: ../src/widgets/toolbox.cpp:4779 +msgid "(blunt caps, default)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4779 +msgid "(slightly bulging)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4779 +msgid "(approximately round)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4779 +msgid "(long protruding caps)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4783 +msgid "Cap rounding" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4783 +msgid "Caps:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4784 +msgid "" +"Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = " +"round caps)" +msgstr "" + +#. Tremor +#: ../src/widgets/toolbox.cpp:4796 +msgid "(smooth line)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4796 +msgid "(slight tremor)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4796 +msgid "(noticeable tremor)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4796 +msgid "(maximum tremor)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4799 +msgid "Stroke Tremor" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4799 +msgid "Tremor:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4800 +msgid "Increase to make strokes rugged and trembling" +msgstr "" + +#. Wiggle +#: ../src/widgets/toolbox.cpp:4814 +msgid "(no wiggle)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4814 +msgid "(slight deviation)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4814 +msgid "(wild waves and curls)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4817 +msgid "Pen Wiggle" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4817 +msgid "Wiggle:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4818 +msgid "Increase to make the pen waver and wiggle" +msgstr "" + +#. Mass +#: ../src/widgets/toolbox.cpp:4831 +msgid "(no inertia)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4831 +msgid "(slight smoothing, default)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4831 +msgid "(noticeable lagging)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4831 +msgid "(maximum inertia)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4834 +msgid "Pen Mass" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4834 +msgid "Mass:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4835 +msgid "Increase to make the pen drag behind, as if slowed by inertia" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4850 +msgid "Trace Background" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4851 +msgid "" +"Trace the lightness of the background by the width of the pen (white - " +"minimum width, black - maximum width)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4864 +msgid "Use the pressure of the input device to alter the width of the pen" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4876 +msgid "Tilt" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4877 +msgid "Use the tilt of the input device to alter the angle of the pen's nib" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4890 +msgid "Choose a preset" +msgstr "" + +#: ../src/widgets/toolbox.cpp:4978 +msgid "Arc: Change start/end" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5042 +msgid "Arc: Change open/closed" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5168 +msgid "Start:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5169 +msgid "The angle (in degrees) from the horizontal to the arc's start point" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5181 +msgid "End:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5182 +msgid "The angle (in degrees) from the horizontal to the arc's end point" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5198 +msgid "Closed arc" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5199 +msgid "Switch to segment (closed shape with two radii)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5205 +msgid "Open Arc" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5206 +msgid "Switch to arc (unclosed shape)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5229 +msgid "Make whole" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5230 +msgid "Make the shape a whole ellipse, not arc or segment" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5306 +msgid "Pick opacity" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5307 +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:5310 +msgid "Pick" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5319 +msgid "Assign opacity" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5320 +msgid "" +"If alpha was picked, assign it to selection as fill or stroke transparency" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5323 +msgid "Assign" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5509 +msgid "Closed" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5511 +msgid "Open start" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5513 +msgid "Open end" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5515 +msgid "Open both" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5574 +msgid "All inactive" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5575 +msgid "No geometric tool is active" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5608 +msgid "Show limiting bounding box" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5609 +msgid "Show bounding box (used to cut infinite lines)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5620 +msgid "Get limiting bounding box from selection" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5621 +msgid "" +"Set limiting bounding box (used to cut infinite lines) to the bounding box " +"of current selection" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5633 +msgid "Choose a line segment type" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5649 +msgid "Display measuring info" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5650 +msgid "Display measuring info for selected items" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5670 +msgid "Open LPE dialog" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5671 +msgid "Open LPE dialog (to adapt parameters numerically)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5735 +msgid "The width of the eraser pen (relative to the visible canvas area)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5753 +msgid "Delete objects touched by the eraser" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5759 +msgid "Cut" +msgstr "" + +#: ../src/widgets/toolbox.cpp:5760 +msgid "Cut out from objects" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6104 +msgid "Text: Change font family" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6174 +msgid "Text: Change alignment" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6278 +msgid "Text: Change font style" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6325 +msgid "Text: Change orientation" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6439 +msgid "Text: Change font size" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6650 +msgid "Select font family (Alt+X to access)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6687 +msgid "" +"This font is currently not installed on your system. Inkscape will use the " +"default font instead." +msgstr "" + +#: ../src/widgets/toolbox.cpp:6723 +msgid "Align left" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6745 +msgid "Align right" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6756 +msgid "Justify" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6771 +msgid "Bold" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6782 +msgid "Italic" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6913 +msgid "Change connector spacing" +msgstr "" + +#: ../src/widgets/toolbox.cpp:6996 +msgid "Avoid" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7006 +msgid "Ignore" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7018 +msgid "Connector Spacing" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7018 +msgid "Spacing:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7019 +msgid "The amount of space left around objects by auto-routing connectors" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7030 +msgid "Graph" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7040 +msgid "Connector Length" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7040 +msgid "Length:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7041 +msgid "Ideal length for connectors when layout is applied" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7053 +msgid "Downwards" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7054 +msgid "Make connectors with end-markers (arrows) point downwards" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7069 +msgid "Do not allow overlapping shapes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7172 +msgid "Fill by" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7173 +msgid "Fill by:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7185 +msgid "Fill Threshold" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7186 +msgid "" +"The maximum allowed difference between the clicked pixel and the neighboring " +"pixels to be counted in the fill" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7211 +msgid "Grow/shrink by" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7211 +msgid "Grow/shrink by:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7212 +msgid "" +"The amount to grow (positive) or shrink (negative) the created fill path" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7237 +msgid "Close gaps" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7238 +msgid "Close gaps:" +msgstr "" + +#: ../src/widgets/toolbox.cpp:7250 +msgid "" +"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " +"to change defaults)" +msgstr "" + +#: ../share/extensions/dimension.py:99 +msgid "Unable to process this object. Try changing it into a path first." +msgstr "" + +#. report to the Inkscape console using errormsg +#: ../share/extensions/draw_from_triangle.py:175 +msgid "Side Length 'a'/px: " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:176 +msgid "Side Length 'b'/px: " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:177 +msgid "Side Length 'c'/px: " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:178 +msgid "Angle 'A'/radians: " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:179 +msgid "Angle 'B'/radians: " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:180 +msgid "Angle 'C'/radians: " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:181 +msgid "Semiperimeter/px: " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:182 +msgid "Area /px^2: " +msgstr "" + +#: ../share/extensions/dxf_outlines.py:33 +msgid "" +"Failed to import the numpy or numpy.linalg modules. These modules are " +"required by this extension. Please install them and try again." +msgstr "" + +#: ../share/extensions/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 "" + +#: ../share/extensions/embedimage.py:76 +#, python-format +msgid "Sorry we could not locate %s" +msgstr "" + +#: ../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 "" + +#: ../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 "" + +#: ../share/extensions/extractimage.py:66 +msgid "Unable to find image data." +msgstr "" + +#: ../share/extensions/inkex.py:66 +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:222 +#, python-format +msgid "No matching node for expression: %s" +msgstr "" + +#: ../share/extensions/markers_strokepaint.py:41 +#, python-format +msgid "No style attribute found for id: %s" +msgstr "" + +#: ../share/extensions/markers_strokepaint.py:56 +#, python-format +msgid "unable to locate marker: %s" +msgstr "" + +#: ../share/extensions/pathalongpath.py:197 +#: ../share/extensions/pathscatter.py:208 +#: ../share/extensions/perspective.py:61 +msgid "This extension requires two selected paths." +msgstr "" + +#: ../share/extensions/pathmodifier.py:229 +#, python-format +msgid "Please first convert objects to paths! (Got [%s].)" +msgstr "" + +#: ../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 "" + +#: ../share/extensions/perspective.py:68 +#: ../share/extensions/summersnight.py:43 +#, python-format +msgid "" +"The first selected object is of type '%s'.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#: ../share/extensions/perspective.py:74 +#: ../share/extensions/summersnight.py:50 +msgid "" +"This extension requires that the second selected path be four nodes long." +msgstr "" + +#: ../share/extensions/perspective.py:99 +#: ../share/extensions/summersnight.py:82 +msgid "" +"The second selected object is a group, not a path.\n" +"Try using the procedure Object->Ungroup." +msgstr "" + +#: ../share/extensions/perspective.py:101 +#: ../share/extensions/summersnight.py:84 +msgid "" +"The second selected object is not a path.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#: ../share/extensions/perspective.py:104 +#: ../share/extensions/summersnight.py:87 +msgid "" +"The first selected object is not a path.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:60 +msgid "" +"Failed to import the numpy module. This module is required by this " +"extension. Please install it and try again. On a Debian-like system this " +"can be done with the command 'sudo apt-get install python-numpy'." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:331 +msgid "No face data found in specified file." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:332 +msgid "Try selecting \"Edge Specified\" in the Model File tab.\n" +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:338 +msgid "No edge data found in specified file." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:339 +msgid "Try selecting \"Face Specified\" in the Model File tab.\n" +msgstr "" + +#. we cannot generate a list of faces from the edges without a lot of computation +#: ../share/extensions/polyhedron_3d.py:514 +msgid "" +"Face Data Not Found. Ensure file contains face data, and check the file is " +"imported as \"Face-Specified\" under the \"Model File\" tab.\n" +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:516 +msgid "Internal Error. No view type selected\n" +msgstr "" + +#: ../share/extensions/summersnight.py:36 +msgid "" +"This extension requires two selected paths. \n" +"The second path must be exactly four nodes long." +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.py:125 +#, python-format +msgid "Could not locate file: %s" +msgstr "" + +#: ../share/extensions/uniconv_output.py:118 +msgid "You need to install the UniConvertor software.\n" +msgstr "" + +#: ../share/extensions/web-set-att.py:52 +#: ../share/extensions/web-transmit-att.py:48 +msgid "You must select at least two elements." +msgstr "" + +#: ../share/extensions/addnodes.inx.h:1 +msgid "Add Nodes" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:2 +msgid "By max. segment length" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:3 +msgid "By number of segments" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:4 +msgid "Division method" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:5 +msgid "Maximum segment length (px)" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:6 +#: ../share/extensions/convert2dashes.inx.h:2 +#: ../share/extensions/edge3d.inx.h:6 ../share/extensions/flatten.inx.h:3 +#: ../share/extensions/fractalize.inx.h:2 +#: ../share/extensions/interp_att_g.inx.h:10 +#: ../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 "" + +#: ../share/extensions/addnodes.inx.h:7 +msgid "Number of segments" +msgstr "" + +#: ../share/extensions/ai_input.inx.h:1 +msgid "AI 8.0 Input" +msgstr "" + +#: ../share/extensions/ai_input.inx.h:2 +msgid "Adobe Illustrator 8.0 and below (*.ai)" +msgstr "" + +#: ../share/extensions/ai_input.inx.h:3 +msgid "Open files saved with Adobe Illustrator 8.0 or older" +msgstr "" + +#: ../share/extensions/aisvg.inx.h:1 +msgid "AI SVG Input" +msgstr "" + +#: ../share/extensions/aisvg.inx.h:2 +msgid "Adobe Illustrator SVG (*.ai.svg)" +msgstr "" + +#: ../share/extensions/aisvg.inx.h:3 +msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening" +msgstr "" + +#: ../share/extensions/ccx_input.inx.h:1 +msgid "Corel DRAW Compressed Exchange files (.ccx)" +msgstr "" + +#: ../share/extensions/ccx_input.inx.h:2 +msgid "Corel DRAW Compressed Exchange files input" +msgstr "" + +#: ../share/extensions/ccx_input.inx.h:3 +msgid "Open compressed exchange files saved in Corel DRAW" +msgstr "" + +#: ../share/extensions/cdr_input.inx.h:1 +msgid "Corel DRAW 7-X4 files (*.cdr)" +msgstr "" + +#: ../share/extensions/cdr_input.inx.h:2 +msgid "Corel DRAW Input" +msgstr "" + +#: ../share/extensions/cdr_input.inx.h:3 +msgid "Open files saved in Corel DRAW 7-X4" +msgstr "" + +#: ../share/extensions/cdt_input.inx.h:1 +msgid "Corel DRAW 7-13 template files (.cdt)" +msgstr "" + +#: ../share/extensions/cdt_input.inx.h:2 +msgid "Corel DRAW templates input" +msgstr "" + +#: ../share/extensions/cdt_input.inx.h:3 +msgid "Open files saved in Corel DRAW 7-13" +msgstr "" + +#: ../share/extensions/cgm_input.inx.h:1 +msgid "Computer Graphics Metafile files (.cgm)" +msgstr "" + +#: ../share/extensions/cgm_input.inx.h:2 +msgid "Computer Graphics Metafile files input" +msgstr "" + +#: ../share/extensions/cgm_input.inx.h:3 +msgid "Open Computer Graphics Metafile files" +msgstr "" + +#: ../share/extensions/cmx_input.inx.h:1 +msgid "Corel DRAW Presentation Exchange files (.cmx)" +msgstr "" + +#: ../share/extensions/cmx_input.inx.h:2 +msgid "Corel DRAW Presentation Exchange files input" +msgstr "" + +#: ../share/extensions/cmx_input.inx.h:3 +msgid "Open presentation exchange files saved in Corel DRAW" +msgstr "" + +#: ../share/extensions/color_brighter.inx.h:1 +msgid "Brighter" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:1 +msgid "Blue Function" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:4 +msgid "Green Function" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:5 +msgid "Red Function" +msgstr "" + +#: ../share/extensions/color_darker.inx.h:2 +msgid "Darker" +msgstr "" + +#: ../share/extensions/color_grayscale.inx.h:2 +msgid "Grayscale" +msgstr "" + +#: ../share/extensions/color_lesshue.inx.h:2 +msgid "Less Hue" +msgstr "" + +#: ../share/extensions/color_lesslight.inx.h:2 +msgid "Less Light" +msgstr "" + +#: ../share/extensions/color_lesssaturation.inx.h:2 +msgid "Less Saturation" +msgstr "" + +#: ../share/extensions/color_morehue.inx.h:2 +msgid "More Hue" +msgstr "" + +#: ../share/extensions/color_morelight.inx.h:2 +msgid "More Light" +msgstr "" + +#: ../share/extensions/color_moresaturation.inx.h:2 +msgid "More Saturation" +msgstr "" + +#: ../share/extensions/color_negative.inx.h:2 +msgid "Negative" +msgstr "" + +#: ../share/extensions/color_randomize.inx.h:4 +msgid "Randomize" +msgstr "" + +#: ../share/extensions/color_removeblue.inx.h:2 +msgid "Remove Blue" +msgstr "" + +#: ../share/extensions/color_removegreen.inx.h:2 +msgid "Remove Green" +msgstr "" + +#: ../share/extensions/color_removered.inx.h:2 +msgid "Remove Red" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:1 +msgid "By color (RRGGBB hex):" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:3 +msgid "Replace color" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:4 +msgid "Replace color (RRGGBB hex):" +msgstr "" + +#: ../share/extensions/color_rgbbarrel.inx.h:2 +msgid "RGB Barrel" +msgstr "" + +#: ../share/extensions/convert2dashes.inx.h:1 +msgid "Convert to Dashes" +msgstr "" + +#: ../share/extensions/dia.inx.h:1 +msgid "A diagram created with the program Dia" +msgstr "" + +#: ../share/extensions/dia.inx.h:2 +msgid "Dia Diagram (*.dia)" +msgstr "" + +#: ../share/extensions/dia.inx.h:3 +msgid "Dia Input" +msgstr "" + +#: ../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 "" + +#: ../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 "" + +#: ../share/extensions/dimension.inx.h:1 +msgid "Dimensions" +msgstr "" + +#: ../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 "" + +#: ../share/extensions/dimension.inx.h:3 +msgid "X Offset" +msgstr "" + +#: ../share/extensions/dimension.inx.h:4 +msgid "Y Offset" +msgstr "" + +#: ../share/extensions/dots.inx.h:1 +msgid "Dot size" +msgstr "" + +#: ../share/extensions/dots.inx.h:2 +msgid "Font size" +msgstr "" + +#: ../share/extensions/dots.inx.h:3 +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 +msgid "Draw Circle Around 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 +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 +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 "" + +#: ../share/extensions/draw_from_triangle.inx.h:31 +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 "" +"This extension draws constructions about a triangle defined by the first 3 " +"nodes of a selected path. You may select one of preset objects or create " +"your own ones.\n" +" \n" +"All units are the Inkscape's pixel unit. Angles are all in radians.\n" +"You can specify a point by trilinear coordinates or by a triangle centre " +"function.\n" +"Enter as functions of the side length or angles.\n" +"Trilinear elements should be separated by a colon: ':'.\n" +"Side lengths are represented as 's_a', 's_b' and 's_c'.\n" +"Angles corresponding to these are 'a_a', 'a_b', and 'a_c'.\n" +"You can also use the semi-perimeter and area of the triangle as constants. " +"Write 'area' or 'semiperim' for these.\n" +"\n" +"You can use any standard Python math function:\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x)\n" +"\n" +"Also available are the inverse trigonometric functions:\n" +"sec(x); csc(x); cot(x)\n" +"\n" +"You can specify the radius of a circle around a custom point using a " +"formula, which may also contain the side lengths, angles, etc. You can also " +"plot the isogonal and isotomic conjugate of the point. Be aware that this " +"may cause a divide-by-zero error for certain points.\n" +" " +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:57 +msgid "Triangle Function" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:58 +msgid "Trilinear Coordinates" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:1 +msgid "" +"- AutoCAD Release 13 and newer.\n" +"- assume dxf drawing is in mm.\n" +"- assume svg drawing is in pixels, at 90 dpi.\n" +"- layers are preserved only on File->Open, not Import.\n" +"- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:6 +msgid "AutoCAD DXF R13 (*.dxf)" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:7 +msgid "Character Encoding" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:8 +msgid "DXF Input" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:10 +msgid "Import AutoCAD's Document Exchange Format" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:12 +msgid "Or, use manual scale factor" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:13 +msgid "Use automatic scaling to size A4" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:1 +msgid "" +"- AutoCAD Release 13 format.\n" +"- assume svg drawing is in pixels, at 90 dpi.\n" +"- assume dxf drawing is in mm.\n" +"- only LWPOLYLINE and SPLINE elements are supported.\n" +"- ROBO-Master option is a specialized spline readable only by ROBO-Master " +"and AutoDesk viewers, not Inkscape." +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:6 +msgid "Desktop Cutting Plotter" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:7 +msgid "Desktop Cutting Plotter (R13) (*.dxf)" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:10 +msgid "enable ROBO-Master output" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:1 +msgid "AutoCAD DXF R12 (*.dxf)" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:2 +msgid "DXF Output" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:3 +msgid "DXF file written by pstoedit" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:4 +msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:1 +msgid "Blur height" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:2 +msgid "Blur stdDeviation" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:3 +msgid "Blur width" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:4 +msgid "Edge 3D" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:5 +msgid "Illumination Angle" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:7 +msgid "Only black and white" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:8 +msgid "Shades" +msgstr "" + +#: ../share/extensions/embedimage.inx.h:1 +msgid "Embed Images" +msgstr "" + +#: ../share/extensions/embedimage.inx.h:2 +msgid "Embed only selected images" +msgstr "" + +#: ../share/extensions/eps_input.inx.h:1 +msgid "EPS Input" +msgstr "" + +#: ../share/extensions/eqtexsvg.inx.h:1 +msgid "LaTeX formula" +msgstr "" + +#: ../share/extensions/eqtexsvg.inx.h:2 +msgid "LaTeX formula: " +msgstr "" + +#: ../share/extensions/export_gimp_palette.inx.h:1 +msgid "Export as GIMP Palette" +msgstr "" + +#: ../share/extensions/export_gimp_palette.inx.h:2 +msgid "Exports the colors of this document as GIMP Palette" +msgstr "" + +#: ../share/extensions/export_gimp_palette.inx.h:3 +msgid "GIMP Palette (*.gpl)" +msgstr "" + +#: ../share/extensions/extractimage.inx.h:1 +msgid "Extract Image" +msgstr "" + +#: ../share/extensions/extractimage.inx.h:3 +msgid "Note: The file extension is appended automatically." +msgstr "" + +#: ../share/extensions/extractimage.inx.h:4 +msgid "Path to save image" +msgstr "" + +#: ../share/extensions/extrude.inx.h:3 +msgid "Lines" +msgstr "" + +#: ../share/extensions/extrude.inx.h:5 +msgid "Polygons" +msgstr "" + +#: ../share/extensions/fig_input.inx.h:1 +msgid "Open files saved with XFIG" +msgstr "" + +#: ../share/extensions/fig_input.inx.h:2 +msgid "XFIG Graphics File (*.fig)" +msgstr "" + +#: ../share/extensions/fig_input.inx.h:3 +msgid "XFIG Input" +msgstr "" + +#: ../share/extensions/flatten.inx.h:1 +msgid "Flatness" +msgstr "" + +#: ../share/extensions/flatten.inx.h:2 +msgid "Flatten Beziers" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:1 +msgid "Add Guide Lines" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:2 +msgid "Depth" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:3 +msgid "Foldable Box" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:5 +msgid "Paper Thickness" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:7 +msgid "Tab Proportion" +msgstr "" + +#: ../share/extensions/fractalize.inx.h:1 +msgid "Fractalize" +msgstr "" + +#: ../share/extensions/fractalize.inx.h:3 +msgid "Smoothness" +msgstr "" + +#: ../share/extensions/fractalize.inx.h:4 +msgid "Subdivisions" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:1 +msgid "Calculate first derivative numerically" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:2 +#: ../share/extensions/param_curves.inx.h:1 +msgid "Draw Axes" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:3 +msgid "End X value" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:4 +msgid "First derivative" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:5 +msgid "Function" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:6 +msgid "Function Plotter" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:7 +#: ../share/extensions/param_curves.inx.h:3 +msgid "Functions" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:8 +msgid "Isotropic scaling (uses smallest of width/xrange or height/yrange)" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:9 +msgid "Multiply X range by 2*pi" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:10 +msgid "Number of samples" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:11 +msgid "Range and sampling" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:12 +#: ../share/extensions/param_curves.inx.h:8 +msgid "Remove rectangle" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:14 +msgid "" +"Select a rectangle before calling the extension,\n" +"it will determine X and Y scales.\n" +"\n" +"With polar coordinates:\n" +" Start and end X values define the angle range in radians.\n" +" X scale is set so that left and right edges of rectangle are at +/-1.\n" +" Isotropic scaling is disabled.\n" +" First derivative is always determined numerically." +msgstr "" + +#: ../share/extensions/funcplot.inx.h:22 +#: ../share/extensions/param_curves.inx.h:15 +msgid "" +"Standard Python math functions are available:\n" +"\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x).\n" +"\n" +"The constants pi and e are also available." +msgstr "" + +#: ../share/extensions/funcplot.inx.h:31 +msgid "Start X value" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:32 +#: ../share/extensions/param_curves.inx.h:25 +msgid "Use" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:33 +msgid "Use polar coordinates" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:34 +msgid "Y value of rectangle's bottom" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:35 +msgid "Y value of rectangle's top" +msgstr "" + +#: ../share/extensions/gears.inx.h:1 +msgid "Circular pitch, px" +msgstr "" + +#: ../share/extensions/gears.inx.h:2 +msgid "Gear" +msgstr "" + +#: ../share/extensions/gears.inx.h:3 +msgid "Number of teeth" +msgstr "" + +#: ../share/extensions/gears.inx.h:4 +msgid "Pressure angle" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:1 +msgid "GIMP XCF" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:2 +msgid "GIMP XCF maintaining layers (*.xcf)" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:3 +msgid "Save Grid:" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:4 +msgid "Save Guides:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:1 +msgid "Border Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:2 +msgid "Cartesian Grid" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:3 +msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:4 +msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:5 +msgid "Logarithmic X Subdiv. (Base given by entry above)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:6 +msgid "Logarithmic Y Subdiv. (Base given by entry above)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:7 +msgid "Major X Division Spacing [px]" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:8 +msgid "Major X Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:9 +msgid "Major X Divisions" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:10 +msgid "Major Y Division Spacing [px]" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:11 +msgid "Major Y Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:12 +msgid "Major Y Divisions" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:13 +msgid "Minor X Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:14 +msgid "Minor Y Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:16 +msgid "Subdivisions per Major X Division" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:17 +msgid "Subdivisions per Major Y Division" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:18 +msgid "Subminor X Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:19 +msgid "Subminor Y Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:20 +msgid "Subsubdivs. per X Subdivision" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:21 +msgid "Subsubdivs. per Y Subdivision" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:1 +msgid "Angle Divisions" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:2 +msgid "Angle Divisions at Centre" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:3 +msgid "Centre Dot Diameter [px]" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:4 +msgid "Circumferential Label Outset [px]" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:5 +msgid "Circumferential Label Size [px]" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:6 +msgid "Circumferential Labels" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:8 +msgid "Logarithmic Subdiv. (Base given by entry above)" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:9 +msgid "Major Angular Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:10 +msgid "Major Circular Division Spacing [px]" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:11 +msgid "Major Circular Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:12 +msgid "Major Circular Divisions" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:13 +msgid "Minor Angle Division End 'n' Divs. Before Centre" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:14 +msgid "Minor Angular Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:15 +msgid "Minor Circular Division Thickness [px]" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:17 +msgid "Polar Grid" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:19 +msgid "Subdivisions per Major Angular Division" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:20 +msgid "Subdivisions per Major Circular Division" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:1 +msgid "1/10" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:2 +msgid "1/2" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:3 +msgid "1/3" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:4 +msgid "1/4" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:5 +msgid "1/5" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:6 +msgid "1/6" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:7 +msgid "1/7" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:8 +msgid "1/8" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:9 +msgid "1/9" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:10 +msgid "Custom..." +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:11 +msgid "Delete existing guides" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:12 +msgid "Golden ratio" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:13 +msgid "Guides creator" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:14 +msgid "Horizontal guide each" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:16 +msgid "Preset" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:18 +msgid "Rule-of-third" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:19 +msgid "Start from edges" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:20 +msgid "Vertical guide each" +msgstr "" + +#: ../share/extensions/handles.inx.h:1 +msgid "Draw Handles" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:1 +msgid "Export to an HP Graphics Language file" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:2 +msgid "HP Graphics Language file (*.hpgl)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:3 +msgid "HPGL Output" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:4 +msgid "Mirror Y-axis" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:5 +msgid "Plot invisible layers" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:6 +msgid "X-origin (px)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:7 +msgid "Y-origin (px)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:8 +msgid "hpgl output flatness" +msgstr "" + +#: ../share/extensions/inkscape_help_askaquestion.inx.h:1 +msgid "Ask Us a Question" +msgstr "" + +#: ../share/extensions/inkscape_help_commandline.inx.h:1 +msgid "Command Line Options" +msgstr "" + +#: ../share/extensions/inkscape_help_faq.inx.h:1 +msgid "FAQ" +msgstr "" + +#: ../share/extensions/inkscape_help_keys.inx.h:1 +msgid "Keys and Mouse Reference" +msgstr "" + +#: ../share/extensions/inkscape_help_manual.inx.h:1 +msgid "Inkscape Manual" +msgstr "" + +#: ../share/extensions/inkscape_help_relnotes.inx.h:1 +msgid "New in This Version" +msgstr "" + +#: ../share/extensions/inkscape_help_reportabug.inx.h:1 +msgid "Report a Bug" +msgstr "" + +#: ../share/extensions/inkscape_help_svgspec.inx.h:1 +msgid "SVG 1.1 Specification" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:1 +msgid "Attribute to Interpolate" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:3 +msgid "End Value" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:5 +msgid "Float Number" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:7 +msgid "" +"If you select \"Other\", you must know the SVG attributes to identify here " +"this \"other\":" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:8 +msgid "Integer Number" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:9 +msgid "Interpolate Attribute in a group" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:11 +msgid "No Unit" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:13 +msgid "Other" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:14 +msgid "Other Attribute" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:15 +msgid "Other Attribute type" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:17 +msgid "Start Value" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:18 +#: ../share/extensions/polyhedron_3d.inx.h:43 +msgid "Style" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:19 +msgid "Tag" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:20 +msgid "" +"This effect applies a value for any interpolatable attribute for all " +"elements inside the selected group or for all elements in a multiple " +"selection" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:21 +msgid "Transformation" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:22 +msgid "Translate X" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:23 +msgid "Translate Y" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:25 +msgid "Where to apply?" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:27 +#: ../share/extensions/web-set-att.inx.h:28 +#: ../share/extensions/web-transmit-att.inx.h:26 +msgid "••••••••••••••••••••••••••••••••••••••••••••••••" +msgstr "" + +#: ../share/extensions/interp.inx.h:1 +msgid "Duplicate endpaths" +msgstr "" + +#: ../share/extensions/interp.inx.h:2 +msgid "Exponent" +msgstr "" + +#: ../share/extensions/interp.inx.h:4 +msgid "Interpolate" +msgstr "" + +#: ../share/extensions/interp.inx.h:5 +msgid "Interpolate style" +msgstr "" + +#: ../share/extensions/interp.inx.h:6 +msgid "Interpolation method" +msgstr "" + +#: ../share/extensions/interp.inx.h:7 +msgid "Interpolation steps" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:1 +msgid "" +"\n" +"The path is generated by applying the \n" +"substitutions of Rules to the Axiom, \n" +"Order times. The following commands are \n" +"recognized in Axiom and Rules:\n" +"\n" +"Any of A,B,C,D,E,F: draw forward \n" +"\n" +"Any of G,H,I,J,K,L: move forward \n" +"\n" +"+: turn left\n" +"\n" +"-: turn right\n" +"\n" +"|: turn 180 degrees\n" +"\n" +"[: remember point\n" +"\n" +"]: return to remembered point\n" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:21 +msgid "Axiom" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:22 +msgid "Axiom and rules" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:24 +msgid "L-system" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:25 +msgid "Left angle" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:28 +#, no-c-format +msgid "Randomize angle (%)" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:30 +#, no-c-format +msgid "Randomize step (%)" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:32 +msgid "Right angle" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:33 +msgid "Rules" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:34 +msgid "Step length (px)" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:1 +msgid "Lorem ipsum" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:2 +msgid "Number of paragraphs" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:3 +msgid "Paragraph length fluctuation (sentences)" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:4 +msgid "Sentences per paragraph" +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." +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:1 +msgid "Color Markers to Match Stroke" +msgstr "" + +#: ../share/extensions/measure.inx.h:1 +msgid "Font size [px]" +msgstr "" + +#. mm +#: ../share/extensions/measure.inx.h:4 +msgid "Length Unit: " +msgstr "" + +#: ../share/extensions/measure.inx.h:5 +msgid "Measure" +msgstr "" + +#: ../share/extensions/measure.inx.h:6 +msgid "Measure Path" +msgstr "" + +#: ../share/extensions/measure.inx.h:7 +msgid "Offset [px]" +msgstr "" + +#: ../share/extensions/measure.inx.h:8 +msgid "Precision" +msgstr "" + +#: ../share/extensions/measure.inx.h:9 +msgid "Scale Factor (Drawing:Real Length) = 1:" +msgstr "" + +#: ../share/extensions/measure.inx.h:10 +msgid "" +"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:1 ../share/extensions/restack.inx.h:1 +msgid "Angle" +msgstr "" + +#: ../share/extensions/motion.inx.h:3 +msgid "Magnitude" +msgstr "" + +#: ../share/extensions/motion.inx.h:4 +msgid "Motion" +msgstr "" + +#: ../share/extensions/outline2svg.inx.h:1 +msgid "ASCII Text with outline markup" +msgstr "" + +#: ../share/extensions/outline2svg.inx.h:2 +msgid "Text Outline File (*.outline)" +msgstr "" + +#: ../share/extensions/outline2svg.inx.h:3 +msgid "Text Outline Input" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:2 +msgid "End t-value" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:4 +msgid "Isotropic scaling (uses smallest: width/xrange or height/yrange)" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:5 +msgid "Multiply t-range by 2*pi" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:6 +msgid "Parametric Curves" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:7 +msgid "Range and Sampling" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:10 +msgid "Samples" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:11 +msgid "" +"Select a rectangle before calling the extension,\n" +"it will determine X and Y scales.\n" +"\n" +"First derivatives are always determined numerically." +msgstr "" + +#: ../share/extensions/param_curves.inx.h:24 +msgid "Start t-value" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:26 +msgid "x-Function" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:27 +msgid "x-value of rectangle's left" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:28 +msgid "x-value of rectangle's right" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:29 +msgid "y-Function" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:30 +msgid "y-value of rectangle's bottom" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:31 +msgid "y-value of rectangle's top" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:1 +msgid "Copies of the pattern:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:2 +msgid "Deformation type:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:3 +#: ../share/extensions/pathscatter.inx.h:3 +msgid "Duplicate the pattern before deformation" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:6 +msgid "Pattern along Path" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:10 +msgid "Ribbon" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:13 +msgid "Snake" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:14 +#: ../share/extensions/pathscatter.inx.h:11 +msgid "Space between copies:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:16 +msgid "" +"This effect bends a pattern object along arbitrary \"skeleton\" paths. The " +"pattern is the topmost object in the selection. (groups of paths/shapes/" +"clones... allowed)" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:1 +msgid "Cloned" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:2 +msgid "Copied" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:4 +msgid "Follow path orientation" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:6 +msgid "Moved" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:8 +msgid "Original pattern will be:" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:12 +msgid "Stretch spaces to fit skeleton length" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:14 +msgid "" +"This effect scatters a pattern along arbitrary \"skeleton\" paths. The " +"pattern must be the topmost object in the selection. Groups of paths, " +"shapes, clones are allowed." +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:1 +msgid "Bleed (in)" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:2 +msgid "Bond Weight #" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:3 +msgid "Book Height (inches)" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:4 +msgid "Book Properties" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:5 +msgid "Book Width (inches)" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:6 +msgid "Caliper (inches)" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:7 +msgid "Cover" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:8 +msgid "Cover Thickness Measurement" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:9 +msgid "Interior Pages" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:10 +msgid "Note: Bond Weight # calculations are a best-guess estimate." +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:11 +msgid "Number of Pages" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:12 +msgid "Pages Per Inch (PPI)" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:13 +msgid "Paper Thickness Measurement" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:14 +msgid "Perfect-Bound Cover Template" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:16 +msgid "Remove existing guides" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:18 +msgid "Specify Width" +msgstr "" + +#: ../share/extensions/perspective.inx.h:2 +msgid "Perspective" +msgstr "" + +#: ../share/extensions/plt_input.inx.h:1 +msgid "AutoCAD Plot Input" +msgstr "" + +#: ../share/extensions/plt_input.inx.h:2 +#: ../share/extensions/plt_output.inx.h:2 +msgid "HP Graphics Language Plot file [AutoCAD] (*.plt)" +msgstr "" + +#: ../share/extensions/plt_input.inx.h:3 +msgid "Open HPGL plotter files" +msgstr "" + +#: ../share/extensions/plt_output.inx.h:1 +msgid "AutoCAD Plot Output" +msgstr "" + +#: ../share/extensions/plt_output.inx.h:3 +msgid "Save a file for plotters" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:1 +msgid "3D Polyhedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:2 +msgid "Clockwise wound object" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:3 +msgid "Cube" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:4 +msgid "Cuboctahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:5 +msgid "Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:6 +msgid "Draw back-facing polygons" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:7 +msgid "Edge-Specified" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:8 +msgid "Edges" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:9 +msgid "Face-Specified" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:10 +msgid "Faces" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:11 +msgid "Filename:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:12 +msgid "Fill color, Blue" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:13 +msgid "Fill color, Green" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:14 +msgid "Fill color, Red" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:16 +#, no-c-format +msgid "Fill opacity, %" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:17 +msgid "Great Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:18 +msgid "Great Stellated Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:19 +msgid "Icosahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:20 +msgid "Light X" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:21 +msgid "Light Y" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:22 +msgid "Light Z" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:23 +msgid "Load from file" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:24 +msgid "Maximum" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:25 +msgid "Mean" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:26 +msgid "Minimum" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:27 +msgid "Model file" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:28 +msgid "Object Type" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:29 +msgid "Object:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:30 +msgid "Octahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:32 +msgid "Rotate around:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:33 +msgid "Rotation, degrees" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:34 +msgid "Scaling factor" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:35 +msgid "Shading" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:37 +msgid "Small Triambic Icosahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:38 +msgid "Snub Cube" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:39 +msgid "Snub Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:41 +#, no-c-format +msgid "Stroke opacity, %" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:42 +msgid "Stroke width, px" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:44 +msgid "Tetrahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:45 +msgid "Then rotate around:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:46 +msgid "Truncated Cube" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:47 +msgid "Truncated Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:48 +msgid "Truncated Icosahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:49 +msgid "Truncated Octahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:50 +msgid "Truncated Tetrahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:51 +msgid "Vertices" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:52 +msgid "View" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:53 +msgid "X-Axis" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:54 +msgid "Y-Axis" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:55 +msgid "Z-Axis" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:56 +msgid "Z-sort faces by:" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:1 +msgid "Bleed Margin" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:2 +msgid "Bleed Marks" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:3 +msgid "Bottom:" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:4 +msgid "Canvas" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:5 +msgid "Color Bars" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:6 +msgid "Crop Marks" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:7 +msgid "Left:" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:8 +msgid "Marks" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:10 +msgid "Page Information" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:11 +msgid "Positioning" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:12 +msgid "Printing Marks" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:13 +msgid "Registration Marks" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:15 +msgid "Right:" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:16 +msgid "Set crop marks to" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:17 +msgid "Star Target" +msgstr "" + +#: ../share/extensions/printing-marks.inx.h:18 +msgid "Top:" +msgstr "" + +#: ../share/extensions/ps_input.inx.h:3 +msgid "PostScript Input" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:1 +msgid "Jitter nodes" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:2 +msgid "Maximum displacement in X, px" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:3 +msgid "Maximum displacement in Y, px" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:5 +msgid "Shift node handles" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:6 +msgid "Shift nodes" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:7 +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 "" + +#: ../share/extensions/render_alphabetsoup.inx.h:1 +msgid "Alphabet Soup" +msgstr "" + +#: ../share/extensions/render_alphabetsoup.inx.h:2 +msgid "Random Seed" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:1 +msgid "Bar Height:" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:2 +msgid "Barcode" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:3 +msgid "Barcode Data:" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:4 +msgid "Barcode Type:" +msgstr "" + +#: ../share/extensions/restack.inx.h:2 +msgid "Arbitrary Angle:" +msgstr "" + +#: ../share/extensions/restack.inx.h:3 +msgid "Arrange" +msgstr "" + +#: ../share/extensions/restack.inx.h:4 +msgid "Bottom" +msgstr "" + +#: ../share/extensions/restack.inx.h:5 +msgid "Bottom to Top (90)" +msgstr "" + +#: ../share/extensions/restack.inx.h:6 +msgid "Horizontal Point:" +msgstr "" + +#: ../share/extensions/restack.inx.h:8 +msgid "Left to Right (0)" +msgstr "" + +#: ../share/extensions/restack.inx.h:9 +msgid "Middle" +msgstr "" + +#: ../share/extensions/restack.inx.h:10 +msgid "Radial Inward" +msgstr "" + +#: ../share/extensions/restack.inx.h:11 +msgid "Radial Outward" +msgstr "" + +#: ../share/extensions/restack.inx.h:12 +msgid "Restack" +msgstr "" + +#: ../share/extensions/restack.inx.h:13 +msgid "Restack Direction:" +msgstr "" + +#: ../share/extensions/restack.inx.h:15 +msgid "Right to Left (180)" +msgstr "" + +#: ../share/extensions/restack.inx.h:16 +msgid "Top" +msgstr "" + +#: ../share/extensions/restack.inx.h:17 +msgid "Top to Bottom (270)" +msgstr "" + +#: ../share/extensions/restack.inx.h:18 +msgid "Vertical Point:" +msgstr "" + +#: ../share/extensions/rtree.inx.h:1 +msgid "Initial size" +msgstr "" + +#: ../share/extensions/rtree.inx.h:2 +msgid "Minimum size" +msgstr "" + +#: ../share/extensions/rtree.inx.h:3 +msgid "Random Tree" +msgstr "" + +#: ../share/extensions/rubberstretch.inx.h:2 +#, no-c-format +msgid "Curve (%):" +msgstr "" + +#: ../share/extensions/rubberstretch.inx.h:4 +msgid "Rubber Stretch" +msgstr "" + +#: ../share/extensions/rubberstretch.inx.h:6 +#, no-c-format +msgid "Strength (%):" +msgstr "" + +#: ../share/extensions/scour.inx.h:1 +msgid "Embed rasters" +msgstr "" + +#: ../share/extensions/scour.inx.h:2 +msgid "Enable id stripping" +msgstr "" + +#: ../share/extensions/scour.inx.h:3 +msgid "Group collapsing" +msgstr "" + +#: ../share/extensions/scour.inx.h:5 +msgid "Indent" +msgstr "" + +#: ../share/extensions/scour.inx.h:6 +msgid "Keep editor data" +msgstr "" + +#: ../share/extensions/scour.inx.h:8 +msgid "Optimized SVG (*.svg)" +msgstr "" + +#: ../share/extensions/scour.inx.h:9 +msgid "Optimized SVG Output" +msgstr "" + +#: ../share/extensions/scour.inx.h:11 +msgid "Scalable Vector Graphics" +msgstr "" + +#: ../share/extensions/scour.inx.h:12 +msgid "Set precision" +msgstr "" + +#: ../share/extensions/scour.inx.h:13 +msgid "Simplify colors" +msgstr "" + +#: ../share/extensions/scour.inx.h:14 +msgid "Space" +msgstr "" + +#: ../share/extensions/scour.inx.h:15 +msgid "Strip xml prolog" +msgstr "" + +#: ../share/extensions/scour.inx.h:16 +msgid "Style to xml" +msgstr "" + +#: ../share/extensions/scour.inx.h:17 +msgid "Tab" +msgstr "" + +#: ../share/extensions/scour.inx.h:18 +msgid "" +"This extension optimize the SVG file according to the following options:\n" +" * Simplify colors: convert all colors to #RRGGBB format.\n" +" * Style to xml: convert styles into XML attributes.\n" +" * Group collapsing: collapse <g> elements.\n" +" * Enable id stripping: remove all un-referenced ID attributes.\n" +" * Embed rasters: embed rasters as base64-encoded data.\n" +" * Keep editor data: don't remove Inkscape, Sodipodi or Adobe Illustrator " +"elements and attributes.\n" +" * Strip xml prolog: don't output the xml prolog.\n" +" * Set precision: set number of significant digits (default: 5).\n" +" * Indent: indentation of the output: none, space, tab (default: space)." +msgstr "" + +#: ../share/extensions/sk1_input.inx.h:1 +msgid "Open files saved in sK1 vector graphics editor" +msgstr "" + +#: ../share/extensions/sk1_input.inx.h:2 +#: ../share/extensions/sk1_output.inx.h:2 +msgid "sK1 vector graphics files (.sk1)" +msgstr "" + +#: ../share/extensions/sk1_input.inx.h:3 +msgid "sK1 vector graphics files input" +msgstr "" + +#: ../share/extensions/sk1_output.inx.h:1 +msgid "File format for use in sK1 vector graphics editor" +msgstr "" + +#: ../share/extensions/sk1_output.inx.h:3 +msgid "sK1 vector graphics files output" +msgstr "" + +#: ../share/extensions/sk_input.inx.h:1 +msgid "A diagram created with the program Sketch" +msgstr "" + +#: ../share/extensions/sk_input.inx.h:2 +msgid "Sketch Diagram (*.sk)" +msgstr "" + +#: ../share/extensions/sk_input.inx.h:3 +msgid "Sketch Input" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:1 +msgid "Gear Placement" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:2 +msgid "Inside (Hypotrochoid)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:3 +msgid "Outside (Epitrochoid)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:4 +msgid "Quality (Default = 16)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:5 +msgid "R - Ring Radius (px)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:7 +msgid "Rotation (deg)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:8 +msgid "Spirograph" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:9 +msgid "d - Pen Radius (px)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:10 +msgid "r - Gear Radius (px)" +msgstr "" + +#: ../share/extensions/straightseg.inx.h:1 +msgid "Behavior" +msgstr "" + +#: ../share/extensions/straightseg.inx.h:4 +msgid "Straighten Segments" +msgstr "" + +#: ../share/extensions/summersnight.inx.h:1 +msgid "Envelope" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:1 ../share/extensions/xaml2svg.inx.h:1 +msgid "Microsoft XAML (*.xaml)" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:2 ../share/extensions/xaml2svg.inx.h:2 +msgid "Microsoft's GUI definition format" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:3 +msgid "XAML Output" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:1 +msgid "Compressed Inkscape SVG with media (*.zip)" +msgstr "" + +#: ../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 "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:3 +msgid "ZIP Output" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:1 +msgid "" +"(Select your system encoding. More information at http://docs.python.org/" +"library/codecs.html#standard-encodings)" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:2 +msgid "(The day names list must start from Sunday)" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:3 +msgid "Automatically set size and position" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:4 +msgid "Calendar" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:5 +msgid "Char Encoding" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:7 +msgid "Configuration" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:8 +msgid "Day color" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:9 +msgid "Day names" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:10 +msgid "Fill empty day boxes with next month's days" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:11 +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:13 +msgid "Localization" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:14 +msgid "Monday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:15 +msgid "Month (0 for all)" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:16 +msgid "Month Margin" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:17 +msgid "Month Width" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:18 +msgid "Month color" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:19 +msgid "Month names" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:20 +msgid "Months per line" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:21 +msgid "Next month day color" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:23 +msgid "Saturday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:24 +msgid "Saturday and Sunday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:25 +msgid "Sun Mon Tue Wed Thu Fri Sat" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:26 +msgid "Sunday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:27 +msgid "The options below have no influence when the above is checked." +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:28 +msgid "Week start day" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:29 +msgid "Weekday name color " +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:30 +msgid "Weekend" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:31 +msgid "Weekend day color" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:32 +msgid "Year (0 for current)" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:33 +msgid "Year color" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:34 +msgid "You may change the names for other languages:" +msgstr "" + +#: ../share/extensions/text_braille.inx.h:1 +msgid "Convert to Braille" +msgstr "" + +#: ../share/extensions/text_flipcase.inx.h:2 +msgid "fLIP cASE" +msgstr "" + +#: ../share/extensions/text_lowercase.inx.h:2 +msgid "lowercase" +msgstr "" + +#: ../share/extensions/text_randomcase.inx.h:2 +msgid "rANdOm CasE" +msgstr "" + +#: ../share/extensions/text_replace.inx.h:1 +msgid "By:" +msgstr "" + +#: ../share/extensions/text_replace.inx.h:2 +msgid "Replace text" +msgstr "" + +#: ../share/extensions/text_replace.inx.h:3 +msgid "Replace:" +msgstr "" + +#: ../share/extensions/text_sentencecase.inx.h:1 +msgid "Sentence case" +msgstr "" + +#: ../share/extensions/text_titlecase.inx.h:2 +msgid "Title Case" +msgstr "" + +#: ../share/extensions/text_uppercase.inx.h:2 +msgid "UPPERCASE" +msgstr "" + +#: ../share/extensions/triangle.inx.h:1 +msgid "Angle a / deg" +msgstr "" + +#: ../share/extensions/triangle.inx.h:2 +msgid "Angle b / deg" +msgstr "" + +#: ../share/extensions/triangle.inx.h:3 +msgid "Angle c / deg" +msgstr "" + +#: ../share/extensions/triangle.inx.h:4 +msgid "From Side a and Angles a, b" +msgstr "" + +#: ../share/extensions/triangle.inx.h:5 +msgid "From Side c and Angles a, b" +msgstr "" + +#: ../share/extensions/triangle.inx.h:6 +msgid "From Sides a, b and Angle a" +msgstr "" + +#: ../share/extensions/triangle.inx.h:7 +msgid "From Sides a, b and Angle c" +msgstr "" + +#: ../share/extensions/triangle.inx.h:8 +msgid "From Three Sides" +msgstr "" + +#: ../share/extensions/triangle.inx.h:11 +msgid "Side Length a / px" +msgstr "" + +#: ../share/extensions/triangle.inx.h:12 +msgid "Side Length b / px" +msgstr "" + +#: ../share/extensions/triangle.inx.h:13 +msgid "Side Length c / px" +msgstr "" + +#: ../share/extensions/triangle.inx.h:14 +msgid "Triangle" +msgstr "" + +#: ../share/extensions/txt2svg.inx.h:1 +msgid "ASCII Text" +msgstr "" + +#: ../share/extensions/txt2svg.inx.h:2 +msgid "Text File (*.txt)" +msgstr "" + +#: ../share/extensions/txt2svg.inx.h:3 +msgid "Text Input" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:1 +msgid "All selected ones set an attribute in the last one" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:2 +msgid "Attribute to set" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:3 +#: ../share/extensions/web-transmit-att.inx.h:3 +msgid "Compatibility with previews code to this event" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:4 +msgid "" +"If you want to set more than one attribute, you must separate this with a " +"space, and only with a space." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:6 +#: ../share/extensions/web-transmit-att.inx.h:6 +msgid "Run it after" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:7 +#: ../share/extensions/web-transmit-att.inx.h:7 +msgid "Run it before" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:8 +msgid "Set Attributes" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:9 +msgid "Source and destination of setting" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:10 +msgid "The first selected sets an attribute in all others" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:11 +msgid "The list of values must have the same size as the attributes list." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:12 +#: ../share/extensions/web-transmit-att.inx.h:10 +msgid "The next parameter is useful when you select more than two elements" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:13 +#: ../share/extensions/web-transmit-att.inx.h:11 +msgid "" +"This effect adds a feature visible (or usable) only on a SVG enabled web " +"browser (like Firefox)." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:14 +msgid "" +"This effect sets one or more attributes in the second selected element, when " +"a defined event occurs on the first selected element." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:15 +msgid "Value to set" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:16 +#: ../share/extensions/web-transmit-att.inx.h:14 +msgid "Web" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:17 +msgid "When should the set be done?" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:18 +#: ../share/extensions/web-transmit-att.inx.h:16 +msgid "on activate" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:19 +#: ../share/extensions/web-transmit-att.inx.h:17 +msgid "on blur" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:20 +#: ../share/extensions/web-transmit-att.inx.h:18 +msgid "on click" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:21 +#: ../share/extensions/web-transmit-att.inx.h:19 +msgid "on element loaded" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:22 +#: ../share/extensions/web-transmit-att.inx.h:20 +msgid "on focus" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:23 +#: ../share/extensions/web-transmit-att.inx.h:21 +msgid "on mouse down" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:24 +#: ../share/extensions/web-transmit-att.inx.h:22 +msgid "on mouse move" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:25 +#: ../share/extensions/web-transmit-att.inx.h:23 +msgid "on mouse out" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:26 +#: ../share/extensions/web-transmit-att.inx.h:24 +msgid "on mouse over" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:27 +#: ../share/extensions/web-transmit-att.inx.h:25 +msgid "on mouse up" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:1 +msgid "All selected ones transmit to the last one" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:2 +msgid "Attribute to transmit" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:4 +msgid "" +"If you want to transmit more than one attribute, you should separate this " +"with a space, and only with a space." +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:8 +msgid "Source and destination of transmitting" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:9 +msgid "The first selected transmits to all others" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:12 +msgid "" +"This effect transmits one or more attributes from the first selected element " +"to the second when an event occurs." +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:13 +msgid "Transmit Attributes" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:15 +msgid "When to transmit" +msgstr "" + +#: ../share/extensions/whirl.inx.h:1 +msgid "Amount of whirl" +msgstr "" + +#: ../share/extensions/whirl.inx.h:3 +msgid "Rotation is clockwise" +msgstr "" + +#: ../share/extensions/whirl.inx.h:4 +msgid "Whirl" +msgstr "" + +#: ../share/extensions/wmf_input.inx.h:1 +#: ../share/extensions/wmf_output.inx.h:1 +msgid "A popular graphics file format for clipart" +msgstr "" + +#: ../share/extensions/wmf_input.inx.h:2 +#: ../share/extensions/wmf_output.inx.h:2 +msgid "Windows Metafile (*.wmf)" +msgstr "" + +#: ../share/extensions/wmf_input.inx.h:3 +#: ../share/extensions/wmf_output.inx.h:3 +msgid "Windows Metafile Input" +msgstr "" + +#: ../share/extensions/xaml2svg.inx.h:3 +msgid "XAML Input" +msgstr "" diff --git a/src/libavoid/.dirstamp b/src/libavoid/.dirstamp new file mode 100644 index 000000000..e69de29bb diff --git a/src/libavoid/assertions.h b/src/libavoid/assertions.h new file mode 100644 index 000000000..0725c4482 --- /dev/null +++ b/src/libavoid/assertions.h @@ -0,0 +1,49 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libavoid - Fast, Incremental, Object-avoiding Line Router + * + * Copyright (C) 2009 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * See the file LICENSE.LGPL distributed with the library. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * library. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Author(s): Michael Wybrow +*/ + +#ifndef AVOID_ASSERTIONS_H +#define AVOID_ASSERTIONS_H + +#ifdef NDEBUG + + #define COLA_ASSERT(expr) static_cast(0) + +#else // Not NDEBUG + + #if defined(USE_ASSERT_EXCEPTIONS) + + #include "libvpsc/assertions.h" + + #else + + #include + #define COLA_ASSERT(expr) assert(expr) + + #endif + +#endif + + +#endif // AVOID_ASSERTIONS_H + diff --git a/src/libavoid/geomtypes.cpp b/src/libavoid/geomtypes.cpp new file mode 100644 index 000000000..10bb95a7a --- /dev/null +++ b/src/libavoid/geomtypes.cpp @@ -0,0 +1,548 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libavoid - Fast, Incremental, Object-avoiding Line Router + * + * Copyright (C) 2004-2009 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * See the file LICENSE.LGPL distributed with the library. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * library. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Author(s): Michael Wybrow +*/ + + +#include +#include +#include + +#include "libavoid/geomtypes.h" +#include "libavoid/shape.h" +#include "libavoid/router.h" +#include "libavoid/assertions.h" + + +namespace Avoid +{ + + +Point::Point() : + id(0), + vn(kUnassignedVertexNumber) +{ +} + + +Point::Point(const double xv, const double yv) : + x(xv), + y(yv), + id(0), + vn(kUnassignedVertexNumber) +{ +} + + +bool Point::operator==(const Point& rhs) const +{ + if ((x == rhs.x) && (y == rhs.y)) + { + return true; + } + return false; +} + + +bool Point::operator!=(const Point& rhs) const +{ + if ((x != rhs.x) || (y != rhs.y)) + { + return true; + } + return false; +} + + +// Just defined to allow std::set. Not particularly meaningful! +bool Point::operator<(const Point& rhs) const +{ + if (x == rhs.x) + { + return (y < rhs.y); + } + return (x < rhs.x); +} + + +double& Point::operator[](const unsigned int dimension) +{ + COLA_ASSERT((dimension == 0) || (dimension == 1)); + return ((dimension == 0) ? x : y); +} + + +const double& Point::operator[](const unsigned int dimension) const +{ + COLA_ASSERT((dimension == 0) || (dimension == 1)); + return ((dimension == 0) ? x : y); +} + + +ReferencingPolygon::ReferencingPolygon(const Polygon& poly, const Router *router) + : PolygonInterface(), + _id(poly._id), + ps(poly.size()) +{ + COLA_ASSERT(router != NULL); + for (size_t i = 0; i < poly.size(); ++i) + { + const Polygon *polyPtr = NULL; + for (ShapeRefList::const_iterator sh = router->shapeRefs.begin(); + sh != router->shapeRefs.end(); ++sh) + { + if ((*sh)->id() == poly.ps[i].id) + { + const Polygon& poly = (*sh)->polygon(); + polyPtr = &poly; + break; + } + } + COLA_ASSERT(polyPtr != NULL); + ps[i] = std::make_pair(polyPtr, poly.ps[i].vn); + } +} + + +ReferencingPolygon::ReferencingPolygon() + : PolygonInterface() +{ + clear(); +} + + +void ReferencingPolygon::clear(void) +{ + ps.clear(); +} + + +bool ReferencingPolygon::empty(void) const +{ + return ps.empty(); +} + + +size_t ReferencingPolygon::size(void) const +{ + return ps.size(); +} + + +int ReferencingPolygon::id(void) const +{ + return _id; +} + + +const Point& ReferencingPolygon::at(size_t index) const +{ + COLA_ASSERT(index < size()); + const Polygon& poly = *(ps[index].first); + unsigned short poly_index = ps[index].second; + COLA_ASSERT(poly_index < poly.size()); + + return poly.ps[poly_index]; +} + + +void PolygonInterface::getBoundingRect(double *minX, double *minY, + double *maxX, double *maxY) const +{ + double progressiveMinX = DBL_MAX; + double progressiveMinY = DBL_MAX; + double progressiveMaxX = -DBL_MAX; + double progressiveMaxY = -DBL_MAX; + + for (size_t i = 0; i < size(); ++i) + { + progressiveMinX = std::min(progressiveMinX, at(i).x); + progressiveMinY = std::min(progressiveMinY, at(i).y); + progressiveMaxX = std::max(progressiveMaxX, at(i).x); + progressiveMaxY = std::max(progressiveMaxY, at(i).y); + } + + if (minX) + { + *minX = progressiveMinX; + } + if (maxX) + { + *maxX = progressiveMaxX; + } + if (minY) + { + *minY = progressiveMinY; + } + if (maxY) + { + *maxY = progressiveMaxY; + } +} + + +Polygon::Polygon() + : PolygonInterface() +{ + clear(); +} + + +Polygon::Polygon(const int pn) + : PolygonInterface(), + ps(pn) +{ +} + + +Polygon::Polygon(const PolygonInterface& poly) + : PolygonInterface(), + _id(poly.id()), + ps(poly.size()) +{ + for (size_t i = 0; i < poly.size(); ++i) + { + ps[i] = poly.at(i); + } +} + + +void Polygon::clear(void) +{ + ps.clear(); + ts.clear(); +} + + +bool Polygon::empty(void) const +{ + return ps.empty(); +} + + +size_t Polygon::size(void) const +{ + return ps.size(); +} + + +int Polygon::id(void) const +{ + return _id; +} + + +const Point& Polygon::at(size_t index) const +{ + COLA_ASSERT(index < size()); + + return ps[index]; +} + + +static const unsigned int SHORTEN_NONE = 0; +static const unsigned int SHORTEN_START = 1; +static const unsigned int SHORTEN_END = 2; +static const unsigned int SHORTEN_BOTH = SHORTEN_START | SHORTEN_END; + +// shorten_line(): +// Given the two endpoints of a line segment, this function adjusts the +// endpoints of the line to shorten the line by shorten_length at either +// or both ends. +// +static void shorten_line(double& x1, double& y1, double& x2, double& y2, + const unsigned int mode, const double shorten_length) +{ + if (mode == SHORTEN_NONE) + { + return; + } + + double rise = y1 - y2; + double run = x1 - x2; + double disty = fabs(rise); + double distx = fabs(run); + + // Handle case where shorten length is greater than the length of the + // line segment. + if ((mode == SHORTEN_BOTH) && + (((distx > disty) && ((shorten_length * 2) > distx)) || + ((disty >= distx) && ((shorten_length * 2) > disty)))) + { + x1 = x2 = x1 - (run / 2); + y1 = y2 = y1 - (rise / 2); + return; + } + else if ((mode == SHORTEN_START) && + (((distx > disty) && (shorten_length > distx)) || + ((disty >= distx) && (shorten_length > disty)))) + { + x1 = x2; + y1 = y2; + return; + } + else if ((mode == SHORTEN_END) && + (((distx > disty) && (shorten_length > distx)) || + ((disty >= distx) && (shorten_length > disty)))) + { + x2 = x1; + y2 = y1; + return; + } + + // Handle orthogonal line segments. + if (x1 == x2) + { + // Vertical + int sign = (y1 < y2) ? 1: -1; + + if (mode & SHORTEN_START) + { + y1 += (sign * shorten_length); + } + if (mode & SHORTEN_END) + { + y2 -= (sign * shorten_length); + } + return; + } + else if (y1 == y2) + { + // Horizontal + int sign = (x1 < x2) ? 1: -1; + + if (mode & SHORTEN_START) + { + x1 += (sign * shorten_length); + } + if (mode & SHORTEN_END) + { + x2 -= (sign * shorten_length); + } + return; + } + + int xpos = (x1 < x2) ? -1 : 1; + int ypos = (y1 < y2) ? -1 : 1; + + double tangent = rise / run; + + if (mode & SHORTEN_END) + { + if (disty > distx) + { + y2 += shorten_length * ypos; + x2 += shorten_length * ypos * (1 / tangent); + } + else if (disty < distx) + { + y2 += shorten_length * xpos * tangent; + x2 += shorten_length * xpos; + } + } + + if (mode & SHORTEN_START) + { + if (disty > distx) + { + y1 -= shorten_length * ypos; + x1 -= shorten_length * ypos * (1 / tangent); + } + else if (disty < distx) + { + y1 -= shorten_length * xpos * tangent; + x1 -= shorten_length * xpos; + } + } +} + + +void Polygon::translate(const double xDist, const double yDist) +{ + for (size_t i = 0; i < size(); ++i) + { + ps[i].x += xDist; + ps[i].y += yDist; + } +} + + +Polygon Polygon::simplify(void) const +{ + Polygon simplified = *this; + std::vector::iterator it = simplified.ps.begin(); + if (it != simplified.ps.end()) ++it; + + // Combine collinear line segments into single segments: + for (size_t j = 2; j < simplified.size(); ) + { + if (vecDir(simplified.ps[j - 2], simplified.ps[j - 1], + simplified.ps[j]) == 0) + { + // These three points make up two collinear segments, so just + // compine them into a single segment. + it = simplified.ps.erase(it); + } + else + { + ++j; + ++it; + } + } + + return simplified; +} + + +#define mid(a, b) ((a < b) ? a + ((b - a) / 2) : b + ((a - b) / 2)) + + +// curvedPolyline(): +// Returns a curved approximation of this multi-segment PolyLine, with +// the corners replaced by smooth Bezier curves. curve_amount describes +// how large to make the curves. +// The ts value for each point in the returned Polygon describes the +// drawing operation: 'M' (move) marks the first point, a line segment +// is marked with an 'L' and three 'C's (along with the previous point) +// describe the control points of a Bezier curve. +// +Polygon Polygon::curvedPolyline(const double curve_amount, + const bool closed) const +{ + Polygon simplified = this->simplify(); + + Polygon curved; + size_t num_of_points = size(); + if (num_of_points <= 2) + { + // There is only a single segment, do nothing. + curved = *this; + curved.ts.push_back('M'); + curved.ts.push_back('L'); + return curved; + } + + // Build the curved polyline: + curved._id = _id; + double last_x = 0; + double last_y = 0; + if (closed) + { + double x1 = simplified.ps[0].x; + double y1 = simplified.ps[0].y; + double x2 = simplified.ps[1].x; + double y2 = simplified.ps[1].y; + shorten_line(x1, y1, x2, y2, SHORTEN_START, curve_amount); + curved.ps.push_back(Point(x1, y1)); + curved.ts.push_back('M'); + } + else + { + curved.ps.push_back(ps[0]); + curved.ts.push_back('M'); + } + + size_t simpSize = simplified.size(); + size_t finish = (closed) ? simpSize + 2 : simpSize; + for (size_t j = 1; j < finish; ++j) + { + double x1 = simplified.ps[(simpSize + j - 1) % simpSize].x; + double y1 = simplified.ps[(simpSize + j - 1) % simpSize].y; + double x2 = simplified.ps[j % simpSize].x; + double y2 = simplified.ps[j % simpSize].y; + + double old_x = x1; + double old_y = y1; + + unsigned int mode = SHORTEN_BOTH; + if (!closed) + { + if (j == 1) + { + mode = SHORTEN_END; + } + else if (j == (size() - 1)) + { + mode = SHORTEN_START; + } + } + shorten_line(x1, y1, x2, y2, mode, curve_amount); + + if (j > 1) + { + curved.ts.insert(curved.ts.end(), 3, 'C'); + curved.ps.push_back(Point(mid(last_x, old_x), mid(last_y, old_y))); + curved.ps.push_back(Point(mid(x1, old_x), mid(y1, old_y))); + curved.ps.push_back(Point(x1, y1)); + } + if (closed && (j == (finish - 1))) + { + // Close the path. + curved.ts.push_back('Z'); + curved.ps.push_back(Point(x1, y1)); + break; + } + curved.ts.push_back('L'); + curved.ps.push_back(Point(x2, y2)); + + last_x = x2; + last_y = y2; + } + + return curved; +} + + +Rectangle::Rectangle(const Point& topLeft, const Point& bottomRight) + : Polygon(4) +{ + double xMin = std::min(topLeft.x, bottomRight.x); + double xMax = std::max(topLeft.x, bottomRight.x); + double yMin = std::min(topLeft.y, bottomRight.y); + double yMax = std::max(topLeft.y, bottomRight.y); + + ps[0] = Point(xMax, yMin); + ps[1] = Point(xMax, yMax); + ps[2] = Point(xMin, yMax); + ps[3] = Point(xMin, yMin); +} + + +Rectangle::Rectangle(const Point& centre, const double width, + const double height) +{ + double halfWidth = width / 2.0; + double halfHeight = height / 2.0; + double xMin = centre.x - halfWidth; + double xMax = centre.x + halfWidth; + double yMin = centre.y - halfHeight; + double yMax = centre.y + halfHeight; + + ps[0] = Point(xMax, yMin); + ps[1] = Point(xMax, yMax); + ps[2] = Point(xMin, yMax); + ps[3] = Point(xMin, yMin); +} + + +} + diff --git a/src/libavoid/makefile b/src/libavoid/makefile new file mode 100644 index 000000000..e4f83a52d --- /dev/null +++ b/src/libavoid/makefile @@ -0,0 +1,17 @@ +# Convenience stub makefile to call the real Makefile. + + + +OBJEXT = o + +# Explicit so that it's the default rule. +all: + cd .. && $(MAKE) libavoid/all + +clean %.a %.$(OBJEXT): + cd .. && $(MAKE) libavoid/$@ + +.PHONY: all clean + +.SUFFIXES: +.SUFFIXES: .a .$(OBJEXT) diff --git a/src/libavoid/orthogonal.cpp b/src/libavoid/orthogonal.cpp new file mode 100644 index 000000000..747fd1f86 --- /dev/null +++ b/src/libavoid/orthogonal.cpp @@ -0,0 +1,2343 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libavoid - Fast, Incremental, Object-avoiding Line Router + * + * Copyright (C) 2009 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * See the file LICENSE.LGPL distributed with the library. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * library. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Author(s): Michael Wybrow +*/ + + +#include +#include +#include +#include +#include +#include + +#include "libavoid/router.h" +#include "libavoid/geomtypes.h" +#include "libavoid/shape.h" +#include "libavoid/orthogonal.h" +#include "libavoid/connector.h" +#include "libavoid/vpsc.h" +#include "libavoid/assertions.h" + +#ifdef LIBAVOID_SDL + #include +#endif + + +namespace Avoid { + + +static const double CHANNEL_MAX = 100000000; + +static const size_t XDIM = 0; +static const size_t YDIM = 1; + + +class ShiftSegment +{ + public: + // For shiftable segments. + ShiftSegment(ConnRef *conn, const size_t low, const size_t high, + bool isSBend, const size_t dim, double minLim, double maxLim) + : connRef(conn), + indexLow(low), + indexHigh(high), + sBend(isSBend), + fixed(false), + dimension(dim), + variable(NULL), + minSpaceLimit(minLim), + maxSpaceLimit(maxLim) + { + } + // For fixed segments. + ShiftSegment(ConnRef *conn, const size_t low, const size_t high, + const size_t dim) + : connRef(conn), + indexLow(low), + indexHigh(high), + sBend(false), + fixed(true), + dimension(dim), + variable(NULL) + { + // This has no space to shift. + minSpaceLimit = lowPoint()[dim]; + maxSpaceLimit = lowPoint()[dim]; + } + Point& lowPoint(void) + { + return connRef->displayRoute().ps[indexLow]; + } + Point& highPoint(void) + { + return connRef->displayRoute().ps[indexHigh]; + } + const Point& lowPoint(void) const + { + return connRef->displayRoute().ps[indexLow]; + } + const Point& highPoint(void) const + { + return connRef->displayRoute().ps[indexHigh]; + } + const int fixedOrder(bool& isFixed) const + { + if (fixed) + { + isFixed = true; + return 0; + } + if (lowC()) + { + return 1; + } + else if (highC()) + { + return -1; + } + return 0; + } + const int order(void) const + { + if (lowC()) + { + return -1; + } + else if (highC()) + { + return 1; + } + return 0; + } + bool operator<(const ShiftSegment& rhs) const + { + const Point& lowPt = lowPoint(); + const Point& rhsLowPt = rhs.lowPoint(); + + if (lowPt[dimension] != rhsLowPt[dimension]) + { + return lowPt[dimension] < rhsLowPt[dimension]; + } + return this < &rhs; + } + // This counts segments that are colliear and share an endpoint as + // overlapping. This allows them to be nudged apart where possible. + bool overlapsWith(const ShiftSegment& rhs, const size_t dim) const + { + size_t altDim = (dim + 1) % 2; + const Point& lowPt = lowPoint(); + const Point& highPt = highPoint(); + const Point& rhsLowPt = rhs.lowPoint(); + const Point& rhsHighPt = rhs.highPoint(); + if ( (lowPt[altDim] <= rhsHighPt[altDim]) && + (rhsLowPt[altDim] <= highPt[altDim])) + { + if ( (minSpaceLimit <= rhs.maxSpaceLimit) && + (rhs.minSpaceLimit <= maxSpaceLimit)) + { + return true; + } + } + return false; + } + + ConnRef *connRef; + size_t indexLow; + size_t indexHigh; + bool sBend; + bool fixed; + size_t dimension; + Variable *variable; + double minSpaceLimit; + double maxSpaceLimit; + private: + const bool lowC(void) const + { + // This is true if this is a cBend and its adjoining points + // are at lower positions. + if (!sBend && !fixed && (minSpaceLimit == lowPoint()[dimension])) + { + return true; + } + return false; + } + const bool highC(void) const + { + // This is true if this is a cBend and its adjoining points + // are at higher positions. + if (!sBend && !fixed && (maxSpaceLimit == lowPoint()[dimension])) + { + return true; + } + return false; + } +}; +typedef std::list ShiftSegmentList; + +bool cmpShiftSegment(const ShiftSegment& u, const ShiftSegment& v) +{ + return u < v; +} + + +struct Node; +struct CmpNodePos { bool operator()(const Node* u, const Node* v) const; }; + +typedef std::set NodeSet; +struct Node +{ + ShapeRef *v; + VertInf *c; + ShiftSegment *ss; + double pos; + double min[2], max[2]; + Node *firstAbove, *firstBelow; + NodeSet::iterator iter; + + Node(ShapeRef *v, const double p) + : v(v), + c(NULL), + ss(NULL), + pos(p), + firstAbove(NULL), + firstBelow(NULL) + { + //COLA_ASSERT(r->width()<1e40); + v->polygon().getBoundingRect(&min[0], &min[1], &max[0], &max[1]); + } + Node(VertInf *c, const double p) + : v(NULL), + c(c), + ss(NULL), + pos(p), + firstAbove(NULL), + firstBelow(NULL) + { + min[0] = max[0] = c->point.x; + min[1] = max[1] = c->point.y; + } + Node(ShiftSegment *ss, const double p) + : v(NULL), + c(NULL), + ss(ss), + pos(p), + firstAbove(NULL), + firstBelow(NULL) + { + // These values shouldn't ever be used, so they don't matter. + min[0] = max[0] = min[1] = max[1] = 0; + } + ~Node() + { + } + // Find the first Node above in the scanline that is a shape edge, + // and does not have an open or close event at this position (meaning + // it is just about to be removed). + double firstObstacleAbove(size_t dim) + { + Node *curr = firstAbove; + while (curr && (curr->ss || (curr->max[dim] > pos))) + { + curr = curr->firstAbove; + } + + if (curr) + { + return curr->max[dim]; + } + return -DBL_MAX; + } + // Find the first Node below in the scanline that is a shape edge, + // and does not have an open or close event at this position (meaning + // it is just about to be removed). + double firstObstacleBelow(size_t dim) + { + Node *curr = firstBelow; + while (curr && (curr->ss || (curr->min[dim] < pos))) + { + curr = curr->firstBelow; + } + + if (curr) + { + return curr->min[dim]; + } + return DBL_MAX; + } + // Mark all connector segments above in the scanline as being able + // to see to this shape edge. + void markShiftSegmentsAbove(size_t dim) + { + Node *curr = firstAbove; + while (curr && (curr->ss || (curr->pos > min[dim]))) + { + if (curr->ss && (curr->pos <= min[dim])) + { + curr->ss->maxSpaceLimit = + std::min(min[dim], curr->ss->maxSpaceLimit); + } + curr = curr->firstAbove; + } + } + // Mark all connector segments below in the scanline as being able + // to see to this shape edge. + void markShiftSegmentsBelow(size_t dim) + { + Node *curr = firstBelow; + while (curr && (curr->ss || (curr->pos < max[dim]))) + { + if (curr->ss && (curr->pos >= max[dim])) + { + curr->ss->minSpaceLimit = + std::max(max[dim], curr->ss->minSpaceLimit); + } + curr = curr->firstBelow; + } + } + bool findFirstPointAboveAndBelow(const size_t dim, double& firstAbovePos, + double& firstBelowPos, double& lastAbovePos, double& lastBelowPos) + { + bool clearVisibility = true; + firstAbovePos = -DBL_MAX; + firstBelowPos = DBL_MAX; + // We start looking left from the right side of the shape, + // and vice versa. + lastAbovePos = max[dim]; + lastBelowPos = min[dim]; + + // Find the first blocking edge above this point. Don't count the + // edges as we are travelling out of shapes we are inside, but then + // mark clearVisibility as false. + Node *curr = firstAbove; + while (curr && (curr->max[dim] > min[dim])) + { + lastAbovePos = std::min(curr->min[dim], lastAbovePos); + if ((curr->max[dim] >= min[dim]) && (curr->max[dim] <= max[dim])) + { + lastAbovePos = std::min(curr->max[dim], lastAbovePos); + } + lastBelowPos = std::max(curr->max[dim], lastBelowPos); + clearVisibility = false; + curr = curr->firstAbove; + } + if (curr) + { + firstAbovePos = curr->max[dim]; + } + while (curr) + { + // There might be a larger shape after this one in the ordering. + if (curr->max[dim] < min[dim]) + { + firstAbovePos = std::max(curr->max[dim], firstAbovePos); + } + curr = curr->firstAbove; + } + + // Find the first blocking edge below this point. Don't count the + // edges as we are travelling out of shapes we are inside, but then + // mark clearVisibility as false. + curr = firstBelow; + while (curr && (curr->min[dim] < max[dim])) + { + lastBelowPos = std::max(curr->max[dim], lastBelowPos); + if ((curr->min[dim] >= min[dim]) && (curr->min[dim] <= max[dim])) + { + lastBelowPos = std::max(curr->min[dim], lastBelowPos); + } + lastAbovePos = std::min(curr->min[dim], lastAbovePos); + clearVisibility = false; + curr = curr->firstBelow; + } + if (curr) + { + firstBelowPos = curr->min[dim]; + } + while (curr) + { + // There might be a larger shape after this one in the ordering. + if (curr->min[dim] > max[dim]) + { + firstBelowPos = std::min(curr->min[dim], firstBelowPos); + } + curr = curr->firstBelow; + } + + return clearVisibility; + } + double firstPointAbove(size_t dim) + { + Node *curr = firstAbove; + while (curr && (curr->max[dim] >= pos)) + { + curr = curr->firstAbove; + } + + if (curr) + { + return curr->max[dim]; + } + return -DBL_MAX; + } + double firstPointBelow(size_t dim) + { + Node *curr = firstBelow; + while (curr && (curr->min[dim] <= pos)) + { + curr = curr->firstBelow; + } + + if (curr) + { + return curr->min[dim]; + } + return DBL_MAX; + } + // This is a bit inefficient, but we won't need to do it once we have + // connection points. + bool isInsideShape(size_t dimension) + { + for (Node *curr = firstBelow; curr; curr = curr->firstBelow) + { + if ((curr->min[dimension] < pos) && (pos < curr->max[dimension])) + { + return true; + } + } + for (Node *curr = firstAbove; curr; curr = curr->firstAbove) + { + if ((curr->min[dimension] < pos) && (pos < curr->max[dimension])) + { + return true; + } + } + return false; + } +}; + + +bool CmpNodePos::operator() (const Node* u, const Node* v) const +{ + if (u->pos != v->pos) + { + return u->pos < v->pos; + } + + // Use the pointers to the base objects to differentiate them. + void *up = (u->v) ? (void *) u->v : + ((u->c) ? (void *) u->c : (void *) u->ss); + void *vp = (v->v) ? (void *) v->v : + ((v->c) ? (void *) v->c : (void *) v->ss); + return up < vp; +} + + +// Note: Open must come first. +typedef enum { + Open = 1, + SegOpen = 2, + ConnPoint = 3, + SegClose = 4, + Close = 5 +} EventType; + + +struct Event +{ + Event(EventType t, Node *v, double p) + : type(t), + v(v), + pos(p) + {}; + EventType type; + Node *v; + double pos; +}; + +Event **events; + + +// Used for quicksort. Must return <0, 0, or >0. +int compare_events(const void *a, const void *b) +{ + Event *ea = *(Event**) a; + Event *eb = *(Event**) b; + if (ea->pos != eb->pos) + { + return (ea->pos < eb->pos) ? -1 : 1; + } + if (ea->type != eb->type) + { + return ea->type - eb->type; + } + COLA_ASSERT(ea->v != eb->v); + return ea->v - eb->v; +} + + +// Returns a bitfield of the direction of visibility (in this dimension) +// made up of ConnDirDown (for visibility towards lower position values) +// and ConnDirUp (for visibility towards higher position values). +// +static ConnDirFlags getPosVertInfDirection(VertInf *v, size_t dim) +{ + if (dim == XDIM) // X-dimension + { + unsigned int dirs = v->visDirections & (ConnDirLeft | ConnDirRight); + if (dirs == (ConnDirLeft | ConnDirRight)) + { + return (ConnDirDown | ConnDirUp); + } + else if (dirs == ConnDirLeft) + { + return ConnDirDown; + } + else if (dirs == ConnDirRight) + { + return ConnDirUp; + } + } + else if (dim == YDIM) // Y-dimension + { + unsigned int dirs = v->visDirections & (ConnDirDown | ConnDirUp); + if (dirs == (ConnDirDown | ConnDirUp)) + { + return (ConnDirDown | ConnDirUp); + } + else if (dirs == ConnDirDown) + { + // For libavoid the Y-axis points downwards, so in terms of + // smaller or larger position values, Down is Up and vice versa. + return ConnDirUp; + } + else if (dirs == ConnDirUp) + { + // For libavoid the Y-axis points downwards, so in terms of + // smaller or larger position values, Down is Up and vice versa. + return ConnDirDown; + } + } + + // Can occur for ConnDirNone visibility. + return ConnDirNone; +} + + +struct PosVertInf +{ + PosVertInf(double p, VertInf *vI, ConnDirFlags d = ConnDirNone) + : pos(p), + vert(vI), + dir(d) + { + } + + bool operator<(const PosVertInf& rhs) const + { + if (pos != rhs.pos) + { + return pos < rhs.pos; + } + return vert < rhs.vert; + } + + double pos; + VertInf *vert; + + // A bitfield marking the direction of visibility (in this dimension) + // made up of ConnDirDown (for visibility towards lower position values) + // and ConnDirUp (for visibility towards higher position values). + // + ConnDirFlags dir; +}; + + +struct CmpVertInf +{ + bool operator()(const VertInf* u, const VertInf* v) const + { + // Comparator for VertSet, an ordered set of VertInf pointers. + // It is assumed vertical sets of points will all have the same + // x position and horizontal sets all share a y position, so this + // method can be used to sort both these sets. + COLA_ASSERT((u->point.x == v->point.x) || (u->point.y == v->point.y)); + if (u->point.x != v->point.x) + { + return u->point.x < v->point.x; + } + else if (u->point.y != v->point.y) + { + return u->point.y < v->point.y; + } + return u < v; + } +}; + + +typedef std::set VertSet; + +// A set of points to break the line segment, +// along with vertices for these points. +typedef std::set BreakpointSet; + +// Temporary structure used to store the possible horizontal visibility +// lines arising from the vertical sweep. +class LineSegment +{ +public: + LineSegment(const double& b, const double& f, const double& p, + bool ss = false, VertInf *bvi = NULL, VertInf *fvi = NULL) + : begin(b), + finish(f), + pos(p), + shapeSide(false) + { + COLA_ASSERT(begin < finish); + + if (bvi) + { + vertInfs.insert(bvi); + } + if (fvi) + { + vertInfs.insert(fvi); + } + } + LineSegment(const double& bf, const double& p, VertInf *bfvi = NULL) + : begin(bf), + finish(bf), + pos(p), + shapeSide(false) + { + if (bfvi) + { + vertInfs.insert(bfvi); + } + } + + // Order by begin, pos, finish. + bool operator<(const LineSegment& rhs) const + { + if (begin != rhs.begin) + { + return begin < rhs.begin; + } + if (pos != rhs.pos) + { + return pos < rhs.pos; + } + if (finish != rhs.finish) + { + return finish < rhs.finish; + } + COLA_ASSERT(shapeSide == rhs.shapeSide); + return false; + } + + bool overlaps(const LineSegment& rhs) const + { + if ((begin == rhs.begin) && (pos == rhs.pos) && + (finish == rhs.finish)) + { + // Lines are exactly equal. + return true; + } + + if (pos == rhs.pos) + { + if (((begin >= rhs.begin) && (begin <= rhs.finish)) || + ((rhs.begin >= begin) && (rhs.begin <= finish)) ) + { + // They are colinear and overlap by some amount. + return true; + } + } + return false; + } + + void mergeVertInfs(const LineSegment& segment) + { + begin = std::min(begin, segment.begin); + finish = std::max(finish, segment.finish); + vertInfs.insert(segment.vertInfs.begin(), segment.vertInfs.end()); + } + + VertInf *beginVertInf(void) const + { + if (vertInfs.empty()) + { + return NULL; + } + return *vertInfs.begin(); + } + VertInf *finishVertInf(void) const + { + if (vertInfs.empty()) + { + return NULL; + } + return *vertInfs.rbegin(); + } + + VertInf *commitPositionX(Router *router, double posX) + { + VertInf *found = NULL; + for (VertSet::iterator v = vertInfs.begin(); + v != vertInfs.end(); ++v) + { + if ((*v)->point.x == posX) + { + found = *v; + break; + } + } + if (!found) + { + found = new VertInf(router, dummyOrthogID, Point(posX, pos)); + vertInfs.insert(found); + } + return found; + } + // Set begin endpoint vertex if none has been assigned. + void commitBegin(Router *router, VertInf *vert = NULL) + { + if (vert) + { + vertInfs.insert(vert); + } + + if (vertInfs.empty() || + ((*vertInfs.begin())->point.x != begin)) + { + vertInfs.insert(new + VertInf(router, dummyOrthogID, Point(begin, pos))); + } + } + + // Set begin endpoint vertex if none has been assigned. + void commitFinish(Router *router, VertInf *vert = NULL) + { + if (vert) + { + vertInfs.insert(vert); + } + + if (vertInfs.empty() || + ((*vertInfs.rbegin())->point.x != finish)) + { + vertInfs.insert(new + VertInf(router, dummyOrthogID, Point(finish, pos))); + } + } + + // Converts a section of the points list to a set of breakPoints. + // Returns the first of the intersection points occuring at finishPos. + VertSet::iterator addSegmentsUpTo(Router *router, double finishPos) + { + VertSet::iterator firstIntersectionPt = vertInfs.end(); + for (VertSet::iterator vert = vertInfs.begin(); + vert != vertInfs.end(); ++vert) + { + if ((*vert)->point.x > finishPos) + { + // We're done. + break; + } + + breakPoints.insert(PosVertInf((*vert)->point.x, (*vert), + getPosVertInfDirection(*vert, XDIM))); + + if ((firstIntersectionPt == vertInfs.end()) && + ((*vert)->point.x == finishPos)) + { + firstIntersectionPt = vert; + } + } + // Returns the first of the intersection points at finishPos. + return firstIntersectionPt; + } + + // Add visibility edge(s) for this segment. There may be multiple if + // one of the endpoints is shared by multiple connector endpoints. + void addEdgeHorizontal(Router *router) + { + commitBegin(router); + commitFinish(router); + + addSegmentsUpTo(router, finish); + } + + // Add visibility edge(s) for this segment up until an intersection. + // Then, move the segment beginning to the intersection point, so we + // later only consider the remainder of the segment. + // There may be multiple segments added to the graph if the beginning + // endpoint of the segment is shared by multiple connector endpoints. + VertSet addEdgeHorizontalTillIntersection(Router *router, + LineSegment& vertLine) + { + VertSet intersectionSet; + + commitBegin(router); + + // Does a vertex already exist for this point. + commitPositionX(router, vertLine.pos); + + // Generate segments and set end iterator to the first point + // at the intersection position. + VertSet::iterator restBegin = addSegmentsUpTo(router, vertLine.pos); + + // Add the intersections points to intersectionSet. + VertSet::iterator restEnd = restBegin; + while ((restEnd != vertInfs.end()) && + (*restEnd)->point.x == vertLine.pos) + { + ++restEnd; + } + intersectionSet.insert(restBegin, restEnd); + + // Adjust segment to remove processed portion. + begin = vertLine.pos; + vertInfs.erase(vertInfs.begin(), restBegin); + + return intersectionSet; + } + + // Insert vertical breakpoints. + void insertBreakpointsBegin(Router *router, LineSegment& vertLine) + { + VertInf *vert = NULL; + if (pos == vertLine.begin && vertLine.beginVertInf()) + { + vert = vertLine.beginVertInf(); + } + else if (pos == vertLine.finish && vertLine.finishVertInf()) + { + vert = vertLine.finishVertInf(); + } + commitBegin(router, vert); + + for (VertSet::iterator v = vertInfs.begin(); + v != vertInfs.end(); ++v) + { + if ((*v)->point.x == begin) + { + vertLine.breakPoints.insert(PosVertInf(pos, *v, + getPosVertInfDirection(*v, YDIM))); + } + } + } + + // Insert vertical breakpoints. + void insertBreakpointsFinish(Router *router, LineSegment& vertLine) + { + VertInf *vert = NULL; + if (pos == vertLine.begin && vertLine.beginVertInf()) + { + vert = vertLine.beginVertInf(); + } + else if (pos == vertLine.finish && vertLine.finishVertInf()) + { + vert = vertLine.finishVertInf(); + } + commitFinish(router, vert); + + for (VertSet::iterator v = vertInfs.begin(); + v != vertInfs.end(); ++v) + { + if ((*v)->point.x == finish) + { + vertLine.breakPoints.insert(PosVertInf(pos, *v, + getPosVertInfDirection(*v, YDIM))); + } + } + } + void generateVisibilityEdgesFromBreakpointSet(Router *router, size_t dim) + { + if ((breakPoints.begin())->pos != begin) + { + if (!beginVertInf()) + { + Point point(pos, pos); + point[dim] = begin; + // Add begin point if it didn't intersect another line. + VertInf *vert = new VertInf(router, dummyOrthogID, point); + breakPoints.insert(PosVertInf(begin, vert)); + } + } + if ((breakPoints.rbegin())->pos != finish) + { + if (!finishVertInf()) + { + Point point(pos, pos); + point[dim] = finish; + // Add finish point if it didn't intersect another line. + VertInf *vert = new VertInf(router, dummyOrthogID, point); + breakPoints.insert(PosVertInf(finish, vert)); + } + } + + const bool orthogonal = true; + BreakpointSet::iterator vert, last; + for (vert = last = breakPoints.begin(); vert != breakPoints.end();) + { + BreakpointSet::iterator firstPrev = last; + while (last->vert->point[dim] != vert->vert->point[dim]) + { + COLA_ASSERT(vert != last); + // Assert points are not at the same position. + COLA_ASSERT(vert->vert->point != last->vert->point); + + if ( !(vert->vert->id.isShape || last->vert->id.isShape)) + { + // Here we have a pair of two endpoints that are both + // connector endpoints and both are inside a shape. + + // Give vert visibility back to the first non-connector + // endpoint vertex (i.e., the side of the shape). + BreakpointSet::iterator side = last; + while (!side->vert->id.isShape) + { + if (side == breakPoints.begin()) + { + break; + } + --side; + } + bool canSeeDown = (vert->dir & ConnDirDown); + if (canSeeDown && side->vert->id.isShape) + { + EdgeInf *edge = new + EdgeInf(side->vert, vert->vert, orthogonal); + edge->setDist(vert->vert->point[dim] - + side->vert->point[dim]); + } + + // Give last visibility back to the first non-connector + // endpoint vertex (i.e., the side of the shape). + side = vert; + while ((side != breakPoints.end()) && + !side->vert->id.isShape) + { + ++side; + } + bool canSeeUp = (last->dir & ConnDirUp); + if (canSeeUp && (side != breakPoints.end())) + { + EdgeInf *edge = new + EdgeInf(last->vert, side->vert, orthogonal); + edge->setDist(side->vert->point[dim] - + last->vert->point[dim]); + } + } + + // The normal case. + // + // Note: It's okay to give two connector endpoints visbility + // here since we only consider the partner endpoint as a + // candidate while searching if it is the other endpoint of + // the connector in question. + // + bool generateEdge = true; + if (!last->vert->id.isShape && !(last->dir & ConnDirUp)) + { + generateEdge = false; + } + else if (!vert->vert->id.isShape && !(vert->dir & ConnDirDown)) + { + generateEdge = false; + } + if (generateEdge) + { + EdgeInf *edge = + new EdgeInf(last->vert, vert->vert, orthogonal); + edge->setDist(vert->vert->point[dim] - + last->vert->point[dim]); + } + + ++last; + } + + ++vert; + + if ((vert != breakPoints.end()) && + (last->vert->point[dim] == vert->vert->point[dim])) + { + // Still looking at same pair, just reset prev number pointer. + last = firstPrev; + } + else + { + // vert has moved to the beginning of a number number group. + // Last is now in the right place, so do nothing. + } + } + } + + double begin; + double finish; + double pos; + bool shapeSide; + + VertSet vertInfs; + BreakpointSet breakPoints; +private: + // MSVC wants to generate the assignment operator and the default + // constructor, but fails. Therefore we declare them private and + // don't implement them. + LineSegment & operator=(LineSegment const &); + LineSegment(); +}; + +typedef std::list SegmentList; + +class SegmentListWrapper +{ + public: + LineSegment *insert(LineSegment segment) + { + SegmentList::iterator found = _list.end(); + for (SegmentList::iterator curr = _list.begin(); + curr != _list.end(); ++curr) + { + if (curr->overlaps(segment)) + { + if (found != _list.end()) + { + // This is not the first segment that overlaps, + // so we need to merge and then delete an existing + // segment. + curr->mergeVertInfs(*found); + _list.erase(found); + found = curr; + } + else + { + // This is the first overlapping segment, so just + // merge the new segment with this one. + curr->mergeVertInfs(segment); + found = curr; + } + } + } + + if (found == _list.end()) + { + // Add this line. + _list.push_back(segment); + return &(_list.back()); + } + + return &(*found); + } + SegmentList& list(void) + { + return _list; + } + private: + SegmentList _list; +}; + + +// Given a router instance and a set of possible horizontal segments, and a +// possible vertical visibility segment, compute and add edges to the +// orthogonal visibility graph for all the visibility edges. +static void intersectSegments(Router *router, SegmentList& segments, + LineSegment& vertLine) +{ + COLA_ASSERT(vertLine.beginVertInf() == NULL); + COLA_ASSERT(vertLine.finishVertInf() == NULL); + for (SegmentList::iterator it = segments.begin(); it != segments.end(); ) + { + LineSegment& horiLine = *it; + + bool inVertSegRegion = ((vertLine.begin <= horiLine.pos) && + (vertLine.finish >= horiLine.pos)); + + if (horiLine.finish < vertLine.pos) + { + // Add horizontal visibility segment. + horiLine.addEdgeHorizontal(router); + + size_t dim = XDIM; // x-dimension + horiLine.generateVisibilityEdgesFromBreakpointSet(router, dim); + + // We've now swept past this horizontal segment, so delete. + it = segments.erase(it); + continue; + } + else if (horiLine.begin > vertLine.pos) + { + // We've yet to reach this segment in the sweep, so ignore. + ++it; + continue; + } + else if (horiLine.begin == vertLine.pos) + { + if (inVertSegRegion) + { + horiLine.insertBreakpointsBegin(router, vertLine); + } + } + else if (horiLine.finish == vertLine.pos) + { + if (inVertSegRegion) + { + // Add horizontal visibility segment. + horiLine.addEdgeHorizontal(router); + + horiLine.insertBreakpointsFinish(router, vertLine); + + size_t dim = XDIM; // x-dimension + horiLine.generateVisibilityEdgesFromBreakpointSet(router, dim); + + // And we've now finished with the segment, so delete. + it = segments.erase(it); + continue; + } + } + else + { + COLA_ASSERT(horiLine.begin < vertLine.pos); + COLA_ASSERT(horiLine.finish > vertLine.pos); + + if (inVertSegRegion) + { + // Add horizontal visibility segment. + VertSet intersectionVerts = + horiLine.addEdgeHorizontalTillIntersection( + router, vertLine); + + for (VertSet::iterator v = intersectionVerts.begin(); + v != intersectionVerts.end(); ++v) + { + vertLine.breakPoints.insert(PosVertInf(horiLine.pos, *v, + getPosVertInfDirection(*v, YDIM))); + } + } + } + ++it; + } + + // Split breakPoints set into visibility segments. + size_t dimension = YDIM; // y-dimension + vertLine.generateVisibilityEdgesFromBreakpointSet(router, dimension); +} + + +// Processes an event for the vertical sweep used for computing the static +// orthogonal visibility graph. This adds possible visibility sgments to +// the segments list. +// The first pass is adding the event to the scanline, the second is for +// processing the event and the third for removing it from the scanline. +static void processEventVert(Router *router, NodeSet& scanline, + SegmentListWrapper& segments, Event *e, unsigned int pass) +{ + Node *v = e->v; + + if ( ((pass == 1) && (e->type == Open)) || + ((pass == 2) && (e->type == ConnPoint)) ) + { + std::pair result = scanline.insert(v); + v->iter = result.first; + COLA_ASSERT(result.second); + + NodeSet::iterator it = v->iter; + // Work out neighbours + if (it != scanline.begin()) + { + Node *u = *(--it); + v->firstAbove = u; + u->firstBelow = v; + } + it = v->iter; + if (++it != scanline.end()) + { + Node *u = *it; + v->firstBelow = u; + u->firstAbove = v; + } + } + + if (pass == 2) + { + if ((e->type == Open) || (e->type == Close)) + { + // Shape edge positions. + double minShape = v->min[0]; + double maxShape = v->max[0]; + // As far as we can see. + double minLimit, maxLimit; + double minLimitMax, maxLimitMin; + v->findFirstPointAboveAndBelow(0, minLimit, maxLimit, + minLimitMax, maxLimitMin); + + // Only difference between Open and Close is whether the line + // segments are at the top or bottom of the shape. Decide here. + double lineY = (e->type == Open) ? v->min[1] : v->max[1]; + + if (minLimitMax >= maxLimitMin) + { + // Insert possible visibility segments. + VertInf *vI1 = new VertInf(router, dummyOrthogID, + Point(minShape, lineY)); + VertInf *vI2 = new VertInf(router, dummyOrthogID, + Point(maxShape, lineY)); + + // There are no overlapping shapes, so give full visibility. + if (minLimit < minShape) + { + segments.insert(LineSegment(minLimit, minShape, lineY, + true, NULL, vI1)); + } + segments.insert(LineSegment(minShape, maxShape, lineY, + true, vI1, vI2)); + if (maxShape < maxLimit) + { + segments.insert(LineSegment(maxShape, maxLimit, lineY, + true, vI2, NULL)); + } + } + else + { + if ((minLimitMax > minLimit) && (minLimitMax >= minShape)) + { + segments.insert(LineSegment(minLimit, minLimitMax, lineY, + true, NULL, NULL)); + } + if ((maxLimitMin < maxLimit) && (maxLimitMin <= maxShape)) + { + segments.insert(LineSegment(maxLimitMin, maxLimit, lineY, + true, NULL, NULL)); + } + } + } + else if (e->type == ConnPoint) + { + // Connection point. + VertInf *centreVert = e->v->c; + Point& cp = centreVert->point; + + // As far as we can see. + double minLimit = v->firstPointAbove(0); + double maxLimit = v->firstPointBelow(0); + bool inShape = v->isInsideShape(0); + + LineSegment *line1 = NULL, *line2 = NULL; + if (!inShape || (centreVert->visDirections & ConnDirLeft)) + { + line1 = segments.insert(LineSegment(minLimit, cp.x, e->pos, + true, NULL, centreVert)); + } + if (!inShape || (centreVert->visDirections & ConnDirRight)) + { + line2 = segments.insert(LineSegment(cp.x, maxLimit, e->pos, + true, centreVert, NULL)); + } + if (!line1 && !line2) + { + // Add a point segment for the centre point. + segments.insert(LineSegment(cp.x, e->pos, centreVert)); + } + + if (!inShape) + { + // This is not contained within a shape so add a normal + // visibility graph point here too (since paths won't route + // *through* connector endpoint vertices). + if (line1 || line2) + { + VertInf *cent = new VertInf(router, dummyOrthogID, cp); + if (line1) + { + line1->vertInfs.insert(cent); + } + if (line2) + { + line2->vertInfs.insert(cent); + } + } + } + } + } + + if ( ((pass == 3) && (e->type == Close)) || + ((pass == 2) && (e->type == ConnPoint)) ) + { + // Clean up neighbour pointers. + Node *l = v->firstAbove, *r = v->firstBelow; + if (l != NULL) + { + l->firstBelow = v->firstBelow; + } + if (r != NULL) + { + r->firstAbove = v->firstAbove; + } + + if (e->type == ConnPoint) + { + scanline.erase(v->iter); + delete v; + } + else // if (e->type == Close) + { + size_t result; + result = scanline.erase(v); + COLA_ASSERT(result == 1); + delete v; + } + } +} + + +// Processes an event for the vertical sweep used for computing the static +// orthogonal visibility graph. This adds possible visibility sgments to +// the segments list. +// The first pass is adding the event to the scanline, the second is for +// processing the event and the third for removing it from the scanline. +static void processEventHori(Router *router, NodeSet& scanline, + SegmentListWrapper& segments, Event *e, unsigned int pass) +{ + Node *v = e->v; + + if ( ((pass == 1) && (e->type == Open)) || + ((pass == 2) && (e->type == ConnPoint)) ) + { + std::pair result = scanline.insert(v); + v->iter = result.first; + COLA_ASSERT(result.second); + + NodeSet::iterator it = v->iter; + // Work out neighbours + if (it != scanline.begin()) + { + Node *u = *(--it); + v->firstAbove = u; + u->firstBelow = v; + } + it = v->iter; + if (++it != scanline.end()) + { + Node *u = *it; + v->firstBelow = u; + u->firstAbove = v; + } + } + + if (pass == 2) + { + if ((e->type == Open) || (e->type == Close)) + { + // Shape edge positions. + double minShape = v->min[1]; + double maxShape = v->max[1]; + // As far as we can see. + double minLimit, maxLimit; + double minLimitMax, maxLimitMin; + v->findFirstPointAboveAndBelow(1, minLimit, maxLimit, + minLimitMax, maxLimitMin); + + // Only difference between Open and Close is whether the line + // segments are at the left or right of the shape. Decide here. + double lineX = (e->type == Open) ? v->min[0] : v->max[0]; + + if (minLimitMax >= maxLimitMin) + { + LineSegment vertSeg = LineSegment(minLimit, maxLimit, lineX); + segments.insert(vertSeg); + } + else + { + if ((minLimitMax > minLimit) && (minLimitMax >= minShape)) + { + LineSegment vertSeg = + LineSegment(minLimit, minLimitMax, lineX); + segments.insert(vertSeg); + } + if ((maxLimitMin < maxLimit) && (maxLimitMin <= maxShape)) + { + LineSegment vertSeg = + LineSegment(maxLimitMin, maxLimit, lineX); + segments.insert(vertSeg); + } + } + } + else if (e->type == ConnPoint) + { + // Connection point. + VertInf *centreVert = e->v->c; + Point& cp = centreVert->point; + + // As far as we can see. + double minLimit = v->firstPointAbove(1); + double maxLimit = v->firstPointBelow(1); + bool inShape = v->isInsideShape(1); + + if (!inShape || (centreVert->visDirections & ConnDirUp)) + { + segments.insert(LineSegment(minLimit, cp.y, e->pos)); + } + if (!inShape || (centreVert->visDirections & ConnDirDown)) + { + segments.insert(LineSegment(cp.y, maxLimit, e->pos)); + } + } + } + + if ( ((pass == 3) && (e->type == Close)) || + ((pass == 2) && (e->type == ConnPoint)) ) + { + // Clean up neighbour pointers. + Node *l = v->firstAbove, *r = v->firstBelow; + if (l != NULL) + { + l->firstBelow = v->firstBelow; + } + if (r != NULL) + { + r->firstAbove = v->firstAbove; + } + + if (e->type == ConnPoint) + { + scanline.erase(v->iter); + delete v; + } + else // if (e->type == Close) + { + size_t result; + result = scanline.erase(v); + COLA_ASSERT(result == 1); + delete v; + } + } +} + + +extern void generateStaticOrthogonalVisGraph(Router *router) +{ + const size_t n = router->shapeRefs.size(); + const unsigned cpn = router->vertices.connsSize(); + // Set up the events for the vertical sweep. + size_t totalEvents = (2 * n) + cpn; + events = new Event*[totalEvents]; + unsigned ctr = 0; + ShapeRefList::iterator shRefIt = router->shapeRefs.begin(); + for (unsigned i = 0; i < n; i++) + { + ShapeRef *shRef = *shRefIt; + double minX, minY, maxX, maxY; + shRef->polygon().getBoundingRect(&minX, &minY, &maxX, &maxY); + double midX = minX + ((maxX - minX) / 2); + Node *v = new Node(shRef, midX); + events[ctr++] = new Event(Open, v, minY); + events[ctr++] = new Event(Close, v, maxY); + + ++shRefIt; + } + for (VertInf *curr = router->vertices.connsBegin(); + curr && (curr != router->vertices.shapesBegin()); + curr = curr->lstNext) + { + Point& point = curr->point; + + Node *v = new Node(curr, point.x); + events[ctr++] = new Event(ConnPoint, v, point.y); + } + qsort((Event*)events, (size_t) totalEvents, sizeof(Event*), compare_events); + + // Process the vertical sweep. + // We do multiple passes over sections of the list so we can add relevant + // entries to the scanline that might follow, before process them. + SegmentListWrapper segments; + NodeSet scanline; + double thisPos = (totalEvents > 0) ? events[0]->pos : 0; + unsigned int posStartIndex = 0; + unsigned int posFinishIndex = 0; + for (unsigned i = 0; i <= totalEvents; ++i) + { + // If we have finished the current scanline or all events, then we + // process the events on the current scanline in a couple of passes. + if ((i == totalEvents) || (events[i]->pos != thisPos)) + { + posFinishIndex = i; + for (int pass = 2; pass <= 3; ++pass) + { + for (unsigned j = posStartIndex; j < posFinishIndex; ++j) + { + processEventVert(router, scanline, segments, + events[j], pass); + } + } + + if (i == totalEvents) + { + // We have cleaned up, so we can now break out of loop. + break; + } + + thisPos = events[i]->pos; + posStartIndex = i; + } + + // Do the first sweep event handling -- building the correct + // structure of the scanline. + const int pass = 1; + processEventVert(router, scanline, segments, events[i], pass); + } + COLA_ASSERT(scanline.size() == 0); + for (unsigned i = 0; i < totalEvents; ++i) + { + delete events[i]; + } + + segments.list().sort(); + + // Set up the events for the horizontal sweep. + SegmentListWrapper vertSegments; + ctr = 0; + shRefIt = router->shapeRefs.begin(); + for (unsigned i = 0; i < n; i++) + { + ShapeRef *shRef = *shRefIt; + double minX, minY, maxX, maxY; + shRef->polygon().getBoundingRect(&minX, &minY, &maxX, &maxY); + double midY = minY + ((maxY - minY) / 2); + Node *v = new Node(shRef, midY); + events[ctr++] = new Event(Open, v, minX); + events[ctr++] = new Event(Close, v, maxX); + + ++shRefIt; + } + for (VertInf *curr = router->vertices.connsBegin(); + curr && (curr != router->vertices.shapesBegin()); + curr = curr->lstNext) + { + Point& point = curr->point; + + Node *v = new Node(curr, point.y); + events[ctr++] = new Event(ConnPoint, v, point.x); + } + qsort((Event*)events, (size_t) totalEvents, sizeof(Event*), compare_events); + + // Process the horizontal sweep + thisPos = (totalEvents > 0) ? events[0]->pos : 0; + posStartIndex = 0; + posFinishIndex = 0; + for (unsigned i = 0; i <= totalEvents; ++i) + { + // If we have finished the current scanline or all events, then we + // process the events on the current scanline in a couple of passes. + if ((i == totalEvents) || (events[i]->pos != thisPos)) + { + posFinishIndex = i; + for (int pass = 2; pass <= 3; ++pass) + { + for (unsigned j = posStartIndex; j < posFinishIndex; ++j) + { + processEventHori(router, scanline, vertSegments, + events[j], pass); + } + } + + // Process the merged line segments. + vertSegments.list().sort(); + for (SegmentList::iterator curr = vertSegments.list().begin(); + curr != vertSegments.list().end(); ++curr) + { + intersectSegments(router, segments.list(), *curr); + } + vertSegments.list().clear(); + + if (i == totalEvents) + { + // We have cleaned up, so we can now break out of loop. + break; + } + + thisPos = events[i]->pos; + posStartIndex = i; + } + + // Do the first sweep event handling -- building the correct + // structure of the scanline. + const int pass = 1; + processEventHori(router, scanline, vertSegments, events[i], pass); + } + COLA_ASSERT(scanline.size() == 0); + for (unsigned i = 0; i < totalEvents; ++i) + { + delete events[i]; + } + delete [] events; + + // Add portions of the horizontal line that are after the final vertical + // position we considered. + for (SegmentList::iterator it = segments.list().begin(); + it != segments.list().end(); ) + { + LineSegment& horiLine = *it; + + horiLine.addEdgeHorizontal(router); + + size_t dim = XDIM; // x-dimension + horiLine.generateVisibilityEdgesFromBreakpointSet(router, dim); + + it = segments.list().erase(it); + } +} + + +//============================================================================ +// Path Adjustment code +//============================================================================ + + + + +// Processes sweep events used to determine each horizontal and vertical +// line segment in a connector's channel of visibility. +// Four calls to this function are made at each position by the scanline: +// 1) Handle all Close event processing. +// 2) Remove Close event objects from the scanline. +// 3) Add Open event objects to the scanline. +// 4) Handle all Open event processing. +// +static void processShiftEvent(Router *router, NodeSet& scanline, + ShiftSegmentList& segments, Event *e, size_t dim, + unsigned int pass) +{ + Node *v = e->v; + + if ( ((pass == 3) && (e->type == Open)) || + ((pass == 3) && (e->type == SegOpen)) ) + { + std::pair result = scanline.insert(v); + v->iter = result.first; + COLA_ASSERT(result.second); + + NodeSet::iterator it = v->iter; + // Work out neighbours + if (it != scanline.begin()) + { + Node *u = *(--it); + v->firstAbove = u; + u->firstBelow = v; + } + it = v->iter; + if (++it != scanline.end()) + { + Node *u = *it; + v->firstBelow = u; + u->firstAbove = v; + } + } + + if ( ((pass == 4) && (e->type == Open)) || + ((pass == 4) && (e->type == SegOpen)) || + ((pass == 1) && (e->type == SegClose)) || + ((pass == 1) && (e->type == Close)) ) + { + if (v->ss) + { + // As far as we can see. + double minLimit = v->firstObstacleAbove(dim); + double maxLimit = v->firstObstacleBelow(dim); + + v->ss->minSpaceLimit = + std::max(minLimit, v->ss->minSpaceLimit); + v->ss->maxSpaceLimit = + std::min(maxLimit, v->ss->maxSpaceLimit); + } + else + { + v->markShiftSegmentsAbove(dim); + v->markShiftSegmentsBelow(dim); + } + } + + if ( ((pass == 2) && (e->type == SegClose)) || + ((pass == 2) && (e->type == Close)) ) + { + // Clean up neighbour pointers. + Node *l = v->firstAbove, *r = v->firstBelow; + if (l != NULL) + { + l->firstBelow = v->firstBelow; + } + if (r != NULL) + { + r->firstAbove = v->firstAbove; + } + + size_t result; + result = scanline.erase(v); + COLA_ASSERT(result == 1); + delete v; + } +} + + +static void buildOrthogonalChannelInfo(Router *router, + const size_t dim, ShiftSegmentList& segmentList) +{ + if (router->routingPenalty(segmentPenalty) == 0) + { + // This code assumes the routes are pretty optimal, so we don't + // do this adjustment if the routes have no segment penalty. + return; + } + + size_t altDim = (dim + 1) % 2; + // For each connector. + for (ConnRefList::const_iterator curr = router->connRefs.begin(); + curr != router->connRefs.end(); ++curr) + { + if ((*curr)->routingType() != ConnType_Orthogonal) + { + continue; + } + Polygon& displayRoute = (*curr)->displayRoute(); + // Determine all line segments that we are interested in shifting. + // We don't consider the first or last segment of a path. + for (size_t i = 1; i < displayRoute.size(); ++i) + { + if (displayRoute.ps[i - 1][dim] == displayRoute.ps[i][dim]) + { + // It's a segment in the dimension we are processing, + size_t indexLow = i - 1; + size_t indexHigh = i; + if (displayRoute.ps[i - 1][altDim] > displayRoute.ps[i][altDim]) + { + indexLow = i; + indexHigh = i - 1; + } + COLA_ASSERT(displayRoute.at(indexLow)[altDim] < + displayRoute.at(indexHigh)[altDim]); + + if ((i == 1) || ((i + 1) == displayRoute.size())) + { + // The first and last segment of a connector can't be + // shifted. We call them fixed segments. Note: this + // will change if we later allow connection channels. + segmentList.push_back( + ShiftSegment(*curr, indexLow, indexHigh, dim)); + continue; + } + + // The segment probably has space to be shifted. + double minLim = -CHANNEL_MAX; + double maxLim = CHANNEL_MAX; + bool isSBend = false; + + double prevPos = displayRoute.ps[i - 2][dim]; + double nextPos = displayRoute.ps[i + 1][dim]; + if (((prevPos < displayRoute.ps[i][dim]) && + (nextPos > displayRoute.ps[i][dim])) + || + ((prevPos > displayRoute.ps[i][dim]) && + (nextPos < displayRoute.ps[i][dim])) ) + { + isSBend = true; + + // Determine limits if the s-bend is not due to an + // obstacle. In this case we need to limit the channel + // to the span of the adjoining segments to this one. + if ((prevPos < displayRoute.ps[i][dim]) && + (nextPos > displayRoute.ps[i][dim])) + { + minLim = std::max(minLim, prevPos); + maxLim = std::min(maxLim, nextPos); + } + else + { + minLim = std::max(minLim, nextPos); + maxLim = std::min(maxLim, prevPos); + } + } + else + { + // isCBend: Both adjoining segments are in the same + // direction. We indicate this for later by setting + // the maxLim or minLim to the segment position. + if (prevPos < displayRoute.ps[i][dim]) + { + minLim = displayRoute.ps[i][dim]; + } + else + { + maxLim = displayRoute.ps[i][dim]; + } + } + + segmentList.push_back(ShiftSegment(*curr, indexLow, + indexHigh, isSBend, dim, minLim, maxLim)); + } + } + } + if (segmentList.empty()) + { + // There are no segments, so we can just return now. + return; + } + + // Do a sweep and shift these segments. + const size_t n = router->shapeRefs.size(); + const size_t cpn = segmentList.size(); + // Set up the events for the sweep. + size_t totalEvents = 2 * (n + cpn); + events = new Event*[totalEvents]; + unsigned ctr = 0; + ShapeRefList::iterator shRefIt = router->shapeRefs.begin(); + for (unsigned i = 0; i < n; i++) + { + ShapeRef *shRef = *shRefIt; + Point min, max; + shRef->polygon().getBoundingRect(&min.x, &min.y, &max.x, &max.y); + double mid = min[dim] + ((max[dim] - min[dim]) / 2); + Node *v = new Node(shRef, mid); + events[ctr++] = new Event(Open, v, min[altDim]); + events[ctr++] = new Event(Close, v, max[altDim]); + + ++shRefIt; + } + for (ShiftSegmentList::iterator curr = segmentList.begin(); + curr != segmentList.end(); ++curr) + { + const Point& lowPt = curr->lowPoint(); + const Point& highPt = curr->highPoint(); + + COLA_ASSERT(lowPt[dim] == highPt[dim]); + COLA_ASSERT(lowPt[altDim] < highPt[altDim]); + Node *v = new Node(&(*curr), lowPt[dim]); + events[ctr++] = new Event(SegOpen, v, lowPt[altDim]); + events[ctr++] = new Event(SegClose, v, highPt[altDim]); + } + qsort((Event*)events, (size_t) totalEvents, sizeof(Event*), compare_events); + + // Process the sweep. + // We do multiple passes over sections of the list so we can add relevant + // entries to the scanline that might follow, before process them. + NodeSet scanline; + double thisPos = (totalEvents > 0) ? events[0]->pos : 0; + unsigned int posStartIndex = 0; + unsigned int posFinishIndex = 0; + for (unsigned i = 0; i <= totalEvents; ++i) + { + // If we have finished the current scanline or all events, then we + // process the events on the current scanline in a couple of passes. + if ((i == totalEvents) || (events[i]->pos != thisPos)) + { + posFinishIndex = i; + for (int pass = 2; pass <= 4; ++pass) + { + for (unsigned j = posStartIndex; j < posFinishIndex; ++j) + { + processShiftEvent(router, scanline, segmentList, events[j], + dim, pass); + } + } + + if (i == totalEvents) + { + // We have cleaned up, so we can now break out of loop. + break; + } + + thisPos = events[i]->pos; + posStartIndex = i; + } + + // Do the first sweep event handling -- building the correct + // structure of the scanline. + const int pass = 1; + processShiftEvent(router, scanline, segmentList, events[i], + dim, pass); + } + COLA_ASSERT(scanline.size() == 0); + for (unsigned i = 0; i < totalEvents; ++i) + { + delete events[i]; + } + delete [] events; +} + + +static void simplifyOrthogonalRoutes(Router *router) +{ + // Simplify routes. + for (ConnRefList::const_iterator curr = router->connRefs.begin(); + curr != router->connRefs.end(); ++curr) + { + if ((*curr)->routingType() != ConnType_Orthogonal) + { + continue; + } + (*curr)->set_route((*curr)->displayRoute().simplify()); + } +} + + +static void buildOrthogonalNudgingOrderInfo(Router *router, + PtOrderMap& pointOrders) +{ + // Simplify routes. + simplifyOrthogonalRoutes(router); + + int crossingsN = 0; + + // Do segment splitting. + for (ConnRefList::const_iterator curr = router->connRefs.begin(); + curr != router->connRefs.end(); ++curr) + { + if ((*curr)->routingType() != ConnType_Orthogonal) + { + continue; + } + ConnRef *conn = *curr; + + for (ConnRefList::const_iterator curr2 = router->connRefs.begin(); + curr2 != router->connRefs.end(); ++curr2) + { + if ((*curr2)->routingType() != ConnType_Orthogonal) + { + continue; + } + ConnRef *conn2 = *curr2; + + if (conn == conn2) + { + continue; + } + + Avoid::Polygon& route = conn->displayRoute(); + Avoid::Polygon& route2 = conn2->displayRoute(); + splitBranchingSegments(route2, true, route); + } + } + + for (ConnRefList::const_iterator curr = router->connRefs.begin(); + curr != router->connRefs.end(); ++curr) + { + if ((*curr)->routingType() != ConnType_Orthogonal) + { + continue; + } + ConnRef *conn = *curr; + + for (ConnRefList::const_iterator curr2 = curr; + curr2 != router->connRefs.end(); ++curr2) + { + if ((*curr2)->routingType() != ConnType_Orthogonal) + { + continue; + } + ConnRef *conn2 = *curr2; + + if (conn == conn2) + { + continue; + } + + Avoid::Polygon& route = conn->displayRoute(); + Avoid::Polygon& route2 = conn2->displayRoute(); + bool checkForBranchingSegments = false; + int crossings = 0; + for (size_t i = 1; i < route.size(); ++i) + { + const bool finalSegment = ((i + 1) == route.size()); + crossings += countRealCrossings(route2, true, route, i, + checkForBranchingSegments, finalSegment, NULL, + &pointOrders, conn2, conn).first; + } + if (crossings > 0) + { + crossingsN += crossings; + } + } + } + + // Sort the point orders. + PtOrderMap::iterator finish = pointOrders.end(); + for (PtOrderMap::iterator it = pointOrders.begin(); it != finish; ++it) + { + //const VertID& ptID = it->first; + PtOrder& order = it->second; + + for (size_t dim = XDIM; dim <= YDIM; ++dim) + { + order.sort(dim); + } + } +} + + +class CmpLineOrder +{ + public: + CmpLineOrder(PtOrderMap& ord, const size_t dim) + : orders(ord), + dimension(dim) + { + } + bool operator()(const ShiftSegment& lhs, const ShiftSegment& rhs, + bool *comparable = NULL) const + { + if (comparable) + { + *comparable = true; + } + Point lhsLow = lhs.lowPoint(); + Point rhsLow = rhs.lowPoint(); +#ifndef NDEBUG + const Point& lhsHigh = lhs.highPoint(); + const Point& rhsHigh = rhs.highPoint(); +#endif + size_t altDim = (dimension + 1) % 2; + + COLA_ASSERT(lhsLow[dimension] == lhsHigh[dimension]); + COLA_ASSERT(rhsLow[dimension] == rhsHigh[dimension]); + + if (lhsLow[dimension] != rhsLow[dimension]) + { + return lhsLow[dimension] < rhsLow[dimension]; + } + + // If one of these is fixed, then determine order based on + // fixed segment, that is, order so the fixed segment doesn't + // block movement. + bool oneIsFixed = false; + const int lhsFixedOrder = lhs.fixedOrder(oneIsFixed); + const int rhsFixedOrder = rhs.fixedOrder(oneIsFixed); + if (oneIsFixed && (lhsFixedOrder != rhsFixedOrder)) + { + return lhsFixedOrder < rhsFixedOrder; + } + + // C-bends that did not have a clear order with s-bends might + // not have a good ordering here, so compare their order in + // terms of C-bend direction and S-bends and use that if it + // differs for the two segments. + const int lhsOrder = lhs.order(); + const int rhsOrder = rhs.order(); + if (lhsOrder != rhsOrder) + { + return lhsOrder < rhsOrder; + } + + // Need to index using the original point into the map, so find it. + Point& unchanged = (lhsLow[altDim] > rhsLow[altDim]) ? + lhsLow : rhsLow; + + PtOrder& lowOrder = orders[unchanged]; + int lhsPos = lowOrder.positionFor(lhs.connRef, dimension); + int rhsPos = lowOrder.positionFor(rhs.connRef, dimension); + if ((lhsPos == -1) || (rhsPos == -1)) + { + // A value for rhsPos or lhsPos mean the points are not directly + // comparable, meaning they are at the same position but cannot + // overlap (they are just collinear. The relative order for + // these segments is not important since we do not constrain + // them against each other. + //COLA_ASSERT(lhs.overlapsWith(rhs, dimension) == false); + // We do need to be consistent though. + if (comparable) + { + *comparable = false; + } + return lhsLow[altDim] < rhsLow[altDim]; + } + + return lhsPos < rhsPos; + } + + PtOrderMap& orders; + const size_t dimension; +}; + + +// We can use the normaal sort algorithm for lists since it is not possible +// to comapre all elements, but there will be an ordering defined between +// most of the elements. Hence we order these, using insertion sort, and +// the case of them not being able to be compared is handled by not setting +// up any constraints between such segments when doing the nudging. +// +static ShiftSegmentList linesort(ShiftSegmentList origList, + CmpLineOrder& comparison) +{ + ShiftSegmentList resultList; + + while (!origList.empty()) + { + // Get and remove the first element from the origList. + ShiftSegment segment = origList.front(); + origList.pop_front(); + + // Find the insertion point in the resultList. + ShiftSegmentList::iterator curr; + for (curr = resultList.begin(); curr != resultList.end(); ++curr) + { + bool comparable = false; + bool lessThan = comparison(segment, *curr, &comparable); + + if (comparable && lessThan) + { + // If it is comparable and lessThan, then we have found the + // insertion point. + break; + } + } + + // Insert the element into the reultList at the required point. + resultList.insert(curr, segment); + } + + return resultList; +} + + +typedef std::list ShiftSegmentPtrList; + + +static void nudgeOrthogonalRoutes(Router *router, size_t dimension, + PtOrderMap& pointOrders, ShiftSegmentList& segmentList) +{ + // Do the actual nudging. + ShiftSegmentList currentRegion; + while (!segmentList.empty()) + { + // Take a reference segment + ShiftSegment& currentSegment = segmentList.front(); + // Then, find the segments that overlap this one. + currentRegion.clear(); + currentRegion.push_back(currentSegment); + segmentList.erase(segmentList.begin()); + for (ShiftSegmentList::iterator curr = segmentList.begin(); + curr != segmentList.end(); ) + { + bool overlaps = false; + for (ShiftSegmentList::iterator curr2 = currentRegion.begin(); + curr2 != currentRegion.end(); ++curr2) + { + if (curr->overlapsWith(*curr2, dimension)) + { + overlaps = true; + break; + } + } + if (overlaps) + { + currentRegion.push_back(*curr); + segmentList.erase(curr); + // Consider segments from the beginning, since we mave have + // since passed segments that overlap with the new set. + curr = segmentList.begin(); + } + else + { + ++curr; + } + } + CmpLineOrder lineSortComp(pointOrders, dimension); + currentRegion = linesort(currentRegion, lineSortComp); + + if (currentRegion.size() == 1) + { + // Save creating the solver instance if there is just one + // immovable segment. + if (!currentRegion.front().sBend) + { + continue; + } + } + + // Process these segments. + Variables vs; + Constraints cs; + ShiftSegmentPtrList prevVars; + // IDs: + const int freeID = 0; + const int fixedID = 1; + // Weights: + double freeWeight = 0.00001; + double strongWeight = 0.001; + double fixedWeight = 100000; + //printf("-------------------------------------------------------\n"); + //printf("Nudge -- size: %d\n", (int) currentRegion.size()); + for (ShiftSegmentList::iterator currSegment = currentRegion.begin(); + currSegment != currentRegion.end(); ++currSegment) + { + Point& lowPt = currSegment->lowPoint(); + + // Create a solver variable for the position of this segment. + int varID = freeID; + double idealPos = lowPt[dimension]; + double weight = freeWeight; + if (currSegment->sBend) + { + COLA_ASSERT(currSegment->minSpaceLimit > -CHANNEL_MAX); + COLA_ASSERT(currSegment->maxSpaceLimit < CHANNEL_MAX); + + // For s-bends, take the middle as ideal. + idealPos = currSegment->minSpaceLimit + + ((currSegment->maxSpaceLimit - + currSegment->minSpaceLimit) / 2); + } + else if (currSegment->fixed) + { + // Fixed segments shouldn't get moved. + weight = fixedWeight; + varID = fixedID; + } + else + { + // Set a higher weight for c-bends to stop them sometimes + // getting pushed out into channels by more-free connectors + // to the "inner" side of them. + weight = strongWeight; + } + currSegment->variable = new Variable(varID, idealPos, weight); + vs.push_back(currSegment->variable); + size_t index = vs.size() - 1; + //printf("line %.15f pos: %g min: %g max: %g\n", + // lowPt[dimension], idealPos, currSegment->minSpaceLimit, + // currSegment->maxSpaceLimit); + + // Constrain position in relation to previously seen segments, + // if necessary (i.e. when they could overlap). + for (ShiftSegmentPtrList::iterator prevVarIt = prevVars.begin(); + prevVarIt != prevVars.end(); ) + { + ShiftSegment *prevSeg = *prevVarIt; + Variable *prevVar = prevSeg->variable; + + if (currSegment->overlapsWith(*prevSeg, dimension) && + (!(currSegment->fixed) || !(prevSeg->fixed))) + { + // If there is a previous segment to the left that + // could overlap this in the shift direction, then + // constrain the two segments to be separated. + // Though don't add the constraint if both the + // segments are fixed in place. + cs.push_back(new Constraint(prevVar, vs[index], + router->orthogonalNudgeDistance())); + prevVarIt = prevVars.erase(prevVarIt); + } + else + { + ++prevVarIt; + } + } + + if (!currSegment->fixed) + { + // If this segment sees a channel boundary to its left, + // then constrain its placement as such. + if (currSegment->minSpaceLimit > -CHANNEL_MAX) + { + vs.push_back(new Variable(fixedID, + currSegment->minSpaceLimit, fixedWeight)); + cs.push_back(new Constraint(vs[vs.size() - 1], vs[index], + 0.0)); + } + + // If this segment sees a channel boundary to its right, + // then constrain its placement as such. + if (currSegment->maxSpaceLimit < CHANNEL_MAX) + { + vs.push_back(new Variable(fixedID, + currSegment->maxSpaceLimit, fixedWeight)); + cs.push_back(new Constraint(vs[index], vs[vs.size() - 1], + 0.0)); + } + } + prevVars.push_back(&(*currSegment)); + } +#if 0 + for(unsigned i=0;idesiredPosition); + } +#endif + IncSolver f(vs,cs); + f.solve(); + bool satisfied = true; + for (size_t i = 0; i < vs.size(); ++i) + { + if (vs[i]->id == fixedID) + { + if (fabs(vs[i]->finalPosition - vs[i]->desiredPosition) > 0.01) + { + satisfied = false; + break; + } + } + } + if (satisfied) + { + for (ShiftSegmentList::iterator currSegment = currentRegion.begin(); + currSegment != currentRegion.end(); ++currSegment) + { + Point& lowPt = currSegment->lowPoint(); + Point& highPt = currSegment->highPoint(); + double newPos = currSegment->variable->finalPosition; + //printf("Pos: %X, %g\n", (int) currSegment->connRef, newPos); + lowPt[dimension] = newPos; + highPt[dimension] = newPos; + } + } +#if 0 + for(unsigned i=0;ifinalPosition); + } +#endif + for_each(vs.begin(),vs.end(),delete_object()); + for_each(cs.begin(),cs.end(),delete_object()); + } +} + + +extern void improveOrthogonalRoutes(Router *router) +{ + router->timers.Register(tmOrthogNudge, timerStart); + for (size_t dimension = 0; dimension < 2; ++dimension) + { + // Build nudging info. + // XXX: We need to build the point orders separately in each + // dimension since things move. There is probably a more + // efficient way to do this. + PtOrderMap pointOrders; + buildOrthogonalNudgingOrderInfo(router, pointOrders); + + // Simplify routes. + simplifyOrthogonalRoutes(router); + + // Do the centring and nudging. + ShiftSegmentList segLists; + buildOrthogonalChannelInfo(router, dimension, segLists); + nudgeOrthogonalRoutes(router, dimension, pointOrders, segLists); + } + router->timers.Stop(); +} + + +} diff --git a/src/libavoid/orthogonal.h b/src/libavoid/orthogonal.h new file mode 100644 index 000000000..4fb974099 --- /dev/null +++ b/src/libavoid/orthogonal.h @@ -0,0 +1,39 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libavoid - Fast, Incremental, Object-avoiding Line Router + * + * Copyright (C) 2009 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * See the file LICENSE.LGPL distributed with the library. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * library. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Author(s): Michael Wybrow +*/ + + +#ifndef AVOID_ORTHOGONAL_H +#define AVOID_ORTHOGONAL_H + +namespace Avoid { + + +extern void generateStaticOrthogonalVisGraph(Router *router); + +extern void improveOrthogonalRoutes(Router *router); + + +} + +#endif diff --git a/src/libavoid/viscluster.cpp b/src/libavoid/viscluster.cpp new file mode 100644 index 000000000..a127c5a17 --- /dev/null +++ b/src/libavoid/viscluster.cpp @@ -0,0 +1,96 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libavoid - Fast, Incremental, Object-avoiding Line Router + * + * Copyright (C) 2004-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * See the file LICENSE.LGPL distributed with the library. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * library. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Author(s): Michael Wybrow +*/ + + +#include "libavoid/viscluster.h" +#include "libavoid/router.h" +#include "libavoid/assertions.h" + + +namespace Avoid { + + +ClusterRef::ClusterRef(Router *router, unsigned int id, Polygon& ply) + : _router(router) + , _poly(ply, router) + , _active(false) +{ + _id = router->assignId(id); +} + + +ClusterRef::~ClusterRef() +{ +} + + +void ClusterRef::makeActive(void) +{ + COLA_ASSERT(!_active); + + // Add to connRefs list. + _pos = _router->clusterRefs.insert(_router->clusterRefs.begin(), this); + + _active = true; +} + + +void ClusterRef::makeInactive(void) +{ + COLA_ASSERT(_active); + + // Remove from connRefs list. + _router->clusterRefs.erase(_pos); + + _active = false; +} + + +void ClusterRef::setNewPoly(Polygon& poly) +{ + _poly = ReferencingPolygon(poly, _router); +} + + +unsigned int ClusterRef::id(void) +{ + return _id; +} + + +ReferencingPolygon& ClusterRef::polygon(void) +{ + return _poly; +} + + +Router *ClusterRef::router(void) +{ + return _router; +} + + +} + + diff --git a/src/libavoid/viscluster.h b/src/libavoid/viscluster.h new file mode 100644 index 000000000..5827e5070 --- /dev/null +++ b/src/libavoid/viscluster.h @@ -0,0 +1,67 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libavoid - Fast, Incremental, Object-avoiding Line Router + * + * Copyright (C) 2004-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * See the file LICENSE.LGPL distributed with the library. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * library. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Author(s): Michael Wybrow +*/ + + +#ifndef AVOID_CLUSTER_H +#define AVOID_CLUSTER_H + +#include + +#include "libavoid/geometry.h" + + +namespace Avoid { + +class Router; +class ClusterRef; +typedef std::list ClusterRefList; + + +class ClusterRef +{ + public: + ClusterRef(Router *router, unsigned int id, Polygon& poly); + ~ClusterRef(); + void setNewPoly(Polygon& poly); + unsigned int id(void); + ReferencingPolygon& polygon(void); + Router *router(void); + void makeActive(void); + void makeInactive(void); + + private: + Router *_router; + unsigned int _id; + ReferencingPolygon _poly; + bool _active; + ClusterRefList::iterator _pos; +}; + + +} + + +#endif + + diff --git a/src/libavoid/vpsc.cpp b/src/libavoid/vpsc.cpp new file mode 100644 index 000000000..c9a072375 --- /dev/null +++ b/src/libavoid/vpsc.cpp @@ -0,0 +1,1300 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libavoid - Fast, Incremental, Object-avoiding Line Router + * + * Copyright (C) 2005-2009 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * See the file LICENSE.LGPL distributed with the library. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * library. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Author(s): Tim Dwyer + * + * -------------- + * + * This file contains a slightly modified version of Solver() from libvpsc: + * A solver for the problem of Variable Placement with Separation Constraints. + * It has the following changes from the Adaptagrams VPSC version: + * - The required VPSC code has been consolidated into a single file. + * - Unnecessary code (like Solver) has been removed. + * - The PairingHeap code has been replaced by a STL priority_queue. + * + * Modifications: Michael Wybrow + * +*/ + +#include +#include +#include +#include +#include +#include + +#include "libavoid/vpsc.h" +#include "libavoid/assertions.h" + + +using namespace std; + +namespace Avoid { + +static const double ZERO_UPPERBOUND=-1e-10; +static const double LAGRANGIAN_TOLERANCE=-1e-4; + +IncSolver::IncSolver(vector const &vs, vector const &cs) + : m(cs.size()), + cs(cs), + n(vs.size()), + vs(vs) +{ + for(unsigned i=0;iin.clear(); + vs[i]->out.clear(); + } + for(unsigned i=0;ileft->out.push_back(c); + c->right->in.push_back(c); + } + bs=new Blocks(vs); +#ifdef LIBVPSC_LOGGING + printBlocks(); + //COLA_ASSERT(!constraintGraphIsCyclic(n,vs)); +#endif + + inactive=cs; + for(Constraints::iterator i=inactive.begin();i!=inactive.end();++i) { + (*i)->active=false; + } +} +IncSolver::~IncSolver() { + delete bs; +} + +// useful in debugging +void IncSolver::printBlocks() { +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + for(set::iterator i=bs->begin();i!=bs->end();++i) { + Block *b=*i; + f<<" "<<*b<finalPosition=v->position(); + COLA_ASSERT(v->finalPosition==v->finalPosition); + } +} + +struct node { + set in; + set out; +}; +// useful in debugging - cycles would be BAD +bool IncSolver::constraintGraphIsCyclic(const unsigned n, Variable* const vs[]) { + map varmap; + vector graph; + for(unsigned i=0;i::iterator c=vs[i]->in.begin();c!=vs[i]->in.end();++c) { + Variable *l=(*c)->left; + varmap[vs[i]]->in.insert(varmap[l]); + } + + for(vector::iterator c=vs[i]->out.begin();c!=vs[i]->out.end();++c) { + Variable *r=(*c)->right; + varmap[vs[i]]->out.insert(varmap[r]); + } + } + while(graph.size()>0) { + node *u=NULL; + vector::iterator i=graph.begin(); + for(;i!=graph.end();++i) { + u=*i; + if(u->in.size()==0) { + break; + } + } + if(i==graph.end() && graph.size()>0) { + //cycle found! + return true; + } else { + graph.erase(i); + for(set::iterator j=u->out.begin();j!=u->out.end();++j) { + node *v=*j; + v->in.erase(u); + } + delete u; + } + } + for(unsigned i=0; i bmap; + vector graph; + for(set::const_iterator i=bs->begin();i!=bs->end();++i) { + Block *b=*i; + node *u=new node; + graph.push_back(u); + bmap[b]=u; + } + for(set::const_iterator i=bs->begin();i!=bs->end();++i) { + Block *b=*i; + b->setUpInConstraints(); + Constraint *c=b->findMinInConstraint(); + while(c!=NULL) { + Block *l=c->left->block; + bmap[b]->in.insert(bmap[l]); + b->deleteMinInConstraint(); + c=b->findMinInConstraint(); + } + + b->setUpOutConstraints(); + c=b->findMinOutConstraint(); + while(c!=NULL) { + Block *r=c->right->block; + bmap[b]->out.insert(bmap[r]); + b->deleteMinOutConstraint(); + c=b->findMinOutConstraint(); + } + } + while(graph.size()>0) { + node *u=NULL; + vector::iterator i=graph.begin(); + for(;i!=graph.end();++i) { + u=*i; + if(u->in.size()==0) { + break; + } + } + if(i==graph.end() && graph.size()>0) { + //cycle found! + return true; + } else { + graph.erase(i); + for(set::iterator j=u->out.begin();j!=u->out.end();++j) { + node *v=*j; + v->in.erase(u); + } + delete u; + } + } + for(unsigned i=0; icost(); + while(fabs(lastcost-cost)>0.0001) { + satisfy(); + lastcost=cost; + cost = bs->cost(); +#ifdef LIBVPSC_LOGGING + f<<" bs->size="<size()<<", cost="<size()!=n; +} +/* + * incremental version of satisfy that allows refinement after blocks are + * moved. + * + * - move blocks to new positions + * - repeatedly merge across most violated constraint until no more + * violated constraints exist + * + * Note: there is a special case to handle when the most violated constraint + * is between two variables in the same block. Then, we must split the block + * over an active constraint between the two variables. We choose the + * constraint with the most negative lagrangian multiplier. + */ +bool IncSolver::satisfy() { +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<"satisfy_inc()..."<equality || v->slack() < ZERO_UPPERBOUND && !v->active)) + { + COLA_ASSERT(!v->active); + Block *lb = v->left->block, *rb = v->right->block; + if(lb != rb) { + lb->merge(rb,v); + } else { + if(lb->isActiveDirectedPathBetween(v->right,v->left)) { + // cycle found, relax the violated, cyclic constraint + v->unsatisfiable=true; + continue; + //UnsatisfiableException e; + //lb->getActiveDirectedPathBetween(e.path,v->right,v->left); + //e.path.push_back(v); + //throw e; + } + //if(splitCtr++>10000) { + //throw "Cycle Error!"; + //} + // constraint is within block, need to split first + try { + Constraint* splitConstraint + =lb->splitBetween(v->left,v->right,lb,rb); + if(splitConstraint!=NULL) { + COLA_ASSERT(!splitConstraint->active); + inactive.push_back(splitConstraint); + } else { + v->unsatisfiable=true; + continue; + } + } catch(UnsatisfiableException e) { + e.path.push_back(v); + std::cerr << "Unsatisfiable:" << std::endl; + for(std::vector::iterator r=e.path.begin(); + r!=e.path.end();++r) + { + std::cerr << **r <unsatisfiable=true; + continue; + } + if(v->slack()>=0) { + COLA_ASSERT(!v->active); + // v was satisfied by the above split! + inactive.push_back(v); + bs->insert(lb); + bs->insert(rb); + } else { + bs->insert(lb->merge(rb,v)); + } + } + bs->cleanup(); +#ifdef LIBVPSC_LOGGING + f<<"...remaining blocks="<size()<<", cost="<cost()<cleanup(); + bool activeConstraints=false; + for(unsigned i=0;iactive) activeConstraints=true; + if(v->slack() < ZERO_UPPERBOUND) { + ostringstream s; + s<<"Unsatisfied constraint: "<<*v; +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<::const_iterator i(bs->begin());i!=bs->end();++i) { + Block *b = *i; + b->updateWeightedPosition(); + //b->posn = b->wposn / b->weight; + } +#ifdef LIBVPSC_LOGGING + f<<" moved blocks."<::const_iterator i(bs->begin());i!=bs->end();++i) { + Block* b = *i; + Constraint* v=b->findMinLM(); + if(v!=NULL && v->lm < LAGRANGIAN_TOLERANCE) { + COLA_ASSERT(!v->equality); +#ifdef LIBVPSC_LOGGING + f<<" found split point: "<<*v<<" lm="<lm<left->block, *l=NULL, *r=NULL; + COLA_ASSERT(v->left->block == v->right->block); + //double pos = b->posn; + b->split(l,r,v); + //l->posn=r->posn=pos; + //l->wposn = l->posn * l->weight; + //r->wposn = r->posn * r->weight; + l->updateWeightedPosition(); + r->updateWeightedPosition(); + bs->insert(l); + bs->insert(r); + b->deleted=true; + COLA_ASSERT(!v->active); + inactive.push_back(v); +#ifdef LIBVPSC_LOGGING + f<<" new blocks: "<<*l<<" and "<<*r<0) { std::cout<<" splits: "<cleanup(); +} + +/* + * Scan constraint list for the most violated constraint, or the first equality + * constraint + */ +Constraint* IncSolver::mostViolated(Constraints &l) { + double minSlack = DBL_MAX; + Constraint* v=NULL; +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<"Looking for most violated..."<slack(); + if(c->equality || slack < minSlack) { + minSlack=slack; + v=c; + deletePoint=i; + if(c->equality) break; + } + } + // Because the constraint list is not order dependent we just + // move the last element over the deletePoint and resize + // downwards. There is always at least 1 element in the + // vector because of search. + if(deletePoint != end && (minSlack < ZERO_UPPERBOUND && !v->active || v->equality)) { + *deletePoint = l[l.size()-1]; + l.resize(l.size()-1); + } +#ifdef LIBVPSC_LOGGING + f<<" most violated is: "<<*v< const &vs) : vs(vs),nvs(vs.size()) { + blockTimeCtr=0; + for(int i=0;i::iterator i=begin();i!=end();++i) { + delete *i; + } + clear(); +} + +/* + * returns a list of variables with total ordering determined by the constraint + * DAG + */ +list *Blocks::totalOrder() { + list *order = new list; + for(int i=0;ivisited=false; + } + for(int i=0;iin.size()==0) { + dfsVisit(vs[i],order); + } + } + return order; +} +// Recursive depth first search giving total order by pushing nodes in the DAG +// onto the front of the list when we finish searching them +void Blocks::dfsVisit(Variable *v, list *order) { + v->visited=true; + vector::iterator it=v->out.begin(); + for(;it!=v->out.end();++it) { + Constraint *c=*it; + if(!c->right->visited) { + dfsVisit(c->right, order); + } + } +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<" order="<<*v<push_front(v); +} +/* + * Processes incoming constraints, most violated to least, merging with the + * neighbouring (left) block until no more violated constraints are found + */ +void Blocks::mergeLeft(Block *r) { +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<"mergeLeft called on "<<*r<timeStamp=++blockTimeCtr; + r->setUpInConstraints(); + Constraint *c=r->findMinInConstraint(); + while (c != NULL && c->slack()<0) { +#ifdef LIBVPSC_LOGGING + f<<"mergeLeft on constraint: "<<*c<deleteMinInConstraint(); + Block *l = c->left->block; + if (l->in==NULL) l->setUpInConstraints(); + double dist = c->right->offset - c->left->offset - c->gap; + if (r->vars->size() < l->vars->size()) { + dist=-dist; + std::swap(l, r); + } + blockTimeCtr++; + r->merge(l, c, dist); + r->mergeIn(l); + r->timeStamp=blockTimeCtr; + removeBlock(l); + c=r->findMinInConstraint(); + } +#ifdef LIBVPSC_LOGGING + f<<"merged "<<*r<setUpOutConstraints(); + Constraint *c = l->findMinOutConstraint(); + while (c != NULL && c->slack()<0) { +#ifdef LIBVPSC_LOGGING + f<<"mergeRight on constraint: "<<*c<deleteMinOutConstraint(); + Block *r = c->right->block; + r->setUpOutConstraints(); + double dist = c->left->offset + c->gap - c->right->offset; + if (l->vars->size() > r->vars->size()) { + dist=-dist; + std::swap(l, r); + } + l->merge(r, c, dist); + l->mergeOut(r); + removeBlock(r); + c=l->findMinOutConstraint(); + } +#ifdef LIBVPSC_LOGGING + f<<"merged "<<*l<deleted=true; + //erase(doomed); +} +void Blocks::cleanup() { + vector bcopy(begin(),end()); + for(vector::iterator i=bcopy.begin();i!=bcopy.end();++i) { + Block *b=*i; + if(b->deleted) { + erase(b); + delete b; + } + } +} +/* + * Splits block b across constraint c into two new blocks, l and r (c's left + * and right sides respectively) + */ +void Blocks::split(Block *b, Block *&l, Block *&r, Constraint *c) { + b->split(l,r,c); +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<"Split left: "<<*l<posn = b->posn; + //COLA_ASSERT(r->weight!=0); + //r->wposn = r->posn * r->weight; + mergeLeft(l); + // r may have been merged! + r = c->right->block; + r->updateWeightedPosition(); + //r->posn = r->wposn / r->weight; + mergeRight(r); + removeBlock(b); + + insert(l); + insert(r); + COLA_ASSERT(__NOTNAN(l->posn)); + COLA_ASSERT(__NOTNAN(r->posn)); +} +/* + * returns the cost total squared distance of variables from their desired + * positions + */ +double Blocks::cost() { + double c = 0; + for(set::iterator i=begin();i!=end();++i) { + c += (*i)->cost(); + } + return c; +} + +void PositionStats::addVariable(Variable* v) { + double ai=scale/v->scale; + double bi=v->offset/v->scale; + double wi=v->weight; + AB+=wi*ai*bi; + AD+=wi*ai*v->desiredPosition; + A2+=wi*ai*ai; + /* +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f << "adding v[" << v->id << "], blockscale=" << scale << ", despos=" + << v->desiredPosition << ", ai=" << ai << ", bi=" << bi + << ", AB=" << AB << ", AD=" << AD << ", A2=" << A2; +#endif +*/ +} +void Block::addVariable(Variable* v) { + v->block=this; + vars->push_back(v); + if(ps.A2==0) ps.scale=v->scale; + //weight+= v->weight; + //wposn += v->weight * (v->desiredPosition - v->offset); + //posn=wposn/weight; + ps.addVariable(v); + posn=(ps.AD - ps.AB) / ps.A2; + COLA_ASSERT(__NOTNAN(posn)); + /* +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f << ", posn=" << posn << endl; +#endif +*/ +} +Block::Block(Variable* const v) + : vars(new vector) + , posn(0) + //, weight(0) + //, wposn(0) + , deleted(false) + , timeStamp(0) + , in(NULL) + , out(NULL) +{ + if(v!=NULL) { + v->offset=0; + addVariable(v); + } +} + +void Block::updateWeightedPosition() { + //wposn=0; + ps.AB=ps.AD=ps.A2=0; + for (Vit v=vars->begin();v!=vars->end();++v) { + //wposn += ((*v)->desiredPosition - (*v)->offset) * (*v)->weight; + ps.addVariable(*v); + } + posn=(ps.AD - ps.AB) / ps.A2; + COLA_ASSERT(__NOTNAN(posn)); +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f << ", posn=" << posn << endl; +#endif +} +Block::~Block(void) +{ + delete vars; + delete in; + delete out; +} +void Block::setUpInConstraints() { + setUpConstraintHeap(in,true); +} +void Block::setUpOutConstraints() { + setUpConstraintHeap(out,false); +} +void Block::setUpConstraintHeap(Heap* &h,bool in) { + delete h; + h = new Heap(); + for (Vit i=vars->begin();i!=vars->end();++i) { + Variable *v=*i; + vector *cs=in?&(v->in):&(v->out); + for (Cit j=cs->begin();j!=cs->end();++j) { + Constraint *c=*j; + c->timeStamp=blockTimeCtr; + if (c->left->block != this && in || c->right->block != this && !in) { + h->push(c); + } + } + } +} +Block* Block::merge(Block* b, Constraint* c) { +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<" merging on: "<<*c<<",c->left->offset="<left->offset<<",c->right->offset="<right->offset<right->offset - c->left->offset - c->gap; + Block *l=c->left->block; + Block *r=c->right->block; + if (l->vars->size() < r->vars->size()) { + r->merge(l,c,dist); + } else { + l->merge(r,c,-dist); + } + Block* mergeBlock=b->deleted?this:b; +#ifdef LIBVPSC_LOGGING + f<<" merged block="<<*mergeBlock<id<<"]: d="<desiredPosition + <<" a="<scale<<" o="<offset + <findMinInConstraint(); + while (!b->in->empty()) + { + in->push(b->in->top()); + b->in->pop(); + } +#ifdef LIBVPSC_LOGGING + f<<" merged heap: "<<*in<findMinOutConstraint(); + while (!b->out->empty()) + { + out->push(b->out->top()); + b->out->pop(); + } +} +Constraint *Block::findMinInConstraint() { + Constraint *v = NULL; + vector outOfDate; + while (!in->empty()) { + v = in->top(); + Block *lb=v->left->block; + Block *rb=v->right->block; + // rb may not be this if called between merge and mergeIn +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<" checking constraint ... "<<*v; + f<<" timestamps: left="<timeStamp<<" right="<timeStamp<<" constraint="<timeStamp<slack()<0) { + f<<" violated internal constraint found! "<<*v<timeStamp < lb->timeStamp) { + // block at other end of constraint has been moved since this + in->pop(); + outOfDate.push_back(v); +#ifdef LIBVPSC_LOGGING + f<<" reinserting out of date (reinsert later)"<timeStamp=blockTimeCtr; + in->push(v); + } + if(in->empty()) { + v=NULL; + } else { + v=in->top(); + } + return v; +} +Constraint *Block::findMinOutConstraint() { + if(out->empty()) return NULL; + Constraint *v = out->top(); + while (v->left->block == v->right->block) { + out->pop(); + if(out->empty()) return NULL; + v = out->top(); + } + return v; +} +void Block::deleteMinInConstraint() { + in->pop(); +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<"deleteMinInConstraint... "<pop(); +} +inline bool Block::canFollowLeft(Constraint const* c, Variable const* last) const { + return c->left->block==this && c->active && last!=c->left; +} +inline bool Block::canFollowRight(Constraint const* c, Variable const* last) const { + return c->right->block==this && c->active && last!=c->right; +} + +// computes the derivative of v and the lagrange multipliers +// of v's out constraints (as the recursive sum of those below. +// Does not backtrack over u. +// also records the constraint with minimum lagrange multiplier +// in min_lm +double Block::compute_dfdv(Variable* const v, Variable* const u, + Constraint *&min_lm) { + double dfdv=v->dfdv(); + for(Cit it=v->out.begin();it!=v->out.end();++it) { + Constraint *c=*it; + if(canFollowRight(c,u)) { + c->lm=compute_dfdv(c->right,v,min_lm); + dfdv+=c->lm*c->left->scale; + if(!c->equality&&(min_lm==NULL||c->lmlm)) min_lm=c; + } + } + for(Cit it=v->in.begin();it!=v->in.end();++it) { + Constraint *c=*it; + if(canFollowLeft(c,u)) { + c->lm=-compute_dfdv(c->left,v,min_lm); + dfdv-=c->lm*c->right->scale; + if(!c->equality&&(min_lm==NULL||c->lmlm)) min_lm=c; + } + } + return dfdv/v->scale; +} +double Block::compute_dfdv(Variable* const v, Variable* const u) { + double dfdv = v->dfdv(); + for(Cit it = v->out.begin(); it != v->out.end(); ++it) { + Constraint *c = *it; + if(canFollowRight(c,u)) { + c->lm = compute_dfdv(c->right,v); + dfdv += c->lm * c->left->scale; + } + } + for(Cit it=v->in.begin();it!=v->in.end();++it) { + Constraint *c = *it; + if(canFollowLeft(c,u)) { + c->lm = - compute_dfdv(c->left,v); + dfdv -= c->lm * c->right->scale; + } + } + return dfdv/v->scale; +} + +// The top level v and r are variables between which we want to find the +// constraint with the smallest lm. +// Similarly, m is initially NULL and is only assigned a value if the next +// variable to be visited is r or if a possible min constraint is returned from +// a nested call (rather than NULL). +// Then, the search for the m with minimum lm occurs as we return from +// the recursion (checking only constraints traversed left-to-right +// in order to avoid creating any new violations). +// We also do not consider equality constraints as potential split points +bool Block::split_path( + Variable* r, + Variable* const v, + Variable* const u, + Constraint* &m, + bool desperation=false + ) +{ + for(Cit it(v->in.begin());it!=v->in.end();++it) { + Constraint *c=*it; + if(canFollowLeft(c,u)) { +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<" left split path: "<<*c<left==r) { + if(desperation&&!c->equality) m=c; + return true; + } else { + if(split_path(r,c->left,v,m)) { + if(desperation && !c->equality && (!m||c->lmlm)) { + m=c; + } + return true; + } + } + } + } + for(Cit it(v->out.begin());it!=v->out.end();++it) { + Constraint *c=*it; + if(canFollowRight(c,u)) { +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<" right split path: "<<*c<right==r) { + if(!c->equality) m=c; + return true; + } else { + if(split_path(r,c->right,v,m)) { + if(!c->equality && (!m||c->lmlm)) + m=c; + return true; + } + } + } + } + return false; +} +/* +Block::Pair Block::compute_dfdv_between( + Variable* r, Variable* const v, Variable* const u, + const Direction dir = NONE, bool changedDirection = false) { + double dfdv=v->weight*(v->position() - v->desiredPosition); + Constraint *m=NULL; + for(Cit it(v->in.begin());it!=v->in.end();++it) { + Constraint *c=*it; + if(canFollowLeft(c,u)) { + if(dir==RIGHT) { + changedDirection = true; + } + if(c->left==r) { + r=NULL; + if(!c->equality) m=c; + } + Pair p=compute_dfdv_between(r,c->left,v, + LEFT,changedDirection); + dfdv -= c->lm = -p.first; + if(r && p.second) + m = p.second; + } + } + for(Cit it(v->out.begin());it!=v->out.end();++it) { + Constraint *c=*it; + if(canFollowRight(c,u)) { + if(dir==LEFT) { + changedDirection = true; + } + if(c->right==r) { + r=NULL; + if(!c->equality) m=c; + } + Pair p=compute_dfdv_between(r,c->right,v, + RIGHT,changedDirection); + dfdv += c->lm = p.first; + if(r && p.second) + m = changedDirection && !c->equality && c->lm < p.second->lm + ? c + : p.second; + } + } + return Pair(dfdv,m); +} +*/ + +// resets LMs for all active constraints to 0 by +// traversing active constraint tree starting from v, +// not back tracking over u +void Block::reset_active_lm(Variable* const v, Variable* const u) { + for(Cit it=v->out.begin();it!=v->out.end();++it) { + Constraint *c=*it; + if(canFollowRight(c,u)) { + c->lm=0; + reset_active_lm(c->right,v); + } + } + for(Cit it=v->in.begin();it!=v->in.end();++it) { + Constraint *c=*it; + if(canFollowLeft(c,u)) { + c->lm=0; + reset_active_lm(c->left,v); + } + } +} +void Block::list_active(Variable* const v, Variable* const u) { + for(Cit it=v->out.begin();it!=v->out.end();++it) { + Constraint *c=*it; + if(canFollowRight(c,u)) { +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<" "<<*c<right,v); + } + } + for(Cit it=v->in.begin();it!=v->in.end();++it) { + Constraint *c=*it; + if(canFollowLeft(c,u)) { +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<" "<<*c<left,v); + } + } +} +/* + * finds the constraint with the minimum lagrange multiplier, that is, the constraint + * that most wants to split + */ +Constraint *Block::findMinLM() { + Constraint *min_lm=NULL; + reset_active_lm(vars->front(),NULL); + compute_dfdv(vars->front(),NULL,min_lm); +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<" langrangians: "<front(),NULL); +#endif + return min_lm; +} +Constraint *Block::findMinLMBetween(Variable* const lv, Variable* const rv) { + reset_active_lm(vars->front(),NULL); + compute_dfdv(vars->front(),NULL); + Constraint *min_lm=NULL; + split_path(rv,lv,NULL,min_lm); +#if 0 + if(min_lm==NULL) { + split_path(rv,lv,NULL,min_lm,true); + } +#else + if(min_lm==NULL) { + fprintf(stderr,"Couldn't find split point!\n"); + UnsatisfiableException e; + getActivePathBetween(e.path,lv,rv,NULL); + throw e; + } + COLA_ASSERT(min_lm!=NULL); +#endif + return min_lm; +} + +// populates block b by traversing the active constraint tree adding variables as they're +// visited. Starts from variable v and does not backtrack over variable u. +void Block::populateSplitBlock(Block *b, Variable* v, Variable const* u) { + b->addVariable(v); + for (Cit c=v->in.begin();c!=v->in.end();++c) { + if (canFollowLeft(*c,u)) + populateSplitBlock(b, (*c)->left, v); + } + for (Cit c=v->out.begin();c!=v->out.end();++c) { + if (canFollowRight(*c,u)) + populateSplitBlock(b, (*c)->right, v); + } +} +/* + * Returns the active path between variables u and v... not back tracking over w + */ +bool Block::getActivePathBetween(Constraints& path, Variable const* u, + Variable const* v, Variable const *w) const { + if(u==v) return true; + for (Cit_const c=u->in.begin();c!=u->in.end();++c) { + if (canFollowLeft(*c,w)) { + if(getActivePathBetween(path, (*c)->left, v, u)) { + path.push_back(*c); + return true; + } + } + } + for (Cit_const c=u->out.begin();c!=u->out.end();++c) { + if (canFollowRight(*c,w)) { + if(getActivePathBetween(path, (*c)->right, v, u)) { + path.push_back(*c); + return true; + } + } + } + return false; +} +// Search active constraint tree from u to see if there is a directed path to v. +// Returns true if path is found with all constraints in path having their visited flag +// set true. +bool Block::isActiveDirectedPathBetween(Variable const* u, Variable const* v) const { + if(u==v) return true; + for (Cit_const c=u->out.begin();c!=u->out.end();++c) { + if(canFollowRight(*c,NULL)) { + if(isActiveDirectedPathBetween((*c)->right,v)) { + return true; + } + } + } + return false; +} +bool Block::getActiveDirectedPathBetween( + Constraints& path, Variable const* u, Variable const* v) const { + if(u==v) return true; + for (Cit_const c=u->out.begin();c!=u->out.end();++c) { + if(canFollowRight(*c,NULL)) { + if(getActiveDirectedPathBetween(path,(*c)->right,v)) { + path.push_back(*c); + return true; + } + } + } + return false; +} +/* + * Block needs to be split because of a violated constraint between vl and vr. + * We need to search the active constraint tree between l and r and find the constraint + * with min lagrangrian multiplier and split at that point. + * Returns the split constraint + */ +Constraint* Block::splitBetween(Variable* const vl, Variable* const vr, + Block* &lb, Block* &rb) { +#ifdef LIBVPSC_LOGGING + ofstream f(LOGFILE,ios::app); + f<<" need to split between: "<<*vl<<" and "<<*vr<active=false; + l=new Block(); + populateSplitBlock(l,c->left,c->right); + //COLA_ASSERT(l->weight>0); + r=new Block(); + populateSplitBlock(r,c->right,c->left); + //COLA_ASSERT(r->weight>0); +} + +/* + * Computes the cost (squared euclidean distance from desired positions) of the + * current positions for variables in this block + */ +double Block::cost() { + double c = 0; + for (Vit v=vars->begin();v!=vars->end();++v) { + double diff = (*v)->position() - (*v)->desiredPosition; + c += (*v)->weight * diff * diff; + } + return c; +} +ostream& operator <<(ostream &os, const Block& b) +{ + os<<"Block(posn="<begin();v!=b.vars->end();++v) { + os<<" "<<**v; + } + if(b.deleted) { + os<<" Deleted!"; + } + return os; +} + +Constraint::Constraint(Variable *left, Variable *right, double gap, bool equality) +: left(left), + right(right), + gap(gap), + timeStamp(0), + active(false), + equality(equality), + unsatisfiable(false) +{ + // In hindsight I think it's probably better to build the constraint DAG + // (by creating variable in/out lists) when needed, rather than in advance + //left->out.push_back(this); + //right->in.push_back(this); +} +Constraint::~Constraint() { + // see constructor: the following is just way too slow. + // Better to create a + // new DAG on demand than maintain the lists dynamically. + //Constraints::iterator i; + //for(i=left->out.begin(); i!=left->out.end(); i++) { + //if(*i==this) break; + //} + //left->out.erase(i); + //for(i=right->in.begin(); i!=right->in.end(); i++) { + //if(*i==this) break; + //} + //right->in.erase(i); +} +double Constraint::slack() const { + return unsatisfiable ? DBL_MAX + : right->scale * right->position() + - gap - left->scale * left->position(); +} +std::ostream& operator <<(std::ostream &os, const Constraint &c) +{ + if(&c==NULL) { + os<<"NULL"; + } else { + const char *type=c.equality?"=":"<="; + std::ostringstream lscale, rscale; + if(c.left->scale!=1) { + lscale << c.left->scale << "*"; + } + if(c.right->scale!=1) { + rscale << c.right->scale << "*"; + } + os<block&&c.right->block) + os<<"("<left->block->timeStamp > l->timeStamp + ||l->left->block==l->right->block + ?-DBL_MAX:l->slack(); + double const sr = + r->left->block->timeStamp > r->timeStamp + ||r->left->block==r->right->block + ?-DBL_MAX:r->slack(); + if(sl==sr) { + // arbitrary choice based on id + if(l->left->id==r->left->id) { + if(l->right->idright->id) return true; + return false; + } + if(l->left->idleft->id) return true; + return false; + } + return sl > sr; +} + +std::ostream& operator <<(std::ostream &os, const Variable &v) { + if(v.block) + os << "(" << v.id << "=" << v.position() << ")"; + else + os << "(" << v.id << "=" << v.desiredPosition << ")"; + return os; +} + +} diff --git a/src/libavoid/vpsc.h b/src/libavoid/vpsc.h new file mode 100644 index 000000000..4d6d8ce61 --- /dev/null +++ b/src/libavoid/vpsc.h @@ -0,0 +1,255 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libavoid - Fast, Incremental, Object-avoiding Line Router + * + * Copyright (C) 2005-2009 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * See the file LICENSE.LGPL distributed with the library. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * library. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Author(s): Tim Dwyer + * + * -------------- + * + * This file contains a slightly modified version of Solver() from libvpsc: + * A solver for the problem of Variable Placement with Separation Constraints. + * It has the following changes from the Adaptagrams VPSC version: + * - The required VPSC code has been consolidated into a single file. + * - Unnecessary code (like Solver) has been removed. + * - The PairingHeap code has been replaced by a STL priority_queue. + * + * Modifications: Michael Wybrow + * +*/ + +#ifndef LIBAVOID_VPSC_H +#define LIBAVOID_VPSC_H + +#include +#include +#include +#include + +namespace Avoid { + +class Variable; +class Constraint; +typedef std::vector Variables; +typedef std::vector Constraints; +class CompareConstraints { +public: + bool operator() (Constraint *const &l, Constraint *const &r) const; +}; +struct PositionStats { + PositionStats() : scale(0), AB(0), AD(0), A2(0) {} + void addVariable(Variable* const v); + double scale; + double AB; + double AD; + double A2; +}; + +typedef std::priority_queue, + CompareConstraints> Heap; + +class Block +{ + typedef Variables::iterator Vit; + typedef Constraints::iterator Cit; + typedef Constraints::const_iterator Cit_const; + + friend std::ostream& operator <<(std::ostream &os,const Block &b); +public: + Variables *vars; + double posn; + //double weight; + //double wposn; + PositionStats ps; + Block(Variable* const v=NULL); + ~Block(void); + Constraint* findMinLM(); + Constraint* findMinLMBetween(Variable* const lv, Variable* const rv); + Constraint* findMinInConstraint(); + Constraint* findMinOutConstraint(); + void deleteMinInConstraint(); + void deleteMinOutConstraint(); + void updateWeightedPosition(); + void merge(Block *b, Constraint *c, double dist); + Block* merge(Block *b, Constraint *c); + void mergeIn(Block *b); + void mergeOut(Block *b); + void split(Block *&l, Block *&r, Constraint *c); + Constraint* splitBetween(Variable* vl, Variable* vr, Block* &lb, Block* &rb); + void setUpInConstraints(); + void setUpOutConstraints(); + double cost(); + bool deleted; + long timeStamp; + Heap *in; + Heap *out; + bool getActivePathBetween(Constraints& path, Variable const* u, + Variable const* v, Variable const *w) const; + bool isActiveDirectedPathBetween( + Variable const* u, Variable const* v) const; + bool getActiveDirectedPathBetween(Constraints& path, Variable const * u, Variable const * v) const; +private: + typedef enum {NONE, LEFT, RIGHT} Direction; + typedef std::pair Pair; + void reset_active_lm(Variable* const v, Variable* const u); + void list_active(Variable* const v, Variable* const u); + double compute_dfdv(Variable* const v, Variable* const u); + double compute_dfdv(Variable* const v, Variable* const u, Constraint *&min_lm); + bool split_path(Variable*, Variable* const, Variable* const, + Constraint* &min_lm, bool desperation); + bool canFollowLeft(Constraint const* c, Variable const* last) const; + bool canFollowRight(Constraint const* c, Variable const* last) const; + void populateSplitBlock(Block *b, Variable* v, Variable const* u); + void addVariable(Variable* v); + void setUpConstraintHeap(Heap* &h,bool in); +}; + + +class Constraint; +typedef std::vector Constraints; +class Variable +{ + friend std::ostream& operator <<(std::ostream &os, const Variable &v); + friend class Block; + friend class Constraint; + friend class IncSolver; +public: + int id; // useful in log files + double desiredPosition; + double finalPosition; + double weight; // how much the variable wants to + // be at it's desired position + double scale; // translates variable to another space + double offset; + Block *block; + bool visited; + bool fixedDesiredPosition; + Constraints in; + Constraints out; + char *toString(); + inline Variable(const int id, const double desiredPos=-1.0, + const double weight=1.0, const double scale=1.0) + : id(id) + , desiredPosition(desiredPos) + , weight(weight) + , scale(scale) + , offset(0) + , block(NULL) + , visited(false) + , fixedDesiredPosition(false) + { + } + double dfdv() const { + return 2. * weight * ( position() - desiredPosition ); + } +private: + double position() const { + return (block->ps.scale*block->posn+offset)/scale; + } +}; + + +class Constraint +{ + friend std::ostream& operator <<(std::ostream &os,const Constraint &c); +public: + Variable *left; + Variable *right; + double gap; + double lm; + Constraint(Variable *left, Variable *right, double gap, bool equality=false); + ~Constraint(); + double slack() const; + long timeStamp; + bool active; + const bool equality; + bool unsatisfiable; +}; +/* + * A block structure defined over the variables such that each block contains + * 1 or more variables, with the invariant that all constraints inside a block + * are satisfied by keeping the variables fixed relative to one another + */ +class Blocks : public std::set +{ +public: + Blocks(Variables const &vs); + ~Blocks(void); + void mergeLeft(Block *r); + void mergeRight(Block *l); + void split(Block *b, Block *&l, Block *&r, Constraint *c); + std::list *totalOrder(); + void cleanup(); + double cost(); +private: + void dfsVisit(Variable *v, std::list *order); + void removeBlock(Block *doomed); + Variables const &vs; + int nvs; +}; + +extern long blockTimeCtr; + +struct UnsatisfiableException { + Constraints path; +}; +struct UnsatisfiedConstraint { + UnsatisfiedConstraint(Constraint& c):c(c) {} + Constraint& c; +}; +/* + * Variable Placement with Separation Constraints problem instance + */ +class IncSolver { +public: + unsigned splitCnt; + bool satisfy(); + bool solve(); + void moveBlocks(); + void splitBlocks(); + IncSolver(Variables const &vs, Constraints const &cs); + + ~IncSolver(); + Variables const & getVariables() { return vs; } +protected: + Blocks *bs; + unsigned m; + Constraints const &cs; + unsigned n; + Variables const &vs; + void printBlocks(); + void copyResult(); +private: + bool constraintGraphIsCyclic(const unsigned n, Variable* const vs[]); + bool blockGraphIsCyclic(); + Constraints inactive; + Constraints violated; + Constraint* mostViolated(Constraints &l); +}; + +struct delete_object +{ + template + void operator()(T *ptr){ delete ptr;} +}; + + +} + +#endif // AVOID_VPSC_H -- 2.30.2