summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--.travis.yml12
-rw-r--r--Makefile4
-rw-r--r--git-hooks/README.md1
-rwxr-xr-xgit-hooks/pre-commit14
-rw-r--r--lib/extensions/install.py4
-rw-r--r--lib/extensions/params.py8
-rw-r--r--lib/i18n.py2
-rw-r--r--lib/inx/utils.py2
-rw-r--r--lib/simulator.py66
-rw-r--r--messages.po1312
-rw-r--r--translations/messages_af_ZA.po145
-rw-r--r--translations/messages_ar_SA.po145
-rw-r--r--translations/messages_ca_ES.po145
-rw-r--r--translations/messages_cs_CZ.po145
-rw-r--r--translations/messages_da_DK.po145
-rw-r--r--translations/messages_de_DE.po165
-rw-r--r--translations/messages_el_GR.po145
-rw-r--r--translations/messages_en_US.po145
-rw-r--r--translations/messages_es_ES.po145
-rw-r--r--translations/messages_fi_FI.po145
-rw-r--r--translations/messages_fr_FR.po393
-rw-r--r--translations/messages_he_IL.po145
-rw-r--r--translations/messages_hu_HU.po145
-rw-r--r--translations/messages_it_IT.po145
-rw-r--r--translations/messages_ja_JP.po145
-rw-r--r--translations/messages_ko_KR.po145
-rw-r--r--translations/messages_nl_NL.po145
-rw-r--r--translations/messages_no_NO.po145
-rw-r--r--translations/messages_pl_PL.po145
-rw-r--r--translations/messages_pt_BR.po145
-rw-r--r--translations/messages_pt_PT.po149
-rw-r--r--translations/messages_ro_RO.po145
-rw-r--r--translations/messages_ru_RU.po145
-rw-r--r--translations/messages_sr_SP.po145
-rw-r--r--translations/messages_sv_SE.po145
-rw-r--r--translations/messages_tr_TR.po145
-rw-r--r--translations/messages_uk_UA.po145
-rw-r--r--translations/messages_vi_VN.po145
-rw-r--r--translations/messages_zh_CN.po145
-rw-r--r--translations/messages_zh_TW.po145
41 files changed, 2750 insertions, 3298 deletions
diff --git a/.gitignore b/.gitignore
index 321f4996..f0728d0b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@ dist/
build/
locales/
/inx/
+messages.po
diff --git a/.travis.yml b/.travis.yml
index 7b5adaea..060e5581 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -30,7 +30,7 @@ matrix:
env: BUILD=osx
if: type != cron AND (tag =~ ^v[0-9.]+$ OR branch != master)
- - language: java
+ - language: python
sudo: false
env: CROWDIN=true
if: type = cron
@@ -158,9 +158,15 @@ script:
wget https://downloads.crowdin.com/cli/v2/crowdin-cli.zip
unzip -j crowdin-cli.zip
- java -jar crowdin-cli.jar upload -b master
- java -jar crowdin-cli.jar pull -b master
+ pip install flask==0.* jinja2 Babel ./pyembroidery
+ make messages.po
+ echo "uploading messages.po to crowdin"
+ java -jar crowdin-cli.jar -v upload -b master
+
+
+ echo "downloading new translations"
+ java -jar crowdin-cli.jar -v pull -b master
# Try to only commit if translations changed. Crowdin will update all
# files when a new translation string is added but we don't need to
# commit those until folks actually translate the new strings.
diff --git a/Makefile b/Makefile
index ace17e92..79d930a8 100644
--- a/Makefile
+++ b/Makefile
@@ -39,6 +39,10 @@ messages.po:
pybabel extract -o messages.po -F babel.conf --add-location=full --add-comments=l10n,L10n,L10N --sort-by-file --strip-comments -k N_ .
rm pyembroidery-format-descriptions.py
+.PHONY: clean
+clean:
+ rm -f messages.po pyembroidery-format-descriptions.py
+
.PHONY: locales
locales:
# message files will look like this:
diff --git a/git-hooks/README.md b/git-hooks/README.md
deleted file mode 100644
index 910f476a..00000000
--- a/git-hooks/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Files in this directory are meant to be symlinked or copied into your local clone's .git/hooks directory.
diff --git a/git-hooks/pre-commit b/git-hooks/pre-commit
deleted file mode 100755
index 99f59729..00000000
--- a/git-hooks/pre-commit
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-make messages.po > /dev/null 2>&1
-
-# This monstrosity asks how many lines changed, but it ignores changes to the
-# "POT-Creation-Date" line. In other words, if all that's changed is the
-# "POT-Creation-Date", don't bother adding messages.po
-lines_changed=$(git -c difftool.ignorepot.cmd='diff -u -I "POT-Creation-Date" "$LOCAL" "$REMOTE"' difftool -t ignorepot -y messages.po | wc -l)
-
-if [ "$lines_changed" = 0 ]; then
- git checkout messages.po
-else
- git add messages.po
-fi
diff --git a/lib/extensions/install.py b/lib/extensions/install.py
index c6dadd42..f9ffe958 100644
--- a/lib/extensions/install.py
+++ b/lib/extensions/install.py
@@ -24,8 +24,8 @@ class InstallerFrame(wx.Frame):
text = (_('Ink/Stitch can install files ("add-ons") that make it easier to use Inkscape to create machine embroidery designs. '
'These add-ons will be installed:') +
- "\n\n • " + _("thread manufacturer color palettes") +
- "\n • " + _("Ink/Stitch visual commands (Object -> Symbols...)"))
+ u"\n\n • " + _("thread manufacturer color palettes") +
+ u"\n • " + _("Ink/Stitch visual commands (Object -> Symbols...)"))
static_text = wx.StaticText(panel, label=text)
font = wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL)
diff --git a/lib/extensions/params.py b/lib/extensions/params.py
index 784b6be7..b1db1b31 100644
--- a/lib/extensions/params.py
+++ b/lib/extensions/params.py
@@ -252,16 +252,16 @@ class ParamsTab(ScrolledPanel):
description = _("These settings will be applied to %d objects.") % len(self.nodes)
if any(len(param.values) > 1 for param in self.params):
- description += "\n • " + _("Some settings had different values across objects. Select a value from the dropdown or enter a new one.")
+ description += u"\n • " + _("Some settings had different values across objects. Select a value from the dropdown or enter a new one.")
if self.dependent_tabs:
if len(self.dependent_tabs) == 1:
- description += "\n • " + _("Disabling this tab will disable the following %d tabs.") % len(self.dependent_tabs)
+ description += u"\n • " + _("Disabling this tab will disable the following %d tabs.") % len(self.dependent_tabs)
else:
- description += "\n • " + _("Disabling this tab will disable the following tab.")
+ description += u"\n • " + _("Disabling this tab will disable the following tab.")
if self.paired_tab:
- description += "\n • " + _("Enabling this tab will disable %s and vice-versa.") % self.paired_tab.name
+ description += u"\n • " + _("Enabling this tab will disable %s and vice-versa.") % self.paired_tab.name
self.description_text = description
diff --git a/lib/i18n.py b/lib/i18n.py
index 045fa1b2..98f63ec1 100644
--- a/lib/i18n.py
+++ b/lib/i18n.py
@@ -30,7 +30,7 @@ def localize(languages=None):
global translation, _
translation = gettext.translation("inkstitch", locale_dir, fallback=True)
- _ = translation.gettext
+ _ = translation.ugettext
_set_locale_dir()
diff --git a/lib/inx/utils.py b/lib/inx/utils.py
index 54b37c58..a22b1892 100644
--- a/lib/inx/utils.py
+++ b/lib/inx/utils.py
@@ -44,7 +44,7 @@ def iterate_inx_locales():
# generate menu items for this language in Inkscape's "Extensions"
# menu.
magic_string = N_("Generate INX files")
- translated_magic_string = translation.gettext(magic_string)
+ translated_magic_string = translation.ugettext(magic_string)
if translated_magic_string != magic_string or locale == "en_US":
current_translation = translation
diff --git a/lib/simulator.py b/lib/simulator.py
index 4408adb8..34d12887 100644
--- a/lib/simulator.py
+++ b/lib/simulator.py
@@ -20,6 +20,7 @@ COLOR_CHANGE = 4
class ControlPanel(wx.Panel):
""""""
+
def __init__(self, parent, *args, **kwargs):
""""""
self.parent = parent
@@ -29,6 +30,8 @@ class ControlPanel(wx.Panel):
kwargs['style'] = wx.BORDER_SUNKEN
wx.Panel.__init__(self, parent, *args, **kwargs)
+ self.statusbar = self.GetTopLevelParent().statusbar
+
self.drawing_panel = None
self.num_stitches = 1
self.current_stitch = 1
@@ -38,27 +41,33 @@ class ControlPanel(wx.Panel):
# Widgets
self.btnMinus = wx.Button(self, -1, label='-')
self.btnMinus.Bind(wx.EVT_BUTTON, self.animation_slow_down)
+ self.btnMinus.SetToolTip(_('Slow down (arrow down)'))
self.btnPlus = wx.Button(self, -1, label='+')
self.btnPlus.Bind(wx.EVT_BUTTON, self.animation_speed_up)
+ self.btnPlus.SetToolTip(_('Speed up (arrow up)'))
self.btnBackwardStitch = wx.Button(self, -1, label='<|')
self.btnBackwardStitch.Bind(wx.EVT_BUTTON, self.animation_one_stitch_backward)
+ self.btnBackwardStitch.SetToolTip(_('Go on step backward (-)'))
self.btnForwardStitch = wx.Button(self, -1, label='|>')
self.btnForwardStitch.Bind(wx.EVT_BUTTON, self.animation_one_stitch_forward)
+ self.btnForwardStitch.SetToolTip(_('Go on step forward (+)'))
self.directionBtn = wx.Button(self, -1, label='<<')
self.directionBtn.Bind(wx.EVT_BUTTON, self.on_direction_button)
+ self.directionBtn.SetToolTip(_('Switch direction (arrow left | arrow right)'))
self.pauseBtn = wx.Button(self, -1, label=_('Pause'))
self.pauseBtn.Bind(wx.EVT_BUTTON, self.on_pause_start_button)
+ self.pauseBtn.SetToolTip(_('Pause (P)'))
self.restartBtn = wx.Button(self, -1, label=_('Restart'))
self.restartBtn.Bind(wx.EVT_BUTTON, self.animation_restart)
+ self.restartBtn.SetToolTip(_('Restart (R)'))
self.quitBtn = wx.Button(self, -1, label=_('Quit'))
self.quitBtn.Bind(wx.EVT_BUTTON, self.animation_quit)
+ self.quitBtn.SetToolTip(_('Quit (Q)'))
self.slider = wx.Slider(self, -1, value=1, minValue=1, maxValue=2,
style=wx.SL_HORIZONTAL | wx.SL_LABELS)
self.slider.Bind(wx.EVT_SLIDER, self.on_slider)
self.stitchBox = IntCtrl(self, -1, value=1, min=1, max=2, limited=True, allow_none=False)
self.stitchBox.Bind(wx.EVT_TEXT, self.on_stitch_box)
- self.speedST = wx.StaticText(self, -1, label='', style=wx.ALIGN_CENTER)
- self.commandST = wx.StaticText(self, -1, label='', style=wx.ALIGN_CENTER)
# Layout
self.vbSizer = vbSizer = wx.BoxSizer(wx.VERTICAL)
@@ -67,20 +76,16 @@ class ControlPanel(wx.Panel):
hbSizer1.Add(self.slider, 1, wx.EXPAND | wx.ALL, 3)
hbSizer1.Add(self.stitchBox, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 2)
vbSizer.Add(hbSizer1, 1, wx.EXPAND | wx.ALL, 3)
- hbSizer2.Add(self.speedST, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 2)
- hbSizer2.AddStretchSpacer(prop=1)
- hbSizer2.Add(self.commandST, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 2)
- hbSizer2.AddStretchSpacer(prop=1)
- hbSizer2.Add(self.btnMinus, 0, wx.ALL, 2)
- hbSizer2.Add(self.btnPlus, 0, wx.ALL, 2)
- hbSizer2.Add(self.btnBackwardStitch, 0, wx.ALL, 2)
- hbSizer2.Add(self.btnForwardStitch, 0, wx.ALL, 2)
+ hbSizer2.Add(self.btnMinus, 0, wx.EXPAND | wx.ALL, 2)
+ hbSizer2.Add(self.btnPlus, 0, wx.EXPAND | wx.ALL, 2)
+ hbSizer2.Add(self.btnBackwardStitch, 0, wx.EXPAND | wx.ALL, 2)
+ hbSizer2.Add(self.btnForwardStitch, 0, wx.EXPAND | wx.ALL, 2)
hbSizer2.Add(self.directionBtn, 0, wx.EXPAND | wx.ALL, 2)
hbSizer2.Add(self.pauseBtn, 0, wx.EXPAND | wx.ALL, 2)
hbSizer2.Add(self.restartBtn, 0, wx.EXPAND | wx.ALL, 2)
hbSizer2.Add(self.quitBtn, 0, wx.EXPAND | wx.ALL, 2)
vbSizer.Add(hbSizer2, 0, wx.EXPAND | wx.ALL, 3)
- self.SetSizer(vbSizer)
+ self.SetSizerAndFit(vbSizer)
# Keyboard Shortcuts
shortcut_keys = [
@@ -150,12 +155,10 @@ class ControlPanel(wx.Panel):
self.update_speed_text()
def on_direction_button(self, event):
- evtObj = event.GetEventObject()
- lbl = evtObj.GetLabel()
if self.direction == 1:
- self.animation_forward()
- else:
self.animation_reverse()
+ else:
+ self.animation_forward()
def set_speed(self, speed):
self.speed = int(max(speed, 1))
@@ -165,10 +168,9 @@ class ControlPanel(wx.Panel):
self.drawing_panel.set_speed(self.speed)
def update_speed_text(self):
- self.speedST.SetLabel(_('Speed: %d stitches/sec') % (self.speed * self.direction))
+ self.statusbar.SetStatusText(_('Speed: %d stitches/sec') % (self.speed * self.direction), 0)
self.hbSizer2.Layout()
-
def on_slider(self, event):
stitch = event.GetEventObject().GetValue()
self.stitchBox.SetValue(stitch)
@@ -181,7 +183,7 @@ class ControlPanel(wx.Panel):
self.current_stitch = stitch
self.slider.SetValue(stitch)
self.stitchBox.SetValue(stitch)
- self.commandST.SetLabel(COMMAND_NAMES[command])
+ self.statusbar.SetStatusText(COMMAND_NAMES[command], 1)
def on_stitch_box(self, event):
stitch = self.stitchBox.GetValue()
@@ -218,9 +220,11 @@ class ControlPanel(wx.Panel):
self.animation_start()
def animation_one_stitch_forward(self, event):
+ self.animation_pause()
self.drawing_panel.one_stitch_forward()
def animation_one_stitch_backward(self, event):
+ self.animation_pause()
self.drawing_panel.one_stitch_backward()
def animation_quit(self, event):
@@ -229,6 +233,7 @@ class ControlPanel(wx.Panel):
def animation_restart(self, event):
self.drawing_panel.restart()
+
class DrawingPanel(wx.Panel):
""""""
@@ -251,6 +256,9 @@ class DrawingPanel(wx.Panel):
kwargs['style'] = wx.BORDER_SUNKEN
wx.Panel.__init__(self, *args, **kwargs)
+ # Drawing panel can really be any size, but without this wxpython likes
+ # to allow the status bar and control panel to get squished.
+ self.SetMinSize((100, 100))
self.SetBackgroundColour('#FFFFFF')
self.SetDoubleBuffered(True)
@@ -305,8 +313,6 @@ class DrawingPanel(wx.Panel):
stitch_increment = int(self.speed * frame_time)
- #print >> sys.stderr, time.time(), "animate", self.current_stitch, stitch_increment, self.last_frame_duration, frame_time
-
self.set_current_stitch(self.current_stitch + self.direction * stitch_increment)
wx.CallLater(int(1000 * frame_time), self.animate)
@@ -320,7 +326,6 @@ class DrawingPanel(wx.Panel):
transform = canvas.GetTransform()
transform.Translate(*self.pan)
transform.Scale(self.zoom / self.PIXEL_DENSITY, self.zoom / self.PIXEL_DENSITY)
- #transform.Translate(self.pan[0] * self.PIXEL_DENSITY, self.pan[1] * self.PIXEL_DENSITY)
canvas.SetTransform(transform)
stitch = 0
@@ -535,15 +540,14 @@ class DrawingPanel(wx.Panel):
# Finally, compensate for that change in position:
self.pan = (self.pan[0] - x_delta, self.pan[1] - y_delta)
-
self.zoom *= zoom_delta
-
self.Refresh()
class SimulatorPanel(wx.Panel):
""""""
+
def __init__(self, parent, *args, **kwargs):
""""""
self.parent = parent
@@ -563,7 +567,7 @@ class SimulatorPanel(wx.Panel):
vbSizer = wx.BoxSizer(wx.VERTICAL)
vbSizer.Add(self.dp, 1, wx.EXPAND | wx.ALL, 2)
vbSizer.Add(self.cp, 0, wx.EXPAND | wx.ALL, 2)
- self.SetSizer(vbSizer)
+ self.SetSizerAndFit(vbSizer)
def quit(self):
self.parent.quit()
@@ -587,12 +591,25 @@ class EmbroiderySimulator(wx.Frame):
stitch_plan = kwargs.pop('stitch_plan', None)
stitches_per_second = kwargs.pop('stitches_per_second', 16)
target_duration = kwargs.pop('target_duration', None)
+ size = kwargs.get('size', (0, 0))
wx.Frame.__init__(self, *args, **kwargs)
+ self.statusbar = self.CreateStatusBar(2)
+ self.statusbar.SetStatusWidths([250, -1])
+ sizer = wx.BoxSizer(wx.HORIZONTAL)
self.simulator_panel = SimulatorPanel(self,
stitch_plan=stitch_plan,
target_duration=target_duration,
stitches_per_second=stitches_per_second)
+ sizer.Add(self.simulator_panel, 1, wx.EXPAND)
+
+ # self.SetSizerAndFit() sets the minimum size so that the buttons don't
+ # get squished. But it then also shrinks the window down to that size.
+ self.SetSizerAndFit(sizer)
+
+ # Therefore we have to reapply the size that the caller asked for.
+ self.SetSize(size)
+
self.Bind(wx.EVT_CLOSE, self.on_close)
def quit(self):
@@ -618,6 +635,7 @@ class EmbroiderySimulator(wx.Frame):
def clear(self):
self.simulator_panel.clear()
+
def show_simulator(stitch_plan):
app = wx.App()
current_screen = wx.Display.GetFromPoint(wx.GetMousePosition())
diff --git a/messages.po b/messages.po
deleted file mode 100644
index 7756f1cf..00000000
--- a/messages.po
+++ /dev/null
@@ -1,1312 +0,0 @@
-# Translations template for PROJECT.
-# Copyright (C) 2018 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2018.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-09-12 20:51-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
-
-#. command attached to an object
-#: lib/commands.py:13
-msgid "fill_start"
-msgstr ""
-
-#: lib/commands.py:13
-msgid "Fill stitch starting position"
-msgstr ""
-
-#. command attached to an object
-#: lib/commands.py:16
-msgid "fill_end"
-msgstr ""
-
-#: lib/commands.py:16
-msgid "Fill stitch ending position"
-msgstr ""
-
-#. command attached to an object
-#: lib/commands.py:19
-msgid "stop"
-msgstr ""
-
-#: lib/commands.py:19
-msgid "Stop (pause machine) after sewing this object"
-msgstr ""
-
-#. command attached to an object
-#: lib/commands.py:22
-msgid "trim"
-msgstr ""
-
-#: lib/commands.py:22
-msgid "Trim thread after sewing this object"
-msgstr ""
-
-#. command attached to an object
-#: lib/commands.py:25
-msgid "ignore_object"
-msgstr ""
-
-#: lib/commands.py:25
-msgid "Ignore this object (do not stitch)"
-msgstr ""
-
-#. command that affects a layer
-#: lib/commands.py:28
-msgid "ignore_layer"
-msgstr ""
-
-#: lib/commands.py:28
-msgid "Ignore layer (do not stitch any objects in this layer)"
-msgstr ""
-
-#. command that affects entire document
-#: lib/commands.py:31
-msgid "origin"
-msgstr ""
-
-#: lib/commands.py:31
-msgid "Origin for exported embroidery files"
-msgstr ""
-
-#. command that affects entire document
-#: lib/commands.py:34
-msgid "stop_position"
-msgstr ""
-
-#: lib/commands.py:34
-msgid "Jump destination for Stop commands (a.k.a. \"Frame Out position\")."
-msgstr ""
-
-#: lib/commands.py:190
-#, python-format
-msgid ""
-"Error: there is more than one %(command)s command in the document, but "
-"there can only be one. Please remove all but one."
-msgstr ""
-
-#. This is a continuation of the previous error message, letting the user know
-#. what command we're talking about since we don't normally expose the actual
-#. command name to them. Contents of %(description)s are in a separate
-#. translation
-#. string.
-#: lib/commands.py:197
-#, python-format
-msgid "%(command)s: %(description)s"
-msgstr ""
-
-#: lib/elements/auto_fill.py:11
-msgid "AutoFill"
-msgstr ""
-
-#: lib/elements/auto_fill.py:14
-msgid "Automatically routed fill stitching"
-msgstr ""
-
-#: lib/elements/auto_fill.py:34
-msgid "Running stitch length (traversal between sections)"
-msgstr ""
-
-#: lib/elements/auto_fill.py:35
-msgid ""
-"Length of stitches around the outline of the fill region used when moving"
-" from section to section."
-msgstr ""
-
-#: lib/elements/auto_fill.py:43
-msgid "Underlay"
-msgstr ""
-
-#: lib/elements/auto_fill.py:43 lib/elements/auto_fill.py:52
-#: lib/elements/auto_fill.py:68 lib/elements/auto_fill.py:79
-#: lib/elements/auto_fill.py:89
-msgid "AutoFill Underlay"
-msgstr ""
-
-#: lib/elements/auto_fill.py:49
-msgid "Fill angle"
-msgstr ""
-
-#: lib/elements/auto_fill.py:50
-msgid "default: fill angle + 90 deg"
-msgstr ""
-
-#: lib/elements/auto_fill.py:65
-msgid "Row spacing"
-msgstr ""
-
-#: lib/elements/auto_fill.py:66
-msgid "default: 3x fill row spacing"
-msgstr ""
-
-#: lib/elements/auto_fill.py:76
-msgid "Max stitch length"
-msgstr ""
-
-#: lib/elements/auto_fill.py:77
-msgid "default: equal to fill max stitch length"
-msgstr ""
-
-#: lib/elements/auto_fill.py:86
-msgid "Inset"
-msgstr ""
-
-#: lib/elements/auto_fill.py:87
-msgid ""
-"Shrink the shape before doing underlay, to prevent underlay from showing "
-"around the outside of the fill."
-msgstr ""
-
-#: lib/elements/auto_fill.py:97
-msgid "Expand"
-msgstr ""
-
-#: lib/elements/auto_fill.py:98
-msgid ""
-"Expand the shape before fill stitching, to compensate for gaps between "
-"shapes."
-msgstr ""
-
-#: lib/elements/element.py:202
-#, python-format
-msgid ""
-"Object %(id)s has an empty 'd' attribute. Please delete this object from"
-" your document."
-msgstr ""
-
-#: lib/elements/element.py:234
-#, python-format
-msgid "%(id)s has more than one command of type '%(command)s' linked to it"
-msgstr ""
-
-#. used when showing an error message to the user such as "satin column: One or
-#. more of the rungs doesn't
-#. intersect both rails."
-#: lib/elements/element.py:273
-msgid "error:"
-msgstr ""
-
-#: lib/elements/fill.py:12
-msgid "Fill"
-msgstr ""
-
-#: lib/elements/fill.py:19
-msgid "Manually routed fill stitching"
-msgstr ""
-
-#: lib/elements/fill.py:20
-msgid "AutoFill is the default method for generating fill stitching."
-msgstr ""
-
-#: lib/elements/fill.py:29
-msgid "Angle of lines of stitches"
-msgstr ""
-
-#: lib/elements/fill.py:30
-msgid ""
-"The angle increases in a counter-clockwise direction. 0 is horizontal. "
-"Negative angles are allowed."
-msgstr ""
-
-#: lib/elements/fill.py:46
-msgid "Flip fill (start right-to-left)"
-msgstr ""
-
-#: lib/elements/fill.py:47
-msgid ""
-"The flip option can help you with routing your stitch path. When you "
-"enable flip, stitching goes from right-to-left instead of left-to-right."
-msgstr ""
-
-#: lib/elements/fill.py:56
-msgid "Spacing between rows"
-msgstr ""
-
-#: lib/elements/fill.py:57
-msgid "Distance between rows of stitches."
-msgstr ""
-
-#: lib/elements/fill.py:70
-msgid "Maximum fill stitch length"
-msgstr ""
-
-#: lib/elements/fill.py:71
-msgid ""
-"The length of each stitch in a row. Shorter stitch may be used at the "
-"start or end of a row."
-msgstr ""
-
-#: lib/elements/fill.py:80
-msgid "Stagger rows this many times before repeating"
-msgstr ""
-
-#: lib/elements/fill.py:81
-msgid ""
-"Setting this dictates how many rows apart the stitches will be before "
-"they fall in the same column position."
-msgstr ""
-
-#: lib/elements/fill.py:114
-#, python-format
-msgid ""
-"shape %s is so small that it cannot be filled with stitches. Please make"
-" it bigger or delete it."
-msgstr ""
-
-#: lib/elements/fill.py:125
-msgid "shape is not valid. This can happen if the border crosses over itself."
-msgstr ""
-
-#: lib/elements/satin_column.py:10
-msgid "Satin Column"
-msgstr ""
-
-#: lib/elements/satin_column.py:16
-msgid "Custom satin column"
-msgstr ""
-
-#: lib/elements/satin_column.py:22
-msgid "\"E\" stitch"
-msgstr ""
-
-#: lib/elements/satin_column.py:32 lib/elements/stroke.py:55
-msgid "Zig-zag spacing (peak-to-peak)"
-msgstr ""
-
-#: lib/elements/satin_column.py:33
-msgid "Peak-to-peak distance between zig-zags."
-msgstr ""
-
-#: lib/elements/satin_column.py:44
-msgid "Pull compensation"
-msgstr ""
-
-#: lib/elements/satin_column.py:45
-msgid ""
-"Satin stitches pull the fabric together, resulting in a column narrower "
-"than you draw in Inkscape. This setting expands each pair of needle "
-"penetrations outward from the center of the satin column."
-msgstr ""
-
-#: lib/elements/satin_column.py:57
-msgid "Contour underlay"
-msgstr ""
-
-#: lib/elements/satin_column.py:57 lib/elements/satin_column.py:64
-#: lib/elements/satin_column.py:73
-msgid "Contour Underlay"
-msgstr ""
-
-#: lib/elements/satin_column.py:64 lib/elements/satin_column.py:88
-msgid "Stitch length"
-msgstr ""
-
-#: lib/elements/satin_column.py:70
-msgid "Contour underlay inset amount"
-msgstr ""
-
-#: lib/elements/satin_column.py:71
-msgid ""
-"Shrink the outline, to prevent the underlay from showing around the "
-"outside of the satin column."
-msgstr ""
-
-#: lib/elements/satin_column.py:81
-msgid "Center-walk underlay"
-msgstr ""
-
-#: lib/elements/satin_column.py:81 lib/elements/satin_column.py:88
-msgid "Center-Walk Underlay"
-msgstr ""
-
-#: lib/elements/satin_column.py:93
-msgid "Zig-zag underlay"
-msgstr ""
-
-#: lib/elements/satin_column.py:93 lib/elements/satin_column.py:102
-#: lib/elements/satin_column.py:113
-msgid "Zig-zag Underlay"
-msgstr ""
-
-#: lib/elements/satin_column.py:99
-msgid "Zig-Zag spacing (peak-to-peak)"
-msgstr ""
-
-#: lib/elements/satin_column.py:100
-msgid "Distance between peaks of the zig-zags."
-msgstr ""
-
-#: lib/elements/satin_column.py:110
-msgid "Inset amount"
-msgstr ""
-
-#: lib/elements/satin_column.py:111
-msgid "default: half of contour underlay inset"
-msgstr ""
-
-#: lib/elements/satin_column.py:148
-#, python-format
-msgid "satin column: %(id)s: at least two subpaths required (%(num)d found)"
-msgstr ""
-
-#: lib/elements/satin_column.py:173
-msgid ""
-"One or more rails crosses itself, and this is not allowed. Please split "
-"into multiple satin columns."
-msgstr ""
-
-#: lib/elements/satin_column.py:180
-msgid "satin column: One or more of the rungs doesn't intersect both rails."
-msgstr ""
-
-#: lib/elements/satin_column.py:181 lib/elements/satin_column.py:184
-msgid "Each rail should intersect both rungs once."
-msgstr ""
-
-#: lib/elements/satin_column.py:183
-msgid ""
-"satin column: One or more of the rungs intersects the rails more than "
-"once."
-msgstr ""
-
-#: lib/elements/satin_column.py:224
-#, python-format
-msgid "satin column: object %s has a fill (but should not)"
-msgstr ""
-
-#: lib/elements/satin_column.py:228
-#, python-format
-msgid ""
-"satin column: object %(id)s has two paths with an unequal number of "
-"points (%(length1)d and %(length2)d)"
-msgstr ""
-
-#: lib/elements/stroke.py:17
-msgid "Satin stitch along paths"
-msgstr ""
-
-#: lib/elements/stroke.py:31
-msgid "Running stitch length"
-msgstr ""
-
-#: lib/elements/stroke.py:32
-msgid "Length of stitches in running stitch mode."
-msgstr ""
-
-#: lib/elements/stroke.py:43
-msgid "Bean stitch number of repeats"
-msgstr ""
-
-#: lib/elements/stroke.py:44
-msgid ""
-"Backtrack each stitch this many times. A value of 1 would triple each "
-"stitch (forward, back, forward). A value of 2 would quintuple each "
-"stitch, etc. Only applies to running stitch."
-msgstr ""
-
-#: lib/elements/stroke.py:56
-msgid "Length of stitches in zig-zag mode."
-msgstr ""
-
-#: lib/elements/stroke.py:67
-msgid "Repeats"
-msgstr ""
-
-#: lib/elements/stroke.py:68
-msgid "Defines how many times to run down and back along the path."
-msgstr ""
-
-#: lib/elements/stroke.py:92
-msgid "Manual stitch placement"
-msgstr ""
-
-#: lib/elements/stroke.py:93
-msgid ""
-"Stitch every node in the path. Stitch length and zig-zag spacing are "
-"ignored."
-msgstr ""
-
-#: lib/elements/stroke.py:127
-msgid ""
-"Legacy running stitch setting detected!\n"
-"\n"
-"It looks like you're using a stroke smaller than 0.5 units to indicate a "
-"running stitch, which is deprecated. Instead, please set your stroke to "
-"be dashed to indicate running stitch. Any kind of dash will work."
-msgstr ""
-
-#: lib/extensions/base.py:113
-msgid "No embroiderable paths selected."
-msgstr ""
-
-#: lib/extensions/base.py:115
-msgid "No embroiderable paths found in document."
-msgstr ""
-
-#: lib/extensions/base.py:116
-msgid "Tip: use Path -> Object to Path to convert non-paths."
-msgstr ""
-
-#: lib/extensions/convert_to_satin.py:29
-msgid "Please select at least one line to convert to a satin column."
-msgstr ""
-
-#. : Convert To Satin extension, user selected one or more objects that were
-#. not lines.
-#: lib/extensions/convert_to_satin.py:34
-msgid "Only simple lines may be converted to satin columns."
-msgstr ""
-
-#: lib/extensions/convert_to_satin.py:56
-#, python-format
-msgid ""
-"Cannot convert %s to a satin column because it intersects itself. Try "
-"breaking it up into multiple paths."
-msgstr ""
-
-#: lib/extensions/embroider.py:38
-msgid ""
-"\n"
-"\n"
-"Seeing a 'no such option' message? Please restart Inkscape to fix."
-msgstr ""
-
-#: lib/extensions/flip.py:35
-msgid "Please select one or more satin columns to flip."
-msgstr ""
-
-#: lib/extensions/install.py:25
-msgid ""
-"Ink/Stitch can install files (\"add-ons\") that make it easier to use "
-"Inkscape to create machine embroidery designs. These add-ons will be "
-"installed:"
-msgstr ""
-
-#: lib/extensions/install.py:27
-msgid "thread manufacturer color palettes"
-msgstr ""
-
-#: lib/extensions/install.py:28
-msgid "Ink/Stitch visual commands (Object -> Symbols...)"
-msgstr ""
-
-#: lib/extensions/install.py:37
-msgid "Install"
-msgstr ""
-
-#: lib/extensions/install.py:40 lib/extensions/params.py:408
-msgid "Cancel"
-msgstr ""
-
-#: lib/extensions/install.py:54
-msgid "Choose Inkscape directory"
-msgstr ""
-
-#: lib/extensions/install.py:71
-msgid "Inkscape add-on installation failed"
-msgstr ""
-
-#: lib/extensions/install.py:72
-msgid "Installation Failed"
-msgstr ""
-
-#: lib/extensions/install.py:76
-msgid ""
-"Inkscape add-on files have been installed. Please restart Inkscape to "
-"load the new add-ons."
-msgstr ""
-
-#: lib/extensions/install.py:77
-msgid "Installation Completed"
-msgstr ""
-
-#: lib/extensions/install.py:114
-msgid "Ink/Stitch Add-ons Installer"
-msgstr ""
-
-#: lib/extensions/layer_commands.py:27
-msgid "Please choose one or more commands to add."
-msgstr ""
-
-#: lib/extensions/layer_commands.py:39 lib/extensions/object_commands.py:74
-msgid "Ink/Stitch Command"
-msgstr ""
-
-#. : the name of the line that connects a command to the object it applies to
-#: lib/extensions/object_commands.py:30
-msgid "connector"
-msgstr ""
-
-#. : the name of a command symbol (example: scissors icon for trim command)
-#: lib/extensions/object_commands.py:89
-msgid "command marker"
-msgstr ""
-
-#: lib/extensions/object_commands.py:100
-msgid "Please select one or more objects to which to attach commands."
-msgstr ""
-
-#: lib/extensions/object_commands.py:108
-msgid "Please choose one or more commands to attach."
-msgstr ""
-
-#: lib/extensions/params.py:250
-msgid "These settings will be applied to 1 object."
-msgstr ""
-
-#: lib/extensions/params.py:252
-#, python-format
-msgid "These settings will be applied to %d objects."
-msgstr ""
-
-#: lib/extensions/params.py:255
-msgid ""
-"Some settings had different values across objects. Select a value from "
-"the dropdown or enter a new one."
-msgstr ""
-
-#: lib/extensions/params.py:259
-#, python-format
-msgid "Disabling this tab will disable the following %d tabs."
-msgstr ""
-
-#: lib/extensions/params.py:261
-msgid "Disabling this tab will disable the following tab."
-msgstr ""
-
-#: lib/extensions/params.py:264
-#, python-format
-msgid "Enabling this tab will disable %s and vice-versa."
-msgstr ""
-
-#: lib/extensions/params.py:294
-msgid "Inkscape objects"
-msgstr ""
-
-#: lib/extensions/params.py:351
-msgid ""
-"Click to force this parameter to be saved when you click \"Apply and "
-"Quit\""
-msgstr ""
-
-#: lib/extensions/params.py:359
-msgid "This parameter will be saved when you click \"Apply and Quit\""
-msgstr ""
-
-#: lib/extensions/params.py:374
-msgid "Embroidery Params"
-msgstr ""
-
-#: lib/extensions/params.py:391
-msgid "Presets"
-msgstr ""
-
-#: lib/extensions/params.py:396
-msgid "Load"
-msgstr ""
-
-#: lib/extensions/params.py:399
-msgid "Add"
-msgstr ""
-
-#: lib/extensions/params.py:402
-msgid "Overwrite"
-msgstr ""
-
-#: lib/extensions/params.py:405
-msgid "Delete"
-msgstr ""
-
-#: lib/extensions/params.py:412
-msgid "Use Last Settings"
-msgstr ""
-
-#: lib/extensions/params.py:415
-msgid "Apply and Quit"
-msgstr ""
-
-#: lib/extensions/params.py:468
-msgid "Preview"
-msgstr ""
-
-#: lib/extensions/params.py:484
-msgid "Internal Error"
-msgstr ""
-
-#: lib/extensions/params.py:537
-msgid "Please enter or select a preset name first."
-msgstr ""
-
-#: lib/extensions/params.py:537 lib/extensions/params.py:543
-#: lib/extensions/params.py:571
-msgid "Preset"
-msgstr ""
-
-#: lib/extensions/params.py:543
-#, python-format
-msgid "Preset \"%s\" not found."
-msgstr ""
-
-#: lib/extensions/params.py:571
-#, python-format
-msgid ""
-"Preset \"%s\" already exists. Please use another name or press "
-"\"Overwrite\""
-msgstr ""
-
-#: lib/extensions/print_pdf.py:132
-msgid "Closing..."
-msgstr ""
-
-#: lib/extensions/print_pdf.py:132
-msgid "It is safe to close this window now."
-msgstr ""
-
-#: lib/extensions/print_pdf.py:263
-msgid ""
-"A print preview has been opened in your web browser. This window will "
-"stay open in order to communicate with the JavaScript code running in "
-"your browser.\n"
-"\n"
-"This window will close after you close the print preview in your browser,"
-" or you can close it manually if necessary."
-msgstr ""
-
-#: lib/extensions/print_pdf.py:412
-msgid "Ink/Stitch Print"
-msgstr ""
-
-#: lib/extensions/zip.py:49
-msgid "No embroidery file formats selected."
-msgstr ""
-
-#. If you translate this string, that will tell Ink/Stitch to
-#. generate menu items for this language in Inkscape's "Extensions"
-#. menu.
-#: lib/inx/utils.py:46
-msgid "Generate INX files"
-msgstr ""
-
-#. low-level file error. %(error)s is (hopefully?) translated by
-#. the user's system automatically.
-#: lib/output.py:102
-#, python-format
-msgid "Error writing to %(path)s: %(error)s"
-msgstr ""
-
-#. command label at bottom of simulator window
-#: lib/simulator.py:12
-msgid "STITCH"
-msgstr ""
-
-#: lib/simulator.py:12
-msgid "JUMP"
-msgstr ""
-
-#: lib/simulator.py:12
-msgid "TRIM"
-msgstr ""
-
-#: lib/simulator.py:12
-msgid "STOP"
-msgstr ""
-
-#: lib/simulator.py:12
-msgid "COLOR CHANGE"
-msgstr ""
-
-#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
-msgid "Pause"
-msgstr ""
-
-#: lib/simulator.py:51
-msgid "Restart"
-msgstr ""
-
-#: lib/simulator.py:53
-msgid "Quit"
-msgstr ""
-
-#: lib/simulator.py:168
-#, python-format
-msgid "Speed: %d stitches/sec"
-msgstr ""
-
-#: lib/simulator.py:211
-msgid "Start"
-msgstr ""
-
-#: lib/simulator.py:633
-msgid "Embroidery Simulation"
-msgstr ""
-
-#: lib/stitches/auto_fill.py:167
-msgid ""
-"Unable to autofill. This most often happens because your shape is made "
-"up of multiple sections that aren't connected."
-msgstr ""
-
-#: lib/stitches/auto_fill.py:395
-msgid ""
-"Unexpected error while generating fill stitches. Please send your SVG "
-"file to lexelby@github."
-msgstr ""
-
-#: lib/svg/svg.py:94
-msgid "Stitch Plan"
-msgstr ""
-
-#: lib/svg/units.py:46
-#, python-format
-msgid "parseLengthWithUnits: unknown unit %s"
-msgstr ""
-
-#: lib/svg/units.py:78
-#, python-format
-msgid "Unknown unit: %s"
-msgstr ""
-
-#: print/templates/color_swatch.html:8 print/templates/color_swatch.html:40
-#: print/templates/operator_detailedview.html:9
-msgid "Color"
-msgstr ""
-
-#: print/templates/color_swatch.html:11 print/templates/color_swatch.html:41
-msgid "rgb"
-msgstr ""
-
-#: print/templates/color_swatch.html:15 print/templates/color_swatch.html:42
-msgid "thread"
-msgstr ""
-
-#: print/templates/color_swatch.html:19 print/templates/color_swatch.html:43
-#: print/templates/operator_detailedview.html:62
-msgid "# stitches"
-msgstr ""
-
-#: print/templates/color_swatch.html:23 print/templates/color_swatch.html:44
-msgid "# trims"
-msgstr ""
-
-#: print/templates/color_swatch.html:24 print/templates/color_swatch.html:45
-#: print/templates/operator_detailedview.html:66
-msgid "stop after?"
-msgstr ""
-
-#: print/templates/color_swatch.html:24 print/templates/color_swatch.html:45
-#: print/templates/operator_detailedview.html:66
-msgid "yes"
-msgstr ""
-
-#: print/templates/color_swatch.html:24 print/templates/color_swatch.html:45
-#: print/templates/operator_detailedview.html:66
-msgid "no"
-msgstr ""
-
-#: print/templates/footer.html:2
-msgid "Page"
-msgstr ""
-
-#: print/templates/headline.html:5
-msgid "Click to choose another logo"
-msgstr ""
-
-#: print/templates/headline.html:10
-msgid "Enter job title..."
-msgstr ""
-
-#: print/templates/headline.html:11
-msgid "CLIENT"
-msgstr ""
-
-#: print/templates/headline.html:11
-msgid "Enter client name..."
-msgstr ""
-
-#: print/templates/headline.html:12
-msgid "PURCHASE ORDER #:"
-msgstr ""
-
-#: print/templates/headline.html:12
-msgid "Enter purchase order number..."
-msgstr ""
-
-#: print/templates/headline.html:15
-#, python-format
-msgid "%Y.%m.%d"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:10
-msgid "Thread Consumption"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:11
-msgid "Stops and Trims"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:12
-msgid "Notes"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:24
-#: print/templates/operator_overview.html:6
-#: print/templates/print_overview.html:6
-msgid "Unique Colors"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:25
-#: print/templates/operator_overview.html:7
-#: print/templates/print_overview.html:7
-msgid "Color Blocks"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:28
-#: print/templates/operator_overview.html:14
-#: print/templates/print_overview.html:14
-msgid "Design box size"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:29
-#: print/templates/operator_overview.html:16
-#: print/templates/print_overview.html:16
-msgid "Total thread used"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:30
-#: print/templates/operator_overview.html:15
-#: print/templates/print_overview.html:15
-msgid "Total stitch count"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:33
-#: print/templates/operator_overview.html:8
-#: print/templates/print_overview.html:8
-msgid "Total stops"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:34
-#: print/templates/operator_overview.html:9
-#: print/templates/print_overview.html:9
-msgid "Total trims"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:61
-msgid "thread used"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:65
-msgid "trims"
-msgstr ""
-
-#: print/templates/operator_detailedview.html:69
-msgid "Enter operator notes..."
-msgstr ""
-
-#: print/templates/operator_overview.html:21
-#: print/templates/print_overview.html:21
-msgid "Job estimated time"
-msgstr ""
-
-#: print/templates/operator_overview.html:28
-#: print/templates/print_detail.html:18 print/templates/print_overview.html:28
-msgid "Ctrl + Scroll to Zoom"
-msgstr ""
-
-#: print/templates/print_detail.html:6
-msgid "COLOR"
-msgstr ""
-
-#: print/templates/print_detail.html:11
-msgid "Estimated time"
-msgstr ""
-
-#: print/templates/print_overview.html:39
-msgid "Client Signature"
-msgstr ""
-
-#: print/templates/ui.html:2
-msgid "Ink/Stitch Print Preview"
-msgstr ""
-
-#: print/templates/ui.html:4 templates/print.inx:3
-msgid "Print"
-msgstr ""
-
-#: print/templates/ui.html:5 print/templates/ui.html:15
-msgid "Settings"
-msgstr ""
-
-#: print/templates/ui.html:6
-msgid "Close"
-msgstr ""
-
-#: print/templates/ui.html:9
-msgid "⚠ lost connection to Ink/Stitch"
-msgstr ""
-
-#: print/templates/ui.html:18 print/templates/ui.html:23
-msgid "Page Setup"
-msgstr ""
-
-#: print/templates/ui.html:19 print/templates/ui.html:47
-msgid "Design"
-msgstr ""
-
-#: print/templates/ui.html:26
-msgid "Printing Size"
-msgstr ""
-
-#: print/templates/ui.html:35
-msgid "Print Layouts"
-msgstr ""
-
-#: print/templates/ui.html:36
-msgid "Client Overview"
-msgstr ""
-
-#: print/templates/ui.html:37
-msgid "Client Detailed View"
-msgstr ""
-
-#: print/templates/ui.html:38
-msgid "Operator Overview"
-msgstr ""
-
-#: print/templates/ui.html:39
-msgid "Operator Detailed View"
-msgstr ""
-
-#: print/templates/ui.html:40
-msgid "Thumbnail size"
-msgstr ""
-
-#: print/templates/ui.html:43
-msgid "Includes these Page Setup settings and also the icon."
-msgstr ""
-
-#: print/templates/ui.html:43
-msgid "Save as defaults"
-msgstr ""
-
-#: print/templates/ui.html:48
-msgid "Thread Palette"
-msgstr ""
-
-#: print/templates/ui.html:51
-msgid "None"
-msgstr ""
-
-#: print/templates/ui.html:65
-msgid ""
-"Changing the thread palette will cause thread names and catalog numbers "
-"to be recalculated based on the new palette. Any changes you have made "
-"to color or thread names will be lost. Are you sure?"
-msgstr ""
-
-#: print/templates/ui.html:68
-msgid "Yes"
-msgstr ""
-
-#: print/templates/ui.html:69
-msgid "No"
-msgstr ""
-
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr ""
-
-#: print/templates/ui_svg_action_buttons.html:3
-msgid "Fit"
-msgstr ""
-
-#: print/templates/ui_svg_action_buttons.html:5
-msgid "Apply to all"
-msgstr ""
-
-#: print/templates/ui_svg_action_buttons.html:8
-msgid "Realistic"
-msgstr ""
-
-#. description for pyembroidery file format: pec
-#. description for pyembroidery file format: pes
-#. description for pyembroidery file format: phb
-#. description for pyembroidery file format: phc
-#: pyembroidery-format-descriptions.py:2 pyembroidery-format-descriptions.py:4
-#: pyembroidery-format-descriptions.py:56
-#: pyembroidery-format-descriptions.py:58
-msgid "Brother Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: exp
-#: pyembroidery-format-descriptions.py:6
-msgid "Melco Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: dst
-#. description for pyembroidery file format: tbf
-#: pyembroidery-format-descriptions.py:8 pyembroidery-format-descriptions.py:48
-msgid "Tajima Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: jef
-#. description for pyembroidery file format: sew
-#. description for pyembroidery file format: jpx
-#: pyembroidery-format-descriptions.py:10
-#: pyembroidery-format-descriptions.py:20
-#: pyembroidery-format-descriptions.py:74
-msgid "Janome Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: vp3
-#. description for pyembroidery file format: ksm
-#. description for pyembroidery file format: max
-#. description for pyembroidery file format: pcd
-#. description for pyembroidery file format: pcq
-#. description for pyembroidery file format: pcm
-#. description for pyembroidery file format: pcs
-#: pyembroidery-format-descriptions.py:12
-#: pyembroidery-format-descriptions.py:50
-#: pyembroidery-format-descriptions.py:62
-#: pyembroidery-format-descriptions.py:66
-#: pyembroidery-format-descriptions.py:68
-#: pyembroidery-format-descriptions.py:70
-#: pyembroidery-format-descriptions.py:72
-msgid "Pfaff Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: svg
-#: pyembroidery-format-descriptions.py:14
-msgid "Scalable Vector Graphics"
-msgstr ""
-
-#. description for pyembroidery file format: csv
-#: pyembroidery-format-descriptions.py:16
-msgid "Comma-separated values"
-msgstr ""
-
-#. description for pyembroidery file format: xxx
-#: pyembroidery-format-descriptions.py:18
-msgid "Singer Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: u01
-#: pyembroidery-format-descriptions.py:22
-msgid "Barudan Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: shv
-#: pyembroidery-format-descriptions.py:24
-msgid "Husqvarna Viking Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: 10o
-#. description for pyembroidery file format: 100
-#: pyembroidery-format-descriptions.py:26
-#: pyembroidery-format-descriptions.py:28
-msgid "Toyota Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: bro
-#: pyembroidery-format-descriptions.py:30
-msgid "Bits & Volts Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: dat
-#: pyembroidery-format-descriptions.py:32
-msgid "Sunstar or Barudan Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: dsb
-#: pyembroidery-format-descriptions.py:34
-msgid "Tajima(Barudan) Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: dsz
-#: pyembroidery-format-descriptions.py:36
-msgid "ZSK USA Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: emd
-#: pyembroidery-format-descriptions.py:38
-msgid "Elna Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: exy
-#: pyembroidery-format-descriptions.py:40
-msgid "Eltac Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: fxy
-#: pyembroidery-format-descriptions.py:42
-msgid "Fortron Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: gt
-#: pyembroidery-format-descriptions.py:44
-msgid "Gold Thread Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: inb
-#: pyembroidery-format-descriptions.py:46
-msgid "Inbro Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: tap
-#: pyembroidery-format-descriptions.py:52
-msgid "Happy Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: stx
-#: pyembroidery-format-descriptions.py:54
-msgid "Data Stitch Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: new
-#: pyembroidery-format-descriptions.py:60
-msgid "Ameco Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: mit
-#: pyembroidery-format-descriptions.py:64
-msgid "Mitsubishi Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: stc
-#: pyembroidery-format-descriptions.py:76
-msgid "Gunold Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: zxy
-#: pyembroidery-format-descriptions.py:78
-msgid "ZSK TC Embroidery Format"
-msgstr ""
-
-#. description for pyembroidery file format: pmv
-#: pyembroidery-format-descriptions.py:80
-msgid "Brother Stitch Format"
-msgstr ""
-
-#: templates/convert_to_satin.inx:3
-msgid "Convert Line to Satin"
-msgstr ""
-
-#. This is used for the submenu under Extensions -> Ink/Stitch. Translate this
-#. to your language's word for its language, e.g. "Español" for the spanish
-#. translation.
-#: templates/convert_to_satin.inx:12 templates/embroider.inx:24
-#: templates/flip.inx:12 templates/global_commands.inx:16
-#: templates/install.inx:12 templates/layer_commands.inx:16
-#: templates/object_commands.inx:15 templates/params.inx:12
-#: templates/print.inx:12 templates/simulate.inx:12
-msgid "English"
-msgstr ""
-
-#: templates/embroider.inx:3
-msgid "Embroider"
-msgstr ""
-
-#: templates/embroider.inx:7
-msgid "Collapse length (mm)"
-msgstr ""
-
-#: templates/embroider.inx:7
-msgid "Jump stitches smaller than this will be treated as normal stitches."
-msgstr ""
-
-#: templates/embroider.inx:8
-msgid "Hide other layers"
-msgstr ""
-
-#: templates/embroider.inx:8
-msgid ""
-"Hide all other top-level layers when the embroidery layer is generated, "
-"in order to make stitching discernible."
-msgstr ""
-
-#: templates/embroider.inx:9
-msgid "Output file format"
-msgstr ""
-
-#: templates/embroider.inx:14
-msgid "DEBUG"
-msgstr ""
-
-#: templates/embroider.inx:17
-msgid "Directory"
-msgstr ""
-
-#: templates/embroider.inx:17
-msgid "Leave empty to save the output in Inkscape's extension directory."
-msgstr ""
-
-#: templates/flip.inx:3
-msgid "Flip Satin Columns"
-msgstr ""
-
-#: templates/global_commands.inx:3
-msgid "Add Commands"
-msgstr ""
-
-#: templates/global_commands.inx:7
-msgid "These commands affect the entire embroidery design."
-msgstr ""
-
-#. Inkscape submenu under Extensions -> Ink/Stitch
-#: templates/global_commands.inx:18 templates/layer_commands.inx:17
-#: templates/object_commands.inx:16
-msgid "Commands"
-msgstr ""
-
-#: templates/input.inx:11
-#, python-format
-msgid "convert %(file_extension)s file to Ink/Stitch manual-stitch paths"
-msgstr ""
-
-#: templates/install.inx:3
-msgid "Install add-ons for Inkscape"
-msgstr ""
-
-#: templates/layer_commands.inx:3
-msgid "Add Layer Commands"
-msgstr ""
-
-#: templates/layer_commands.inx:7
-msgid "Commands will be added to the currently-selected layer."
-msgstr ""
-
-#: templates/object_commands.inx:3
-msgid "Attach Commands to Selected Objects"
-msgstr ""
-
-#: templates/output.inx:11
-#, python-format
-msgid "Save design in %(file_extension)s format using Ink/Stitch"
-msgstr ""
-
-#: templates/params.inx:3
-msgid "Params"
-msgstr ""
-
-#: templates/simulate.inx:3
-msgid "Simulate"
-msgstr ""
-
-#: templates/zip.inx:10
-msgid "Ink/Stitch: ZIP export multiple formats (.zip)"
-msgstr ""
-
-#: templates/zip.inx:11
-msgid "Create a ZIP with multiple embroidery file formats using Ink/Stitch"
-msgstr ""
-
diff --git a/translations/messages_af_ZA.po b/translations/messages_af_ZA.po
index afd6c718..ec111b7c 100644
--- a/translations/messages_af_ZA.po
+++ b/translations/messages_af_ZA.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Afrikaans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_ar_SA.po b/translations/messages_ar_SA.po
index d4b9773f..70a958e8 100644
--- a/translations/messages_ar_SA.po
+++ b/translations/messages_ar_SA.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Arabic\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_ca_ES.po b/translations/messages_ca_ES.po
index b63d6a3c..12d0c036 100644
--- a/translations/messages_ca_ES.po
+++ b/translations/messages_ca_ES.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Catalan\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_cs_CZ.po b/translations/messages_cs_CZ.po
index 2238e707..1c2a2f3f 100644
--- a/translations/messages_cs_CZ.po
+++ b/translations/messages_cs_CZ.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Czech\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_da_DK.po b/translations/messages_da_DK.po
index 3296e7ee..90c5c439 100644
--- a/translations/messages_da_DK.po
+++ b/translations/messages_da_DK.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Danish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_de_DE.po b/translations/messages_de_DE.po
index 6f2034be..7e3ce042 100644
--- a/translations/messages_de_DE.po
+++ b/translations/messages_de_DE.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: German\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,8 +105,8 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
-msgstr "Auto-Füllung"
+msgid "AutoFill"
+msgstr ""
#: lib/elements/auto_fill.py:14
msgid "Automatically routed fill stitching"
@@ -170,11 +170,23 @@ msgstr "Erweitern"
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr "Erweitern der Form vor dem Füllstich, um Lücken zwischen den Formen auszugleichen."
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr "%(id)s beinhaltet mehr als einen Befehl vom Typ '%(command)s'"
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr "Füllung"
@@ -232,6 +244,10 @@ msgstr "Die Einstellung bestimmt, wie viele Reihen die Stiche voneinander entfer
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr "Die Form %s ist zu klein, dass sie nicht mit Stichen gefüllt werden kann. Bitte vergrößere oder lösche diese."
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr "Satinkolumne"
@@ -444,7 +460,7 @@ msgstr "Ink/Stitch visuelle Befehle (Objekt -> Symbole ...)"
msgid "Install"
msgstr "Installieren"
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr "Abbrechen"
@@ -452,23 +468,23 @@ msgstr "Abbrechen"
msgid "Choose Inkscape directory"
msgstr "Inkscape-Verzeichnis auswählen"
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr "Installation der Inkscape Erweiterung gescheitert"
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr "Installation fehlgeschlagen"
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr "Inkscape Add-ons wurden installiert. Bitte starten Sie Inkscape erneut um die neuen Add-ons zu laden."
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr "Installation abgeschlossen"
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr "Ink/Stitch Add-ons Installer"
@@ -498,92 +514,100 @@ msgstr "Wählen Sie ein oder mehrere Objekte aus, an die Sie die Befehle anhäng
msgid "Please choose one or more commands to attach."
msgstr "Bitte wählen Sie einen oder mehrere Befehle um diese zu verknüpfen."
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr "Diese Einstellung wird auf 1 Objekt angewendet."
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr "Diese Einstellungen werden auf %d Objekte angewendet."
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr "Einige Einstellungen hatten unterschiedliche Werte der Objekte. Bitte einen Wert aus der Liste auswählen oder einen neuen Namen eingeben."
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr "Deaktivierung dieser Registerkarte, deaktiviert die folgenden %d Registerkarten."
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr "Deaktivierung dieser Registerkarte, deaktiviert die folgende Registerkarte."
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr "Aktivierung dieser Registerkarte deaktiviert %s und umgekehrt."
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr "Inkscape Objekte"
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr "Stickparameter"
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr "Voreinstellungen"
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr "Öffnen"
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr "Hinzufügen"
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr "Überschreiben"
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr "Löschen"
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr "Letzte Einstellungen verwenden"
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr "Anwenden und schließen"
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr "Vorschau"
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr "Interner Fehler"
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr "Bitte geben Sie einen Namen ein, oder wählen Sie zuerst einen vordefinierten Namen aus."
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr "Voreinstellung"
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr "Einstellung \"%s\" nicht gefunden."
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr "Einstellung \"%s\" bereits vorhanden. Bitte verwenden Sie einen anderen Namen oder drücken Sie \"Überschreiben\""
@@ -606,10 +630,6 @@ msgstr "Eine Druckvorschau wurde im Webbrowser geöffnet. Dieses Fenster dient z
msgid "Ink/Stitch Print"
msgstr "Ink/Stitch Drucken"
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr "Stick Simulation"
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr "Keine Stick-Dateiformate ausgewählt."
@@ -621,53 +641,58 @@ msgstr "Keine Stick-Dateiformate ausgewählt."
msgid "Generate INX files"
msgstr "Erzeuge INX Dateien"
-#: lib/simulator.py:40
-msgid "Speed up"
-msgstr "Beschleunigen"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
+msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
-msgstr "Drücke + oder Pfeil nach oben zur Beschleunigung"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
+msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
-msgstr "Verlangsamen"
+#: lib/simulator.py:12
+msgid "JUMP"
+msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
-msgstr "Drücke - oder Pfeil nach unten zur Verlangsamung"
+#: lib/simulator.py:12
+msgid "TRIM"
+msgstr ""
+
+#: lib/simulator.py:12
+msgid "STOP"
+msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
+msgstr ""
+
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
msgid "Pause"
msgstr "Pause"
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
-msgstr "Drücken Sie P um die Animation zu pausieren"
-
-#: lib/simulator.py:43
+#: lib/simulator.py:51
msgid "Restart"
msgstr "Neustart"
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
-msgstr "Drücken Sie R um die Animation erneut zu starten"
-
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr "Beenden"
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
-msgstr "Drücken Sie Q um das Simulationsfenster zu beenden"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
+msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
-msgstr "Stiche # "
+#: lib/simulator.py:211
+msgid "Start"
+msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
-msgstr "Stiche #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
+msgstr "Stick Simulation"
#: lib/stitches/auto_fill.py:167
msgid "Unable to autofill. This most often happens because your shape is made up of multiple sections that aren't connected."
diff --git a/translations/messages_el_GR.po b/translations/messages_el_GR.po
index 6eecb71a..0c4bba30 100644
--- a/translations/messages_el_GR.po
+++ b/translations/messages_el_GR.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Greek\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_en_US.po b/translations/messages_en_US.po
index 21187772..1dd57273 100644
--- a/translations/messages_en_US.po
+++ b/translations/messages_en_US.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: English\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_es_ES.po b/translations/messages_es_ES.po
index 48659a18..572cbe82 100644
--- a/translations/messages_es_ES.po
+++ b/translations/messages_es_ES.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Spanish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_fi_FI.po b/translations/messages_fi_FI.po
index 1bf53909..06436cbe 100644
--- a/translations/messages_fi_FI.po
+++ b/translations/messages_fi_FI.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Finnish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_fr_FR.po b/translations/messages_fr_FR.po
index 47c3d254..98335e9a 100644
--- a/translations/messages_fr_FR.po
+++ b/translations/messages_fr_FR.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: French\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -20,79 +20,79 @@ msgstr ""
#. command attached to an object
#: lib/commands.py:13
msgid "fill_start"
-msgstr ""
+msgstr "début_remplissage"
#: lib/commands.py:13
msgid "Fill stitch starting position"
-msgstr ""
+msgstr "Position de départ du remplissage"
#. command attached to an object
#: lib/commands.py:16
msgid "fill_end"
-msgstr ""
+msgstr "fin_remplissage"
#: lib/commands.py:16
msgid "Fill stitch ending position"
-msgstr ""
+msgstr "Position de fin de remplissage"
#. command attached to an object
#: lib/commands.py:19
msgid "stop"
-msgstr ""
+msgstr "stop"
#: lib/commands.py:19
msgid "Stop (pause machine) after sewing this object"
-msgstr ""
+msgstr "Stop (pause machine) après avoir brodé cet objet"
#. command attached to an object
#: lib/commands.py:22
msgid "trim"
-msgstr ""
+msgstr "couper"
#: lib/commands.py:22
msgid "Trim thread after sewing this object"
-msgstr ""
+msgstr "Couper le fil après avoir brodé cet objet"
#. command attached to an object
#: lib/commands.py:25
msgid "ignore_object"
-msgstr ""
+msgstr "ignorer_objet"
#: lib/commands.py:25
msgid "Ignore this object (do not stitch)"
-msgstr ""
+msgstr "Ignorer cet objet (ne pas le broder)"
#. command that affects a layer
#: lib/commands.py:28
msgid "ignore_layer"
-msgstr ""
+msgstr "ignorer_calque"
#: lib/commands.py:28
msgid "Ignore layer (do not stitch any objects in this layer)"
-msgstr ""
+msgstr "Ignorer le calque (broder aucun objet dans cette couche)"
#. command that affects entire document
#: lib/commands.py:31
msgid "origin"
-msgstr ""
+msgstr "origine"
#: lib/commands.py:31
msgid "Origin for exported embroidery files"
-msgstr ""
+msgstr "Origine des fichiers broderie exportés"
#. command that affects entire document
#: lib/commands.py:34
msgid "stop_position"
-msgstr ""
+msgstr "position_stop"
#: lib/commands.py:34
msgid "Jump destination for Stop commands (a.k.a. \"Frame Out position\")."
-msgstr ""
+msgstr "Destination de saut pour les commandes stop (\"position en dehors du cadre\")."
#: lib/commands.py:190
#, python-format
msgid "Error: there is more than one %(command)s command in the document, but there can only be one. Please remove all but one."
-msgstr ""
+msgstr "Erreur : il y a plus d’une commande de %(command)s dans le document, mais il ne peut être un. S’il vous plaît supprimer tous sauf un."
#. This is a continuation of the previous error message, letting the user know
#. what command we're talking about since we don't normally expose the actual
@@ -102,11 +102,11 @@ msgstr ""
#: lib/commands.py:197
#, python-format
msgid "%(command)s: %(description)s"
-msgstr ""
+msgstr "%(command)s: %(description)s"
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
-msgstr "Remplissage automatique"
+msgid "AutoFill"
+msgstr "Remplissage auto"
#: lib/elements/auto_fill.py:14
msgid "Automatically routed fill stitching"
@@ -118,7 +118,7 @@ msgstr "Longueur du point de fonctionnement (parcours entre les sections)"
#: lib/elements/auto_fill.py:35
msgid "Length of stitches around the outline of the fill region used when moving from section to section."
-msgstr ""
+msgstr "Longueur de points autour du contour de la région de remplissage lors du déplacement de section à section."
#: lib/elements/auto_fill.py:43
msgid "Underlay"
@@ -132,19 +132,19 @@ msgstr "Sous-couche de remplissage automatique"
#: lib/elements/auto_fill.py:49
msgid "Fill angle"
-msgstr ""
+msgstr "Angle de remplissage"
#: lib/elements/auto_fill.py:50
msgid "default: fill angle + 90 deg"
-msgstr ""
+msgstr "défaut : Angle de remplissage + 90 deg"
#: lib/elements/auto_fill.py:65
msgid "Row spacing"
-msgstr ""
+msgstr "Espacement entre rangs (lignes)"
#: lib/elements/auto_fill.py:66
msgid "default: 3x fill row spacing"
-msgstr ""
+msgstr "défaut: 3x espacement entre les rangs"
#: lib/elements/auto_fill.py:76
msgid "Max stitch length"
@@ -152,7 +152,7 @@ msgstr "Longueur de point maximal"
#: lib/elements/auto_fill.py:77
msgid "default: equal to fill max stitch length"
-msgstr ""
+msgstr "défaut : égal à longueur max des points de remplissage"
#: lib/elements/auto_fill.py:86
msgid "Inset"
@@ -160,7 +160,7 @@ msgstr "Incrustation"
#: lib/elements/auto_fill.py:87
msgid "Shrink the shape before doing underlay, to prevent underlay from showing around the outside of the fill."
-msgstr ""
+msgstr "Rétrécir la forme avant de faire la sous-couche, pour empêcher que la sous-couche se montre en dehors du remplissage."
#: lib/elements/auto_fill.py:97
msgid "Expand"
@@ -168,13 +168,25 @@ msgstr "Elargir"
#: lib/elements/auto_fill.py:98
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
-msgstr ""
+msgstr "Elargir la forme avant le remplissage, pour compenser les écarts entre les formes."
+
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr "L'objet %(id)s a un attribut 'd' vide. S’il vous plaît supprimer cet objet dans votre document."
-#: lib/elements/element.py:230
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr "Plus d’une commande de type «%(command)s» est liée à %(id)s"
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr "erreur :"
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr "Remplir"
@@ -185,7 +197,7 @@ msgstr "Remplir automatiquement la couture"
#: lib/elements/fill.py:20
msgid "AutoFill is the default method for generating fill stitching."
-msgstr ""
+msgstr "Remplissage auto est la méthode par défaut pour générer des points de remplissage."
#: lib/elements/fill.py:29
msgid "Angle of lines of stitches"
@@ -193,7 +205,7 @@ msgstr "Angle des lignes de points"
#: lib/elements/fill.py:30
msgid "The angle increases in a counter-clockwise direction. 0 is horizontal. Negative angles are allowed."
-msgstr ""
+msgstr "L’angle augmente dans un sens anti-horaire. 0 est horizontal. Les angles négatifs sont autorisés."
#: lib/elements/fill.py:46
msgid "Flip fill (start right-to-left)"
@@ -201,7 +213,7 @@ msgstr "Invertir remplissage (début droite vers la gauche)"
#: lib/elements/fill.py:47
msgid "The flip option can help you with routing your stitch path. When you enable flip, stitching goes from right-to-left instead of left-to-right."
-msgstr ""
+msgstr "L’option invertir peut vous aider avec le routage de votre chemin de broderie. Lorsque vous activez l'inversion, la broderie va de droite à gauche au lieu de gauche à droite."
#: lib/elements/fill.py:56
msgid "Spacing between rows"
@@ -209,7 +221,7 @@ msgstr "Espacement entre les lignes"
#: lib/elements/fill.py:57
msgid "Distance between rows of stitches."
-msgstr ""
+msgstr "Distance entre les rangées de points."
#: lib/elements/fill.py:70
msgid "Maximum fill stitch length"
@@ -217,7 +229,7 @@ msgstr "Longueur maximale du point de remplissage"
#: lib/elements/fill.py:71
msgid "The length of each stitch in a row. Shorter stitch may be used at the start or end of a row."
-msgstr ""
+msgstr "La longueur de points dans une rangée. Des point plus courts peuvent être utilisés au début ou à la fin d’une ligne."
#: lib/elements/fill.py:80
msgid "Stagger rows this many times before repeating"
@@ -225,12 +237,16 @@ msgstr "Décaler les rangs autant de fois avant de répéter"
#: lib/elements/fill.py:81
msgid "Setting this dictates how many rows apart the stitches will be before they fall in the same column position."
-msgstr ""
+msgstr "Ce paramétrage définit l’écart entre les points en tant que nombre de rangs, avant de se retrouver dans la même position de colonne."
#: lib/elements/fill.py:114
#, python-format
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
-msgstr ""
+msgstr "la forme %s est si petite qu’elle ne peut pas être remplie avec des points. SVP, agrandissez-là ou supprimez-là."
+
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr "la forme n’est pas valide. Cela peut arriver si la bordure se croise."
#: lib/elements/satin_column.py:10
msgid "Satin Column"
@@ -242,7 +258,7 @@ msgstr "Colonne de satin personnalisée"
#: lib/elements/satin_column.py:22
msgid "\"E\" stitch"
-msgstr ""
+msgstr "Point « E »"
#: lib/elements/satin_column.py:32 lib/elements/stroke.py:55
msgid "Zig-zag spacing (peak-to-peak)"
@@ -250,7 +266,7 @@ msgstr "Espacement Zig-Zag (crête à crête)"
#: lib/elements/satin_column.py:33
msgid "Peak-to-peak distance between zig-zags."
-msgstr ""
+msgstr "Distance crête à crête entre zig-zags."
#: lib/elements/satin_column.py:44
msgid "Pull compensation"
@@ -258,7 +274,7 @@ msgstr "Compensation d'étirement"
#: lib/elements/satin_column.py:45
msgid "Satin stitches pull the fabric together, resulting in a column narrower than you draw in Inkscape. This setting expands each pair of needle penetrations outward from the center of the satin column."
-msgstr ""
+msgstr "Les points satin serrent le tissu, ce qui entraîne une colonne plus étroite que celle que vous dessinez dans Inkscape. Ce paramètre étend le points depuis le centre vers l’extérieur de la colonne satinée."
#: lib/elements/satin_column.py:57
msgid "Contour underlay"
@@ -279,7 +295,7 @@ msgstr "Montant de l'incrustation de la sous-couche de contour"
#: lib/elements/satin_column.py:71
msgid "Shrink the outline, to prevent the underlay from showing around the outside of the satin column."
-msgstr ""
+msgstr "Rétrécir le contour, pour empêcher que la sous-couche se montre autour de la colonne satinée."
#: lib/elements/satin_column.py:81
msgid "Center-walk underlay"
@@ -304,15 +320,15 @@ msgstr "Espacement Zig-Zag (crête à crête)"
#: lib/elements/satin_column.py:100
msgid "Distance between peaks of the zig-zags."
-msgstr ""
+msgstr "Distance entre les crêtes des zig-zags."
#: lib/elements/satin_column.py:110
msgid "Inset amount"
-msgstr ""
+msgstr "Montant de l’incrustation"
#: lib/elements/satin_column.py:111
msgid "default: half of contour underlay inset"
-msgstr ""
+msgstr "par défaut: la moitié de l'incrustation du contour de la sous-couche"
#: lib/elements/satin_column.py:148
#, python-format
@@ -355,19 +371,19 @@ msgstr "Longueur de point courant"
#: lib/elements/stroke.py:32
msgid "Length of stitches in running stitch mode."
-msgstr ""
+msgstr "Longueur de points en mode points avants (droits)"
#: lib/elements/stroke.py:43
msgid "Bean stitch number of repeats"
-msgstr ""
+msgstr "Nombre de répétitions pour le point coulé (bean stitch)"
#: lib/elements/stroke.py:44
msgid "Backtrack each stitch this many times. A value of 1 would triple each stitch (forward, back, forward). A value of 2 would quintuple each stitch, etc. Only applies to running stitch."
-msgstr ""
+msgstr "Répéter chaque point plusieurs fois. Une valeur de 1 triplerait chaque point (avant, arrière, avant). Une valeur de 2 quintuplerait chaque point, etc.. S’applique uniquement aux points droits."
#: lib/elements/stroke.py:56
msgid "Length of stitches in zig-zag mode."
-msgstr ""
+msgstr "Longueur de points en mode zig-zag."
#: lib/elements/stroke.py:67
msgid "Repeats"
@@ -375,7 +391,7 @@ msgstr "répétez"
#: lib/elements/stroke.py:68
msgid "Defines how many times to run down and back along the path."
-msgstr ""
+msgstr "Définit combien de fois broder en avant et en arrière le long du chemin."
#: lib/elements/stroke.py:92
msgid "Manual stitch placement"
@@ -404,18 +420,18 @@ msgstr "Astuce: utilisez Chemin -> Objet en chemin pour convertir les non-chemin
#: lib/extensions/convert_to_satin.py:29
msgid "Please select at least one line to convert to a satin column."
-msgstr ""
+msgstr "Veuillez sélectionner au moins une ligne pour convertir en colonne satinée."
#. : Convert To Satin extension, user selected one or more objects that were
#. not lines.
#: lib/extensions/convert_to_satin.py:34
msgid "Only simple lines may be converted to satin columns."
-msgstr ""
+msgstr "Seulement les lignes simples peuvent être converties en colonnes satinées."
#: lib/extensions/convert_to_satin.py:56
#, python-format
msgid "Cannot convert %s to a satin column because it intersects itself. Try breaking it up into multiple paths."
-msgstr ""
+msgstr "Impossible de convertir %s à une colonne satinée, car elle se croise elle-même. Essayez de la séparer en plusieurs chemins."
#: lib/extensions/embroider.py:38
msgid "\n\n"
@@ -443,7 +459,7 @@ msgstr "Commandes Ink/Stitch visuelles (Objet-> symboles...)"
msgid "Install"
msgstr "Installer"
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr "Quitter"
@@ -451,43 +467,43 @@ msgstr "Quitter"
msgid "Choose Inkscape directory"
msgstr "Choisir le dossier d’Inkscape"
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr "échec d'installation de l'extension Inkscape"
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr "Echec de l’installation"
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr "Des fichiers d'extensions Inkscape ont été installés. S’il vous plaît, redémarrez Inkscape pour charger ces nouvelles extensions."
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr "Installation terminée"
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr "Ink/Stitch installeur d'extensions"
#: lib/extensions/layer_commands.py:27
msgid "Please choose one or more commands to add."
-msgstr ""
+msgstr "Veuillez choisir une ou plusieurs commandes à ajouter."
#: lib/extensions/layer_commands.py:39 lib/extensions/object_commands.py:74
msgid "Ink/Stitch Command"
-msgstr ""
+msgstr "Commande Ink/Stitch"
#. : the name of the line that connects a command to the object it applies to
#: lib/extensions/object_commands.py:30
msgid "connector"
-msgstr ""
+msgstr "connecteur"
#. : the name of a command symbol (example: scissors icon for trim command)
#: lib/extensions/object_commands.py:89
msgid "command marker"
-msgstr ""
+msgstr "marqueur de commande"
#: lib/extensions/object_commands.py:100
msgid "Please select one or more objects to which to attach commands."
@@ -497,92 +513,100 @@ msgstr "Veuillez sélectionner un ou plusieurs objets pour y attacher des comman
msgid "Please choose one or more commands to attach."
msgstr "Veuillez choisir une ou plusieurs commandes à attacher."
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr "Ces paramètres seront appliqués à 1 objet."
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr "Ces paramètres seront appliqués aux %d objets."
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr "Certains paramètres ont des valeurs différentes d'un objet à l'autre. Sélectionnez une valeur dans la liste déroulante ou entrez-en une nouvelle."
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr "La désactivation de cet onglet désactivera les onglets %d suivants."
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr "La désactivation de cet onglet désactivera l'onglet suivant."
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr "Activer cet onglet désactivera %s et vice-versa."
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr "Objets Inkscape"
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr "Cliquez pour forcer l’enregistrement de ce paramètre lorsque vous cliquez sur « Appliquer et quitter »"
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr "Ce paramètre sera enregistré lorsque vous cliquez sur « Appliquer et quitter »"
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr "Paramètres de broderie"
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr "Présélection"
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr "Charger"
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr "Ajouter"
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr "Écraser"
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr "Effacer"
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr "Utiliser les derniers paramètres"
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr "Appliquer et Quitter"
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr "Aperçu"
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr "Erreur interne"
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr "Veuillez entrer ou sélectionner un nom prédéfini en premier."
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr "Préréglage"
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr "Le préréglage \"%s\" n'a pas été trouvé."
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr "Le préréglage \"%s\" existe déjà. Veuillez utiliser un autre nom ou appuyez sur \"Écraser\""
@@ -604,10 +628,6 @@ msgstr "Un aperçu avant impression a été ouvert dans votre navigateur web. C
msgid "Ink/Stitch Print"
msgstr "Imprimer Ink/Stitch"
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr "Simulation de broderie"
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr "Aucun format de fichier broderie sélectionné."
@@ -617,55 +637,60 @@ msgstr "Aucun format de fichier broderie sélectionné."
#. menu.
#: lib/inx/utils.py:46
msgid "Generate INX files"
-msgstr ""
+msgstr "Générer les fichiers INX"
-#: lib/simulator.py:40
-msgid "Speed up"
-msgstr ""
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
+msgstr "Erreur d’écriture pour %(path)s: %(error)s"
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
-msgstr ""
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
+msgstr "BRODER"
-#: lib/simulator.py:41
-msgid "Slow down"
-msgstr ""
+#: lib/simulator.py:12
+msgid "JUMP"
+msgstr "SAUT"
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
-msgstr ""
+#: lib/simulator.py:12
+msgid "TRIM"
+msgstr "COUPE"
-#: lib/simulator.py:42
-msgid "Pause"
-msgstr ""
+#: lib/simulator.py:12
+msgid "STOP"
+msgstr "STOP"
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
-msgstr ""
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
+msgstr "CHANGEMENT COULEUR"
-#: lib/simulator.py:43
-msgid "Restart"
-msgstr ""
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
+msgstr "Pause"
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
-msgstr ""
+#: lib/simulator.py:51
+msgid "Restart"
+msgstr "Redémarrer"
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
-msgstr ""
+msgstr "Quitter"
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
-msgstr ""
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
+msgstr "Vitesse : %d points/sec"
-#: lib/simulator.py:169
-msgid "Stitch # "
-msgstr ""
+#: lib/simulator.py:211
+msgid "Start"
+msgstr "Début"
-#: lib/simulator.py:172
-msgid "Stitch #"
-msgstr ""
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
+msgstr "Simulation de broderie"
#: lib/stitches/auto_fill.py:167
msgid "Unable to autofill. This most often happens because your shape is made up of multiple sections that aren't connected."
@@ -714,17 +739,17 @@ msgstr "# trims"
#: print/templates/color_swatch.html:24 print/templates/color_swatch.html:45
#: print/templates/operator_detailedview.html:66
msgid "stop after?"
-msgstr ""
+msgstr "arrêter après ?"
#: print/templates/color_swatch.html:24 print/templates/color_swatch.html:45
#: print/templates/operator_detailedview.html:66
msgid "yes"
-msgstr ""
+msgstr "oui"
#: print/templates/color_swatch.html:24 print/templates/color_swatch.html:45
#: print/templates/operator_detailedview.html:66
msgid "no"
-msgstr ""
+msgstr "non"
#: print/templates/footer.html:2
msgid "Page"
@@ -805,13 +830,13 @@ msgstr "Nombre de points total"
#: print/templates/operator_overview.html:8
#: print/templates/print_overview.html:8
msgid "Total stops"
-msgstr ""
+msgstr "Total nr stop"
#: print/templates/operator_detailedview.html:34
#: print/templates/operator_overview.html:9
#: print/templates/print_overview.html:9
msgid "Total trims"
-msgstr ""
+msgstr "Total nr coupure"
#: print/templates/operator_detailedview.html:61
msgid "thread used"
@@ -819,7 +844,7 @@ msgstr "fil utilisé"
#: print/templates/operator_detailedview.html:65
msgid "trims"
-msgstr ""
+msgstr "coupures"
#: print/templates/operator_detailedview.html:69
msgid "Enter operator notes..."
@@ -955,18 +980,18 @@ msgstr "Réaliste"
#: pyembroidery-format-descriptions.py:56
#: pyembroidery-format-descriptions.py:58
msgid "Brother Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Brother"
#. description for pyembroidery file format: exp
#: pyembroidery-format-descriptions.py:6
msgid "Melco Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Melco"
#. description for pyembroidery file format: dst
#. description for pyembroidery file format: tbf
#: pyembroidery-format-descriptions.py:8 pyembroidery-format-descriptions.py:48
msgid "Tajima Embroidery Format"
-msgstr ""
+msgstr "Format de broderie de Tajima"
#. description for pyembroidery file format: jef
#. description for pyembroidery file format: sew
@@ -975,7 +1000,7 @@ msgstr ""
#: pyembroidery-format-descriptions.py:20
#: pyembroidery-format-descriptions.py:74
msgid "Janome Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Janome"
#. description for pyembroidery file format: vp3
#. description for pyembroidery file format: ksm
@@ -992,123 +1017,123 @@ msgstr ""
#: pyembroidery-format-descriptions.py:70
#: pyembroidery-format-descriptions.py:72
msgid "Pfaff Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Pfaff"
#. description for pyembroidery file format: svg
#: pyembroidery-format-descriptions.py:14
msgid "Scalable Vector Graphics"
-msgstr ""
+msgstr "Scalable Vector Graphics (SVG)"
#. description for pyembroidery file format: csv
#: pyembroidery-format-descriptions.py:16
msgid "Comma-separated values"
-msgstr ""
+msgstr "Valeurs séparées par des virgules (CSV)"
#. description for pyembroidery file format: xxx
#: pyembroidery-format-descriptions.py:18
msgid "Singer Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Singer"
#. description for pyembroidery file format: u01
#: pyembroidery-format-descriptions.py:22
msgid "Barudan Embroidery Format"
-msgstr ""
+msgstr "Format de broder Barudan"
#. description for pyembroidery file format: shv
#: pyembroidery-format-descriptions.py:24
msgid "Husqvarna Viking Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Husqvarna Viking"
#. description for pyembroidery file format: 10o
#. description for pyembroidery file format: 100
#: pyembroidery-format-descriptions.py:26
#: pyembroidery-format-descriptions.py:28
msgid "Toyota Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Toyota"
#. description for pyembroidery file format: bro
#: pyembroidery-format-descriptions.py:30
msgid "Bits & Volts Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Bits & Volts"
#. description for pyembroidery file format: dat
#: pyembroidery-format-descriptions.py:32
msgid "Sunstar or Barudan Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Sunstar ou Barudan"
#. description for pyembroidery file format: dsb
#: pyembroidery-format-descriptions.py:34
msgid "Tajima(Barudan) Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Tajima (Barudan)"
#. description for pyembroidery file format: dsz
#: pyembroidery-format-descriptions.py:36
msgid "ZSK USA Embroidery Format"
-msgstr ""
+msgstr "Format de broderie ZSK USA"
#. description for pyembroidery file format: emd
#: pyembroidery-format-descriptions.py:38
msgid "Elna Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Elna"
#. description for pyembroidery file format: exy
#: pyembroidery-format-descriptions.py:40
msgid "Eltac Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Eltac"
#. description for pyembroidery file format: fxy
#: pyembroidery-format-descriptions.py:42
msgid "Fortron Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Fortron"
#. description for pyembroidery file format: gt
#: pyembroidery-format-descriptions.py:44
msgid "Gold Thread Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Gold Thread"
#. description for pyembroidery file format: inb
#: pyembroidery-format-descriptions.py:46
msgid "Inbro Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Inbro"
#. description for pyembroidery file format: tap
#: pyembroidery-format-descriptions.py:52
msgid "Happy Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Happy"
#. description for pyembroidery file format: stx
#: pyembroidery-format-descriptions.py:54
msgid "Data Stitch Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Data Stitch"
#. description for pyembroidery file format: new
#: pyembroidery-format-descriptions.py:60
msgid "Ameco Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Ameco"
#. description for pyembroidery file format: mit
#: pyembroidery-format-descriptions.py:64
msgid "Mitsubishi Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Mitsubishi"
#. description for pyembroidery file format: stc
#: pyembroidery-format-descriptions.py:76
msgid "Gunold Embroidery Format"
-msgstr ""
+msgstr "Format de broderie Gunold"
#. description for pyembroidery file format: zxy
#: pyembroidery-format-descriptions.py:78
msgid "ZSK TC Embroidery Format"
-msgstr ""
+msgstr "Format de broderie ZSK TC"
#. description for pyembroidery file format: pmv
#: pyembroidery-format-descriptions.py:80
msgid "Brother Stitch Format"
-msgstr ""
+msgstr "Format de broderie Brother"
#: templates/convert_to_satin.inx:3
msgid "Convert Line to Satin"
-msgstr ""
+msgstr "Convertir ligne en satin"
#. This is used for the submenu under Extensions -> Ink/Stitch. Translate this
#. to your language's word for its language, e.g. "Español" for the spanish
@@ -1119,101 +1144,101 @@ msgstr ""
#: templates/object_commands.inx:15 templates/params.inx:12
#: templates/print.inx:12 templates/simulate.inx:12
msgid "English"
-msgstr ""
+msgstr "Anglais"
#: templates/embroider.inx:3
msgid "Embroider"
-msgstr ""
+msgstr "Broder"
#: templates/embroider.inx:7
msgid "Collapse length (mm)"
-msgstr ""
+msgstr "Longueur de fusion (mm)"
#: templates/embroider.inx:7
msgid "Jump stitches smaller than this will be treated as normal stitches."
-msgstr ""
+msgstr "Des points sautés plus petits que cela seront considérés comme des points ordinaires."
#: templates/embroider.inx:8
msgid "Hide other layers"
-msgstr ""
+msgstr "Masquer les autres calques"
#: templates/embroider.inx:8
msgid "Hide all other top-level layers when the embroidery layer is generated, in order to make stitching discernible."
-msgstr ""
+msgstr "Masquer toutes les autres calques de niveau supérieur lorsque la couche de broderie est générée, afin de rendre les broderies discernables."
#: templates/embroider.inx:9
msgid "Output file format"
-msgstr ""
+msgstr "Format de fichier de sortie"
#: templates/embroider.inx:14
msgid "DEBUG"
-msgstr ""
+msgstr "DÉBOGAGE"
#: templates/embroider.inx:17
msgid "Directory"
-msgstr ""
+msgstr "Dossier"
#: templates/embroider.inx:17
msgid "Leave empty to save the output in Inkscape's extension directory."
-msgstr ""
+msgstr "Laissez vide pour enregistrer la sortie dans le dossier d’Inkscape."
#: templates/flip.inx:3
msgid "Flip Satin Columns"
-msgstr ""
+msgstr "Invertir les colonnes satin"
#: templates/global_commands.inx:3
msgid "Add Commands"
-msgstr ""
+msgstr "Ajouter des commandes"
#: templates/global_commands.inx:7
msgid "These commands affect the entire embroidery design."
-msgstr ""
+msgstr "Ces commandes affecteront tout le design de broderie."
#. Inkscape submenu under Extensions -> Ink/Stitch
#: templates/global_commands.inx:18 templates/layer_commands.inx:17
#: templates/object_commands.inx:16
msgid "Commands"
-msgstr ""
+msgstr "Commandes"
#: templates/input.inx:11
#, python-format
msgid "convert %(file_extension)s file to Ink/Stitch manual-stitch paths"
-msgstr ""
+msgstr "Convertir fichier %(file_extension)s en chemins de points manuels Ink/Stitch"
#: templates/install.inx:3
msgid "Install add-ons for Inkscape"
-msgstr ""
+msgstr "Installer des extensions pour Inkscape"
#: templates/layer_commands.inx:3
msgid "Add Layer Commands"
-msgstr ""
+msgstr "Ajouter des commandes de calques"
#: templates/layer_commands.inx:7
msgid "Commands will be added to the currently-selected layer."
-msgstr ""
+msgstr "Les commandes s’ajouteront au calque sélectionné."
#: templates/object_commands.inx:3
msgid "Attach Commands to Selected Objects"
-msgstr ""
+msgstr "Attacher des commandes à des objets sélectionnés"
#: templates/output.inx:11
#, python-format
msgid "Save design in %(file_extension)s format using Ink/Stitch"
-msgstr ""
+msgstr "Enregistrer la création au format %(file_extension)s à l’aide d’Ink/Stitch"
#: templates/params.inx:3
msgid "Params"
-msgstr ""
+msgstr "Paramètres"
#: templates/simulate.inx:3
msgid "Simulate"
-msgstr ""
+msgstr "Simuler"
#: templates/zip.inx:10
msgid "Ink/Stitch: ZIP export multiple formats (.zip)"
-msgstr ""
+msgstr "Ink/Stitch : ZIP exporter plusieurs formats (.zip)"
#: templates/zip.inx:11
msgid "Create a ZIP with multiple embroidery file formats using Ink/Stitch"
-msgstr ""
+msgstr "Créer un ZIP avec des formats de fichiers de broderie multiples à l’aide d’encre/Stitch"
diff --git a/translations/messages_he_IL.po b/translations/messages_he_IL.po
index cc526faf..8e699296 100644
--- a/translations/messages_he_IL.po
+++ b/translations/messages_he_IL.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Hebrew\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_hu_HU.po b/translations/messages_hu_HU.po
index 0db8cbcb..5379eeba 100644
--- a/translations/messages_hu_HU.po
+++ b/translations/messages_hu_HU.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Hungarian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_it_IT.po b/translations/messages_it_IT.po
index 062fa030..53da3384 100644
--- a/translations/messages_it_IT.po
+++ b/translations/messages_it_IT.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Italian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_ja_JP.po b/translations/messages_ja_JP.po
index b1dc3454..a7e0afa9 100644
--- a/translations/messages_ja_JP.po
+++ b/translations/messages_ja_JP.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Japanese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_ko_KR.po b/translations/messages_ko_KR.po
index ace7b08f..ad4516e7 100644
--- a/translations/messages_ko_KR.po
+++ b/translations/messages_ko_KR.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Korean\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_nl_NL.po b/translations/messages_nl_NL.po
index 23975ef1..02a9b4ee 100644
--- a/translations/messages_nl_NL.po
+++ b/translations/messages_nl_NL.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Dutch\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_no_NO.po b/translations/messages_no_NO.po
index 89e1fc7d..c9ea4ad0 100644
--- a/translations/messages_no_NO.po
+++ b/translations/messages_no_NO.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Norwegian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_pl_PL.po b/translations/messages_pl_PL.po
index f4217195..2ead69d1 100644
--- a/translations/messages_pl_PL.po
+++ b/translations/messages_pl_PL.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Polish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_pt_BR.po b/translations/messages_pt_BR.po
index 46e5b26d..fc9bf0bb 100644
--- a/translations/messages_pt_BR.po
+++ b/translations/messages_pt_BR.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Portuguese, Brazilian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_pt_PT.po b/translations/messages_pt_PT.po
index dad2bdb9..3e635d66 100644
--- a/translations/messages_pt_PT.po
+++ b/translations/messages_pt_PT.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Portuguese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,8 +105,8 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
-msgstr "Auto-preenchimento"
+msgid "AutoFill"
+msgstr ""
#: lib/elements/auto_fill.py:14
msgid "Automatically routed fill stitching"
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr "Preenchimento"
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr "Coluna de matizado"
@@ -443,7 +459,7 @@ msgstr ""
msgid "Install"
msgstr "Instalar"
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr "Cancelar"
@@ -451,23 +467,23 @@ msgstr "Cancelar"
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr "Instalação falhou"
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr "Instalação concluída"
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -497,92 +513,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr "Definições serão aplicadas a 1 objecto."
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr "Definições serão aplicadas a %d objectos."
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr "Algumas definições com valores diferentes entre objectos. Seleccione um valor da lista ou digite novo valor."
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr "Desactivar esta aba desactivará as seguintes %d abas."
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr "Desactivar esta aba desactivará a seguinte aba."
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr "Activar esta aba desactivará %s e vice-versa."
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr "Objectos do Inkscape"
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr "Parametros de Bordado"
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr "Pré-definições"
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr "Carregar"
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr "Adicionar"
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr "Substituir"
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr "Eliminar"
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr "Usar ultimas definições"
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr "Aplicar e Sair"
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr "Pré-visualização"
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr "Erro Interno"
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr "Seleccione ou insira uma pré-definição primeiro."
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr "Pré-definição"
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr "Pré-definição \"%s\" não encontrada."
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr "Pré-definição \"%s\" já existe. Use outro nome ou clique \"Substituir\""
@@ -604,10 +628,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr "Simulação de Bordado"
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -619,53 +639,58 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
-msgstr ""
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
+msgstr "Simulação de Bordado"
#: lib/stitches/auto_fill.py:167
msgid "Unable to autofill. This most often happens because your shape is made up of multiple sections that aren't connected."
diff --git a/translations/messages_ro_RO.po b/translations/messages_ro_RO.po
index 695851fe..1b76a3b6 100644
--- a/translations/messages_ro_RO.po
+++ b/translations/messages_ro_RO.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Romanian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_ru_RU.po b/translations/messages_ru_RU.po
index 879aad73..fee1cae8 100644
--- a/translations/messages_ru_RU.po
+++ b/translations/messages_ru_RU.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Russian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_sr_SP.po b/translations/messages_sr_SP.po
index 6c1553d5..874f1515 100644
--- a/translations/messages_sr_SP.po
+++ b/translations/messages_sr_SP.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Serbian (Cyrillic)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_sv_SE.po b/translations/messages_sv_SE.po
index c06a2017..f142d8e7 100644
--- a/translations/messages_sv_SE.po
+++ b/translations/messages_sv_SE.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Swedish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_tr_TR.po b/translations/messages_tr_TR.po
index e0de35d6..469c5352 100644
--- a/translations/messages_tr_TR.po
+++ b/translations/messages_tr_TR.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Turkish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_uk_UA.po b/translations/messages_uk_UA.po
index a3bd4244..7e9d0a4b 100644
--- a/translations/messages_uk_UA.po
+++ b/translations/messages_uk_UA.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Ukrainian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_vi_VN.po b/translations/messages_vi_VN.po
index a24b56c1..b77d3ffa 100644
--- a/translations/messages_vi_VN.po
+++ b/translations/messages_vi_VN.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Vietnamese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_zh_CN.po b/translations/messages_zh_CN.po
index 43f1e648..733abcbd 100644
--- a/translations/messages_zh_CN.po
+++ b/translations/messages_zh_CN.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Chinese Simplified\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167
diff --git a/translations/messages_zh_TW.po b/translations/messages_zh_TW.po
index 5c85cdf8..b8f576b0 100644
--- a/translations/messages_zh_TW.po
+++ b/translations/messages_zh_TW.po
@@ -2,14 +2,14 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-24 20:56-0400\n"
-"PO-Revision-Date: 2018-09-08 14:03\n"
+"POT-Creation-Date: 2018-09-18 00:46+0000\n"
+"PO-Revision-Date: 2018-09-19 01:12\n"
"Last-Translator: lexelby <github.com@lexneva.name>\n"
"Language-Team: Chinese Traditional\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.5.3\n"
+"Generated-By: Babel 2.6.0\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: crowdin.com\n"
"X-Crowdin-Project: inkstitch\n"
@@ -105,7 +105,7 @@ msgid "%(command)s: %(description)s"
msgstr ""
#: lib/elements/auto_fill.py:11
-msgid "Auto-Fill"
+msgid "AutoFill"
msgstr ""
#: lib/elements/auto_fill.py:14
@@ -170,11 +170,23 @@ msgstr ""
msgid "Expand the shape before fill stitching, to compensate for gaps between shapes."
msgstr ""
-#: lib/elements/element.py:230
+#: lib/elements/element.py:202
+#, python-format
+msgid "Object %(id)s has an empty 'd' attribute. Please delete this object from your document."
+msgstr ""
+
+#: lib/elements/element.py:234
#, python-format
msgid "%(id)s has more than one command of type '%(command)s' linked to it"
msgstr ""
+#. used when showing an error message to the user such as "satin column: One or
+#. more of the rungs doesn't
+#. intersect both rails."
+#: lib/elements/element.py:273
+msgid "error:"
+msgstr ""
+
#: lib/elements/fill.py:12
msgid "Fill"
msgstr ""
@@ -232,6 +244,10 @@ msgstr ""
msgid "shape %s is so small that it cannot be filled with stitches. Please make it bigger or delete it."
msgstr ""
+#: lib/elements/fill.py:125
+msgid "shape is not valid. This can happen if the border crosses over itself."
+msgstr ""
+
#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
@@ -442,7 +458,7 @@ msgstr ""
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:40 lib/extensions/params.py:380
+#: lib/extensions/install.py:40 lib/extensions/params.py:408
msgid "Cancel"
msgstr ""
@@ -450,23 +466,23 @@ msgstr ""
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:64
+#: lib/extensions/install.py:71
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:65
+#: lib/extensions/install.py:72
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:76
msgid "Inkscape add-on files have been installed. Please restart Inkscape to load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:70
+#: lib/extensions/install.py:77
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:104
+#: lib/extensions/install.py:114
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -496,92 +512,100 @@ msgstr ""
msgid "Please choose one or more commands to attach."
msgstr ""
-#: lib/extensions/params.py:244
+#: lib/extensions/params.py:250
msgid "These settings will be applied to 1 object."
msgstr ""
-#: lib/extensions/params.py:246
+#: lib/extensions/params.py:252
#, python-format
msgid "These settings will be applied to %d objects."
msgstr ""
-#: lib/extensions/params.py:249
+#: lib/extensions/params.py:255
msgid "Some settings had different values across objects. Select a value from the dropdown or enter a new one."
msgstr ""
-#: lib/extensions/params.py:253
+#: lib/extensions/params.py:259
#, python-format
msgid "Disabling this tab will disable the following %d tabs."
msgstr ""
-#: lib/extensions/params.py:255
+#: lib/extensions/params.py:261
msgid "Disabling this tab will disable the following tab."
msgstr ""
-#: lib/extensions/params.py:258
+#: lib/extensions/params.py:264
#, python-format
msgid "Enabling this tab will disable %s and vice-versa."
msgstr ""
-#: lib/extensions/params.py:288
+#: lib/extensions/params.py:294
msgid "Inkscape objects"
msgstr ""
-#: lib/extensions/params.py:346
+#: lib/extensions/params.py:351
+msgid "Click to force this parameter to be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:359
+msgid "This parameter will be saved when you click \"Apply and Quit\""
+msgstr ""
+
+#: lib/extensions/params.py:374
msgid "Embroidery Params"
msgstr ""
-#: lib/extensions/params.py:363
+#: lib/extensions/params.py:391
msgid "Presets"
msgstr ""
-#: lib/extensions/params.py:368
+#: lib/extensions/params.py:396
msgid "Load"
msgstr ""
-#: lib/extensions/params.py:371
+#: lib/extensions/params.py:399
msgid "Add"
msgstr ""
-#: lib/extensions/params.py:374
+#: lib/extensions/params.py:402
msgid "Overwrite"
msgstr ""
-#: lib/extensions/params.py:377
+#: lib/extensions/params.py:405
msgid "Delete"
msgstr ""
-#: lib/extensions/params.py:384
+#: lib/extensions/params.py:412
msgid "Use Last Settings"
msgstr ""
-#: lib/extensions/params.py:387
+#: lib/extensions/params.py:415
msgid "Apply and Quit"
msgstr ""
-#: lib/extensions/params.py:439
+#: lib/extensions/params.py:468
msgid "Preview"
msgstr ""
-#: lib/extensions/params.py:458
+#: lib/extensions/params.py:484
msgid "Internal Error"
msgstr ""
-#: lib/extensions/params.py:511
+#: lib/extensions/params.py:537
msgid "Please enter or select a preset name first."
msgstr ""
-#: lib/extensions/params.py:511 lib/extensions/params.py:517
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:537 lib/extensions/params.py:543
+#: lib/extensions/params.py:571
msgid "Preset"
msgstr ""
-#: lib/extensions/params.py:517
+#: lib/extensions/params.py:543
#, python-format
msgid "Preset \"%s\" not found."
msgstr ""
-#: lib/extensions/params.py:545
+#: lib/extensions/params.py:571
#, python-format
msgid "Preset \"%s\" already exists. Please use another name or press \"Overwrite\""
msgstr ""
@@ -603,10 +627,6 @@ msgstr ""
msgid "Ink/Stitch Print"
msgstr ""
-#: lib/extensions/simulate.py:29
-msgid "Embroidery Simulation"
-msgstr ""
-
#: lib/extensions/zip.py:49
msgid "No embroidery file formats selected."
msgstr ""
@@ -618,52 +638,57 @@ msgstr ""
msgid "Generate INX files"
msgstr ""
-#: lib/simulator.py:40
-msgid "Speed up"
+#. low-level file error. %(error)s is (hopefully?) translated by
+#. the user's system automatically.
+#: lib/output.py:102
+#, python-format
+msgid "Error writing to %(path)s: %(error)s"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#. command label at bottom of simulator window
+#: lib/simulator.py:12
+msgid "STITCH"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:12
+msgid "JUMP"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:12
+msgid "TRIM"
msgstr ""
-#: lib/simulator.py:42
-msgid "Pause"
+#: lib/simulator.py:12
+msgid "STOP"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
msgstr ""
-#: lib/simulator.py:43
-msgid "Restart"
+#: lib/simulator.py:49 lib/simulator.py:208 lib/simulator.py:215
+msgid "Pause"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:51
+msgid "Restart"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:53
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:168
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:211
+msgid "Start"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:633
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167