summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml17
-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.py54
-rw-r--r--translations/messages_af_ZA.po173
-rw-r--r--translations/messages_ar_SA.po173
-rw-r--r--translations/messages_ca_ES.po173
-rw-r--r--translations/messages_cs_CZ.po173
-rw-r--r--translations/messages_da_DK.po173
-rw-r--r--translations/messages_de_DE.po193
-rw-r--r--translations/messages_el_GR.po173
-rw-r--r--translations/messages_en_US.po173
-rw-r--r--translations/messages_es_ES.po173
-rw-r--r--translations/messages_fi_FI.po173
-rw-r--r--translations/messages_fr_FR.po421
-rw-r--r--translations/messages_he_IL.po173
-rw-r--r--translations/messages_hu_HU.po173
-rw-r--r--translations/messages_it_IT.po173
-rw-r--r--translations/messages_ja_JP.po173
-rw-r--r--translations/messages_ko_KR.po173
-rw-r--r--translations/messages_nl_NL.po173
-rw-r--r--translations/messages_no_NO.po173
-rw-r--r--translations/messages_pl_PL.po173
-rw-r--r--translations/messages_pt_BR.po173
-rw-r--r--translations/messages_pt_PT.po175
-rw-r--r--translations/messages_ro_RO.po173
-rw-r--r--translations/messages_ru_RU.po173
-rw-r--r--translations/messages_sr_SP.po173
-rw-r--r--translations/messages_sv_SE.po173
-rw-r--r--translations/messages_tr_TR.po173
-rw-r--r--translations/messages_uk_UA.po173
-rw-r--r--translations/messages_vi_VN.po173
-rw-r--r--translations/messages_zh_CN.po173
-rw-r--r--translations/messages_zh_TW.po173
36 files changed, 3641 insertions, 1906 deletions
diff --git a/.travis.yml b/.travis.yml
index ee8edefa..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
@@ -93,8 +93,8 @@ install:
wget -q https://www.python.org/ftp/python/2.7.14/python-2.7.14.msi --output-document=python.msi
wine msiexec /i python.msi /qn TARGETDIR=C:\\Python
- wine c:\\Python\\python.exe c:\\Python\\scripts\\pip.exe install pyinstaller --upgrade
- wine c:\\Python\\python.exe c:\\Python\\scripts\\pip.exe install setuptools --upgrade
+ wine c:\\Python\\python.exe c:\\Python\\scripts\\pip.exe install --upgrade pyinstaller==3.3.1
+ wine c:\\Python\\python.exe c:\\Python\\scripts\\pip.exe install --upgrade setuptools
wget -q https://github.com/lexelby/inkstitch-build-objects/releases/download/v1.0.0/Shapely-1.6.3-cp27-cp27m-win32.whl
wine c:\\Python\\python.exe c:\\Python\\scripts\\pip.exe install Shapely-1.6.3-cp27-cp27m-win32.whl
@@ -125,7 +125,7 @@ install:
source venv/bin/activate
pip install -r requirements.txt
- pip install pyinstaller
+ pip install pyinstaller==3.3.1
set +x
elif [ -n "$LINT" ]; then
pip install flake8
@@ -159,11 +159,14 @@ script:
wget https://downloads.crowdin.com/cli/v2/crowdin-cli.zip
unzip -j crowdin-cli.zip
+ pip install flask==0.* jinja2 Babel ./pyembroidery
make messages.po
- java -jar crowdin-cli.jar upload -b master
- make clean
+ echo "uploading messages.po to crowdin"
+ java -jar crowdin-cli.jar -v upload -b master
+
- java -jar crowdin-cli.jar pull -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/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 664486cd..1f3032ca 100644
--- a/lib/extensions/params.py
+++ b/lib/extensions/params.py
@@ -250,16 +250,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 5855264d..34d12887 100644
--- a/lib/simulator.py
+++ b/lib/simulator.py
@@ -30,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
@@ -39,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)
@@ -68,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 = [
@@ -152,9 +156,9 @@ class ControlPanel(wx.Panel):
def on_direction_button(self, event):
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))
@@ -164,7 +168,7 @@ 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):
@@ -179,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()
@@ -216,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):
@@ -250,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)
@@ -558,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()
@@ -582,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):
diff --git a/translations/messages_af_ZA.po b/translations/messages_af_ZA.po
index afd6c718..946f4374 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..9cc20e0c 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..f6d32f5a 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..7ef147a2 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..89738a3b 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..235c7606 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,90 @@ 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 ""
+
+#. 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:40
-msgid "Press + or arrow up to speed up"
-msgstr "Drücke + oder Pfeil nach oben zur Beschleunigung"
+#: lib/simulator.py:12
+msgid "STOP"
+msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
-msgstr "Verlangsamen"
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
+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:44
+msgid "Slow down (arrow down)"
+msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
+msgstr ""
+
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
+msgstr ""
+
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
+msgstr ""
+
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
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:59
+msgid "Pause (P)"
+msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
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:62
+msgid "Restart (R)"
+msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
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:65
+msgid "Quit (Q)"
+msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
-msgstr "Stiche # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
+msgstr ""
+
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
-msgstr "Stiche #"
+#: lib/simulator.py:651
+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..ca43f677 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..dc091f02 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..428e1f0a 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..4fab2c66 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..e0655b9f 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,92 @@ 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:12
+msgid "STOP"
+msgstr "STOP"
+
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
+msgstr "CHANGEMENT COULEUR"
+
+#: lib/simulator.py:44
+msgid "Slow down (arrow down)"
+msgstr "Ralentir (flèche vers le bas)"
+
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
+msgstr "Accélérer (flèche vers le haut)"
+
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
+msgstr "Aller un pas en arrière (-)"
-#: lib/simulator.py:42
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
+msgstr "Aller un pas en avant (+)"
+
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr "Changer de direction (flèche à gauche | flèche à droite)"
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
-msgstr ""
+msgstr "Pause"
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
-msgstr ""
+#: lib/simulator.py:59
+msgid "Pause (P)"
+msgstr "Pause (P)"
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
-msgstr ""
+msgstr "Redémarrer"
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
-msgstr ""
+#: lib/simulator.py:62
+msgid "Restart (R)"
+msgstr "Redémarrer (R)"
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
-msgstr ""
+msgstr "Quitter"
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
-msgstr ""
+#: lib/simulator.py:65
+msgid "Quit (Q)"
+msgstr "Quitter (Q)"
-#: lib/simulator.py:169
-msgid "Stitch # "
-msgstr ""
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
+msgstr "Vitesse : %d points/sec"
-#: lib/simulator.py:172
-msgid "Stitch #"
-msgstr ""
+#: lib/simulator.py:213
+msgid "Start"
+msgstr "Début"
+
+#: lib/simulator.py:651
+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 +771,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 +862,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 +876,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 +1012,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 +1032,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 +1049,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 +1176,101 @@ msgstr ""
#: templates/object_commands.inx:15 templates/params.inx:12
#: templates/print.inx:12 templates/simulate.inx:12
msgid "English"
-msgstr ""
+msgstr "Français"
#: 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 des 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 à des 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..cf2a45e5 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..71087069 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..512991e7 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..4cda09da 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..4868f78a 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..6e4ea146 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..15861909 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..32c1e54c 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..fff2d1b6 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..42f10e4b 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,54 +639,91 @@ 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
+#: lib/simulator.py:12
+msgid "STOP"
+msgstr ""
+
+#: lib/simulator.py:12
+msgid "COLOR CHANGE"
+msgstr ""
+
+#: lib/simulator.py:44
+msgid "Slow down (arrow down)"
+msgstr ""
+
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
+msgstr ""
+
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
+msgstr ""
+
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
+msgstr ""
+
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
msgstr ""
+#: lib/simulator.py:651
+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."
msgstr "Enchimento automático falhou. Verificar se a forma não é composta por múltiplas desconectadas."
diff --git a/translations/messages_ro_RO.po b/translations/messages_ro_RO.po
index 695851fe..ab57fa8d 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..90d8decb 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..6902045c 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..e73a8b00 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..20af5a2c 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..3bf1f51b 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..1a50c1d7 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..3b726c64 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+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..5f99b81d 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-23 01:12+0000\n"
+"PO-Revision-Date: 2018-09-26 01:14\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,89 @@ 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 ""
+
+#. 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:44
+msgid "Slow down (arrow down)"
msgstr ""
-#: lib/simulator.py:40
-msgid "Press + or arrow up to speed up"
+#: lib/simulator.py:47
+msgid "Speed up (arrow up)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Slow down"
+#: lib/simulator.py:50
+msgid "Go on step backward (-)"
msgstr ""
-#: lib/simulator.py:41
-msgid "Press - or arrow down to slow down"
+#: lib/simulator.py:53
+msgid "Go on step forward (+)"
msgstr ""
-#: lib/simulator.py:42
+#: lib/simulator.py:56
+msgid "Switch direction (arrow left | arrow right)"
+msgstr ""
+
+#: lib/simulator.py:57 lib/simulator.py:210 lib/simulator.py:217
msgid "Pause"
msgstr ""
-#: lib/simulator.py:42
-msgid "Press P to pause the animation"
+#: lib/simulator.py:59
+msgid "Pause (P)"
msgstr ""
-#: lib/simulator.py:43
+#: lib/simulator.py:60
msgid "Restart"
msgstr ""
-#: lib/simulator.py:43
-msgid "Press R to restart the animation"
+#: lib/simulator.py:62
+msgid "Restart (R)"
msgstr ""
-#: lib/simulator.py:44
+#: lib/simulator.py:63
msgid "Quit"
msgstr ""
-#: lib/simulator.py:44
-msgid "Press Q to close the simulation window"
+#: lib/simulator.py:65
+msgid "Quit (Q)"
msgstr ""
-#: lib/simulator.py:169
-msgid "Stitch # "
+#: lib/simulator.py:171
+#, python-format
+msgid "Speed: %d stitches/sec"
msgstr ""
-#: lib/simulator.py:172
-msgid "Stitch #"
+#: lib/simulator.py:213
+msgid "Start"
+msgstr ""
+
+#: lib/simulator.py:651
+msgid "Embroidery Simulation"
msgstr ""
#: lib/stitches/auto_fill.py:167