summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--translations/messages_af_ZA.po270
-rw-r--r--translations/messages_ar_SA.po270
-rw-r--r--translations/messages_ca_ES.po270
-rw-r--r--translations/messages_cs_CZ.po274
-rw-r--r--translations/messages_da_DK.po270
-rw-r--r--translations/messages_de_DE.po274
-rw-r--r--translations/messages_el_GR.po272
-rw-r--r--translations/messages_en_US.po270
-rw-r--r--translations/messages_es_ES.po274
-rw-r--r--translations/messages_fi_FI.po272
-rw-r--r--translations/messages_fr_FR.po302
-rw-r--r--translations/messages_he_IL.po270
-rw-r--r--translations/messages_hu_HU.po270
-rw-r--r--translations/messages_it_IT.po274
-rw-r--r--translations/messages_ja_JP.po272
-rw-r--r--translations/messages_ko_KR.po270
-rw-r--r--translations/messages_nl_NL.po272
-rw-r--r--translations/messages_no_NO.po270
-rw-r--r--translations/messages_pl_PL.po270
-rw-r--r--translations/messages_pt_BR.po272
-rw-r--r--translations/messages_pt_PT.po272
-rw-r--r--translations/messages_ro_RO.po270
-rw-r--r--translations/messages_ru_RU.po272
-rw-r--r--translations/messages_sr_SP.po270
-rw-r--r--translations/messages_sv_SE.po272
-rw-r--r--translations/messages_tr_TR.po270
-rw-r--r--translations/messages_uk_UA.po272
-rw-r--r--translations/messages_vi_VN.po270
-rw-r--r--translations/messages_zh_CN.po272
-rw-r--r--translations/messages_zh_TW.po270
30 files changed, 5344 insertions, 2824 deletions
diff --git a/translations/messages_af_ZA.po b/translations/messages_af_ZA.po
index 96de3e15..cfac27bf 100644
--- a/translations/messages_af_ZA.po
+++ b/translations/messages_af_ZA.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_ar_SA.po b/translations/messages_ar_SA.po
index da9eaaf8..c92e75f8 100644
--- a/translations/messages_ar_SA.po
+++ b/translations/messages_ar_SA.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_ca_ES.po b/translations/messages_ca_ES.po
index e08fabb4..aa654ff3 100644
--- a/translations/messages_ca_ES.po
+++ b/translations/messages_ca_ES.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_cs_CZ.po b/translations/messages_cs_CZ.po
index 53b74696..fae3b480 100644
--- a/translations/messages_cs_CZ.po
+++ b/translations/messages_cs_CZ.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr "Zastavit po"
msgid "Add a STOP command after stitching this object."
msgstr "Po sešití tohoto objektu přidejte příkaz STOP."
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr "Spusťte prosím Rozšíření > Ink/Stitch > Odstraňování problémů > Odstraňování problémů s objekty. To vám ukáže přesné místo problému."
@@ -2517,7 +2517,7 @@ msgstr "plochý"
msgid "point"
msgstr "bod"
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Text"
@@ -2558,6 +2558,18 @@ msgstr "Pokud byste chtěli pomoci, prosím\n"
msgid "Include the error description and also (if possible) the svg file."
msgstr "Uveďte popis chyby a také (pokud je to možné) soubor svg."
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr "Vyberte prosím alespoň jeden prvek."
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr "V dokumentu není žádný vyšívací prvek."
@@ -2623,40 +2635,40 @@ msgstr "V celém dokumentu nejsou žádné objekty, se kterými Ink/Stitch umí
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "Tip: Spusťte Rozšíření > Ink/Stitch > Odstraňování problémů > Odstraňování problémů s objekty"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr "Prosím, zadejte text"
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr "Prosím vyberte font"
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr "Zadejte prosím platný název písma."
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr "Seznam všech názvů písem naleznete na našich webových stránkách: https://inkstitch.org/fonts/font-library/"
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr "Prosím, zadejte alespoň jeden formát výstupního souboru"
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr "Prosím, uveďte alespoň jeden formát souboru podporovaný Ink/Stitch"
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr "Seznam všech podporovaných formátů souborů naleznete na našich webových stránkách: https://inkstitch.org/docs/file-formats/#writing"
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Ink/Stitch Písmo"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr "měřítko"
@@ -2684,13 +2696,13 @@ msgstr "{num_elements_removed} prvků odstraněno"
msgid "{num_groups_removed} groups/layers removed"
msgstr "{num_groups_removed} skupin/vrstev odebráno"
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Vyberte jeden nebo více saténových sloupců, které chcete přestřihnout."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "tento saténový sloupek nemá připojený příkaz \"bod řezu saténového sloupu\". Použijte prosím rozšíření \"Připojit příkazy\" a nejprve připojte příkaz \"Bod řezu saténového sloupce\"."
@@ -2736,10 +2748,6 @@ msgstr "Stohovací příkaz"
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "Tato funkce zkopíruje parametry Ink/Stitch z prvního vybraného prvku do zbytku výběru. Vyberte prosím alespoň dva prvky."
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr "Vyberte prosím alespoň jeden prvek."
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2925,14 +2933,14 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr "Vyberte jednu cestu a jednu skupinu písma Ink/Stitch."
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
-msgstr "Text neobsahuje žádný znak."
-
-#: lib/extensions/lettering_along_path.py:84
+#: lib/extensions/lettering_along_path.py:80
msgid "Couldn't identify the font specified in the lettering group."
msgstr "Nepodařilo se identifikovat písmo zadané ve skupině písem."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
+msgstr "Text neobsahuje žádný znak."
+
#: lib/extensions/lettering_custom_font_dir.py:28
msgid "Please specify the directory of your custom fonts."
msgstr "Zadejte prosím adresář vašich vlastních písem."
@@ -3468,11 +3476,12 @@ msgstr "Použít"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3657,7 +3666,7 @@ msgstr "Info"
msgid "Name"
msgstr "Jméno"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr "Hodnota"
@@ -3685,11 +3694,11 @@ msgstr "Knihovnu písem s úplným popisem a vyšívanými příklady naleznete
msgid "https://inkstitch.org/fonts/font-library/"
msgstr "https://inkstitch.org/fonts/font-library/"
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr "Tento font nemá k dispozici žádnou variantu písma. Aktualizujte nebo odeberte písmo."
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3728,96 +3737,123 @@ msgstr "Měřítko:"
msgid "Font"
msgstr "Písmo"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "Vyšívejte řádky textu tam a zpět"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr "Zarovnání textu"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr "Doleva"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr "Doprostřed"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr "Doprava"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr "Do bloku (výchozí)"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr "Do bloku (mezery mezi písmeny)"
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "Vyšívejte řádky textu tam a zpět"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr "Řazení vícebarevných písem. Sjednocuje tartanové vzory."
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr "Vypnuto"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr "Celý text"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr "Čára"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr "Slovo"
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr "Přidejte ořezy"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr "Nikdy"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr "po každém řádku"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "po každém slově"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "po každém písmenu"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr "Přidat příkaz oříznutí"
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr "Používejte příkazové symboly"
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr "Pokud je povoleno, používá příkazové symboly. Když je zakázáno, vloží příkazy oříznutí jako parametry."
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Měřítko"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3835,8 +3871,8 @@ msgstr "Nastavení"
msgid "Stitch direction"
msgstr "Směr stehu"
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr "Měřítko (%)"
@@ -3844,7 +3880,7 @@ msgstr "Měřítko (%)"
msgid "Max. line width"
msgstr "Max. šířka čáry"
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr "Barevné řazení"
@@ -4409,8 +4445,8 @@ msgstr "Odstranit pruh"
msgid "Generate Swatches"
msgstr "Generovat vzorníky"
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4556,32 +4592,32 @@ msgstr "Písmo: japonské"
msgid "Script: latin"
msgstr "Písmo: latinka"
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr "Chybí soubor JSON. Očekáván soubor JSON v následujícím umístění:"
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "Vygenerujte soubor JSON pomocí:\n"
"Rozšíření > Ink/Stitch > Správa písem > Generovat JSON..."
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr "Poškozený soubor JSON"
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "Znovu vygenerujte soubor JSON pomocí:\n"
"Rozšíření > Ink/Stitch > Správa písem > Generovat JSON..."
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "Písmo '%s' nemá žádné varianty."
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr "Skupina barev"
@@ -5158,6 +5194,10 @@ msgstr "Ano"
msgid "No"
msgstr "Ne"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Měřítko"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Přispůsobit se"
@@ -5385,6 +5425,48 @@ msgstr "Barevný formát Inf"
msgid "Json Export"
msgstr "Json Export"
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Upravit"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr "Aplikovat paletu"
@@ -5528,7 +5610,7 @@ msgstr "Zachovej původní cesty"
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr "Toto rozšíření se pokusí vytvořit jednu stehovou cestu přes všechny vybrané saténové sloupky."
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5594,44 +5676,56 @@ msgstr "Hodnota měřítka musí být v rozsahu měřítka zadaného písma."
msgid "Align Multiline Text"
msgstr "Zarovnání víceřádkového textu"
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr "Písmo podél cesty: pozice textu"
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr "Používá tuto pozici textu při použití písma podél cesty"
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr "Roztáhnout"
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr "Formát souboru"
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr "Seznam formátů souborů oddělených čárkami"
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr "Toto rozšíření použijte k uložení více souborů s daným textem."
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr "Pokud dokument obsahuje prvek cesty označený jako „batch lettering“, bude použit k umístění textu podél této cesty. Samotná cesta bude odstraněna a nebude vykreslena."
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr "https://inkstitch.org/docs/lettering/#batch-export"
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr "Ink/Stitch: hromadné nápisy (.zip)"
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr "Vytvoř zip s více soubory včetně vyšívaného textu pomocí Ink/Stitch"
@@ -5933,16 +6027,6 @@ msgstr "Duplikovat parametry"
msgid "Applies params from first selected element to the rest of the selection"
msgstr "Použije nastavení první vybrané položky na zbytek výběru"
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Upravit"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr "Zobrazuje informace o výšivkách vybraných položek"
diff --git a/translations/messages_da_DK.po b/translations/messages_da_DK.po
index fe71c8af..f1fa7602 100644
--- a/translations/messages_da_DK.po
+++ b/translations/messages_da_DK.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_de_DE.po b/translations/messages_de_DE.po
index 324f88c8..fcf7cc70 100644
--- a/translations/messages_de_DE.po
+++ b/translations/messages_de_DE.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-27 01:55\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: German\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1258,7 +1258,7 @@ msgstr "Stopp"
msgid "Add a STOP command after stitching this object."
msgstr "Füge einen Stopp-Befehl nach diesem Objekt hinzu."
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr "Bitte rufe die Funktion Erweiterungen > Ink/Stitch > Fehlerbehebung > Fehlerbehebung an Objekten auf. Diese Erweiterung zeigt fehlerhafte Stellen an und gibt am rechten Seitenrand Vorschläge zum Lösen des Problems."
@@ -2522,7 +2522,7 @@ msgstr "flach"
msgid "point"
msgstr "spitz"
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Text"
@@ -2563,6 +2563,18 @@ msgstr "Wenn du uns helfen willst Ink/Stitch zu verbessern,\n"
msgid "Include the error description and also (if possible) the svg file."
msgstr "Sende die Fehlerbeschreibung und (wenn möglich) auch die SVG-Datei."
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr "Bitte mindestens ein Element auswählen."
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr "Es gibt kein stickbares Element im Dokument."
@@ -2628,40 +2640,40 @@ msgstr "Es gibt im gesamten Dokument keine Objekte, mit denen Ink/Stitch arbeite
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "Tipp: Öffne Erweiterungen > Ink/Stitch > Fehlerbehebung > Fehlerbehebung an Objekten"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr "Bitte einen Text angeben"
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr "Bitte eine Schrift angeben"
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr "Bitte einen gültigen Schriftnamen angeben."
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr "Eine Liste mit allen Schriftnamen gibt es auf unserer Webseite: https://inkstitch.org/de/fonts/font-library/"
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr "Bitte mindestens ein Ausgabe-Dateiformat angeben"
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr "Bitte mindestens ein gültiges Ausgabeformat angeben"
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr "Eine Liste mit allen unterstützten Dateiformaten gibt es auf unserer Webseite: https://inkstitch.org/de/docs/file-formats/#schreiben"
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Ink/Stitch Text"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr "Skalierung"
@@ -2689,13 +2701,13 @@ msgstr "{num_elements_removed} Elemente entfernt"
msgid "{num_groups_removed} groups/layers removed"
msgstr "{num_groups_removed} Gruppen/Ebenen entfernt"
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Bitte wähle eine oder mehrere Satinsäulen zum Zerteilen aus."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "Diese Satinsäule hat keinen \"Satinsäule schneiden\" -Befehl. Bitte verwende die Erweiterung \"Befehle zu Objekten hinzufügen\" und füge zuerst den Befehl \"Satinsäule schneiden\" hinzu."
@@ -2741,10 +2753,6 @@ msgstr "Stickreihenfolge"
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "Diese Funktion kopiert Ink/Stitch Parameter von dem zuerst gewählten Element auf den Rest der Auswahl. Dafür bitte mindestens zwei Elemente auswählen."
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr "Bitte mindestens ein Element auswählen."
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr "https://inkstitch.org/de/docs/troubleshoot#element-info"
@@ -2929,14 +2937,14 @@ msgstr "https://inkstitch.org/de/docs/lettering/#text-werkzeug"
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr "Bitte einen Pfad und eine Ink/Stitch-Textgruppe auswählen."
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
-msgstr "Der Text enthält keine Schriftzeichen."
-
-#: lib/extensions/lettering_along_path.py:84
+#: lib/extensions/lettering_along_path.py:80
msgid "Couldn't identify the font specified in the lettering group."
msgstr "Die Schrift konnte nicht gefunden werden."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
+msgstr "Der Text enthält keine Schriftzeichen."
+
#: lib/extensions/lettering_custom_font_dir.py:28
msgid "Please specify the directory of your custom fonts."
msgstr "Bitte den Ordner für die benutzerdefinierte Schriften angeben."
@@ -3475,11 +3483,12 @@ msgstr "Anwenden"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3664,7 +3673,7 @@ msgstr "Info"
msgid "Name"
msgstr "Name"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr "Wert"
@@ -3692,11 +3701,11 @@ msgstr "Eine Schriftbibliothek mit detaillierter Beschreibung und gestickten Bei
msgid "https://inkstitch.org/fonts/font-library/"
msgstr "https://inkstitch.org/de/fonts/font-library/"
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr "Diese Schriftart hat keine verfügbare Schriftvariante. Bitte aktualisieren oder entfernen."
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3735,96 +3744,123 @@ msgstr "Skalierung:"
msgid "Font"
msgstr "Schriftart"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "Sticke Textzeilen vor und zurück"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr "Text ausrichten"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr "Links"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr "Mitte"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr "Rechts"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr "Block (Standard)"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr "Block (Buchstabenabstand)"
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "Sticke Textzeilen vor und zurück"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr "Sortiert mehrfarbige Schriften. Tartan-Schriften werden dabei auf ein Muster reduziert."
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr "Aus"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr "Ganzer Text"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr "Zeile"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr "Wort"
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr "Fadenschnittbefehle hinzufügen"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr "nie"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr "nach jeder Reihe"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "nach jedem Wort"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "nach jedem Buchstaben"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr "Fadenschnitt-Befehl hinzufügen"
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr "Visuelle Befehle verwenden"
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr "Wenn aktiviert, werden visuelle Befehle (Symbole) eingefügt. Wenn deaktiviert, wird der Fadenschnitt über die Parametereinstellungen bestimmt."
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Skalierung"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3842,8 +3878,8 @@ msgstr "Einstellungen"
msgid "Stitch direction"
msgstr "Stickrichtung"
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr "Skalierung (%)"
@@ -3851,7 +3887,7 @@ msgstr "Skalierung (%)"
msgid "Max. line width"
msgstr "Maximale Zeilenlänge"
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr "Farbsortierung"
@@ -4418,8 +4454,8 @@ msgstr "Streifen entfernen"
msgid "Generate Swatches"
msgstr "Testmuster erstellen"
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4565,32 +4601,32 @@ msgstr "Schrift: Japanisch"
msgid "Script: latin"
msgstr "Schrift: Latein"
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr "Die JSON-Datei fehlt. JSON-Datei unter folgendem Pfad erwartet:"
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "Die JSON-Datei kann über folgende Ink/Stitch Funktion erstellt werden:\n"
"Erweiterungen > Ink/Stitch > Schriftverwaltung > JSON erstellen..."
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr "Die JSON-Datei ist beschädigt"
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "Die JSON-Datei kann über folgende Ink/Stitch Funktion neu erstellt werden:\n"
"Erweiterungen > Ink/Stitch > Schriftverwaltung > JSON erstellen..."
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "Die Schrift '%s' hat keine Varianten."
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr "Farbgruppe"
@@ -5166,6 +5202,10 @@ msgstr "Ja"
msgid "No"
msgstr "Nein"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Skalierung"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "An Fenstergröße anpassen"
@@ -5393,6 +5433,48 @@ msgstr "Inf Farbformat"
msgid "Json Export"
msgstr "Json-Export"
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr "Farbpalette anwenden"
@@ -5536,7 +5618,7 @@ msgstr "Originalpfade behalten"
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr "Diese Erweiterung versucht, alle gewählten Satinsäulen ohne dazwischen liegende Sprungsstiche zu verbinden."
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5602,44 +5684,56 @@ msgstr "Der eingegebene Wert wird auf die für die jeweilige Schrift zugelassene
msgid "Align Multiline Text"
msgstr "Mehrzeiligen Text ausrichten"
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr "Schrift entlang Pfad: Textposition"
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr "Nutzt diese Texposition für Schrift entlang Pfad"
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr "Ausdehnen"
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr "Dateiformate"
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr "Eine durch Kommata getrennte Liste von Dateiformaten"
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr "Nutze diese Erweiterung, um mehrere Dateien mit unterschiedlichem Text zu generieren."
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr "Wenn das Dokument ein Pfadelement mit der Beschriftung „batch lettering“ enthält, wird der Text entlang dieses Pfades platziert. Der Pfad selbst wird entfernt und nicht mit ausgegeben."
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr "https://inkstitch.org/de/docs/import-export/#batch-lettering"
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr "Ink/Stitch: batch lettering (.zip)"
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr "Erstelle mit Ink/Stitch eine Zip-Datei, die mehrere Dateien mit stickbaren Texten enthält"
@@ -5941,16 +6035,6 @@ msgstr "Parameter duplizieren"
msgid "Applies params from first selected element to the rest of the selection"
msgstr "Wendet Parameter vom ersten ausgewählten Element auf den Rest der Auswahl an"
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Bearbeiten"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr "Stickinformationen für ausgewählte Elemente anzeigen"
diff --git a/translations/messages_el_GR.po b/translations/messages_el_GR.po
index 81157513..5befa716 100644
--- a/translations/messages_el_GR.po
+++ b/translations/messages_el_GR.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr "σημείο"
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Κείμενο"
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr "Εφαρμογή"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr "Πληροφορίες"
msgid "Name"
msgstr "Όνομα"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr "Τιμή"
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,96 +3725,123 @@ msgstr ""
msgid "Font"
msgstr "Γραμματοσειρά"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr "Ποτέ"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr "μετά από κάθε γραμμή"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "μετά από κάθε λέξη"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "μετά από κάθε γράμμα"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Κλίμακα"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3823,8 +3859,8 @@ msgstr "Ρυθμίσεις"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "Η γραμματοσειρά '%s' δεν έχει παραλλαγές."
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr "Ναι"
msgid "No"
msgstr "Όχι"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Κλίμακα"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Προσαρμογή"
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Επεξεργασία"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Επεξεργασία"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_en_US.po b/translations/messages_en_US.po
index 5a8b4fbd..2194a817 100644
--- a/translations/messages_en_US.po
+++ b/translations/messages_en_US.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: English\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_es_ES.po b/translations/messages_es_ES.po
index 4f0545f3..252892a6 100644
--- a/translations/messages_es_ES.po
+++ b/translations/messages_es_ES.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1256,7 +1256,7 @@ msgstr "Deténgase después"
msgid "Add a STOP command after stitching this object."
msgstr "Añade un comando PARAR después de coser este objeto."
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr "Por favor, ejecute Extensiones > Ink/Stitch > Solucionar problemas > Solucionar problemas de objetos. Esto le mostrará la ubicación exacta del problema."
@@ -2520,7 +2520,7 @@ msgstr "plano"
msgid "point"
msgstr "punto"
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Texto"
@@ -2561,6 +2561,18 @@ msgstr "Si quieres ayudar, por favor:\n"
msgid "Include the error description and also (if possible) the svg file."
msgstr "Incluye una descripción del error y (si es posible) el archivo SVG."
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr "Por favor, seleccione al menos un elemento."
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr "No se ha encontrado un elemento que se pueda coser en el documento."
@@ -2626,40 +2638,40 @@ msgstr "No hay objetos en todo el documento con los que Ink/Stitch sepa cómo tr
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "Consejo: Ejecute Extensiones > Ink/Stitch > Solucionar problemas > Solucionar problemas de Objetos"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr "Por favor, especifica un texto"
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr "Por favor, especifica una fuente"
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr "Por favor, especifica un nombre de fuente válido."
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr "Por favor, especifica al menos un formato de archivo de salida"
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr "Por favor, especifica al menos un formato de archivo compatible con Ink/Stitch"
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Letras de Ink/Stitch"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr "Escala"
@@ -2687,13 +2699,13 @@ msgstr "{num_elements_removed} elementos removidos"
msgid "{num_groups_removed} groups/layers removed"
msgstr "{num_groups_removed} grupos/capas removidos"
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Seleccione una o más columnas satinadas para cortar."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "esta columna de satín no tiene un comando de \"punto de corte de columna de satín\" adjunto. Utilice la extensión \"Adjuntar comandos\" y adjunte primero el comando \"Punto de corte de columna de satín\"."
@@ -2739,10 +2751,6 @@ msgstr "Orden de apilamiento"
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "Esta función copia los parámetros de Ink/Stitch del primer elemento seleccionado al resto de la selección. Seleccione al menos dos elementos."
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr "Por favor, seleccione al menos un elemento."
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr "https://inkstitch.org/docs/troubleshoot/#element-info"
@@ -2928,14 +2936,14 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr "Por favor, selecciona un trazado y un grupo de texto de Ink/Stitch."
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
-msgstr "El texto no contiene ningún glifo."
-
-#: lib/extensions/lettering_along_path.py:84
+#: lib/extensions/lettering_along_path.py:80
msgid "Couldn't identify the font specified in the lettering group."
msgstr "No se pudo identificar la fuente especificada en el grupo de texto."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
+msgstr "El texto no contiene ningún glifo."
+
#: lib/extensions/lettering_custom_font_dir.py:28
msgid "Please specify the directory of your custom fonts."
msgstr "Especifique el directorio de sus fuentes personalizadas."
@@ -3474,11 +3482,12 @@ msgstr "Aplicar"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3663,7 +3672,7 @@ msgstr "Información"
msgid "Name"
msgstr "Nombre"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr "Valor"
@@ -3691,11 +3700,11 @@ msgstr "En nuestro sitio web puedes encontrar una biblioteca de fuentes con desc
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr "Esta fuente no tiene ninguna variante de fuente disponible. Actualice o elimine la fuente."
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3733,96 +3742,123 @@ msgstr "Escala:"
msgid "Font"
msgstr "Fuente"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "Unir líneas de texto de un lado a otro"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr "Alinear texto"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr "Izquierda"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr "Centro"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr "Derecha"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr "Bloque (por defecto)"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr "Bloque (espaciado entre letras)"
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "Unir líneas de texto de un lado a otro"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr "Clasifica las fuentes multicolor. Unifica los patrones tartán."
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr "Desactivado"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr "Texto completo"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr "Línea"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr "Palabra"
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr "Agregar cortes"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr "Nunca"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr "después de cada línea"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "después de cada palabra"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "después de cada letra"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr "Añadir comando de corte"
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr "Usar símbolos de comando "
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr "Usa símbolos de comando si está activado. Cuando está desactivado, inserta comandos de corte como parámetros."
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Escala"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3840,8 +3876,8 @@ msgstr "Ajustes"
msgid "Stitch direction"
msgstr "Dirección de la puntada"
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr "Escala (%)"
@@ -3849,7 +3885,7 @@ msgstr "Escala (%)"
msgid "Max. line width"
msgstr "Ancho máximo de línea"
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr "Clasificar por color"
@@ -4415,8 +4451,8 @@ msgstr "Eliminar raya"
msgid "Generate Swatches"
msgstr "Generar muestras"
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4560,32 +4596,32 @@ msgstr "Escritura: japonés"
msgid "Script: latin"
msgstr "Escritura: latin"
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr "Falta el archivo JSON. Se esperaba un archivo JSON en la siguiente ubicación: "
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "Genera el archivo JSON a través de:\n"
"Extensiones > Ink/Stitch > Gestión de Fuentes > Generar JSON..."
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr "Archivo JSON corrupto"
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "Regenera el archivo JSON a través de:\n"
"Extensiones > Ink/Stitch > Gestión de Fuentes > Generar JSON... "
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "La fuente '%s' no tiene variantes."
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr "Grupo de color"
@@ -5161,6 +5197,10 @@ msgstr "Si"
msgid "No"
msgstr "No"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Escala"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Ajustar"
@@ -5388,6 +5428,48 @@ msgstr "Formato de color Inf"
msgid "Json Export"
msgstr "Exportación Json"
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Editar"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr "Aplicar paleta"
@@ -5531,7 +5613,7 @@ msgstr "Mantener los trazados originales"
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr "Esta extensión intenta crear un único trazado de puntada a través de todas las columnas de satín seleccionadas."
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5597,44 +5679,56 @@ msgstr "El valor de escala debe estar dentro del rango de escala de la fuente es
msgid "Align Multiline Text"
msgstr "Alinear texto multilínea"
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr "Letras a lo largo del Trazado: Posición de texto"
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr "Usar esta posición de texto al usar letras a lo largo de un trazado"
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr "Estirar"
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr "Formatos de archivo"
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr "Lista de formatos de archivo separados por comas"
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr "Usa esta extensión para guardar múltiples archivos con el texto dado."
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr "Cuando el documento contiene un elemento de trazado etiquetado como \"batch lettering\", se usará para colocar el texto a lo largo de este trazado. El trazado en sí será eliminado y no se renderizará."
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr "Ink/Stitch: Lote de letras (.zip)"
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr "Crear un archivo zip con varios archivos que incluyan texto bordado usando Ink/Stitch"
@@ -5936,16 +6030,6 @@ msgstr "Duplicar parametros"
msgid "Applies params from first selected element to the rest of the selection"
msgstr "Aplica los parámetros del primer elemento seleccionado al resto de la selección"
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Editar"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr "Mostrar información de bordado para los elementos seleccionados"
diff --git a/translations/messages_fi_FI.po b/translations/messages_fi_FI.po
index b365e2a4..58c1536f 100644
--- a/translations/messages_fi_FI.po
+++ b/translations/messages_fi_FI.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Teksti"
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Ink/Stitch Kirjaimet"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Valitse yksi tai useampi satiinimuoto leikataksesi."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,96 +3725,123 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "Tikkaa tekstiviivat molempiin suuntiin"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "Tikkaa tekstiviivat molempiin suuntiin"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Skaalaa"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3823,8 +3859,8 @@ msgstr "Asetukset"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr "Kyllä"
msgid "No"
msgstr "Ei"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Skaalaa"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Sovita"
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_fr_FR.po b/translations/messages_fr_FR.po
index 1e6244ef..0298cd54 100644
--- a/translations/messages_fr_FR.po
+++ b/translations/messages_fr_FR.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: French\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1255,7 +1255,7 @@ msgstr "Arrêter après"
msgid "Add a STOP command after stitching this object."
msgstr "Ajoute une commande STOP après avoir brodé cet objet."
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr "Merci d'exécuter Extensions > Ink/Stitch > Résolution de problèmes > Dépistage de problèmes avec des objets. Ceci indiquera la position erronée."
@@ -2520,7 +2520,7 @@ msgstr "segment"
msgid "point"
msgstr "point"
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Texte"
@@ -2561,6 +2561,18 @@ msgstr "Si vous souhaitez aider, merci de \n"
msgid "Include the error description and also (if possible) the svg file."
msgstr "Incluez la description de l'erreur et (si possible) le fichier svg."
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr "Merci de sélectionner au moins un élément."
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr "Il n'y a rien de brodable dans le document."
@@ -2626,40 +2638,40 @@ msgstr "Il n'y a aucun objet dans tout le document sur lequel Ink/Stitch sait qu
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "Conseil : Exécutez Extensions > Ink/Stitch > Résolution de problèmes > Dépistage de problèmes avec des objets"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr "Merci de spécifier un texte"
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr "Merci de spécifier une police"
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr "Merci de spécifier un nom de police valide."
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr "Vous pouvez trouver la liste de tous les noms de polices sur notre site web : https://inkstitch.org/fr/fonts/font-library/"
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr "Merci de spécifier au moins un format de fichier de sortie"
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr "Merci de spécifier au moins un format de fichier supporté par Ink/Stitch"
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr "Vous pouvez trouver la liste de tous les formats de fichier supportés sur notre site web : https://inkstitch.org/fr/docs/file-formats/#writing"
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Lettrage Ink/Stitch"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr "Échelle"
@@ -2687,13 +2699,13 @@ msgstr "{num_elements_removed} éléments supprimés"
msgid "{num_groups_removed} groups/layers removed"
msgstr "{num_groups_removed} groupes/calques supprimés"
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Veuillez sélectionner une ou plusieurs colonnes satin à scinder."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "cette colonne satin n’a pas de commande « point de partage » attachée. Utilisez l’extension « ajouter des commandes » et attachez d’abord la commande « point de partage  »."
@@ -2739,10 +2751,6 @@ msgstr "Ordre de broderie"
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "Cette fonction copie les paramètres de Ink/Stitch du premier élément sélectionné vers le reste de la sélection. Veuillez sélectionner au moins deux éléments."
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr "Merci de sélectionner au moins un élément."
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr "https://inkstitch.org/fr/docs/troubleshoot/#element-info"
@@ -2928,14 +2936,14 @@ msgstr "https://inkstitch.org/fr/docs/lettering/#lettering-tool"
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr "Merci de sélectionner un chemin et un groupe de lettrage Ink/Stitch."
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
-msgstr "Ce texte ne contient aucun glyphe."
-
-#: lib/extensions/lettering_along_path.py:84
+#: lib/extensions/lettering_along_path.py:80
msgid "Couldn't identify the font specified in the lettering group."
msgstr "Impossible d'identifier la fonte spécifiée dans le groupe de lettrage."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
+msgstr "Ce texte ne contient aucun glyphe."
+
#: lib/extensions/lettering_custom_font_dir.py:28
msgid "Please specify the directory of your custom fonts."
msgstr "Spécifiez le répertoire de vos polices personnalisées."
@@ -3329,23 +3337,23 @@ msgstr "Fils utilisés"
#: lib/extensions/troubleshoot.py:50
msgid "All selected shapes are valid!"
-msgstr ""
+msgstr "Toutes les formes sélectionnées sont valides !"
#: lib/extensions/troubleshoot.py:52
msgid "Checked for:\n"
-msgstr ""
+msgstr "Ont été vérifiés :\n"
#: lib/extensions/troubleshoot.py:54
msgid "* errors\n"
-msgstr ""
+msgstr "* les erreurs\n"
#: lib/extensions/troubleshoot.py:56
msgid "* warnings\n"
-msgstr ""
+msgstr "* les avertissements\n"
#: lib/extensions/troubleshoot.py:58
msgid "* type_warnings"
-msgstr ""
+msgstr "* les avertissements de type"
#: lib/extensions/troubleshoot.py:60
msgid "If you are still having trouble with a shape not being embroidered, check if it is in a layer with an ignore command."
@@ -3353,7 +3361,7 @@ msgstr "Si vous avez toujours des difficultés avec une forme qui n'est pas brod
#: lib/extensions/troubleshoot.py:63
msgid "No warnings found for selected shapes!"
-msgstr ""
+msgstr "Aucun avertissement pour les formes sélectionnées !"
#: lib/extensions/troubleshoot.py:109
msgid "Invalid Pointer"
@@ -3473,11 +3481,12 @@ msgstr "Appliquer"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3662,7 +3671,7 @@ msgstr "Information"
msgid "Name"
msgstr "Nom"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr "Valeur"
@@ -3690,11 +3699,11 @@ msgstr "Une bibliothèque de fontes avec description complète et exemples brod
msgid "https://inkstitch.org/fonts/font-library/"
msgstr "https://inkstitch.org/fr/fonts/font-library/"
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr "Cette police n'a pas de variante de police disponible. Veuillez mettre à jour ou supprimer la police."
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3733,96 +3742,123 @@ msgstr "Échelle :"
msgid "Font"
msgstr "Police"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "Broder les lignes de texte en aller-retour"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr "Alignement du texte"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr "Gauche"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr "Centre"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr "Droite"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr "Justifié (mots)"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr "Justifié (lettres)"
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "Broder les lignes de texte en aller-retour"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr "Tri les fontes multicolore. Uniformise les motifs tartan."
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr "Sans"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr "Tout"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr "Ligne"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr "Mot"
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr "Ajouter coupes"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr "Jamais"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr "après chaque ligne"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "après chaque mot"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "après chaque lettre"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr "Ajouter une commande de coupe"
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr "Utiliser des symboles de commandes"
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr "Utilises les symboles de commande si coché. Sinon insère les commandes de coupe en tant que paramètres."
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Échelle"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3840,8 +3876,8 @@ msgstr "Paramètres"
msgid "Stitch direction"
msgstr "Direction du texte"
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr "Echelle (%)"
@@ -3849,7 +3885,7 @@ msgstr "Echelle (%)"
msgid "Max. line width"
msgstr "Largeur du texte"
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr "Tri des couleurs"
@@ -4415,8 +4451,8 @@ msgstr "Supprimer la bande"
msgid "Generate Swatches"
msgstr "Générer des échantillons"
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4562,32 +4598,32 @@ msgstr "Écriture : japonais"
msgid "Script: latin"
msgstr "Écriture : latin"
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr "Il manque le fichier JSON. Un fichier JSON est attendu à cet endroit :"
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "Générez le fichier JSON avec\n"
"Extensions > Ink/Stitch >Gestion des polices > Générer JSON..."
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr "Fichier JSON corrompu"
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "Re-générez le fichier JSON avec\n"
"Extensions > Ink/Stitch >Gestion des polices > Générer JSON..."
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "Aucun fichier variant trouvé pour la police '%s'."
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr "Groupe de couleur"
@@ -5164,6 +5200,10 @@ msgstr "Oui"
msgid "No"
msgstr "Non"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Échelle"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Ajuster"
@@ -5391,6 +5431,48 @@ msgstr "Format de couleur Inf"
msgid "Json Export"
msgstr "Export Json"
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Édition"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr "Appliquer une palette"
@@ -5534,7 +5616,7 @@ msgstr "Garder les chemins originels"
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr "Cette extension tente de créer un chemin de broderie unique qui parcourt toutes les colonnes satins sélectionnées."
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5600,44 +5682,56 @@ msgstr "La valeur de l'échelle doit être dans l'intervalle spécifié pour la
msgid "Align Multiline Text"
msgstr "Alignement des lignes de texte"
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr "Lettrage le long d'un chemin : position du texte"
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr "Utilise cette position du texte pour du lettrage le long d'un chemin"
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr "Étendre"
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr "Formats de fichier"
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr "Liste de formats de fichiers, séparés par des virgules"
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr "Utiliser cette extension pour sauvegarder plusieurs fichiers avec le texte donné."
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr "Quand le document contient un chemin avec le label \"batch lettering\", il sera utilisé par lettrage sur chemin pour placer le texte. Le chemin lui-même sera supprimé et non rendu."
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr "https://inkstitch.org/fr/docs/lettering/#batch-export"
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr "Ink/Stitch : lettrage par lot (.zip)"
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr "Crée un zip avec des fichiers multiples qui incluent du texte brodé en utilisant Ink/Stitch"
@@ -5939,16 +6033,6 @@ msgstr "Dupliquer les paramètres"
msgid "Applies params from first selected element to the rest of the selection"
msgstr "Applique les paramètres du premier élément sélectionné au reste de la sélection"
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Édition"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr "Affiche les informations de broderie des éléments selectionnés"
@@ -6973,19 +7057,19 @@ msgstr "Sélectionner un texte Ink/Stitch et un chemin avant d'exécuter cette e
#: inx/inkstitch_lettering_along_path.inx:29
msgid "⚠ The text width should not be longer than the path ⚠"
-msgstr ""
+msgstr "⚠ La longueur du texte doit être inférieure à celle du chemin ⚠"
#: inx/inkstitch_lettering_along_path.inx:31
msgid "Text position:"
-msgstr ""
+msgstr "Position du texte :"
#: inx/inkstitch_lettering_along_path.inx:32
msgid "Text can be positioned at the start, end or center of the path."
-msgstr ""
+msgstr "Le texte peut être positionné au début, à la fin ou au centre du chemin."
#: inx/inkstitch_lettering_along_path.inx:33
msgid "When stretch is selected, the spaces between the glyphs will be expanded, so that the text stretches over the entire path."
-msgstr ""
+msgstr "Lorsque Étendre est sélectionné, les espaces entre les glyphes sont étendus afin que le texte occupe la totalité du chemin."
#: inx/inkstitch_lettering_along_path.inx:36
msgid "https://inkstitch.org/docs/lettering/#lettering-along-path"
@@ -8391,19 +8475,19 @@ msgstr "Dépistage de problèmes avec des objets"
#: inx/inkstitch_troubleshoot.inx:13
msgid "Problems that may lead to incorrect stitch paths."
-msgstr ""
+msgstr "Problèmes pouvant conduire à des broderies incorrectes."
#: inx/inkstitch_troubleshoot.inx:15
msgid "Object type warning"
-msgstr ""
+msgstr "Avertissement sur les types d'objets"
#: inx/inkstitch_troubleshoot.inx:15
msgid "Warns about unemboiderable object types."
-msgstr ""
+msgstr "Averti sur les types d'objet non brodables."
#: inx/inkstitch_troubleshoot.inx:19
msgid "Size settings"
-msgstr ""
+msgstr "Réglage des dimensions"
#: inx/inkstitch_troubleshoot.inx:20
msgid "Pointer size (mm)"
diff --git a/translations/messages_he_IL.po b/translations/messages_he_IL.po
index dc98d844..a9a8a3bd 100644
--- a/translations/messages_he_IL.po
+++ b/translations/messages_he_IL.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_hu_HU.po b/translations/messages_hu_HU.po
index 55745fe5..afb8d66a 100644
--- a/translations/messages_hu_HU.po
+++ b/translations/messages_hu_HU.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1258,7 +1258,7 @@ msgstr "Megállás utána"
msgid "Add a STOP command after stitching this object."
msgstr "Adj hozzá egy STOP parancsot az objektum kihímzése után."
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr "Futtasd a Bővítmények > Ink/Stitch > Hibakeresés > Objektumok hibakeresése menüpontot. Ez pontosan megmutatja a probléma helyét"
@@ -2521,7 +2521,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2559,6 +2559,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2623,40 +2635,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2684,13 +2696,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2736,10 +2748,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2922,12 +2930,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3462,11 +3470,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3651,7 +3660,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3679,11 +3688,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3721,95 +3730,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3828,8 +3864,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3837,7 +3873,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4398,8 +4434,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4543,30 +4579,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5140,6 +5176,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5367,6 +5407,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5510,7 +5592,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5576,44 +5658,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5915,16 +6009,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_it_IT.po b/translations/messages_it_IT.po
index 0d623149..5f13b587 100644
--- a/translations/messages_it_IT.po
+++ b/translations/messages_it_IT.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr "Dopo fermarsi"
msgid "Add a STOP command after stitching this object."
msgstr "Aggiungi il comando STOP dopo aver cucito questo oggetto."
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr "Esegui Estensioni > Ink/Stitch > Risoluzione dei problemi > Risoluzione dei problemi oggetti. Questo ti mostrerà la posizione esatta del problema."
@@ -2516,7 +2516,7 @@ msgstr "piatto"
msgid "point"
msgstr "punto"
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Testo"
@@ -2557,6 +2557,18 @@ msgstr "Se vuoi aiutare, per favore\n"
msgid "Include the error description and also (if possible) the svg file."
msgstr "Include la descrizione dell'errore e anche (se possibile) il file svg."
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr "Si prega di selezionare almeno un elemento."
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr "Non è presente alcun elemento cucibile nel documento."
@@ -2622,40 +2634,40 @@ msgstr "In tutto il documento non ci sono oggetti con cui Ink/Stitch sia in grad
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "Suggerimento: esegui Estensioni > Ink/Stitch > Risoluzione dei problemi > Risoluzione dei problemi degli oggetti"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Caratteri Ink/Stitch"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr "scala"
@@ -2683,13 +2695,13 @@ msgstr "{num_elements_removed} elementi rimossi"
msgid "{num_groups_removed} groups/layers removed"
msgstr "{num_groups_removed} gruppi/livelli rimossi"
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Selezionare una o più colonne raso da tagliare."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "questa colonna raso non ha un commando \"punto di taglio colonna raso\" collegato. Usare l'estensione \"Collega comandi\" e collegare il il comando \"Punto di taglio colonna raso\"."
@@ -2735,10 +2747,6 @@ msgstr "Ordine di impilamento"
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "Questa funzione copia i parametri Ink/Stitch dal primo elemento selezionato al resto della selezione. Si prega di seleziona almeno due elementi."
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr "Si prega di selezionare almeno un elemento."
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2922,14 +2930,14 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
-msgstr "Il testo non contiene alcun glifo."
-
-#: lib/extensions/lettering_along_path.py:84
+#: lib/extensions/lettering_along_path.py:80
msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
+msgstr "Il testo non contiene alcun glifo."
+
#: lib/extensions/lettering_custom_font_dir.py:28
msgid "Please specify the directory of your custom fonts."
msgstr ""
@@ -3462,11 +3470,12 @@ msgstr "Applica"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3651,7 +3660,7 @@ msgstr "Info"
msgid "Name"
msgstr "Nome"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr "Valore"
@@ -3679,11 +3688,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3722,96 +3731,123 @@ msgstr "Scala:"
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "Cucire le linee di testo avanti e indietro"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr "Allinea Testo"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr "Sinistra"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr "Centro"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr "Destra"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr "Giustificato (predefinito)"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr "Giustifica (spaziatura delle lettere)"
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "Cucire le linee di testo avanti e indietro"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr "Tutto il testo"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr "Linea"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr "Parola"
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr "Mai"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr "dopo ogni linea"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "dopo ogni parola"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "dopo ogni lettera"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Scala"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3829,8 +3865,8 @@ msgstr "Impostazioni"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr "Scala (%)"
@@ -3838,7 +3874,7 @@ msgstr "Scala (%)"
msgid "Max. line width"
msgstr "Larghezza linea massima"
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr "Ordina colori"
@@ -4399,8 +4435,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4544,30 +4580,30 @@ msgstr "Scrittura: giapponese"
msgid "Script: latin"
msgstr "Scrittura: latina"
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr "File JSON corrotto"
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr "Gruppo Colori"
@@ -5141,6 +5177,10 @@ msgstr "Si"
msgid "No"
msgstr "No"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Scala"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Adattare"
@@ -5368,6 +5408,48 @@ msgstr "Formato Colore Inf"
msgid "Json Export"
msgstr "Esporta Json"
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Modifica"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr "Applica Tavolozza"
@@ -5511,7 +5593,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5577,44 +5659,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5916,16 +6010,6 @@ msgstr "Duplica Parametri"
msgid "Applies params from first selected element to the rest of the selection"
msgstr "Applica i parametri del primo elemento selezionato al resto della selezione"
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Modifica"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_ja_JP.po b/translations/messages_ja_JP.po
index d8032039..33aa7a54 100644
--- a/translations/messages_ja_JP.po
+++ b/translations/messages_ja_JP.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr "停止"
msgid "Add a STOP command after stitching this object."
msgstr "このオブジェクトをステッチした後、STOP コマンド(停止指示)を追加します。"
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2518,7 +2518,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "文字"
@@ -2556,6 +2556,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr "エラーの説明と (可能であれば) svg ファイルを添付してください。"
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2621,40 +2633,40 @@ msgstr "インクステッチが操作可能なオブジェクトがこのドキ
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "ヒント: 拡張機能 > インクステッチ > トラブルシューティング > オブジェクトのトラブルシューティングを実行"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "インク/ステッチの文字配置"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2682,13 +2694,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "カットするサテンの柱を1つ以上選択してください。"
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "このサテンカラムには、「サテンカラムカットポイント」コマンドが付加されていません。 「コマンドの添付」拡張機能を使用して、最初に「サテンカラムカットポイント」コマンドを添付してください。"
@@ -2734,10 +2746,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "この関数は、最初に選択された要素から残りの選択要素にインク/ステッチパラメータをコピーします。少なくとも2つの要素を選択してください。"
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2920,12 +2928,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3460,11 +3468,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3649,7 +3658,7 @@ msgstr ""
msgid "Name"
msgstr "名前"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3677,11 +3686,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr "このフォントには、使用可能なフォントバリアントがありません。フォントを更新または削除してください。"
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3719,96 +3728,123 @@ msgstr ""
msgid "Font"
msgstr "フォント"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "テキストの行を前後にステッチします。"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "テキストの行を前後にステッチします。"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "サイズ"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3826,8 +3862,8 @@ msgstr "設定"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3835,7 +3871,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4396,8 +4432,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4541,30 +4577,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "フォント '%s'にはバリアントがありません。"
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5138,6 +5174,10 @@ msgstr "はい"
msgid "No"
msgstr "いいえ"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "サイズ"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "フィットする"
@@ -5365,6 +5405,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "編集"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5508,7 +5590,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5574,44 +5656,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5913,16 +6007,6 @@ msgstr "重複したパラメータ"
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "編集"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_ko_KR.po b/translations/messages_ko_KR.po
index 02266a7b..5bf61f04 100644
--- a/translations/messages_ko_KR.po
+++ b/translations/messages_ko_KR.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_nl_NL.po b/translations/messages_nl_NL.po
index 5e0470ac..06b0d891 100644
--- a/translations/messages_nl_NL.po
+++ b/translations/messages_nl_NL.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr "plat"
msgid "point"
msgstr "punt"
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Tekst"
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr "Voeg de foutbeschrijving bij en ook (indien mogelijk) het svg-bestand."
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2619,40 +2631,40 @@ msgstr "In het gehele document zit geen enkel object waar Ink/Stitch mee kan omg
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "Tip: Start Extensies > Inkt/Stitch > Problemen oplossen > Objecten oplossen"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Ink/Stitch Belettering"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2680,13 +2692,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Selecteer een of meer satijnbanen om te snijden."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "deze satijnbaan heeft geen \"satijnbaan snijpunt\" commando gekoppeld. Gebruik de \"Koppel commando's\" uitbreiding en koppel het \"Satijnbaan Snijpunt\" commando eerst."
@@ -2732,10 +2744,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "Deze functie kopieert inkt-/steekparameters van het eerste geselecteerde element naar de rest van de selectie. Selecteer ten minste twee elementen."
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2919,12 +2927,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3459,11 +3467,12 @@ msgstr "Toepassen"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3648,7 +3657,7 @@ msgstr "Info"
msgid "Name"
msgstr "Naam"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr "Waarde"
@@ -3676,11 +3685,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr "Dit lettertype heeft geen beschikbare lettertypevariant. Gelieve het lettertype bij te werken of te verwijderen."
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3719,96 +3728,123 @@ msgstr "Schaal:"
msgid "Font"
msgstr "Lettertype"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "Borduur regels tekst heen en terug"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr "Links"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr "Midden"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr "Rechts"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "Borduur regels tekst heen en terug"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr "Uit"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr "Gehele text"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr "Lijn"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr "Woord"
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr "Nooit"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr "na elke lijn"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "na elk woord"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "na elke letter"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Schaal"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3826,8 +3862,8 @@ msgstr "Instellingen"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr "Schaal (%)"
@@ -3835,7 +3871,7 @@ msgstr "Schaal (%)"
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr "Kleursortering"
@@ -4396,8 +4432,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4541,30 +4577,30 @@ msgstr "Schrift: Japans"
msgid "Script: latin"
msgstr "Schrift: Latijn"
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "Het lettertype '%s' heeft geen varianten."
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr "Kleurgroep"
@@ -5139,6 +5175,10 @@ msgstr "Ja"
msgid "No"
msgstr "Nee"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Schaal"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Passend"
@@ -5366,6 +5406,48 @@ msgstr "Inf Kleurformaat"
msgid "Json Export"
msgstr "Json uitvoer"
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Bewerken"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5509,7 +5591,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5575,44 +5657,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5914,16 +6008,6 @@ msgstr "Dubbele parameters"
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Bewerken"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_no_NO.po b/translations/messages_no_NO.po
index b07fff8d..197a6cea 100644
--- a/translations/messages_no_NO.po
+++ b/translations/messages_no_NO.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr "flat"
msgid "point"
msgstr "punkt"
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Tekst"
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr "Det er ingen objekter i hele dokumentet som Ink/Stitch finner ut av å j
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Vennligst velg en eller flere satengsøm for å kutte."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "Denne funksjon kopiere Ink/Stitch parameterne fra det første valgte elementet til resten av det valgte. Vennligst velg minst to elementer."
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2918,12 +2926,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3458,11 +3466,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3647,7 +3656,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3675,11 +3684,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3717,95 +3726,122 @@ msgstr ""
msgid "Font"
msgstr "Skrifttype"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3824,8 +3860,8 @@ msgstr "Innstillinger"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3833,7 +3869,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4394,8 +4430,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4539,30 +4575,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5136,6 +5172,10 @@ msgstr "Ja"
msgid "No"
msgstr "Nei"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Tilpass"
@@ -5363,6 +5403,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5506,7 +5588,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5572,44 +5654,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5911,16 +6005,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_pl_PL.po b/translations/messages_pl_PL.po
index 7073f76b..8248efe1 100644
--- a/translations/messages_pl_PL.po
+++ b/translations/messages_pl_PL.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Ink/Stitch Liternictwo"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr "Nazwa"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr "Czcionka"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr "Nigdy"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr "po każdej linii"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "po każdym wyrazie"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "po każdej literze"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Dopasuj"
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_pt_BR.po b/translations/messages_pt_BR.po
index 2700bbf9..fa4101c5 100644
--- a/translations/messages_pt_BR.po
+++ b/translations/messages_pt_BR.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr "Parar Depois"
msgid "Add a STOP command after stitching this object."
msgstr "Adicionar um comando de Parar após bordar este objeto."
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr "ponto"
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Texto"
@@ -2557,6 +2557,18 @@ msgstr "Se você desejar ajudar, por favor\n"
msgid "Include the error description and also (if possible) the svg file."
msgstr "Inclua a descrição do erro e também (se possível) o arquivo SVG."
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2621,40 +2633,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2682,13 +2694,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2734,10 +2746,6 @@ msgstr "Ordem de empilhamento"
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2920,12 +2928,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3460,11 +3468,12 @@ msgstr "Aplicar"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3649,7 +3658,7 @@ msgstr "Informações"
msgid "Name"
msgstr "Nome"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr "Valor"
@@ -3677,11 +3686,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr "Esta fonte não possui uma variante disponível. Por favor, atualize ou remova a fonte."
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3719,96 +3728,123 @@ msgstr ""
msgid "Font"
msgstr "Fonte"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr "Nunca"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr "depois de cada linha"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "depois de cada palavra"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "depois de cada letra"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr "Adicionar comando de corte"
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Escala"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3826,8 +3862,8 @@ msgstr "Configurações"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3835,7 +3871,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4396,8 +4432,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4541,30 +4577,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5138,6 +5174,10 @@ msgstr "Sim"
msgid "No"
msgstr "Não"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Escala"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5365,6 +5405,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Editar"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5508,7 +5590,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5574,44 +5656,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5913,16 +6007,6 @@ msgstr "Duplicar parâmetros"
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Editar"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_pt_PT.po b/translations/messages_pt_PT.po
index 9527fa2e..a1eada87 100644
--- a/translations/messages_pt_PT.po
+++ b/translations/messages_pt_PT.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,96 +3725,123 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Escala"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3823,8 +3859,8 @@ msgstr "Parâmetros"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Escala"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Ajustar"
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_ro_RO.po b/translations/messages_ro_RO.po
index 390a96a0..78952452 100644
--- a/translations/messages_ro_RO.po
+++ b/translations/messages_ro_RO.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr "Font"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Editeaza"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Editeaza"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_ru_RU.po b/translations/messages_ru_RU.po
index 3b0cd007..a32163f0 100644
--- a/translations/messages_ru_RU.po
+++ b/translations/messages_ru_RU.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Текст"
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr "Во всем дизайне нет ни одного объекта с
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "Совет: Попробуйте Расширения > Ink/Stitch > Решение ппроблем > Решение проблем с объектами"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Надписи Ink/Stitch"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Выберите одну или несколько сатиновых колонн для разделения."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "эта сатиновая колонна не имеет команды \"точка разрыва сатиновой колонны\" прикрепленной к ней. Используйте \"Добавить команды\" из меню и прикрепите команду \"Точка разрыва сатиновой колонны\"."
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "Эта функция копирует параметры Ink/Stitch из первого выделенного объекта в остальные объекты в выделении. Выберите как минимум два объекта."
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr "Имя"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr "Для этого шрифта нет доступного варианта. Обновите или удалите этот шрифт."
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,96 +3725,123 @@ msgstr ""
msgid "Font"
msgstr "Шрифт"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "Вышивать строки поочерёдно вперёд и назад"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "Вышивать строки поочерёдно вперёд и назад"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Масштаб"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3823,8 +3859,8 @@ msgstr "Настройки"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "Для шрифта '%s' нет вариантов."
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr "Да"
msgid "No"
msgstr "Нет"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Масштаб"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "По рисунку"
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Правка"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr "Растяжение"
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr "Дублировать параметры"
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Правка"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_sr_SP.po b/translations/messages_sr_SP.po
index 2dc0b80f..f7bff867 100644
--- a/translations/messages_sr_SP.po
+++ b/translations/messages_sr_SP.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Serbian (Cyrillic)\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_sv_SE.po b/translations/messages_sv_SE.po
index 8cf19854..a675c4ce 100644
--- a/translations/messages_sv_SE.po
+++ b/translations/messages_sv_SE.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr "Stanna efter"
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr "Tillämpa"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr "Info"
msgid "Name"
msgstr "Namn"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr "Värde"
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,96 +3725,123 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr "efter varje ord"
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr "efter varje bokstav"
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr "Lägg till TRIM-kommando"
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr "Använd kommandosymboler"
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr "Använd kommandosymboler om aktivt. Annars läggs TRIM-kommandon till som parametrar."
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Skala till"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3823,8 +3859,8 @@ msgstr "Inställningar"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr "Skalning (%)"
@@ -3832,7 +3868,7 @@ msgstr "Skalning (%)"
msgid "Max. line width"
msgstr "Maximal linjebredd"
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5136,6 +5172,10 @@ msgstr "Ja"
msgid "No"
msgstr "Nej"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Skala till"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "Anpassa"
@@ -5363,6 +5403,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Redigera"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr "Tillämpa palett"
@@ -5506,7 +5588,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5572,44 +5654,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5911,16 +6005,6 @@ msgstr "Duplicera parametrar"
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Redigera"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_tr_TR.po b/translations/messages_tr_TR.po
index 418d5df7..9a8f25df 100644
--- a/translations/messages_tr_TR.po
+++ b/translations/messages_tr_TR.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Yazı"
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr "Evet"
msgid "No"
msgstr "Hayır"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_uk_UA.po b/translations/messages_uk_UA.po
index 08cd5023..8c42ed1d 100644
--- a/translations/messages_uk_UA.po
+++ b/translations/messages_uk_UA.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "Текст"
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr "У всьому дизайні немає жодного об'єкта
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "Порада: Спробуйте Розширення > Ink/Stitch > Вирішення проблем > Вирішення проблем з об'єктами"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Надписи Ink/Stitch"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "Виберіть одну або декілька сатинових колонок для розділу."
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "у цій сатиновій колонці немає команди \"вирізати сатинові колонки\". Будь ласка, використовуйте розширення \"Додати команди\" і спочатку додайте команду \"Розірвати сатинову колонку\"."
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "Ця функція копіює параметри Ink/Stitch з першого виділеного об'єкта в інші об'єкти у виділенні. Виберіть як мінімум два об'єкти."
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr "Ім'я"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr "Для цього шрифта немає доступного варіанта. Оновіть або видаліть цей шрифт."
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,96 +3725,123 @@ msgstr ""
msgid "Font"
msgstr "Шрифт"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr "Прошийте рядки тексту вперед і назад"
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr "Прошийте рядки тексту вперед і назад"
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "Масштаб"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3823,8 +3859,8 @@ msgstr "Налаштування"
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "Для шрифта '%s' немає варіантів."
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr "Так"
msgid "No"
msgstr "Ні"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "Масштаб"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "По рисунку"
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "Правка"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr "Дублювати параметри"
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "Правка"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_vi_VN.po b/translations/messages_vi_VN.po
index 62a05482..fd652cd5 100644
--- a/translations/messages_vi_VN.po
+++ b/translations/messages_vi_VN.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_zh_CN.po b/translations/messages_zh_CN.po
index 8093afec..9b70a1a4 100644
--- a/translations/messages_zh_CN.po
+++ b/translations/messages_zh_CN.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1254,7 +1254,7 @@ msgstr "完成后停止"
msgid "Add a STOP command after stitching this object."
msgstr "在对象刺绣后加入停止命令。"
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2518,7 +2518,7 @@ msgstr "平面"
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr "文本"
@@ -2556,6 +2556,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2621,40 +2633,40 @@ msgstr "整个文档中没有 Ink/Stitch 知道如何使用的对象。"
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr "提示:运行扩展 > Ink/Stitch > 疑难解答 > 对象疑难解答"
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr "Ink/Stitch 刻字"
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2682,13 +2694,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr "请选择一根或多根缎面柱进行切割。"
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr "此缎面柱没有附加“缎面柱切割点”命令。 请先使用“附加命令”扩展并附加“缎柱切割点”命令。"
@@ -2734,10 +2746,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr "此功能将 Ink/Stitch 参数从第一个选定元素复制到选择的其余部分。 请至少选择两个元素。"
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2921,12 +2929,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3463,11 +3471,12 @@ msgstr "应用"
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3652,7 +3661,7 @@ msgstr "信息(详情)"
msgid "Name"
msgstr "名字"
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3680,11 +3689,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3722,97 +3731,124 @@ msgstr ""
msgid "Font"
msgstr "字体"
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr "左(Left)"
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr "线条(Line)"
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr "文字(Word)"
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr "启用命令符号​(Uses command symbols if enabled)\n"
"(默认启用,以图标形式显示命令;禁用时,修剪命令将以参数形式插入代码)"
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
-msgstr "比例"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
+msgstr ""
#: lib/gui/lettering_font_sample.py:25
#: inx/inkstitch_lettering_font_sample.inx:3
@@ -3830,8 +3866,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3839,7 +3875,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4402,8 +4438,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4547,32 +4583,32 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "​首次生成JSON文件\n"
"路径:扩展 (Extensions) > Ink/Stitch > 字体管理 (Font Management) > 生成JSON (Generate JSON...)"
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr "重新生成JSON文件\n"
"路径:扩展 > Ink/Stitch > 字体管理 > 重新生成JSON (Regenerate JSON...)"
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr "字体“%s”没有变体。"
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5147,6 +5183,10 @@ msgstr "是"
msgid "No"
msgstr "不"
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr "比例"
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr "适合"
@@ -5374,6 +5414,48 @@ msgstr "Inf 颜色格式"
msgid "Json Export"
msgstr "Json 导出"
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr "编辑"
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5518,7 +5600,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5584,44 +5666,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5924,16 +6018,6 @@ msgstr "重复参数"
msgid "Applies params from first selected element to the rest of the selection"
msgstr "将第一个选定元素的参数应用于其余选定元素"
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr "编辑"
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""
diff --git a/translations/messages_zh_TW.po b/translations/messages_zh_TW.po
index 762c7c65..469d0bbe 100644
--- a/translations/messages_zh_TW.po
+++ b/translations/messages_zh_TW.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inkstitch\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
-"PO-Revision-Date: 2025-10-25 01:42\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
+"PO-Revision-Date: 2025-10-28 01:43\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-10-25 01:41+0000\n"
+"POT-Creation-Date: 2025-10-28 01:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1253,7 +1253,7 @@ msgstr ""
msgid "Add a STOP command after stitching this object."
msgstr ""
-#: lib/elements/element.py:738
+#: lib/elements/element.py:741
msgid "Please run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot objects. This will show you the exact location of the problem."
msgstr ""
@@ -2516,7 +2516,7 @@ msgstr ""
msgid "point"
msgstr ""
-#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:145
+#: lib/elements/text.py:13 lib/gui/lettering/option_panel.py:185
#: inx/inkstitch_batch_lettering.inx:13
msgid "Text"
msgstr ""
@@ -2554,6 +2554,18 @@ msgstr ""
msgid "Include the error description and also (if possible) the svg file."
msgstr ""
+#: lib/extensions/apply_attribute.py:27 lib/extensions/element_info.py:20
+msgid "Please select at least one element."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:31
+msgid "Please enter the attribute name."
+msgstr ""
+
+#: lib/extensions/apply_attribute.py:44
+msgid "Please enter a value."
+msgstr ""
+
#: lib/extensions/apply_palette.py:25
msgid "There is no stitchable element in the document."
msgstr ""
@@ -2618,40 +2630,40 @@ msgstr ""
msgid "Tip: Run Extensions > Ink/Stitch > Troubleshoot > Troubleshoot Objects"
msgstr ""
-#: lib/extensions/batch_lettering.py:56
+#: lib/extensions/batch_lettering.py:59
msgid "Please specify a text"
msgstr ""
-#: lib/extensions/batch_lettering.py:61
+#: lib/extensions/batch_lettering.py:64
msgid "Please specify a font"
msgstr ""
-#: lib/extensions/batch_lettering.py:65
+#: lib/extensions/batch_lettering.py:68
msgid "Please specify a valid font name."
msgstr ""
-#: lib/extensions/batch_lettering.py:66
+#: lib/extensions/batch_lettering.py:69
msgid "You can find a list with all font names on our website: https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/extensions/batch_lettering.py:70
+#: lib/extensions/batch_lettering.py:73
msgid "Please specify at least one output file format"
msgstr ""
-#: lib/extensions/batch_lettering.py:76
+#: lib/extensions/batch_lettering.py:79
msgid "Please specify at least one file format supported by Ink/Stitch"
msgstr ""
-#: lib/extensions/batch_lettering.py:77
+#: lib/extensions/batch_lettering.py:80
msgid "You can find a list with all supported file formats our website: https://inkstitch.org/docs/file-formats/#writing"
msgstr ""
-#: lib/extensions/batch_lettering.py:204 lib/extensions/lettering.py:60
+#: lib/extensions/batch_lettering.py:210 lib/extensions/lettering.py:60
#: lib/extensions/lettering.py:71
msgid "Ink/Stitch Lettering"
msgstr ""
-#: lib/extensions/batch_lettering.py:210 lib/gui/lettering/main_panel.py:311
+#: lib/extensions/batch_lettering.py:216 lib/gui/lettering/main_panel.py:317
msgid "scale"
msgstr ""
@@ -2679,13 +2691,13 @@ msgstr ""
msgid "{num_groups_removed} groups/layers removed"
msgstr ""
-#: lib/extensions/cut_satin.py:20
+#: lib/extensions/cut_satin.py:21
msgid "Please select one or more satin columns to cut."
msgstr ""
#. will have the satin's id prepended, like this:
#. path12345: error: this satin column does not ...
-#: lib/extensions/cut_satin.py:30
+#: lib/extensions/cut_satin.py:38
msgid "this satin column does not have a \"satin column cut point\" command attached to it. Please use the \"Attach commands\" extension and attach the \"Satin Column cut point\" command first."
msgstr ""
@@ -2731,10 +2743,6 @@ msgstr ""
msgid "This function copies Ink/Stitch parameters from the first selected element to the rest of the selection. Please select at least two elements."
msgstr ""
-#: lib/extensions/element_info.py:20
-msgid "Please select at least one element."
-msgstr ""
-
#: lib/extensions/element_info.py:21
msgid "https://inkstitch.org/docs/troubleshoot/#element-info"
msgstr ""
@@ -2917,12 +2925,12 @@ msgstr ""
msgid "Please select one path and one Ink/Stitch lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:78
-msgid "The text doesn't contain any glyphs."
+#: lib/extensions/lettering_along_path.py:80
+msgid "Couldn't identify the font specified in the lettering group."
msgstr ""
-#: lib/extensions/lettering_along_path.py:84
-msgid "Couldn't identify the font specified in the lettering group."
+#: lib/extensions/lettering_along_path.py:87
+msgid "The text doesn't contain any glyphs."
msgstr ""
#: lib/extensions/lettering_custom_font_dir.py:28
@@ -3457,11 +3465,12 @@ msgstr ""
#: lib/gui/element_info.py:42 lib/gui/lettering/main_panel.py:47
#: lib/gui/lettering_font_sample.py:83
#: lib/gui/satin_multicolor/main_panel.py:51 lib/gui/tartan/main_panel.py:64
-#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_threadlist.inx:89
-#: inx/inkstitch_auto_run.inx:25 inx/inkstitch_auto_satin.inx:16
-#: inx/inkstitch_batch_lettering.inx:62 inx/inkstitch_break_apart.inx:14
-#: inx/inkstitch_cleanup.inx:25 inx/inkstitch_cutwork_segmentation.inx:44
-#: inx/inkstitch_density_map.inx:26 inx/inkstitch_display_stacking_order.inx:11
+#: lib/gui/test_swatches.py:83 inx/inkstitch_apply_attribute.inx:24
+#: inx/inkstitch_apply_threadlist.inx:89 inx/inkstitch_auto_run.inx:25
+#: inx/inkstitch_auto_satin.inx:16 inx/inkstitch_batch_lettering.inx:72
+#: inx/inkstitch_break_apart.inx:14 inx/inkstitch_cleanup.inx:25
+#: inx/inkstitch_cutwork_segmentation.inx:44 inx/inkstitch_density_map.inx:26
+#: inx/inkstitch_display_stacking_order.inx:11
#: inx/inkstitch_fill_to_satin.inx:24 inx/inkstitch_fill_to_stroke.inx:24
#: inx/inkstitch_generate_palette.inx:26 inx/inkstitch_gradient_blocks.inx:26
#: inx/inkstitch_install.inx:14 inx/inkstitch_install_custom_palette.inx:14
@@ -3646,7 +3655,7 @@ msgstr ""
msgid "Name"
msgstr ""
-#: lib/gui/element_info.py:35
+#: lib/gui/element_info.py:35 inx/inkstitch_apply_attribute.inx:20
msgid "Value"
msgstr ""
@@ -3674,11 +3683,11 @@ msgstr ""
msgid "https://inkstitch.org/fonts/font-library/"
msgstr ""
-#: lib/gui/lettering/main_panel.py:243
+#: lib/gui/lettering/main_panel.py:249
msgid "This font has no available font variant. Please update or remove the font."
msgstr ""
-#: lib/gui/lettering/main_panel.py:320
+#: lib/gui/lettering/main_panel.py:327
#, python-format
msgid "Error: Text cannot be applied to the document.\n"
"%s"
@@ -3716,95 +3725,122 @@ msgstr ""
msgid "Font"
msgstr ""
-#: lib/gui/lettering/option_panel.py:84
-msgid "Stitch lines of text back and forth"
-msgstr ""
-
-#: lib/gui/lettering/option_panel.py:87
+#: lib/gui/lettering/option_panel.py:83
msgid "Align Text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:36
-#: inx/inkstitch_batch_lettering.inx:49
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:36
+#: inx/inkstitch_batch_lettering.inx:59
#: inx/inkstitch_lettering_along_path.inx:19
msgid "Left"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:37
-#: inx/inkstitch_batch_lettering.inx:50
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:37
+#: inx/inkstitch_batch_lettering.inx:60
#: inx/inkstitch_lettering_along_path.inx:20
msgid "Center"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:38
-#: inx/inkstitch_batch_lettering.inx:51
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:38
+#: inx/inkstitch_batch_lettering.inx:61
#: inx/inkstitch_lettering_along_path.inx:21
msgid "Right"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:39
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:39
msgid "Block (default)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:90 inx/inkstitch_batch_lettering.inx:40
+#: lib/gui/lettering/option_panel.py:86 inx/inkstitch_batch_lettering.inx:40
msgid "Block (letterspacing)"
msgstr ""
-#: lib/gui/lettering/option_panel.py:95 lib/gui/lettering/option_panel.py:97
+#: lib/gui/lettering/option_panel.py:89
+msgid "Sizing and alignment"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:90
+msgid "Letter spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:91
+msgid "Additional letter spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:93
+msgid "Word spacing (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:94
+msgid "Additional word spacing in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:96
+msgid "Line height (mm)"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:97
+msgid "Additional line height in mm."
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:143
+msgid "Stitch lines of text back and forth"
+msgstr ""
+
+#: lib/gui/lettering/option_panel.py:147 lib/gui/lettering/option_panel.py:149
msgid "Sort multicolor fonts. Unifies tartan patterns."
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:23
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:23
msgid "Off"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:24
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:24
msgid "Whole text"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:25
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:25
msgid "Line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:96 inx/inkstitch_batch_lettering.inx:26
+#: lib/gui/lettering/option_panel.py:148 inx/inkstitch_batch_lettering.inx:26
msgid "Word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:100 inx/inkstitch_batch_lettering.inx:28
+#: lib/gui/lettering/option_panel.py:152 inx/inkstitch_batch_lettering.inx:28
msgid "Add trims"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:29
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:29
msgid "Never"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:30
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:30
msgid "after each line"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:31
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:31
msgid "after each word"
msgstr ""
-#: lib/gui/lettering/option_panel.py:101 inx/inkstitch_batch_lettering.inx:32
+#: lib/gui/lettering/option_panel.py:153 inx/inkstitch_batch_lettering.inx:32
msgid "after each letter"
msgstr ""
-#: lib/gui/lettering/option_panel.py:102
+#: lib/gui/lettering/option_panel.py:154
msgid "Add trim command"
msgstr ""
-#: lib/gui/lettering/option_panel.py:105 inx/inkstitch_batch_lettering.inx:34
+#: lib/gui/lettering/option_panel.py:157 inx/inkstitch_batch_lettering.inx:34
msgid "Use command symbols"
msgstr ""
-#: lib/gui/lettering/option_panel.py:107
+#: lib/gui/lettering/option_panel.py:159
msgid "Uses command symbols if enabled. When disabled inserts trim commands as params."
msgstr ""
-#: lib/gui/lettering/option_panel.py:112
-#: print/templates/ui_svg_action_buttons.html:1
-msgid "Scale"
+#: lib/gui/lettering/option_panel.py:178
+msgid "Embroidery settings"
msgstr ""
#: lib/gui/lettering_font_sample.py:25
@@ -3823,8 +3859,8 @@ msgstr ""
msgid "Stitch direction"
msgstr ""
-#: lib/gui/lettering_font_sample.py:53 lib/gui/tartan/customize_panel.py:46
-#: inx/inkstitch_batch_lettering.inx:21
+#: lib/gui/lettering/option_panel.py:81 lib/gui/lettering_font_sample.py:53
+#: lib/gui/tartan/customize_panel.py:46 inx/inkstitch_batch_lettering.inx:21
msgid "Scale (%)"
msgstr ""
@@ -3832,7 +3868,7 @@ msgstr ""
msgid "Max. line width"
msgstr ""
-#: lib/gui/lettering/option_panel.py:94 lib/gui/lettering/option_panel.py:96
+#: lib/gui/lettering/option_panel.py:146 lib/gui/lettering/option_panel.py:148
#: lib/gui/lettering_font_sample.py:57 inx/inkstitch_batch_lettering.inx:22
msgid "Color sort"
msgstr ""
@@ -4393,8 +4429,8 @@ msgstr ""
msgid "Generate Swatches"
msgstr ""
-#: lib/gui/lettering/main_panel.py:45 lib/gui/lettering/option_panel.py:138
-#: lib/gui/test_swatches.py:33 inx/inkstitch_apply_threadlist.inx:7
+#: lib/gui/lettering/main_panel.py:45 lib/gui/test_swatches.py:33
+#: inx/inkstitch_apply_attribute.inx:17 inx/inkstitch_apply_threadlist.inx:7
#: inx/inkstitch_auto_satin.inx:7 inx/inkstitch_batch_lettering.inx:9
#: inx/inkstitch_break_apart.inx:8 inx/inkstitch_cleanup.inx:8
#: inx/inkstitch_density_map.inx:8 inx/inkstitch_display_stacking_order.inx:8
@@ -4538,30 +4574,30 @@ msgstr ""
msgid "Script: latin"
msgstr ""
-#: lib/lettering/font.py:100
+#: lib/lettering/font.py:101
msgid "JSON file missing. Expected a JSON file at the following location:"
msgstr ""
-#: lib/lettering/font.py:102
+#: lib/lettering/font.py:103
msgid "Generate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:109
+#: lib/lettering/font.py:110
msgid "Corrupt JSON file"
msgstr ""
-#: lib/lettering/font.py:111
+#: lib/lettering/font.py:112
msgid "Regenerate the JSON file through:\n"
"Extensions > Ink/Stitch > Font Management > Generate JSON..."
msgstr ""
-#: lib/lettering/font.py:192
+#: lib/lettering/font.py:193
#, python-format
msgid "The font '%s' has no variants."
msgstr ""
-#: lib/lettering/font.py:596
+#: lib/lettering/font.py:601
msgid "Color Group"
msgstr ""
@@ -5135,6 +5171,10 @@ msgstr ""
msgid "No"
msgstr ""
+#: print/templates/ui_svg_action_buttons.html:1
+msgid "Scale"
+msgstr ""
+
#: print/templates/ui_svg_action_buttons.html:3
msgid "Fit"
msgstr ""
@@ -5362,6 +5402,48 @@ msgstr ""
msgid "Json Export"
msgstr ""
+#: inx/inkstitch_apply_attribute.inx:3
+msgid "Apply attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:9
+msgid "Applies a custom attribute to multiple elements"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:12 inx/inkstitch_duplicate_params.inx:12
+#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
+#: inx/inkstitch_select_elements.inx:110
+#: inx/inkstitch_selection_to_anchor_line.inx:12
+#: inx/inkstitch_selection_to_guide_line.inx:12
+#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
+#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
+msgid "Edit"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:18
+msgid "Namespace"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:19
+msgid "Attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:22
+msgid "Remove attribute"
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:25
+msgid "This extension sets a custom attribute to all selected elements."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:27
+msgid "It is an extension for experienced users."
+msgstr ""
+
+#: inx/inkstitch_apply_attribute.inx:29
+msgid "https://inkstitch.org/docs/edit/#apply-attribute"
+msgstr ""
+
#: inx/inkstitch_apply_palette.inx:3
msgid "Apply Palette"
msgstr ""
@@ -5505,7 +5587,7 @@ msgstr ""
msgid "This extension tries to create a single stitch path through all selected satin columns."
msgstr ""
-#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:67
+#: inx/inkstitch_auto_satin.inx:19 inx/inkstitch_batch_lettering.inx:77
#: inx/inkstitch_break_apart.inx:20 inx/inkstitch_cleanup.inx:28
#: inx/inkstitch_density_map.inx:29 inx/inkstitch_display_stacking_order.inx:14
#: inx/inkstitch_fill_to_satin.inx:27 inx/inkstitch_install.inx:18
@@ -5571,44 +5653,56 @@ msgstr ""
msgid "Align Multiline Text"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:45
+msgid "Letter spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:47
+msgid "Word spacing"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:49
+msgid "Line height"
+msgstr ""
+
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Lettering along path: text position"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:48
+#: inx/inkstitch_batch_lettering.inx:58
msgid "Uses this text position when using lettering along path"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:52
+#: inx/inkstitch_batch_lettering.inx:62
#: inx/inkstitch_lettering_along_path.inx:22
msgid "Stretch"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "File formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:57
+#: inx/inkstitch_batch_lettering.inx:67
msgid "Comma separated list of file formats"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:63
+#: inx/inkstitch_batch_lettering.inx:73
msgid "Use this extension to save multiple files with the given text."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:65
+#: inx/inkstitch_batch_lettering.inx:75
msgid "When the document contains a path element labeled as \"batch lettering\" it will be used to place the text along this path. The path itself will be removed and won't be rendered."
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:68
+#: inx/inkstitch_batch_lettering.inx:78
msgid "https://inkstitch.org/docs/lettering/#batch-export"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:75
+#: inx/inkstitch_batch_lettering.inx:85
msgid "Ink/Stitch: batch lettering (.zip)"
msgstr ""
-#: inx/inkstitch_batch_lettering.inx:76
+#: inx/inkstitch_batch_lettering.inx:86
msgid "Create a zip with multiple files including embroidered text using Ink/Stitch"
msgstr ""
@@ -5910,16 +6004,6 @@ msgstr ""
msgid "Applies params from first selected element to the rest of the selection"
msgstr ""
-#: inx/inkstitch_duplicate_params.inx:12
-#: inx/inkstitch_remove_duplicated_points.inx:34 inx/inkstitch_reorder.inx:11
-#: inx/inkstitch_select_elements.inx:110
-#: inx/inkstitch_selection_to_anchor_line.inx:12
-#: inx/inkstitch_selection_to_guide_line.inx:12
-#: inx/inkstitch_selection_to_pattern.inx:12 inx/inkstitch_test_swatches.inx:11
-#: inx/inkstitch_transform_elements.inx:30 inx/inkstitch_unlink_clone.inx:24
-msgid "Edit"
-msgstr ""
-
#: inx/inkstitch_element_info.inx:9
msgid "Display embroidery info for selected elements"
msgstr ""