summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/extensions/__init__.py21
-rw-r--r--lib/extensions/install.py5
-rwxr-xr-xlib/inx/extensions.py16
-rw-r--r--lib/inx/utils.py2
-rw-r--r--messages.po31
m---------pyembroidery0
-rw-r--r--templates/embroider.inx1
-rw-r--r--templates/layer_commands.inx4
-rw-r--r--templates/object_commands.inx7
9 files changed, 57 insertions, 30 deletions
diff --git a/lib/extensions/__init__.py b/lib/extensions/__init__.py
index 1606795c..cf0313b2 100644
--- a/lib/extensions/__init__.py
+++ b/lib/extensions/__init__.py
@@ -11,12 +11,15 @@ from object_commands import ObjectCommands
from layer_commands import LayerCommands
from convert_to_satin import ConvertToSatin
-from base import InkstitchExtension
-import inspect
-
-extensions = []
-for item in locals().values():
- if inspect.isclass(item) and \
- issubclass(item, InkstitchExtension) and \
- item is not InkstitchExtension:
- extensions.append(item)
+__all__ = extensions = [Embroider,
+ Install,
+ Params,
+ Print,
+ Simulate,
+ Input,
+ Output,
+ Zip,
+ Flip,
+ ObjectCommands,
+ LayerCommands,
+ ConvertToSatin]
diff --git a/lib/extensions/install.py b/lib/extensions/install.py
index 42a92113..e405cbac 100644
--- a/lib/extensions/install.py
+++ b/lib/extensions/install.py
@@ -14,6 +14,7 @@ import wx
import inkex
from ..utils import guess_inkscape_config_path, get_bundled_dir
+from ..i18n import _
class InstallerFrame(wx.Frame):
@@ -98,6 +99,10 @@ class InstallerFrame(wx.Frame):
shutil.copy(palette_file, dest)
class Install(inkex.Effect):
+ @classmethod
+ def name(cls):
+ return "install"
+
def effect(self):
app = wx.App()
installer_frame = InstallerFrame(None, title=_("Ink/Stitch Add-ons Installer"), size=(550, 250))
diff --git a/lib/inx/extensions.py b/lib/inx/extensions.py
index 2b097440..4b4b3c13 100755
--- a/lib/inx/extensions.py
+++ b/lib/inx/extensions.py
@@ -3,6 +3,18 @@ import pyembroidery
from .utils import build_environment, write_inx_file
from .outputs import pyembroidery_output_formats
from ..extensions import extensions, Input, Output
+from ..commands import LAYER_COMMANDS, OBJECT_COMMANDS, COMMANDS
+
+
+def layer_commands():
+ # We purposefully avoid using commands.get_command_description() here. We
+ # want to call _() on the description inside the actual template so that
+ # we use the translation language selected in build_environment().
+ return [(command, COMMANDS[command]) for command in LAYER_COMMANDS]
+
+
+def object_commands():
+ return [(command, COMMANDS[command]) for command in OBJECT_COMMANDS]
def pyembroidery_debug_formats():
@@ -21,4 +33,6 @@ def generate_extension_inx_files():
name = extension.name()
template = env.get_template('%s.inx' % name)
write_inx_file(name, template.render(formats=pyembroidery_output_formats(),
- debug_formats=pyembroidery_debug_formats()))
+ debug_formats=pyembroidery_debug_formats(),
+ layer_commands=layer_commands(),
+ object_commands=object_commands()))
diff --git a/lib/inx/utils.py b/lib/inx/utils.py
index 6103f360..7c471276 100644
--- a/lib/inx/utils.py
+++ b/lib/inx/utils.py
@@ -28,7 +28,7 @@ def build_environment():
def write_inx_file(name, contents):
inx_file_name = "inkstitch_%s_%s.inx" % (name, current_locale)
with open(os.path.join(inx_path, inx_file_name), 'w') as inx_file:
- print >> inx_file, contents
+ print >> inx_file, contents.encode("utf-8")
def iterate_inx_locales():
global current_translation, current_locale
diff --git a/messages.po b/messages.po
index 074159c4..fb3abe12 100644
--- a/messages.po
+++ b/messages.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2018-08-20 20:42-0400\n"
+"POT-Creation-Date: 2018-08-23 21:24-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -409,52 +409,52 @@ msgstr ""
msgid "Please select one or more satin columns to flip."
msgstr ""
-#: lib/extensions/install.py:30
+#: lib/extensions/install.py:31
msgid ""
"Ink/Stitch can install files (\"add-ons\") that make it easier to use "
"Inkscape to create machine embroidery designs. These add-ons will be "
"installed:"
msgstr ""
-#: lib/extensions/install.py:31
+#: lib/extensions/install.py:32
msgid "thread manufacturer color palettes"
msgstr ""
-#: lib/extensions/install.py:32
+#: lib/extensions/install.py:33
msgid "Ink/Stitch visual commands (Object -> Symbols...)"
msgstr ""
-#: lib/extensions/install.py:41
+#: lib/extensions/install.py:42
msgid "Install"
msgstr ""
-#: lib/extensions/install.py:44 lib/extensions/params.py:380
+#: lib/extensions/install.py:45 lib/extensions/params.py:380
msgid "Cancel"
msgstr ""
-#: lib/extensions/install.py:58
+#: lib/extensions/install.py:59
msgid "Choose Inkscape directory"
msgstr ""
-#: lib/extensions/install.py:68
+#: lib/extensions/install.py:69
msgid "Inkscape add-on installation failed"
msgstr ""
-#: lib/extensions/install.py:69
+#: lib/extensions/install.py:70
msgid "Installation Failed"
msgstr ""
-#: lib/extensions/install.py:73
+#: lib/extensions/install.py:74
msgid ""
"Inkscape add-on files have been installed. Please restart Inkscape to "
"load the new add-ons."
msgstr ""
-#: lib/extensions/install.py:74
+#: lib/extensions/install.py:75
msgid "Installation Completed"
msgstr ""
-#: lib/extensions/install.py:103
+#: lib/extensions/install.py:108
msgid "Ink/Stitch Add-ons Installer"
msgstr ""
@@ -1113,9 +1113,12 @@ msgstr ""
msgid "Convert Line to Satin"
msgstr ""
-#: templates/convert_to_satin.inx:12 templates/embroider.inx:23
+#. This is used for the submenu under Extensions -> Ink/Stitch. Translate this
+#. to your language's word for its language, e.g. "Español" for the spanish
+#. translation.
+#: templates/convert_to_satin.inx:12 templates/embroider.inx:24
#: templates/flip.inx:12 templates/install.inx:12
-#: templates/layer_commands.inx:16 templates/object_commands.inx:14
+#: templates/layer_commands.inx:16 templates/object_commands.inx:15
#: templates/params.inx:12 templates/print.inx:12 templates/simulate.inx:12
msgid "English"
msgstr ""
diff --git a/pyembroidery b/pyembroidery
-Subproject fe7609dc59efb15f6a27d0ff7d82ac2ce7f6be5
+Subproject 5dd6f5f460def25b47ec588603b7650188ff213
diff --git a/templates/embroider.inx b/templates/embroider.inx
index d89b4d6f..54f3be1b 100644
--- a/templates/embroider.inx
+++ b/templates/embroider.inx
@@ -20,6 +20,7 @@
<object-type>all</object-type>
<effects-menu>
<submenu name="Ink/Stitch">
+ {# L10N This is used for the submenu under Extensions -> Ink/Stitch. Translate this to your language's word for its language, e.g. "Español" for the spanish translation. #}
<submenu name="{% trans %}English{% endtrans %}" />
</submenu>
</effects-menu>
diff --git a/templates/layer_commands.inx b/templates/layer_commands.inx
index 17eb3d83..a6c0283c 100644
--- a/templates/layer_commands.inx
+++ b/templates/layer_commands.inx
@@ -11,11 +11,11 @@
<param name="extension" type="string" gui-hidden="true">layer_commands</param>
<effect>
<object-type>all</object-type>
- <submenu name="Ink/Stitch">
+ <effects-menu>
<submenu name="Ink/Stitch">
<submenu name="{% trans %}English{% endtrans %}" />
</submenu>
- </submenu>
+ </effects-menu>
</effect>
<script>
<command reldir="extensions" interpreter="python">inkstitch.py</command>
diff --git a/templates/object_commands.inx b/templates/object_commands.inx
index 5807dc47..6de2a3fc 100644
--- a/templates/object_commands.inx
+++ b/templates/object_commands.inx
@@ -5,15 +5,16 @@
<dependency type="executable" location="extensions">inkstitch.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
{% for command, description in object_commands %}
- <param name="{{ object }}" type="boolean" _gui-text="{{ _(description ) }}">false</param>
+ <param name="{{ command }}" type="boolean" _gui-text="{{ _(description ) }}">false</param>
{% endfor %}
+ <param name="extension" type="string" gui-hidden="true">object_commands</param>
<effect>
<object-type>all</object-type>
- <submenu name="Ink/Stitch">
+ <effects-menu>
<submenu name="Ink/Stitch">
<submenu name="{% trans %}English{% endtrans %}" />
</submenu>
- </submenu>
+ </effects-menu>
</effect>
<script>
<command reldir="extensions" interpreter="python">inkstitch.py</command>