diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 96e9d78ae..76584a1f4 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -46,7 +46,7 @@ jobs:
job_cache_extra_deps=(); job_id=test_python_312; job_name='Test (Python 3.12)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.12; job_reqs=(reqs/dist.txt reqs/test.txt); job_skip_cache_name=skip_test_python_312_py-3.12_ubuntu-latest; job_skip_cache_path=.skip_cache_test_python_312; job_skiplists=(job_test os_linux os_macos os_windows); job_test_args='-p no:pytest-qt --ignore=test/gui_qt'; job_type=test; job_variant='Python 3.12'; analyze_set_job_skip_cache_key
job_cache_extra_deps=(); job_id=test_python_311; job_name='Test (Python 3.11)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.11; job_reqs=(reqs/dist.txt reqs/test.txt); job_skip_cache_name=skip_test_python_311_py-3.11_ubuntu-latest; job_skip_cache_path=.skip_cache_test_python_311; job_skiplists=(job_test os_linux os_macos os_windows); job_test_args='-p no:pytest-qt --ignore=test/gui_qt'; job_type=test; job_variant='Python 3.11'; analyze_set_job_skip_cache_key
job_cache_extra_deps=(); job_id=test_python_310; job_name='Test (Python 3.10)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.10; job_reqs=(reqs/dist.txt reqs/test.txt); job_skip_cache_name=skip_test_python_310_py-3.10_ubuntu-latest; job_skip_cache_path=.skip_cache_test_python_310; job_skiplists=(job_test os_linux os_macos os_windows); job_test_args='-p no:pytest-qt --ignore=test/gui_qt'; job_type=test; job_variant='Python 3.10'; analyze_set_job_skip_cache_key
- job_cache_extra_deps=(); job_id=test_qt_gui; job_name='Test (Qt GUI)'; job_needs=(); job_os=Linux; job_platform=ubuntu-22.04; job_python=3.13.3; job_reqs=(reqs/dist.txt reqs/dist_extra_gui_qt.txt reqs/test.txt); job_skip_cache_name=skip_test_qt_gui_py-3.13.3_ubuntu-22.04; job_skip_cache_path=.skip_cache_test_qt_gui; job_skiplists=(job_test_gui_qt); job_test_args=test/gui_qt; job_type=test_gui_qt; job_variant='Qt GUI'; analyze_set_job_skip_cache_key
+ job_cache_extra_deps=(); job_id=test_qt_gui; job_name='Test (Qt GUI)'; job_needs=(); job_os=Linux; job_platform=ubuntu-22.04; job_python=3.13.3; job_reqs=(reqs/dist.txt reqs/dist_extra_gui_qt.txt reqs/setup.txt reqs/test.txt); job_skip_cache_name=skip_test_qt_gui_py-3.13.3_ubuntu-22.04; job_skip_cache_path=.skip_cache_test_qt_gui; job_skiplists=(job_test_gui_qt); job_test_args=test/gui_qt; job_type=test_gui_qt; job_variant='Qt GUI'; analyze_set_job_skip_cache_key
job_cache_extra_deps=(); job_id=test_packaging; job_name='Test (Packaging)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.13.3; job_reqs=(reqs/packaging.txt reqs/setup.txt); job_skip_cache_name=skip_test_packaging_py-3.13.3_ubuntu-latest; job_skip_cache_path=.skip_cache_test_packaging; job_skiplists=(job_test_packaging); job_type=test_packaging; job_variant=Packaging; analyze_set_job_skip_cache_key
job_cache_extra_deps=(); job_id=test_code_quality; job_name='Test (Code Quality)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.13.3; job_reqs=(reqs/code_quality.txt); job_skip_cache_name=skip_test_code_quality_py-3.13.3_ubuntu-latest; job_skip_cache_path=.skip_cache_test_code_quality; job_type=test_code_quality; job_variant='Code Quality'; analyze_set_job_skip_cache_key
job_cache_extra_deps=('reqs/dist_*.txt' linux/appimage/deps.sh); job_id=build_linux; job_name='Build (Linux)'; job_needs=(test_linux); job_os=Linux; job_platform=ubuntu-22.04; job_python=3.13.3; job_reqs=(reqs/build.txt reqs/setup.txt); job_skip_cache_name=skip_build_linux_py-3.13.3_ubuntu-22.04; job_skip_cache_path=.skip_cache_build_linux; job_skiplists=(job_build os_linux); job_type=build; job_variant=Linux; analyze_set_job_skip_cache_key
@@ -195,7 +195,7 @@ jobs:
job_cache_extra_deps=(); job_id=test_python_312; job_name='Test (Python 3.12)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.12; job_reqs=(reqs/dist.txt reqs/test.txt); job_skip_cache_name=skip_test_python_312_py-3.12_ubuntu-latest; job_skip_cache_path=.skip_cache_test_python_312; job_skiplists=(job_test os_linux os_macos os_windows); job_test_args='-p no:pytest-qt --ignore=test/gui_qt'; job_type=test; job_variant='Python 3.12'; analyze_set_job_skip_job
job_cache_extra_deps=(); job_id=test_python_311; job_name='Test (Python 3.11)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.11; job_reqs=(reqs/dist.txt reqs/test.txt); job_skip_cache_name=skip_test_python_311_py-3.11_ubuntu-latest; job_skip_cache_path=.skip_cache_test_python_311; job_skiplists=(job_test os_linux os_macos os_windows); job_test_args='-p no:pytest-qt --ignore=test/gui_qt'; job_type=test; job_variant='Python 3.11'; analyze_set_job_skip_job
job_cache_extra_deps=(); job_id=test_python_310; job_name='Test (Python 3.10)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.10; job_reqs=(reqs/dist.txt reqs/test.txt); job_skip_cache_name=skip_test_python_310_py-3.10_ubuntu-latest; job_skip_cache_path=.skip_cache_test_python_310; job_skiplists=(job_test os_linux os_macos os_windows); job_test_args='-p no:pytest-qt --ignore=test/gui_qt'; job_type=test; job_variant='Python 3.10'; analyze_set_job_skip_job
- job_cache_extra_deps=(); job_id=test_qt_gui; job_name='Test (Qt GUI)'; job_needs=(); job_os=Linux; job_platform=ubuntu-22.04; job_python=3.13.3; job_reqs=(reqs/dist.txt reqs/dist_extra_gui_qt.txt reqs/test.txt); job_skip_cache_name=skip_test_qt_gui_py-3.13.3_ubuntu-22.04; job_skip_cache_path=.skip_cache_test_qt_gui; job_skiplists=(job_test_gui_qt); job_test_args=test/gui_qt; job_type=test_gui_qt; job_variant='Qt GUI'; analyze_set_job_skip_job
+ job_cache_extra_deps=(); job_id=test_qt_gui; job_name='Test (Qt GUI)'; job_needs=(); job_os=Linux; job_platform=ubuntu-22.04; job_python=3.13.3; job_reqs=(reqs/dist.txt reqs/dist_extra_gui_qt.txt reqs/setup.txt reqs/test.txt); job_skip_cache_name=skip_test_qt_gui_py-3.13.3_ubuntu-22.04; job_skip_cache_path=.skip_cache_test_qt_gui; job_skiplists=(job_test_gui_qt); job_test_args=test/gui_qt; job_type=test_gui_qt; job_variant='Qt GUI'; analyze_set_job_skip_job
job_cache_extra_deps=(); job_id=test_packaging; job_name='Test (Packaging)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.13.3; job_reqs=(reqs/packaging.txt reqs/setup.txt); job_skip_cache_name=skip_test_packaging_py-3.13.3_ubuntu-latest; job_skip_cache_path=.skip_cache_test_packaging; job_skiplists=(job_test_packaging); job_type=test_packaging; job_variant=Packaging; analyze_set_job_skip_job
job_cache_extra_deps=(); job_id=test_code_quality; job_name='Test (Code Quality)'; job_needs=(); job_os=Linux; job_platform=ubuntu-latest; job_python=3.13.3; job_reqs=(reqs/code_quality.txt); job_skip_cache_name=skip_test_code_quality_py-3.13.3_ubuntu-latest; job_skip_cache_path=.skip_cache_test_code_quality; job_type=test_code_quality; job_variant='Code Quality'; analyze_set_job_skip_job
job_cache_extra_deps=('reqs/dist_*.txt' linux/appimage/deps.sh); job_id=build_linux; job_name='Build (Linux)'; job_needs=(test_linux); job_os=Linux; job_platform=ubuntu-22.04; job_python=3.13.3; job_reqs=(reqs/build.txt reqs/setup.txt); job_skip_cache_name=skip_build_linux_py-3.13.3_ubuntu-22.04; job_skip_cache_path=.skip_cache_build_linux; job_skiplists=(job_build os_linux); job_type=build; job_variant=Linux; analyze_set_job_skip_job
@@ -673,13 +673,13 @@ jobs:
uses: actions/cache@v4
with:
path: .cache
- key: 0_${{ steps.set_cache.outputs.cache_name }}_${{ hashFiles('reqs/constraints.txt', 'reqs/dist.txt', 'reqs/dist_extra_gui_qt.txt', 'reqs/test.txt') }}
+ key: 0_${{ steps.set_cache.outputs.cache_name }}_${{ hashFiles('reqs/constraints.txt', 'reqs/dist.txt', 'reqs/dist_extra_gui_qt.txt', 'reqs/setup.txt', 'reqs/test.txt') }}
- name: Install system dependencies
run: apt_get_install libdbus-1-dev libdbus-glib-1-dev libudev-dev libegl-dev libxkbcommon-x11-0 libxkbcommon-dev
- name: Setup Python environment
- run: setup_python_env -c reqs/constraints.txt -r reqs/dist.txt -r reqs/dist_extra_gui_qt.txt -r reqs/test.txt
+ run: setup_python_env -c reqs/constraints.txt -r reqs/dist.txt -r reqs/dist_extra_gui_qt.txt -r reqs/setup.txt -r reqs/test.txt
- name: Build UI
run: python setup.py build_ui
diff --git a/.github/workflows/ci/workflow_context.yml b/.github/workflows/ci/workflow_context.yml
index c9243572e..a76c95d13 100644
--- a/.github/workflows/ci/workflow_context.yml
+++ b/.github/workflows/ci/workflow_context.yml
@@ -68,7 +68,7 @@ jobs:
- <<: *test
type: test_gui_qt
variant: Qt GUI
- reqs: ["dist", "dist_extra_gui_qt", "test"]
+ reqs: ["dist", "dist_extra_gui_qt", "setup", "test"]
skiplists: ["job_test_gui_qt"]
test_args: test/gui_qt
diff --git a/MANIFEST.in b/MANIFEST.in
index 88398ea4a..af71e6a52 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -30,11 +30,11 @@ include plover_build_utils/*.sh
include pyproject.toml
include pytest.ini
include reqs/*.txt
-include test/*.py
-include test/gui_qt/*.py
+recursive-include test *.py
include tox.ini
include windows/*
exclude .pre-commit-config.yaml
+prune doc/_build
# without first including it, exluding .readthedocs.yml results in a warning when running locally
include .readthedocs.yml
exclude .readthedocs.yml
diff --git a/README.md b/README.md
index fd1fbe00e..24079d443 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
Plover
@@ -7,12 +7,12 @@
Bringing stenography to everyone.
-
-
+
+
-
-
-
+
+
+
@@ -121,14 +121,14 @@ Please follow through for your system:
[Beginner's Guide]: https://plover.wiki/index.php/Beginner%27s_Guide
[Blog]: http://plover.stenoknight.com
-[Contributing]: https://github.com/openstenoproject/plover/blob/main/CONTRIBUTING.md
-[Donate]: http://www.openstenoproject.org/donate
+[Contributing]: https://github.com/opensteno/plover/blob/main/CONTRIBUTING.md
+[Donate]: http://www.opensteno.org/donate
[Google Group]: https://groups.google.com/forum/#!forum/ploversteno
-[Homepage Source]: https://github.com/openstenoproject/plover/tree/gh-pages
+[Homepage Source]: https://github.com/opensteno/plover/tree/gh-pages
[Homepage]: http://opensteno.org/plover
-[Issues]: https://github.com/openstenoproject/plover/issues?q=is:issue
-[License]: https://github.com/openstenoproject/plover/blob/main/LICENSE.txt
-[Open Steno Project Homepage Source]: https://github.com/openstenoproject/openstenoproject.github.io
+[Issues]: https://github.com/opensteno/plover/issues?q=is:issue
+[License]: https://github.com/opensteno/plover/blob/main/LICENSE.txt
+[Open Steno Project Homepage Source]: https://github.com/opensteno/opensteno.github.io
[Open Steno Project]: http://opensteno.org
[Mascot]: http://plover.stenoknight.com/2010/10/new-logo.html
[StenoJig]: https://github.com/JoshuaGrams/steno-jig
@@ -138,6 +138,6 @@ Please follow through for your system:
[Wiki]: https://plover.wiki
[installation guide]: https://plover.wiki/index.php/Installation_Guide
[panathea/plover\_icons]: https://github.com/panathea/plover_icons
-[Windows README]: https://github.com/openstenoproject/plover/blob/main/windows/README.md
-[Linux README]: https://github.com/openstenoproject/plover/blob/main/linux/README.md
-[macOS README]: https://github.com/openstenoproject/plover/blob/main/osx/README.md
+[Windows README]: https://github.com/opensteno/plover/blob/main/windows/README.md
+[Linux README]: https://github.com/opensteno/plover/blob/main/linux/README.md
+[macOS README]: https://github.com/opensteno/plover/blob/main/osx/README.md
diff --git a/news.d/bugfix/1824.core b/news.d/bugfix/1824.core
new file mode 100644
index 000000000..2a12741ff
--- /dev/null
+++ b/news.d/bugfix/1824.core
@@ -0,0 +1 @@
+Fix translation catalog generation.
diff --git a/plover/messages/es/LC_MESSAGES/plover.po b/plover/messages/es/LC_MESSAGES/plover.po
index 0ecb96922..d1e0d9b45 100644
--- a/plover/messages/es/LC_MESSAGES/plover.po
+++ b/plover/messages/es/LC_MESSAGES/plover.po
@@ -1,20 +1,20 @@
+
msgid ""
msgstr ""
-"Project-Id-Version: Plover\n"
+"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-10-11 18:33+0000\n"
+"POT-Creation-Date: 2026-03-07 10:58+0100\n"
"PO-Revision-Date: 2021-10-12 20:54+0200\n"
"Last-Translator: Noelia Ruiz Martínez \n"
-"Language-Team: Noelia Ruiz Martínez \n"
"Language: es\n"
+"Language-Team: Noelia Ruiz Martínez \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"Generated-By: Babel 2.9.0\n"
-"X-Generator: Poedit 3.0\n"
+"Generated-By: Babel 2.17.0\n"
-#: plover/__init__.py:19
+#: plover/__init__.py:22
msgid ""
"Founded by stenographer Mirabai Knight.\n"
"\n"
@@ -45,11 +45,11 @@ msgstr ""
""
#. Short description for Plover, currently not used in the interface.
-#: plover/__init__.py:33
+#: plover/__init__.py:38
msgid "Open Source Stenography Software"
msgstr "Software de estenotipia de código abierto"
-#: plover/__init__.py:34
+#: plover/__init__.py:39
msgid ""
"Plover is a free open source program intended to bring realtime\n"
"stenographic technology not just to stenographers, but also to\n"
@@ -58,298 +58,392 @@ msgstr ""
"Plover es un programa libre de código abierto que tiene el objetivo de "
"llevar la tecnología de estenotipia en tiempo real,\n"
"no solo a estenotipistas, sino también\n"
-"a hackers, personas aficionadas, expertas en accesibilidad y genios de la "
-"velocidad por todas partes."
+"a hackers, personas aficionadas, expertas en accesibilidad y genios de la"
+" velocidad por todas partes."
+
+#: plover/dictionary/helpers.py:24
+#, python-format
+msgid "dictionary `%s` loaded with %u invalid steno errors"
+msgstr ""
#. Widget: “AboutDialog”, window title.
-#: plover/gui_qt/about_dialog_ui.py:38
+#: plover/gui_qt/about_dialog_ui.py:53
msgid "Plover: About"
msgstr "Plover: Acerca de"
#. Widget: “AddTranslationDialog”, tooltip.
#. Widget: “AddTranslationWidget”, tooltip.
-#: plover/gui_qt/add_translation_dialog.py:12
+#: plover/gui_qt/add_translation_dialog.py:11
#: plover/gui_qt/add_translation_widget.py:23
msgid "Add a new translation to the dictionary."
msgstr "Añadir una nueva traducción al diccionario."
-#: plover/gui_qt/add_translation_dialog.py:14
+#: plover/gui_qt/add_translation_dialog.py:13
msgid "Add Translation"
msgstr "Añadir traducción"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:193
+#: plover/gui_qt/add_translation_widget.py:194
+#, python-brace-format
msgid "{dictionary} (disabled)"
msgstr "{dictionary} (desactivado)"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:255
+#: plover/gui_qt/add_translation_widget.py:260
+#, python-brace-format
msgid "{strokes} maps to "
msgstr "{strokes} se asigna a "
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:266
+#: plover/gui_qt/add_translation_widget.py:272
msgid "Overwritten entries:"
msgstr "Entradas sobrescritas:"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:271
+#: plover/gui_qt/add_translation_widget.py:277
+#, python-brace-format
msgid "{strokes} is not mapped in any dictionary"
msgstr "{strokes} no está asignada en ningún diccionario"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:284
+#: plover/gui_qt/add_translation_widget.py:291
+#, python-brace-format
msgid "{translation} is mapped to: {strokes}"
msgstr "{translation} está asignada a {strokes}"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:287
+#: plover/gui_qt/add_translation_widget.py:294
+#, python-brace-format
msgid "{translation} is not in the dictionary"
msgstr "{translation} no está en el diccionario"
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:106
+#: plover/gui_qt/add_translation_widget_ui.py:124
msgid "Dictionary:"
msgstr "Diccionario:"
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:108
+#: plover/gui_qt/add_translation_widget_ui.py:126
msgid "Strokes:"
msgstr "Acordes:"
#. Widget: “AddTranslationWidget”, accessible name.
#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/add_translation_widget_ui.py:110
-#: plover/gui_qt/dictionary_editor.py:173
+#: plover/gui_qt/add_translation_widget_ui.py:129
+#: plover/gui_qt/dictionary_editor.py:170
msgid "Strokes"
msgstr "Acordes"
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:112
+#: plover/gui_qt/add_translation_widget_ui.py:132
msgid "Translation:"
msgstr "Traducción:"
#. Widget: “AddTranslationWidget”, accessible name.
#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/add_translation_widget_ui.py:114
-#: plover/gui_qt/dictionary_editor.py:176
+#: plover/gui_qt/add_translation_widget_ui.py:135
+#: plover/gui_qt/dictionary_editor.py:173
msgid "Translation"
msgstr "Traducción"
#. Widget: “AddTranslationWidget”, accessible name.
#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/add_translation_widget_ui.py:116
-#: plover/gui_qt/dictionary_editor.py:179
+#: plover/gui_qt/add_translation_widget_ui.py:139
+#: plover/gui_qt/dictionary_editor.py:176
msgid "Dictionary"
msgstr "Diccionario"
#. Widget: “AddTranslationWidget”, accessible description.
-#: plover/gui_qt/add_translation_widget_ui.py:118
+#: plover/gui_qt/add_translation_widget_ui.py:143
msgid "Select the target dictionary for the new translation."
msgstr "Seleccionar el diccionario de destino para la nueva traducción."
#. Widget: “AddTranslationWidget”, accessible name.
-#: plover/gui_qt/add_translation_widget_ui.py:120
+#: plover/gui_qt/add_translation_widget_ui.py:147
msgid "Existing mappings (strokes)"
msgstr "Asignaciones existentes (acordes)"
#. Widget: “AddTranslationWidget”, accessible name.
-#: plover/gui_qt/add_translation_widget_ui.py:122
+#: plover/gui_qt/add_translation_widget_ui.py:152
msgid "Existing mappings (translations)"
msgstr "Asignaciones existentes (traducciones)"
#. Widget: “FileWidget”, accessible name.
-#: plover/gui_qt/config_file_widget_ui.py:45
+#: plover/gui_qt/config_file_widget_ui.py:61
msgid "Log file path."
msgstr "Ruta para el fichero de registro."
#. Widget: “FileWidget”, accessible description.
-#: plover/gui_qt/config_file_widget_ui.py:47
+#: plover/gui_qt/config_file_widget_ui.py:65
msgid "Path to the log file."
msgstr "Ruta para el fichero de registro."
#. Widget: “FileWidget”, accessible name.
-#: plover/gui_qt/config_file_widget_ui.py:49
+#: plover/gui_qt/config_file_widget_ui.py:69
msgid "Browse."
msgstr "Examinar."
#. Widget: “FileWidget”, accessible description.
-#: plover/gui_qt/config_file_widget_ui.py:51
+#: plover/gui_qt/config_file_widget_ui.py:73
msgid "Open a file picker to select the log file."
msgstr "Abrir un selector de archivos para elegir el fichero de registro."
#. Widget: “FileWidget”, text.
-#: plover/gui_qt/config_file_widget_ui.py:53
+#: plover/gui_qt/config_file_widget_ui.py:76
msgid "Browse"
msgstr "Examinar"
+#. Widget: “KeyboardWidget”, tool tip.
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_keyboard_widget_ui.py:56
+#: plover/gui_qt/config_plover_hid_widget_ui.py:89
+msgid ""
+"When the first key in a chord is released, the chord is sent.\n"
+"If the key is pressed and released again, another chord is sent."
+msgstr ""
+
+#. Widget: “KeyboardWidget”, text.
+#: plover/gui_qt/config_keyboard_widget_ui.py:60
+msgid "First-up chord send"
+msgstr ""
+
#. Widget: “KeyboardWidget”, text.
-#: plover/gui_qt/config_keyboard_widget_ui.py:36
+#: plover/gui_qt/config_keyboard_widget_ui.py:62
msgid "Arpeggiate"
msgstr "Arpegiar"
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:93
+msgid "Send chord on first key release"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:96
+msgid "Tap and then hold a chord to send it repeatedly."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:99
+msgid "Double tap to repeat"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:101
+msgid "Repeat delay (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:104
+msgid "Delay before chord starts repeating."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:107
+msgid "Repeat interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:110
+msgid "Interval between chord repetitions."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:113
+msgid "Device scan interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:116
+msgid "How often to scan for newly plugged-in devices."
+msgstr ""
+
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:205
+#: plover/gui_qt/config_serial_widget_ui.py:215
msgid "Serial"
msgstr "Serie"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:207
+#: plover/gui_qt/config_serial_widget_ui.py:218
msgid "Connection"
msgstr "Conexión"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:209
-#: plover/gui_qt/config_serial_widget_ui.py:211
+#: plover/gui_qt/config_serial_widget_ui.py:220
+#: plover/gui_qt/config_serial_widget_ui.py:223
msgid "Port"
msgstr "Puerto"
#. Widget: “SerialWidget”, accessible description.
-#: plover/gui_qt/config_serial_widget_ui.py:213
+#: plover/gui_qt/config_serial_widget_ui.py:227
msgid "Serial port device name."
msgstr "Nombre de dispositivo para puerto serie."
#. Widget: “SerialWidget”, accessible description.
-#: plover/gui_qt/config_serial_widget_ui.py:215
-msgid "Scan for available serial ports."
+#: plover/gui_qt/config_serial_widget_ui.py:231
+#, fuzzy
+msgid "Reload all available serial ports."
msgstr "Escanear puertos serie disponibles."
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:217
-msgid "Scan"
-msgstr "Escanear"
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_serial_widget_ui.py:234
+#: plover/gui_qt/plugins_manager_ui.py:146
+msgid "Refresh"
+msgstr ""
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:219
-#: plover/gui_qt/config_serial_widget_ui.py:221
+#: plover/gui_qt/config_serial_widget_ui.py:236
+#: plover/gui_qt/config_serial_widget_ui.py:239
msgid "Baudrate"
msgstr "Baudios"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:223
+#: plover/gui_qt/config_serial_widget_ui.py:242
msgid "Data format"
msgstr "Formato de datos"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:225
-#: plover/gui_qt/config_serial_widget_ui.py:227
+#: plover/gui_qt/config_serial_widget_ui.py:244
+#: plover/gui_qt/config_serial_widget_ui.py:247
msgid "Data bits"
msgstr "Bits de datos"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:229
-#: plover/gui_qt/config_serial_widget_ui.py:231
+#: plover/gui_qt/config_serial_widget_ui.py:250
+#: plover/gui_qt/config_serial_widget_ui.py:253
msgid "Stop bits"
msgstr "Bits de parada"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:233
-#: plover/gui_qt/config_serial_widget_ui.py:235
+#: plover/gui_qt/config_serial_widget_ui.py:256
+#: plover/gui_qt/config_serial_widget_ui.py:259
msgid "Parity"
msgstr "Paridad"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:237
+#: plover/gui_qt/config_serial_widget_ui.py:265
msgid "Timeout"
msgstr "Tiempo de espera"
#. Widget: “SerialWidget”, text.
+#: plover/gui_qt/config_serial_widget_ui.py:267
+#, fuzzy
+msgid "Duration (s)"
+msgstr "DuraciónTraducción"
+
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:239
-#: plover/gui_qt/config_serial_widget_ui.py:241
+#: plover/gui_qt/config_serial_widget_ui.py:270
msgid "Duration"
msgstr "DuraciónTraducción"
#. Widget: “SerialWidget”, accessible description.
-#: plover/gui_qt/config_serial_widget_ui.py:243
+#: plover/gui_qt/config_serial_widget_ui.py:274
msgid "Timeout duration in seconds."
msgstr "Duración de tiempo de espera en segundos."
-#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:245
-msgid "Use timeout"
-msgstr "Usar tiempo de espera"
-
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:247
+#: plover/gui_qt/config_serial_widget_ui.py:277
msgid "Flow control"
msgstr "Control de flujo"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:249
+#: plover/gui_qt/config_serial_widget_ui.py:279
msgid "Xon/Xoff"
msgstr "Xon/Xoff"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:251
+#: plover/gui_qt/config_serial_widget_ui.py:281
msgid "RTS/CTS"
msgstr "RTS/CTS"
#. Widget: “NopeOption” (empty config option message,
#. e.g. the machine option when selecting the Treal machine).
-#: plover/gui_qt/config_window.py:47
+#: plover/gui_qt/config_window.py:51
msgid "Nothing to see here!"
msgstr "¡Aquí no hay nada para ver!"
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:176
+#: plover/gui_qt/config_window.py:173
msgid "Key"
msgstr "Tecla"
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:178
+#: plover/gui_qt/config_window.py:175
msgid "Action"
msgstr "Acción"
#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:224
-msgid "Choice"
-msgstr "Opción"
-
-#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:226
+#: plover/gui_qt/config_window.py:221
msgid "Selected"
msgstr "Seleccionado"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:320
+#. Widget: “MultipleChoicesOption”.
+#: plover/gui_qt/config_window.py:223
+msgid "Choice"
+msgstr "Opción"
+
+#: plover/gui_qt/config_window.py:354
msgid "Interface"
msgstr "Interfaz"
-#: plover/gui_qt/config_window.py:321
+#: plover/gui_qt/config_window.py:357
+msgid "Appearance:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
+msgid "System"
+msgstr "Sistema"
+
+#: plover/gui_qt/config_window.py:363
+msgid "Light"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:364
+msgid "Dark"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:368
+msgid ""
+"Set the application appearance:\n"
+"- System: follow the operating system mode\n"
+"- Light: force light mode\n"
+"- Dark: force dark mode"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
msgstr "Iniciar minimizado:"
-#: plover/gui_qt/config_window.py:322
+#: plover/gui_qt/config_window.py:378
msgid "Minimize the main window to systray on startup."
msgstr "Minimizar la ventana principal a la bandeja del sistema al arrancar."
-#: plover/gui_qt/config_window.py:323
+#: plover/gui_qt/config_window.py:381
msgid "Show paper tape:"
msgstr "Mostrar tira de papel:"
-#: plover/gui_qt/config_window.py:324
+#: plover/gui_qt/config_window.py:384
msgid "Open the paper tape on startup."
msgstr "Abrir la tira de papel al arrancar."
-#: plover/gui_qt/config_window.py:325
+#: plover/gui_qt/config_window.py:387
msgid "Show suggestions:"
msgstr "Mostrar sugerencias:"
-#: plover/gui_qt/config_window.py:326
+#: plover/gui_qt/config_window.py:390
msgid "Open the suggestions dialog on startup."
msgstr "Abrir el diálogo de sugerencias al arrancar."
-#: plover/gui_qt/config_window.py:327
+#: plover/gui_qt/config_window.py:393
msgid "Add translation dialog opacity:"
msgstr "Añadir opacidad para el diálogo de traducción:"
-#: plover/gui_qt/config_window.py:329
+#: plover/gui_qt/config_window.py:397
msgid ""
"Set the translation dialog opacity:\n"
"- 0 makes the dialog invisible\n"
@@ -359,104 +453,101 @@ msgstr ""
"- 0 hace invisible el diálogo\n"
"- 100 es totalmente opaco"
-#: plover/gui_qt/config_window.py:332
+#: plover/gui_qt/config_window.py:403
msgid "Dictionaries display order:"
msgstr "Orden para visualización de diccionarios:"
-#: plover/gui_qt/config_window.py:334
+#: plover/gui_qt/config_window.py:406
msgid "top-down"
msgstr "hacia abajo"
-#: plover/gui_qt/config_window.py:334
+#: plover/gui_qt/config_window.py:406
msgid "bottom-up"
msgstr "hacia arriba"
-#: plover/gui_qt/config_window.py:335
+#: plover/gui_qt/config_window.py:409
msgid ""
"Set the display order for dictionaries:\n"
"- top-down: match the search order; highest priority first\n"
"- bottom-up: reverse search order; lowest priority first\n"
msgstr ""
"Establecer orden para visualización de diccionarios:\n"
-"- de arriba abajo: coincidir con el orden de búsqueda; primero el de mayor "
-"prioridad\n"
+"- de arriba abajo: coincidir con el orden de búsqueda; primero el de "
+"mayor prioridad\n"
"- de abajo arriba: invertir el orden de búsqueda; primero el de menor "
"prioridad\n"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:340
+#: plover/gui_qt/config_window.py:418
msgid "Logging"
msgstr "Registro"
-#: plover/gui_qt/config_window.py:341
+#: plover/gui_qt/config_window.py:421
msgid "Log file:"
msgstr "Fichero de registro:"
-#: plover/gui_qt/config_window.py:343
+#: plover/gui_qt/config_window.py:424
msgid "Select a log file"
msgstr "Seleccionar un fichero de registro"
-#: plover/gui_qt/config_window.py:344
+#: plover/gui_qt/config_window.py:424
msgid "Log files (*.log)"
msgstr "Ficheros de registro (*.log)"
-#: plover/gui_qt/config_window.py:345
+#: plover/gui_qt/config_window.py:426
msgid "File to use for logging strokes/translations."
msgstr "Fichero para usar en el registro de acordes/traducciones."
-#: plover/gui_qt/config_window.py:346
+#: plover/gui_qt/config_window.py:429
msgid "Log strokes:"
msgstr "Registrar acordes:"
-#: plover/gui_qt/config_window.py:347
+#: plover/gui_qt/config_window.py:432
msgid "Save strokes to the logfile."
msgstr "Guardar acordes en el fichero de registro."
-#: plover/gui_qt/config_window.py:348
+#: plover/gui_qt/config_window.py:435
msgid "Log translations:"
msgstr "Registrar traducciones:"
-#: plover/gui_qt/config_window.py:349
+#: plover/gui_qt/config_window.py:438
msgid "Save translations to the logfile."
msgstr "Guardar traducciones en el fichero de registro."
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:352 plover/gui_qt/main_window_ui.py:164
+#: plover/gui_qt/config_window.py:444 plover/gui_qt/main_window_ui.py:260
msgid "Machine"
msgstr "Máquina"
-#: plover/gui_qt/config_window.py:353
+#: plover/gui_qt/config_window.py:447
msgid "Machine:"
msgstr "Máquina:"
-#: plover/gui_qt/config_window.py:358
+#: plover/gui_qt/config_window.py:459
msgid "Options:"
msgstr "Opciones:"
-#: plover/gui_qt/config_window.py:359
+#: plover/gui_qt/config_window.py:461
msgid "Keymap:"
msgstr "Asignaciones de teclas:"
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:362 plover/gui_qt/main_window_ui.py:180
+#: plover/gui_qt/config_window.py:466 plover/gui_qt/main_window_ui.py:292
msgid "Output"
msgstr "Salida"
-#: plover/gui_qt/config_window.py:363
+#: plover/gui_qt/config_window.py:469
msgid "Enable at start:"
msgstr "Activar al inicio:"
-#: plover/gui_qt/config_window.py:364
+#: plover/gui_qt/config_window.py:472
msgid "Enable output on startup."
msgstr "Activar la salida al arrancar."
-#: plover/gui_qt/config_window.py:365
+#: plover/gui_qt/config_window.py:475
msgid "Start attached:"
msgstr "Suprimir espacio inicial:"
-#: plover/gui_qt/config_window.py:366
+#: plover/gui_qt/config_window.py:479
msgid ""
"Disable preceding space on first output.\n"
"\n"
@@ -466,37 +557,37 @@ msgstr ""
"\n"
"Esta opción solo es aplicable cuando los espacios se colocan antes."
-#: plover/gui_qt/config_window.py:369
+#: plover/gui_qt/config_window.py:485
msgid "Start capitalized:"
msgstr "Inicio en mayúscula:"
-#: plover/gui_qt/config_window.py:370
+#: plover/gui_qt/config_window.py:488
msgid "Capitalize the first word."
msgstr "Poner en mayúscula la primera palabra."
-#: plover/gui_qt/config_window.py:371
+#: plover/gui_qt/config_window.py:491
msgid "Space placement:"
msgstr "Ubicación de espacio:"
-#: plover/gui_qt/config_window.py:373
+#: plover/gui_qt/config_window.py:496
msgid "Before Output"
msgstr "Antes de la salida"
-#: plover/gui_qt/config_window.py:374
+#: plover/gui_qt/config_window.py:497
msgid "After Output"
msgstr "Después de la salida"
-#: plover/gui_qt/config_window.py:376
+#: plover/gui_qt/config_window.py:500
msgid "Set automatic space placement: before or after each word."
msgstr ""
"Establecer la ubicación automática del espacio: antes o después de cada "
"palabra."
-#: plover/gui_qt/config_window.py:377
+#: plover/gui_qt/config_window.py:503
msgid "Undo levels:"
msgstr "Niveles para deshacer:"
-#: plover/gui_qt/config_window.py:381
+#: plover/gui_qt/config_window.py:507
msgid ""
"Set how many preceding strokes can be undone.\n"
"\n"
@@ -508,160 +599,203 @@ msgstr ""
"Nota: el valor efectivo tendrá en cuenta \n"
"la entrada de diccionarios con el máximo número de acordes."
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:387
+#: plover/gui_qt/config_window.py:514
+msgid "Key press delay (ms):"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:522
+msgid ""
+"Set the delay between emulated key presses (in milliseconds).\n"
+"\n"
+"Some programs may drop key presses if too many are sent\n"
+"within a short period of time. Increasing the delay gives\n"
+"programs time to process each key press.\n"
+"Setting the delay too high will negatively impact the\n"
+"performance of key stroke output."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:532
+msgid "Linux keyboard layout:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:546
+msgid ""
+"Set the keyboard layout configured in your system.\n"
+"This only applies when using Linux/BSD and not using X11.\n"
+"\n"
+"When Wayland auto detect is selected,Plover is only able to detect the "
+"first keyboard layout\n"
+"and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:556
+msgid ""
+"When Wayland auto detect is selected, Plover is only able to detect the "
+"first keyboard layout and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:567
msgid "Plugins"
msgstr "Complementos"
-#: plover/gui_qt/config_window.py:388
-msgid "Extension:"
+#: plover/gui_qt/config_window.py:570
+#, fuzzy
+msgid "Extensions:"
msgstr "Extensión:"
-#: plover/gui_qt/config_window.py:392
-msgid "Name"
-msgstr "Nombre"
-
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/config_window.py:392 plover/gui_qt/main_window_ui.py:182
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
msgid "Enabled"
msgstr "Habilitado"
-#: plover/gui_qt/config_window.py:393
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/plugins_manager_ui.py:136
+msgid "Name"
+msgstr "Nombre"
+
+#: plover/gui_qt/config_window.py:580
msgid "Configure enabled plugin extensions."
msgstr "Configurar extensiones de complementos habilitadas."
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:396
-msgid "System"
-msgstr "Sistema"
-
-#: plover/gui_qt/config_window.py:397
+#: plover/gui_qt/config_window.py:589
msgid "System:"
msgstr "Sistema:"
#. Widget: “ConfigWindow”, window title.
-#: plover/gui_qt/config_window_ui.py:43
+#: plover/gui_qt/config_window_ui.py:61
msgid "Plover: Configuration"
msgstr "Plover: Configuración"
+#. Widget: “ConsoleWidget”, window title.
+#: plover/gui_qt/console_widget_ui.py:49
+msgid "Form"
+msgstr ""
+
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:40
+#: plover/gui_qt/dictionaries_widget.py:46
+#, python-brace-format
msgid "Dictionaries ({extensions})"
msgstr "Diccionarios ({extensions})"
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:43
+#: plover/gui_qt/dictionaries_widget.py:49
+#, python-brace-format
msgid "{format} dictionaries ({extensions})"
msgstr "Diccionarios {format} ({extensions})"
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:374
+#: plover/gui_qt/dictionaries_widget.py:391
msgid "disabled"
msgstr "deshabilitado"
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:377
+#: plover/gui_qt/dictionaries_widget.py:394
msgid "favorite"
msgstr "favorito"
-#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:380
+#: plover/gui_qt/dictionaries_widget.py:398
+#, python-brace-format
msgid "errored: {exception}."
msgstr "con error: {exception}."
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:384
+#: plover/gui_qt/dictionaries_widget.py:402
msgid "loading"
msgstr "se está cargando"
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:387
+#: plover/gui_qt/dictionaries_widget.py:405
msgid "read-only"
msgstr "solo lectura"
#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:393
+#: plover/gui_qt/dictionaries_widget.py:411
+#, python-brace-format
msgid "Full path: {path}."
msgstr "Ruta completa: {path}."
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:396
+#: plover/gui_qt/dictionaries_widget.py:414
msgid "This dictionary is marked as the favorite."
msgstr "Este diccionario está marcado como el favorito."
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:399
+#: plover/gui_qt/dictionaries_widget.py:417
msgid "This dictionary is being loaded."
msgstr "Este diccionario se está cargando."
-#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:402
+#: plover/gui_qt/dictionaries_widget.py:421
+#, python-brace-format
msgid "Loading this dictionary failed: {exception}."
msgstr "La carga de este diccionario falló: {exception}."
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:406
+#: plover/gui_qt/dictionaries_widget.py:427
msgid "This dictionary is read-only."
msgstr "Este diccionario es de solo lectura."
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:586
+#: plover/gui_qt/dictionaries_widget.py:618
+#, python-brace-format
msgid "Save a copy of {name} as..."
msgstr "Guardar una copia de {name} como..."
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:588
+#: plover/gui_qt/dictionaries_widget.py:620
+#, python-brace-format
msgid "{name} - Copy"
msgstr "{name} - Copiar"
#. Widget: “DictionariesWidget”, “save as merge” file picker.
-#: plover/gui_qt/dictionaries_widget.py:609
+#: plover/gui_qt/dictionaries_widget.py:642
+#, python-brace-format
msgid "Merge {names} as..."
msgstr "Fusionar {names} como..."
-#. Widget: “DictionariesWidget”, “add” file picker.
-#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:636
-#: plover/gui_qt/dictionaries_widget_ui.py:139
-msgid "Add dictionaries"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget.py:671
+#: plover/gui_qt/dictionaries_widget_ui.py:203
+#, fuzzy
+msgid "Load dictionaries"
msgstr "Añadir diccionarios"
#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget.py:647
-#: plover/gui_qt/dictionaries_widget_ui.py:163
-msgid "New dictionary"
+#: plover/gui_qt/dictionaries_widget.py:683
+#: plover/gui_qt/dictionaries_widget_ui.py:205
+#, fuzzy
+msgid "Create dictionary"
msgstr "Nuevo diccionario"
#. Widget: “DictionariesWidget”, title.
#. Widget: “DictionariesWidget”, accessible name.
-#: plover/gui_qt/dictionaries_widget_ui.py:109
-#: plover/gui_qt/dictionaries_widget_ui.py:111
+#: plover/gui_qt/dictionaries_widget_ui.py:125
+#: plover/gui_qt/dictionaries_widget_ui.py:208
msgid "Dictionaries"
msgstr "Diccionarios"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:113
+#: plover/gui_qt/dictionaries_widget_ui.py:127
msgid "&Edit dictionaries"
msgstr "&Editar diccionarios"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:115
+#: plover/gui_qt/dictionaries_widget_ui.py:130
msgid "Edit selected dictionaries"
msgstr "Editar diccionarios seleccionados"
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:117
+#: plover/gui_qt/dictionaries_widget_ui.py:134
msgid "Ctrl+E"
msgstr "Ctrl+E"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:119
+#: plover/gui_qt/dictionaries_widget_ui.py:137
msgid "&Save dictionaries as..."
msgstr "&Guardar diccionarios como..."
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:121
+#: plover/gui_qt/dictionaries_widget_ui.py:140
msgid ""
"Save the selected dictionaries: create a new copy of each dictionary, or "
"merge them into a new dictionary."
@@ -671,218 +805,238 @@ msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “PaperTape”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:123
-#: plover/gui_qt/paper_tape_ui.py:107
+#: plover/gui_qt/dictionaries_widget_ui.py:144
+#: plover/gui_qt/paper_tape_ui.py:129
msgid "Ctrl+S"
msgstr "Ctrl+S"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:125
+#: plover/gui_qt/dictionaries_widget_ui.py:147
msgid "&Remove dictionaries"
msgstr "Elimina&r diccionarios"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:127
+#: plover/gui_qt/dictionaries_widget_ui.py:150
msgid "Remove selected dictionaries"
msgstr "Eliminar diccionarios seleccionados"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:129
-#: plover/gui_qt/dictionary_editor_ui.py:136
+#: plover/gui_qt/dictionaries_widget_ui.py:154
+#: plover/gui_qt/dictionary_editor_ui.py:149
msgid "Del"
msgstr "Suprimir"
#. Widget: “DictionariesWidget”, text.
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:131
-#: plover/gui_qt/dictionary_editor_ui.py:138
+#: plover/gui_qt/dictionaries_widget_ui.py:157
+#: plover/gui_qt/dictionary_editor_ui.py:152
msgid "&Undo"
msgstr "Des&hacer"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:133
+#: plover/gui_qt/dictionaries_widget_ui.py:160
msgid "Undo last add/delete/reorder operation."
msgstr "Deshacer última operación añadir/borrar/reordenar."
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:135
-#: plover/gui_qt/dictionary_editor_ui.py:142
+#: plover/gui_qt/dictionaries_widget_ui.py:164
+#: plover/gui_qt/dictionary_editor_ui.py:159
msgid "Ctrl+Z"
msgstr "Ctrl+Z"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:137
+#: plover/gui_qt/dictionaries_widget_ui.py:167
msgid "&Add dictionaries"
msgstr "&Añadir diccionarios"
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:170
+msgid "Add dictionaries"
+msgstr "Añadir diccionarios"
+
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:141
+#: plover/gui_qt/dictionaries_widget_ui.py:174
msgid "Ctrl+O"
msgstr "Ctrl+O"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:143
+#: plover/gui_qt/dictionaries_widget_ui.py:177
msgid "Add &translation"
msgstr "Añadir &traducción"
#. Widget: “DictionariesWidget”, tool tip.
#. Widget: “DictionaryEditor”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:145
-#: plover/gui_qt/dictionary_editor_ui.py:146
+#: plover/gui_qt/dictionaries_widget_ui.py:180
+#: plover/gui_qt/dictionary_editor_ui.py:165
msgid "Add a new translation"
msgstr "Añadir nueva traducción"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:147
-#: plover/gui_qt/dictionary_editor_ui.py:148
+#: plover/gui_qt/dictionaries_widget_ui.py:184
+#: plover/gui_qt/dictionary_editor_ui.py:169
msgid "Ctrl+N"
msgstr "Ctrl+N"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:149
+#: plover/gui_qt/dictionaries_widget_ui.py:187
msgid "Move dictionaries &up"
msgstr "S&ubir diccionarios"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:151
+#: plover/gui_qt/dictionaries_widget_ui.py:190
msgid "Move selected dictionaries up."
msgstr "Desplazar diccionarios seleccionados hacia arriba."
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:153
+#: plover/gui_qt/dictionaries_widget_ui.py:193
msgid "Move dictionaries &down"
msgstr "Bajar &diccionarios"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:155
+#: plover/gui_qt/dictionaries_widget_ui.py:196
msgid "Move selected dictionaries down."
msgstr "Desplazar diccionarios seleccionados hacia abajo."
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:157
+#: plover/gui_qt/dictionaries_widget_ui.py:199
msgid "Create a copy of each dictionary"
msgstr "Crear una copia de cada diccionario"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:159
+#: plover/gui_qt/dictionaries_widget_ui.py:201
msgid "Merge dictionaries into a new one"
msgstr "Fusionar diccionarios en uno nuevo"
-#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:161
-msgid "Open dictionaries"
-msgstr "Abrir diccionarios"
-
#. Widget: “DictionaryEditor”, window title.
-#: plover/gui_qt/dictionary_editor_ui.py:108
+#: plover/gui_qt/dictionary_editor_ui.py:140
msgid "Plover: Dictionary Editor"
msgstr "Plover: Editor de diccionario"
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:142
+msgid "&Delete"
+msgstr "Borrar"
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:145
+msgid "Delete selected entries."
+msgstr "Borrar entradas seleccionadas."
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:155
+msgid "Undo last add/delete/edit operation."
+msgstr "Deshacer última operación añadir/borrar/editar."
+
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:162
+msgid "&New translation"
+msgstr "&Nueva traducción"
+
#. Widget: “DictionaryEditor”, accessible name.
#. Widget: “DictionaryEditor”, title.
-#: plover/gui_qt/dictionary_editor_ui.py:110
-#: plover/gui_qt/dictionary_editor_ui.py:112
+#: plover/gui_qt/dictionary_editor_ui.py:173
+#: plover/gui_qt/dictionary_editor_ui.py:176
msgid "Filter"
msgstr "Filtrar"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:114
+#: plover/gui_qt/dictionary_editor_ui.py:178
msgid "By strokes:"
msgstr "Por acordes:"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:116
+#: plover/gui_qt/dictionary_editor_ui.py:181
msgid "Strokes filter"
msgstr "Filtro de acordes"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:118
+#: plover/gui_qt/dictionary_editor_ui.py:185
msgid "Apply filter"
msgstr "Aplicar filtro"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:120
+#: plover/gui_qt/dictionary_editor_ui.py:188
msgid "Apply"
msgstr "Aplicar"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:122
+#: plover/gui_qt/dictionary_editor_ui.py:190
msgid "By translation:"
msgstr "Por traducción:"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:124
+#: plover/gui_qt/dictionary_editor_ui.py:193
msgid "Translation filter"
msgstr "Filtro de traducciones"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:126
+#: plover/gui_qt/dictionary_editor_ui.py:197
msgid "Clear filter"
msgstr "Limpiar filtro"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:128
+#: plover/gui_qt/dictionary_editor_ui.py:203
msgid "Clear"
msgstr "Limpiar"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:130
+#: plover/gui_qt/dictionary_editor_ui.py:206
msgid "Mappings"
msgstr "Asignaciones"
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:132
-msgid "&Delete"
-msgstr "Borrar"
-
-#. Widget: “DictionaryEditor”, tool tip.
-#: plover/gui_qt/dictionary_editor_ui.py:134
-msgid "Delete selected entries."
-msgstr "Borrar entradas seleccionadas."
-
-#. Widget: “DictionaryEditor”, tool tip.
-#: plover/gui_qt/dictionary_editor_ui.py:140
-msgid "Undo last add/delete/edit operation."
-msgstr "Deshacer última operación añadir/borrar/editar."
-
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:144
-msgid "&New translation"
-msgstr "&Nueva traducción"
-
#. Widget: “LookupDialog”, tooltip.
-#: plover/gui_qt/lookup_dialog.py:14
+#: plover/gui_qt/lookup_dialog.py:12
msgid "Search the dictionary for translations."
msgstr "Buscar traducciones en el diccionario."
-#: plover/gui_qt/lookup_dialog.py:16
+#: plover/gui_qt/lookup_dialog.py:14
msgid "Lookup"
msgstr "Buscar"
#. Widget: “LookupDialog”, window title.
-#: plover/gui_qt/lookup_dialog_ui.py:56
+#: plover/gui_qt/lookup_dialog_ui.py:72
msgid "Plover: Dictionary Lookup"
msgstr "Plover: Búsqueda en diccionario"
#. Widget: “LookupDialog”, accessible name.
-#: plover/gui_qt/lookup_dialog_ui.py:58
+#: plover/gui_qt/lookup_dialog_ui.py:75
msgid "Pattern"
msgstr "Patrón"
#. Widget: “LookupDialog”, accessible description.
-#: plover/gui_qt/lookup_dialog_ui.py:60
+#: plover/gui_qt/lookup_dialog_ui.py:79
msgid "Translation pattern to lookup."
msgstr "Patrón de traducción para buscar."
#. Widget: “LookupDialog”, accessible name.
-#: plover/gui_qt/lookup_dialog_ui.py:62
+#: plover/gui_qt/lookup_dialog_ui.py:83
msgid "Results"
msgstr "Resultados"
-#: plover/gui_qt/machine_options.py:106
+#: plover/gui_qt/machine_options.py:36
+#, python-brace-format
+msgid "product: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:37
+#, python-brace-format
+msgid "manufacturer: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:38
+#, python-brace-format
+msgid "serial number: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:46
+#, python-brace-format
+msgid "description: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:199
msgid ""
"Arpeggiate allows using non-NKRO keyboards.\n"
"\n"
@@ -893,311 +1047,354 @@ msgstr ""
"\n"
"Cada tecla puede pulsarse por separado y el espacio envía el acorde."
-#: plover/gui_qt/main_window.py:274
+#: plover/gui_qt/main_window.py:312
msgid "Application is still running."
msgstr "La aplicación ya se está ejecutando."
-#. Widget: “MainWindow”, accessible name.
-#: plover/gui_qt/main_window_ui.py:166
-msgid "State"
-msgstr "Estado"
-
-#. Widget: “MainWindow”, accessible description.
-#: plover/gui_qt/main_window_ui.py:168
-msgid "Connection state for the current machine."
-msgstr "Estado de conexión para la máquina actual."
-
-#. Widget: “MainWindow”, tool tip.
-#. Widget: “MainWindow”, accessible description.
-#: plover/gui_qt/main_window_ui.py:170 plover/gui_qt/main_window_ui.py:174
-#: plover/gui_qt/main_window_ui.py:218
-msgid "Disconnect and reconnect the machine."
-msgstr "Desconectar y reconectar la máquina."
-
-#. Widget: “MainWindow”, accessible name.
-#: plover/gui_qt/main_window_ui.py:172
-msgid "Reconnect"
-msgstr "Reconectar"
-
-#. Widget: “MainWindow”, accessible name.
-#: plover/gui_qt/main_window_ui.py:176
-msgid "Type"
-msgstr "Tipo"
-
-#. Widget: “MainWindow”, accessible description.
-#: plover/gui_qt/main_window_ui.py:178
-msgid "Change the current machine type."
-msgstr "Cambiar el tipo de máquina actual."
-
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:184
-msgid "Disabled"
-msgstr "Deshabilitado"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:186
-msgid "&File"
-msgstr "&Archivo"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:188
-msgid "&Tools"
-msgstr "Herramien&tas"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:190
-msgid "&Help"
-msgstr "A&yuda"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:192
-msgid "&Edit"
-msgstr "&Editar"
-
-#. Widget: “MainWindow”, window title.
-#: plover/gui_qt/main_window_ui.py:194
-msgid "Plover: Toolbar"
-msgstr "Plover: Barra de herramientas"
-
-#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:196
+#: plover/gui_qt/main_window_ui.py:202
msgid "&Quit Plover"
msgstr "&Salir de Plover"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:198
+#: plover/gui_qt/main_window_ui.py:205
msgid "Quit the application."
msgstr "Salir de la aplicación."
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:200
+#: plover/gui_qt/main_window_ui.py:209
msgid "Ctrl+Q"
msgstr "Ctrl+Q"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:202
+#: plover/gui_qt/main_window_ui.py:212
msgid "&Configure"
msgstr "&Configurar"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:204
+#: plover/gui_qt/main_window_ui.py:215
msgid "Open the configuration dialog."
msgstr "Abrir el diálogo de configuración."
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:206
+#: plover/gui_qt/main_window_ui.py:219
msgid "Ctrl+,"
msgstr "Ctrl+,"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:208
+#: plover/gui_qt/main_window_ui.py:222
msgid "Open config &folder"
msgstr "Abrir carpeta de &configuración"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:210
+#: plover/gui_qt/main_window_ui.py:225
msgid "Open the configuration folder."
msgstr "Abrir carpeta de configuración."
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:212
+#: plover/gui_qt/main_window_ui.py:228
msgid "&About"
msgstr "&Acerca de"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:214
+#: plover/gui_qt/main_window_ui.py:231
msgid "Open the about dialog."
msgstr "Abrir el diálogo Acerca de."
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:216
+#: plover/gui_qt/main_window_ui.py:234
msgid "&Reconnect machine"
msgstr "&Reconectar máquina"
+#. Widget: “MainWindow”, tool tip.
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:237 plover/gui_qt/main_window_ui.py:272
+#: plover/gui_qt/main_window_ui.py:280
+msgid "Disconnect and reconnect the machine."
+msgstr "Desconectar y reconectar la máquina."
+
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:220
+#: plover/gui_qt/main_window_ui.py:241
msgid "Ctrl+R"
msgstr "Ctrl+R"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:222
+#: plover/gui_qt/main_window_ui.py:244
msgid "&Show"
msgstr "&Mostrar"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:224
+#: plover/gui_qt/main_window_ui.py:247
msgid "Show the main window."
msgstr "Mostrar la ventana principal."
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:226
+#: plover/gui_qt/main_window_ui.py:250
msgid "Toggle &output"
msgstr "Cambiar estad&o de salida"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:228
+#: plover/gui_qt/main_window_ui.py:253
msgid "Toggle the output."
msgstr "Cambiar el estado de la salida."
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:230
+#: plover/gui_qt/main_window_ui.py:257
msgid "Ctrl+."
msgstr "Ctrl+."
+#. Widget: “MainWindow”, accessible name.
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/main_window_ui.py:263 plover/gui_qt/plugins_manager_ui.py:133
+msgid "State"
+msgstr "Estado"
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:267
+msgid "Connection state for the current machine."
+msgstr "Estado de conexión para la máquina actual."
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:276
+msgid "Reconnect"
+msgstr "Reconectar"
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:285
+msgid "Type"
+msgstr "Tipo"
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:289
+msgid "Change the current machine type."
+msgstr "Cambiar el tipo de máquina actual."
+
+#. Widget: “MainWindow”, text.
+#: plover/gui_qt/main_window_ui.py:296
+msgid "Disabled"
+msgstr "Deshabilitado"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:298
+msgid "&File"
+msgstr "&Archivo"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:300
+msgid "&Tools"
+msgstr "Herramien&tas"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:302
+msgid "&Help"
+msgstr "A&yuda"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:304
+msgid "&Edit"
+msgstr "&Editar"
+
+#. Widget: “MainWindow”, window title.
+#: plover/gui_qt/main_window_ui.py:306
+msgid "Plover: Toolbar"
+msgstr "Plover: Barra de herramientas"
+
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:26
+#: plover/gui_qt/paper_tape.py:30
msgid "Paper"
msgstr "Papel"
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:28
+#: plover/gui_qt/paper_tape.py:32
msgid "Raw"
msgstr "Sin procesar"
#. Widget: “PaperTape”, tooltip.
-#: plover/gui_qt/paper_tape.py:111
+#: plover/gui_qt/paper_tape.py:122
msgid "Paper tape display of strokes."
msgstr "Visualización de acordes en la tira de papel."
-#: plover/gui_qt/paper_tape.py:113
+#: plover/gui_qt/paper_tape.py:124
msgid "Paper Tape"
msgstr "Tira de papel"
-#: plover/gui_qt/paper_tape.py:212
+#: plover/gui_qt/paper_tape.py:237
msgid "Do you want to clear the paper tape?"
msgstr "¿Quieres limpiar la tira de papel?"
-#: plover/gui_qt/paper_tape.py:226
+#: plover/gui_qt/paper_tape.py:255
msgid "Save Paper Tape"
msgstr "Guardar tira de papel"
#. Paper tape, "save" file picker.
-#: plover/gui_qt/paper_tape.py:228
+#: plover/gui_qt/paper_tape.py:258
msgid "Text files (*.txt)"
msgstr "Ficheros de texto (*.txt)"
-#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:89
-msgid "Mode:"
-msgstr "Modo:"
-
-#. Widget: “PaperTape”, accessible name.
-#: plover/gui_qt/paper_tape_ui.py:91
-msgid "Mode"
-msgstr "Modo"
-
-#. Widget: “PaperTape”, accessible description.
-#: plover/gui_qt/paper_tape_ui.py:93
-msgid "Select paper tape display mode."
-msgstr "Seleccionar modo de visualización en tira de papel."
-
-#. Widget: “PaperTape”, accessible name.
-#: plover/gui_qt/paper_tape_ui.py:95
-msgid "Tape"
-msgstr "Tira"
-
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:97 plover/gui_qt/suggestions_dialog_ui.py:55
+#: plover/gui_qt/paper_tape_ui.py:112 plover/gui_qt/suggestions_dialog_ui.py:70
msgid "&Clear"
msgstr "&Limpiar"
#. Widget: “PaperTape”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:99
+#: plover/gui_qt/paper_tape_ui.py:115
msgid "Clear paper tape."
msgstr "Limpiar la tira de papel."
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:101 plover/gui_qt/suggestions_dialog_ui.py:59
+#: plover/gui_qt/paper_tape_ui.py:119 plover/gui_qt/suggestions_dialog_ui.py:77
msgid "Ctrl+L"
msgstr "Ctrl+L"
#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:103
+#: plover/gui_qt/paper_tape_ui.py:122
msgid "&Save"
msgstr "&Guardar"
#. Widget: “PaperTape”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:105
+#: plover/gui_qt/paper_tape_ui.py:125
msgid "Save paper tape to file."
msgstr "Guardar tira de papel en fichero."
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:109 plover/gui_qt/suggestions_dialog_ui.py:61
+#: plover/gui_qt/paper_tape_ui.py:132 plover/gui_qt/suggestions_dialog_ui.py:80
msgid "&Toggle \"always on top\""
msgstr "Cambiar es&tado de \"siempre arriba\""
#. Widget: “PaperTape”, tool tip.
#. Widget: “SuggestionsDialog”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:111 plover/gui_qt/suggestions_dialog_ui.py:63
+#: plover/gui_qt/paper_tape_ui.py:135 plover/gui_qt/suggestions_dialog_ui.py:83
msgid "Toggle \"always on top\"."
msgstr "Cambiar estado de \"siempre arriba\"."
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:113 plover/gui_qt/suggestions_dialog_ui.py:65
+#: plover/gui_qt/paper_tape_ui.py:139 plover/gui_qt/suggestions_dialog_ui.py:87
msgid "Ctrl+T"
msgstr "Ctrl+T"
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:115 plover/gui_qt/suggestions_dialog_ui.py:67
+#: plover/gui_qt/paper_tape_ui.py:142 plover/gui_qt/suggestions_dialog_ui.py:90
msgid "Select &font"
msgstr "Seleccionar &fuente"
#. Widget: “PaperTape”, tool tip.
#. Widget: “SuggestionsDialog”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:117 plover/gui_qt/suggestions_dialog_ui.py:69
+#: plover/gui_qt/paper_tape_ui.py:145 plover/gui_qt/suggestions_dialog_ui.py:93
msgid "Open font selection dialog."
msgstr "Abrir diálogo de selección de fuentes."
+#. Widget: “PaperTape”, text.
+#: plover/gui_qt/paper_tape_ui.py:148
+msgid "Mode:"
+msgstr "Modo:"
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:151
+msgid "Mode"
+msgstr "Modo"
+
+#. Widget: “PaperTape”, accessible description.
+#: plover/gui_qt/paper_tape_ui.py:155
+msgid "Select paper tape display mode."
+msgstr "Seleccionar modo de visualización en tira de papel."
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:159
+msgid "Tape"
+msgstr "Tira"
+
+#. Widget: “PluginsManager”, window title.
+#. Widget: “RunDialog”, window title.
+#: plover/gui_qt/plugins_manager_ui.py:130 plover/gui_qt/run_dialog_ui.py:51
+msgid "Dialog"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:139
+msgid "Version"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:142
+msgid "Summary"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:144
+#, fuzzy
+msgid "Restart"
+msgstr "Estado"
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:148
+msgid "Uninstall"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:150
+msgid "Install/Update"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:152
+msgid "..."
+msgstr ""
+
#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/suggestions_dialog.py:27
+#: plover/gui_qt/suggestions_dialog.py:26
msgid "Suggest possible strokes for the last written words."
msgstr "Sugerir posibles acordes para las últimas palabras escritas."
#. Widget: “SuggestionsDialog”, accessible name.
-#: plover/gui_qt/suggestions_dialog.py:29
-#: plover/gui_qt/suggestions_dialog_ui.py:53
+#: plover/gui_qt/suggestions_dialog.py:28
+#: plover/gui_qt/suggestions_dialog_ui.py:97
msgid "Suggestions"
msgstr "Sugerencias"
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:58
+#: plover/gui_qt/suggestions_dialog.py:62
msgid "&Text"
msgstr "&Texto"
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:60
+#: plover/gui_qt/suggestions_dialog.py:64
msgid "&Strokes"
msgstr "Acorde&s"
#. Widget: “SuggestionsDialog”, tool tip.
-#: plover/gui_qt/suggestions_dialog_ui.py:57
+#: plover/gui_qt/suggestions_dialog_ui.py:73
msgid "Clear the history."
msgstr "Vaciar el historial."
#. Widget: “SuggestionsWidget”.
-#: plover/gui_qt/suggestions_widget.py:23
+#: plover/gui_qt/suggestions_widget.py:27
msgid "no suggestions"
msgstr "no hay sugerencias"
-#: plover/gui_qt/trayicon.py:120
+#: plover/gui_qt/trayicon.py:118
+#, python-brace-format
msgid "{machine} is {state}"
msgstr "{machine} está {state}"
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:126
+#: plover/gui_qt/trayicon.py:124
msgid "output is enabled"
msgstr "la salida está activada"
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:129
+#: plover/gui_qt/trayicon.py:127
msgid "output is disabled"
msgstr "la salida está desactivada"
+#: plover/gui_qt/utils.py:28
+msgid "Copy selection to clipboard"
+msgstr ""
+
#. Machine state.
#: plover/machine/base.py:20
msgid "stopped"
@@ -1222,3 +1419,13 @@ msgstr "desconectada"
#: plover/machine/keyboard.py:14
msgid "Keyboard"
msgstr "Teclado"
+
+#~ msgid "Scan"
+#~ msgstr "Escanear"
+
+#~ msgid "Use timeout"
+#~ msgstr "Usar tiempo de espera"
+
+#~ msgid "Open dictionaries"
+#~ msgstr "Abrir diccionarios"
+
diff --git a/plover/messages/fr/LC_MESSAGES/plover.po b/plover/messages/fr/LC_MESSAGES/plover.po
index fa4708028..552869bcd 100644
--- a/plover/messages/fr/LC_MESSAGES/plover.po
+++ b/plover/messages/fr/LC_MESSAGES/plover.po
@@ -5,21 +5,20 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: plover 4.0.0.dev0\n"
+"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-05-23 20:19+0200\n"
+"POT-Creation-Date: 2026-03-07 10:58+0100\n"
"PO-Revision-Date: 2021-10-16 12:48+0900\n"
"Last-Translator: Benoit Pierre \n"
-"Language-Team: fr \n"
"Language: fr\n"
+"Language-Team: fr \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"Generated-By: Babel 2.9.0\n"
-"X-Generator: Poedit 3.0\n"
+"Generated-By: Babel 2.17.0\n"
-#: plover/__init__.py:19
+#: plover/__init__.py:22
msgid ""
"Founded by stenographer Mirabai Knight.\n"
"\n"
@@ -50,319 +49,412 @@ msgstr ""
""
#. Short description for Plover, currently not used in the interface.
-#: plover/__init__.py:33
+#: plover/__init__.py:38
msgid "Open Source Stenography Software"
msgstr "Logiciel libre de sténographie"
-#: plover/__init__.py:34
+#: plover/__init__.py:39
#, fuzzy
msgid ""
"Plover is a free open source program intended to bring realtime\n"
"stenographic technology not just to stenographers, but also to\n"
"hackers, hobbyists, accessibility mavens, and all-around speed demons."
msgstr ""
-"Plover est un logiciel libre gratuit destiné à mettre la technologie de la "
-"sténographie en temps réel à la portée de non seulement les sténographes, "
-"mais aussi les hackers, les amateurs, les spécialistes de l'accessibilité et "
-"tous les démons de la vitesse."
+"Plover est un logiciel libre gratuit destiné à mettre la technologie de "
+"la sténographie en temps réel à la portée de non seulement les "
+"sténographes, mais aussi les hackers, les amateurs, les spécialistes de "
+"l'accessibilité et tous les démons de la vitesse."
+
+#: plover/dictionary/helpers.py:24
+#, python-format
+msgid "dictionary `%s` loaded with %u invalid steno errors"
+msgstr ""
#. Widget: “AboutDialog”, window title.
-#: plover/gui_qt/about_dialog_ui.py:38
+#: plover/gui_qt/about_dialog_ui.py:53
msgid "Plover: About"
msgstr "Plover: À propos"
#. Widget: “AddTranslationDialog”, tooltip.
#. Widget: “AddTranslationWidget”, tooltip.
-#: plover/gui_qt/add_translation_dialog.py:10
+#: plover/gui_qt/add_translation_dialog.py:11
#: plover/gui_qt/add_translation_widget.py:23
msgid "Add a new translation to the dictionary."
msgstr "Ajoute une nouvelle traduction au dictionnaire."
-#: plover/gui_qt/add_translation_dialog.py:12
+#: plover/gui_qt/add_translation_dialog.py:13
msgid "Add Translation"
msgstr "Ajouter une traduction"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:200
+#: plover/gui_qt/add_translation_widget.py:194
+#, python-brace-format
msgid "{dictionary} (disabled)"
msgstr "{dictionary} (désactivé)"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:259
+#: plover/gui_qt/add_translation_widget.py:260
+#, python-brace-format
msgid "{strokes} maps to "
msgstr "{strokes} se traduit par "
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:270
+#: plover/gui_qt/add_translation_widget.py:272
msgid "Overwritten entries:"
msgstr "Entrées surchargées :"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:275
+#: plover/gui_qt/add_translation_widget.py:277
+#, python-brace-format
msgid "{strokes} is not mapped in any dictionary"
msgstr "{strokes} n'est pas dans le dictionnaire"
#. Widget: “AddTranslationWidget”.
#: plover/gui_qt/add_translation_widget.py:291
+#, python-brace-format
msgid "{translation} is mapped to: {strokes}"
msgstr "\"{translation}\" est assigné à {strokes}"
#. Widget: “AddTranslationWidget”.
#: plover/gui_qt/add_translation_widget.py:294
+#, python-brace-format
msgid "{translation} is not in the dictionary"
msgstr "\"{translation}\" n'est pas dans le dictionnaire"
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:106
+#: plover/gui_qt/add_translation_widget_ui.py:124
msgid "Dictionary:"
msgstr "Dictionnaire :"
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:108
+#: plover/gui_qt/add_translation_widget_ui.py:126
msgid "Strokes:"
msgstr "Accords :"
#. Widget: “AddTranslationWidget”, accessible name.
#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/add_translation_widget_ui.py:110
-#: plover/gui_qt/dictionary_editor.py:164
+#: plover/gui_qt/add_translation_widget_ui.py:129
+#: plover/gui_qt/dictionary_editor.py:170
msgid "Strokes"
msgstr "Accords"
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:112
+#: plover/gui_qt/add_translation_widget_ui.py:132
msgid "Translation:"
msgstr "Traduction :"
#. Widget: “AddTranslationWidget”, accessible name.
#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/add_translation_widget_ui.py:114
-#: plover/gui_qt/dictionary_editor.py:167
+#: plover/gui_qt/add_translation_widget_ui.py:135
+#: plover/gui_qt/dictionary_editor.py:173
msgid "Translation"
msgstr "Traduction"
#. Widget: “AddTranslationWidget”, accessible name.
#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/add_translation_widget_ui.py:116
-#: plover/gui_qt/dictionary_editor.py:170
+#: plover/gui_qt/add_translation_widget_ui.py:139
+#: plover/gui_qt/dictionary_editor.py:176
msgid "Dictionary"
msgstr "Dictionnaire"
#. Widget: “AddTranslationWidget”, accessible description.
-#: plover/gui_qt/add_translation_widget_ui.py:118
+#: plover/gui_qt/add_translation_widget_ui.py:143
#, fuzzy
msgid "Select the target dictionary for the new translation."
msgstr "Cherche les nouvelles traductions dans le dictionnaire."
#. Widget: “AddTranslationWidget”, accessible name.
-#: plover/gui_qt/add_translation_widget_ui.py:120
+#: plover/gui_qt/add_translation_widget_ui.py:147
msgid "Existing mappings (strokes)"
msgstr "Traductions existantes (accords)"
#. Widget: “AddTranslationWidget”, accessible name.
-#: plover/gui_qt/add_translation_widget_ui.py:122
+#: plover/gui_qt/add_translation_widget_ui.py:152
#, fuzzy
msgid "Existing mappings (translations)"
msgstr "Traductions existantes (traductions)"
#. Widget: “FileWidget”, accessible name.
-#: plover/gui_qt/config_file_widget_ui.py:45
+#: plover/gui_qt/config_file_widget_ui.py:61
msgid "Log file path."
msgstr "Chemin du journal."
#. Widget: “FileWidget”, accessible description.
-#: plover/gui_qt/config_file_widget_ui.py:47
+#: plover/gui_qt/config_file_widget_ui.py:65
msgid "Path to the log file."
msgstr "Chemin du journal."
#. Widget: “FileWidget”, accessible name.
-#: plover/gui_qt/config_file_widget_ui.py:49
+#: plover/gui_qt/config_file_widget_ui.py:69
msgid "Browse."
msgstr "Parcourir."
#. Widget: “FileWidget”, accessible description.
-#: plover/gui_qt/config_file_widget_ui.py:51
+#: plover/gui_qt/config_file_widget_ui.py:73
msgid "Open a file picker to select the log file."
msgstr "Ouvre un sélecteur de fichiers pour sélectionner le journal."
#. Widget: “FileWidget”, text.
-#: plover/gui_qt/config_file_widget_ui.py:53
+#: plover/gui_qt/config_file_widget_ui.py:76
msgid "Browse"
msgstr "Parcourir"
+#. Widget: “KeyboardWidget”, tool tip.
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_keyboard_widget_ui.py:56
+#: plover/gui_qt/config_plover_hid_widget_ui.py:89
+msgid ""
+"When the first key in a chord is released, the chord is sent.\n"
+"If the key is pressed and released again, another chord is sent."
+msgstr ""
+
+#. Widget: “KeyboardWidget”, text.
+#: plover/gui_qt/config_keyboard_widget_ui.py:60
+msgid "First-up chord send"
+msgstr ""
+
#. Widget: “KeyboardWidget”, text.
-#: plover/gui_qt/config_keyboard_widget_ui.py:36
+#: plover/gui_qt/config_keyboard_widget_ui.py:62
msgid "Arpeggiate"
msgstr "Arpéger"
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:93
+msgid "Send chord on first key release"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:96
+msgid "Tap and then hold a chord to send it repeatedly."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:99
+msgid "Double tap to repeat"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:101
+msgid "Repeat delay (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:104
+msgid "Delay before chord starts repeating."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:107
+msgid "Repeat interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:110
+msgid "Interval between chord repetitions."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:113
+msgid "Device scan interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:116
+msgid "How often to scan for newly plugged-in devices."
+msgstr ""
+
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:205
+#: plover/gui_qt/config_serial_widget_ui.py:215
#, fuzzy
msgid "Serial"
msgstr "Connexion en série"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:207
+#: plover/gui_qt/config_serial_widget_ui.py:218
msgid "Connection"
msgstr "Connexion"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:209
-#: plover/gui_qt/config_serial_widget_ui.py:211
+#: plover/gui_qt/config_serial_widget_ui.py:220
+#: plover/gui_qt/config_serial_widget_ui.py:223
msgid "Port"
msgstr "Port"
#. Widget: “SerialWidget”, accessible description.
-#: plover/gui_qt/config_serial_widget_ui.py:213
+#: plover/gui_qt/config_serial_widget_ui.py:227
#, fuzzy
msgid "Serial port device name."
msgstr "Nom du périphérique de port série."
#. Widget: “SerialWidget”, accessible description.
-#: plover/gui_qt/config_serial_widget_ui.py:215
+#: plover/gui_qt/config_serial_widget_ui.py:231
#, fuzzy
-msgid "Scan for available serial ports."
+msgid "Reload all available serial ports."
msgstr "Scanner les ports série."
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:217
-msgid "Scan"
-msgstr "Balayer"
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_serial_widget_ui.py:234
+#: plover/gui_qt/plugins_manager_ui.py:146
+msgid "Refresh"
+msgstr ""
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:219
-#: plover/gui_qt/config_serial_widget_ui.py:221
+#: plover/gui_qt/config_serial_widget_ui.py:236
+#: plover/gui_qt/config_serial_widget_ui.py:239
msgid "Baudrate"
msgstr "Bauds"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:223
+#: plover/gui_qt/config_serial_widget_ui.py:242
msgid "Data format"
msgstr "Format des données"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:225
-#: plover/gui_qt/config_serial_widget_ui.py:227
+#: plover/gui_qt/config_serial_widget_ui.py:244
+#: plover/gui_qt/config_serial_widget_ui.py:247
msgid "Data bits"
msgstr "Bits de données"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:229
-#: plover/gui_qt/config_serial_widget_ui.py:231
+#: plover/gui_qt/config_serial_widget_ui.py:250
+#: plover/gui_qt/config_serial_widget_ui.py:253
msgid "Stop bits"
msgstr "Bits d'arrêt"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:233
-#: plover/gui_qt/config_serial_widget_ui.py:235
+#: plover/gui_qt/config_serial_widget_ui.py:256
+#: plover/gui_qt/config_serial_widget_ui.py:259
msgid "Parity"
msgstr "Parité"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:237
+#: plover/gui_qt/config_serial_widget_ui.py:265
msgid "Timeout"
msgstr "Délai de transmission"
#. Widget: “SerialWidget”, text.
+#: plover/gui_qt/config_serial_widget_ui.py:267
+#, fuzzy
+msgid "Duration (s)"
+msgstr "Durée"
+
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:239
-#: plover/gui_qt/config_serial_widget_ui.py:241
+#: plover/gui_qt/config_serial_widget_ui.py:270
msgid "Duration"
msgstr "Durée"
#. Widget: “SerialWidget”, accessible description.
-#: plover/gui_qt/config_serial_widget_ui.py:243
+#: plover/gui_qt/config_serial_widget_ui.py:274
#, fuzzy
msgid "Timeout duration in seconds."
msgstr "Durée du délai d’expiration en secondes."
-#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:245
-msgid "Use timeout"
-msgstr "Utiliser"
-
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:247
+#: plover/gui_qt/config_serial_widget_ui.py:277
msgid "Flow control"
msgstr "Contrôle de flux"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:249
+#: plover/gui_qt/config_serial_widget_ui.py:279
msgid "Xon/Xoff"
msgstr "Xon/Xoff"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:251
+#: plover/gui_qt/config_serial_widget_ui.py:281
msgid "RTS/CTS"
msgstr "RTS/CTS"
#. Widget: “NopeOption” (empty config option message,
#. e.g. the machine option when selecting the Treal machine).
-#: plover/gui_qt/config_window.py:47
+#: plover/gui_qt/config_window.py:51
msgid "Nothing to see here!"
msgstr "Rien à voir ici !"
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:176
+#: plover/gui_qt/config_window.py:173
msgid "Key"
msgstr "Touche"
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:178
+#: plover/gui_qt/config_window.py:175
msgid "Action"
msgstr "Action"
#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:224
-msgid "Choice"
-msgstr "Choix"
-
-#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:226
+#: plover/gui_qt/config_window.py:221
msgid "Selected"
msgstr "Sélectionné"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:320
+#. Widget: “MultipleChoicesOption”.
+#: plover/gui_qt/config_window.py:223
+msgid "Choice"
+msgstr "Choix"
+
+#: plover/gui_qt/config_window.py:354
msgid "Interface"
msgstr "Interface"
-#: plover/gui_qt/config_window.py:321
+#: plover/gui_qt/config_window.py:357
+msgid "Appearance:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
+msgid "System"
+msgstr "Système"
+
+#: plover/gui_qt/config_window.py:363
+msgid "Light"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:364
+msgid "Dark"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:368
+msgid ""
+"Set the application appearance:\n"
+"- System: follow the operating system mode\n"
+"- Light: force light mode\n"
+"- Dark: force dark mode"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
msgstr "Démarrer minimisé :"
-#: plover/gui_qt/config_window.py:322
+#: plover/gui_qt/config_window.py:378
msgid "Minimize the main window to systray on startup."
msgstr "Minimise la fenêtre principale au démarrage."
-#: plover/gui_qt/config_window.py:323
+#: plover/gui_qt/config_window.py:381
msgid "Show paper tape:"
msgstr "Afficher la bande papier :"
-#: plover/gui_qt/config_window.py:324
+#: plover/gui_qt/config_window.py:384
msgid "Open the paper tape on startup."
msgstr "Ouvre la bande papier au démarrage."
-#: plover/gui_qt/config_window.py:325
+#: plover/gui_qt/config_window.py:387
msgid "Show suggestions:"
msgstr "Afficher les suggestions :"
-#: plover/gui_qt/config_window.py:326
+#: plover/gui_qt/config_window.py:390
msgid "Open the suggestions dialog on startup."
msgstr "Ouvre la fenêtre des suggestions au démarrage."
-#: plover/gui_qt/config_window.py:327
+#: plover/gui_qt/config_window.py:393
msgid "Add translation dialog opacity:"
msgstr ""
"Opacité de la fenêtre\n"
"\"Ajouter une traduction\" :"
-#: plover/gui_qt/config_window.py:329
+#: plover/gui_qt/config_window.py:397
msgid ""
"Set the translation dialog opacity:\n"
"- 0 makes the dialog invisible\n"
@@ -372,19 +464,19 @@ msgstr ""
"- 0 pour la rendre invisible\n"
"- 100 pour une fenêtre complètement opaque"
-#: plover/gui_qt/config_window.py:332
+#: plover/gui_qt/config_window.py:403
msgid "Dictionaries display order:"
msgstr "Sens d'affichage des dictionnaires :"
-#: plover/gui_qt/config_window.py:334
+#: plover/gui_qt/config_window.py:406
msgid "top-down"
msgstr "haut-en-bas"
-#: plover/gui_qt/config_window.py:334
+#: plover/gui_qt/config_window.py:406
msgid "bottom-up"
msgstr "bas-en-haut"
-#: plover/gui_qt/config_window.py:335
+#: plover/gui_qt/config_window.py:409
msgid ""
"Set the display order for dictionaries:\n"
"- top-down: match the search order; highest priority first\n"
@@ -393,82 +485,80 @@ msgstr ""
"Défini le sens d'affichage des dictionnaires :\n"
"- haut-en-bas : correspond à l'ordre de recherche; par priorité "
"décroissante\n"
-"- bas-en-haut : dans l'ordre inverse de recherche; par priorité croissante\n"
+"- bas-en-haut : dans l'ordre inverse de recherche; par priorité "
+"croissante\n"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:340
+#: plover/gui_qt/config_window.py:418
msgid "Logging"
msgstr "Journal"
-#: plover/gui_qt/config_window.py:341
+#: plover/gui_qt/config_window.py:421
msgid "Log file:"
msgstr "Fichier :"
-#: plover/gui_qt/config_window.py:343
+#: plover/gui_qt/config_window.py:424
msgid "Select a log file"
msgstr "Sélectionner un fichier de journal"
-#: plover/gui_qt/config_window.py:344
+#: plover/gui_qt/config_window.py:424
msgid "Log files (*.log)"
msgstr "Fichiers de journal (*.log)"
-#: plover/gui_qt/config_window.py:345
+#: plover/gui_qt/config_window.py:426
msgid "File to use for logging strokes/translations."
msgstr "Fichier à utiliser pour la journalisation des accords/traductions."
-#: plover/gui_qt/config_window.py:346
+#: plover/gui_qt/config_window.py:429
msgid "Log strokes:"
msgstr "Enregistrer les accords :"
-#: plover/gui_qt/config_window.py:347
+#: plover/gui_qt/config_window.py:432
msgid "Save strokes to the logfile."
msgstr "Enregistre les accords dans le journal."
-#: plover/gui_qt/config_window.py:348
+#: plover/gui_qt/config_window.py:435
msgid "Log translations:"
msgstr "Enregistrer les traductions :"
-#: plover/gui_qt/config_window.py:349
+#: plover/gui_qt/config_window.py:438
msgid "Save translations to the logfile."
msgstr "Enregistre les traductions dans le journal."
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:352 plover/gui_qt/main_window_ui.py:164
+#: plover/gui_qt/config_window.py:444 plover/gui_qt/main_window_ui.py:260
msgid "Machine"
msgstr "Machine"
-#: plover/gui_qt/config_window.py:353
+#: plover/gui_qt/config_window.py:447
msgid "Machine:"
msgstr "Machine :"
-#: plover/gui_qt/config_window.py:358
+#: plover/gui_qt/config_window.py:459
msgid "Options:"
msgstr "Paramètres :"
-#: plover/gui_qt/config_window.py:359
+#: plover/gui_qt/config_window.py:461
msgid "Keymap:"
msgstr "Disposition :"
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:362 plover/gui_qt/main_window_ui.py:180
+#: plover/gui_qt/config_window.py:466 plover/gui_qt/main_window_ui.py:292
msgid "Output"
msgstr "Sortie"
-#: plover/gui_qt/config_window.py:363
+#: plover/gui_qt/config_window.py:469
msgid "Enable at start:"
msgstr "Activer au démarrage :"
-#: plover/gui_qt/config_window.py:364
+#: plover/gui_qt/config_window.py:472
msgid "Enable output on startup."
msgstr "Active la sortie au démarrage."
-#: plover/gui_qt/config_window.py:365
+#: plover/gui_qt/config_window.py:475
msgid "Start attached:"
msgstr "Supprimer l'espace initial :"
-#: plover/gui_qt/config_window.py:366
+#: plover/gui_qt/config_window.py:479
msgid ""
"Disable preceding space on first output.\n"
"\n"
@@ -479,36 +569,35 @@ msgstr ""
"Cette option n'a de sens que lorsque le placement\n"
"des espaces s'effectue avant chaque mot."
-#: plover/gui_qt/config_window.py:369
+#: plover/gui_qt/config_window.py:485
msgid "Start capitalized:"
msgstr "Capitaliser le premier mot :"
-#: plover/gui_qt/config_window.py:370
+#: plover/gui_qt/config_window.py:488
msgid "Capitalize the first word."
msgstr "Capitalise le premier mot."
-#: plover/gui_qt/config_window.py:371
+#: plover/gui_qt/config_window.py:491
msgid "Space placement:"
msgstr "Placement de l'espace :"
-#: plover/gui_qt/config_window.py:373
+#: plover/gui_qt/config_window.py:496
msgid "Before Output"
msgstr "Avant la traduction"
-#: plover/gui_qt/config_window.py:374
+#: plover/gui_qt/config_window.py:497
msgid "After Output"
msgstr "Après la traduction"
-#: plover/gui_qt/config_window.py:376
+#: plover/gui_qt/config_window.py:500
msgid "Set automatic space placement: before or after each word."
-msgstr ""
-"Définie le placement automatique des espaces: avant ou après chaque mot."
+msgstr "Définie le placement automatique des espaces: avant ou après chaque mot."
-#: plover/gui_qt/config_window.py:377
+#: plover/gui_qt/config_window.py:503
msgid "Undo levels:"
msgstr "Niveaux d'annulation :"
-#: plover/gui_qt/config_window.py:381
+#: plover/gui_qt/config_window.py:507
msgid ""
"Set how many preceding strokes can be undone.\n"
"\n"
@@ -521,162 +610,205 @@ msgstr ""
"N.B.: le nombre effectif prend en compte l'entrée des dictionnaires "
"nécessitant le plus d'accords."
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:387
+#: plover/gui_qt/config_window.py:514
+msgid "Key press delay (ms):"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:522
+msgid ""
+"Set the delay between emulated key presses (in milliseconds).\n"
+"\n"
+"Some programs may drop key presses if too many are sent\n"
+"within a short period of time. Increasing the delay gives\n"
+"programs time to process each key press.\n"
+"Setting the delay too high will negatively impact the\n"
+"performance of key stroke output."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:532
+msgid "Linux keyboard layout:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:546
+msgid ""
+"Set the keyboard layout configured in your system.\n"
+"This only applies when using Linux/BSD and not using X11.\n"
+"\n"
+"When Wayland auto detect is selected,Plover is only able to detect the "
+"first keyboard layout\n"
+"and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:556
+msgid ""
+"When Wayland auto detect is selected, Plover is only able to detect the "
+"first keyboard layout and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:567
msgid "Plugins"
msgstr "Greffons"
-#: plover/gui_qt/config_window.py:388
-msgid "Extension:"
+#: plover/gui_qt/config_window.py:570
+#, fuzzy
+msgid "Extensions:"
msgstr "Extension :"
-#: plover/gui_qt/config_window.py:392
-msgid "Name"
-msgstr "Nom"
-
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/config_window.py:392 plover/gui_qt/main_window_ui.py:182
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
msgid "Enabled"
msgstr "Activée"
-#: plover/gui_qt/config_window.py:393
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/plugins_manager_ui.py:136
+msgid "Name"
+msgstr "Nom"
+
+#: plover/gui_qt/config_window.py:580
msgid "Configure enabled plugin extensions."
msgstr "Configure les extensions activées."
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:396
-msgid "System"
-msgstr "Système"
-
-#: plover/gui_qt/config_window.py:397
+#: plover/gui_qt/config_window.py:589
msgid "System:"
msgstr "Système :"
#. Widget: “ConfigWindow”, window title.
-#: plover/gui_qt/config_window_ui.py:43
+#: plover/gui_qt/config_window_ui.py:61
msgid "Plover: Configuration"
msgstr "Plover : Configuration"
+#. Widget: “ConsoleWidget”, window title.
+#: plover/gui_qt/console_widget_ui.py:49
+msgid "Form"
+msgstr ""
+
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:40
+#: plover/gui_qt/dictionaries_widget.py:46
+#, python-brace-format
msgid "Dictionaries ({extensions})"
msgstr "Dictionnaires ({extensions})"
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:43
+#: plover/gui_qt/dictionaries_widget.py:49
+#, python-brace-format
msgid "{format} dictionaries ({extensions})"
msgstr "Dictionnaires {format} ({extensions})"
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:374
+#: plover/gui_qt/dictionaries_widget.py:391
msgid "disabled"
msgstr "désactivé"
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:377
+#: plover/gui_qt/dictionaries_widget.py:394
msgid "favorite"
msgstr "favori"
-#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:380
+#: plover/gui_qt/dictionaries_widget.py:398
+#, python-brace-format
msgid "errored: {exception}."
msgstr "erreur : {exception}"
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:384
+#: plover/gui_qt/dictionaries_widget.py:402
msgid "loading"
msgstr "chargement"
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:387
+#: plover/gui_qt/dictionaries_widget.py:405
msgid "read-only"
msgstr "lecture seule"
#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:393
+#: plover/gui_qt/dictionaries_widget.py:411
+#, python-brace-format
msgid "Full path: {path}."
msgstr "Chemin complet : {path}."
+# | msgid "This dictionary is marked as a favorite."
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:396
+#: plover/gui_qt/dictionaries_widget.py:414
#, fuzzy
-#| msgid "This dictionary is marked as a favorite."
msgid "This dictionary is marked as the favorite."
msgstr "Ce dictionnaire est marqué comme favori."
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:399
+#: plover/gui_qt/dictionaries_widget.py:417
msgid "This dictionary is being loaded."
msgstr "Ce dictionnaire est en cours de chargement."
-#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:402
+#: plover/gui_qt/dictionaries_widget.py:421
+#, python-brace-format
msgid "Loading this dictionary failed: {exception}."
msgstr "Erreur lors du chargement du dictionnaire : {exception}."
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:406
+#: plover/gui_qt/dictionaries_widget.py:427
msgid "This dictionary is read-only."
msgstr "Ce dictionnaire est en lecture-seule."
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:586
+#: plover/gui_qt/dictionaries_widget.py:618
+#, python-brace-format
msgid "Save a copy of {name} as..."
msgstr "Enregistrez une copie de {name} sous..."
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:588
+#: plover/gui_qt/dictionaries_widget.py:620
+#, python-brace-format
msgid "{name} - Copy"
msgstr "{name} - Copie"
#. Widget: “DictionariesWidget”, “save as merge” file picker.
-#: plover/gui_qt/dictionaries_widget.py:609
+#: plover/gui_qt/dictionaries_widget.py:642
+#, python-brace-format
msgid "Merge {names} as..."
msgstr "Fusionner {names} sous..."
-#. Widget: “DictionariesWidget”, “add” file picker.
-#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:636
-#: plover/gui_qt/dictionaries_widget_ui.py:139
-msgid "Add dictionaries"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget.py:671
+#: plover/gui_qt/dictionaries_widget_ui.py:203
+#, fuzzy
+msgid "Load dictionaries"
msgstr "Ajoute des dictionnaires"
#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget.py:647
-#: plover/gui_qt/dictionaries_widget_ui.py:163
-msgid "New dictionary"
+#: plover/gui_qt/dictionaries_widget.py:683
+#: plover/gui_qt/dictionaries_widget_ui.py:205
+#, fuzzy
+msgid "Create dictionary"
msgstr "Nouveau dictionnaire"
#. Widget: “DictionariesWidget”, title.
#. Widget: “DictionariesWidget”, accessible name.
-#: plover/gui_qt/dictionaries_widget_ui.py:109
-#: plover/gui_qt/dictionaries_widget_ui.py:111
+#: plover/gui_qt/dictionaries_widget_ui.py:125
+#: plover/gui_qt/dictionaries_widget_ui.py:208
msgid "Dictionaries"
msgstr "Dictionnaires"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:113
+#: plover/gui_qt/dictionaries_widget_ui.py:127
msgid "&Edit dictionaries"
msgstr "&Éditer les dictionnaires"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:115
+#: plover/gui_qt/dictionaries_widget_ui.py:130
msgid "Edit selected dictionaries"
msgstr "Édite les dictionnaires sélectionnés"
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:117
+#: plover/gui_qt/dictionaries_widget_ui.py:134
msgid "Ctrl+E"
msgstr "Ctrl+E"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:119
+#: plover/gui_qt/dictionaries_widget_ui.py:137
msgid "&Save dictionaries as..."
msgstr "&Enregistrer les dictionnaires sous..."
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:121
+#: plover/gui_qt/dictionaries_widget_ui.py:140
msgid ""
"Save the selected dictionaries: create a new copy of each dictionary, or "
"merge them into a new dictionary."
@@ -686,219 +818,239 @@ msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “PaperTape”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:123
-#: plover/gui_qt/paper_tape_ui.py:107
+#: plover/gui_qt/dictionaries_widget_ui.py:144
+#: plover/gui_qt/paper_tape_ui.py:129
msgid "Ctrl+S"
msgstr "Ctrl+S"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:125
+#: plover/gui_qt/dictionaries_widget_ui.py:147
msgid "&Remove dictionaries"
msgstr "Supprimer les dictionnaires"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:127
+#: plover/gui_qt/dictionaries_widget_ui.py:150
msgid "Remove selected dictionaries"
msgstr "Supprime les dictionnaires sélectionnés"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:129
-#: plover/gui_qt/dictionary_editor_ui.py:136
+#: plover/gui_qt/dictionaries_widget_ui.py:154
+#: plover/gui_qt/dictionary_editor_ui.py:149
msgid "Del"
msgstr "Supprimer"
#. Widget: “DictionariesWidget”, text.
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:131
-#: plover/gui_qt/dictionary_editor_ui.py:138
+#: plover/gui_qt/dictionaries_widget_ui.py:157
+#: plover/gui_qt/dictionary_editor_ui.py:152
msgid "&Undo"
msgstr "Annuler"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:133
+#: plover/gui_qt/dictionaries_widget_ui.py:160
msgid "Undo last add/delete/reorder operation."
msgstr "Annule la dernière opération."
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:135
-#: plover/gui_qt/dictionary_editor_ui.py:142
+#: plover/gui_qt/dictionaries_widget_ui.py:164
+#: plover/gui_qt/dictionary_editor_ui.py:159
msgid "Ctrl+Z"
msgstr "Ctrl+Z"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:137
+#: plover/gui_qt/dictionaries_widget_ui.py:167
msgid "&Add dictionaries"
msgstr "&Ajouter des dictionnaires"
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:170
+msgid "Add dictionaries"
+msgstr "Ajoute des dictionnaires"
+
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:141
+#: plover/gui_qt/dictionaries_widget_ui.py:174
msgid "Ctrl+O"
msgstr "Ctrl+O"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:143
+#: plover/gui_qt/dictionaries_widget_ui.py:177
msgid "Add &translation"
msgstr "Ajouter une traduction"
#. Widget: “DictionariesWidget”, tool tip.
#. Widget: “DictionaryEditor”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:145
-#: plover/gui_qt/dictionary_editor_ui.py:146
+#: plover/gui_qt/dictionaries_widget_ui.py:180
+#: plover/gui_qt/dictionary_editor_ui.py:165
msgid "Add a new translation"
msgstr "Ajoute une nouvelle traduction"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:147
-#: plover/gui_qt/dictionary_editor_ui.py:148
+#: plover/gui_qt/dictionaries_widget_ui.py:184
+#: plover/gui_qt/dictionary_editor_ui.py:169
msgid "Ctrl+N"
msgstr "Ctrl+N"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:149
+#: plover/gui_qt/dictionaries_widget_ui.py:187
msgid "Move dictionaries &up"
msgstr "Déplacer les dictionnaires vers le haut"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:151
+#: plover/gui_qt/dictionaries_widget_ui.py:190
msgid "Move selected dictionaries up."
msgstr "Déplace les dictionnaires sélectionnés vers le haut."
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:153
+#: plover/gui_qt/dictionaries_widget_ui.py:193
msgid "Move dictionaries &down"
msgstr "Déplacer les dictionnaires vers le bas"
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:155
+#: plover/gui_qt/dictionaries_widget_ui.py:196
msgid "Move selected dictionaries down."
msgstr "Déplace les dictionnaires sélectionnés vers le bas."
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:157
+#: plover/gui_qt/dictionaries_widget_ui.py:199
msgid "Create a copy of each dictionary"
msgstr "Créer une copie de chaque dictionnaire"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:159
+#: plover/gui_qt/dictionaries_widget_ui.py:201
msgid "Merge dictionaries into a new one"
msgstr "Fusionner les dictionnaires en un nouveau"
-#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:161
-msgid "Open dictionaries"
-msgstr "Ouvrir des dictionnaires"
-
#. Widget: “DictionaryEditor”, window title.
-#: plover/gui_qt/dictionary_editor_ui.py:108
+#: plover/gui_qt/dictionary_editor_ui.py:140
msgid "Plover: Dictionary Editor"
msgstr "Plover: Éditeur de dictionnaire"
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:142
+msgid "&Delete"
+msgstr "Supprimer"
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:145
+msgid "Delete selected entries."
+msgstr "Supprime les entrées sélectionnées."
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:155
+msgid "Undo last add/delete/edit operation."
+msgstr "Annule la dernière opération."
+
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:162
+msgid "&New translation"
+msgstr "&Nouvelle traduction"
+
#. Widget: “DictionaryEditor”, accessible name.
#. Widget: “DictionaryEditor”, title.
-#: plover/gui_qt/dictionary_editor_ui.py:110
-#: plover/gui_qt/dictionary_editor_ui.py:112
+#: plover/gui_qt/dictionary_editor_ui.py:173
+#: plover/gui_qt/dictionary_editor_ui.py:176
msgid "Filter"
msgstr "Filtre"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:114
+#: plover/gui_qt/dictionary_editor_ui.py:178
msgid "By strokes:"
msgstr "Par accords :"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:116
+#: plover/gui_qt/dictionary_editor_ui.py:181
msgid "Strokes filter"
msgstr "Filtre d'accords"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:118
+#: plover/gui_qt/dictionary_editor_ui.py:185
msgid "Apply filter"
msgstr "Appliquer le filtre"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:120
+#: plover/gui_qt/dictionary_editor_ui.py:188
msgid "Apply"
msgstr "Appliquer"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:122
+#: plover/gui_qt/dictionary_editor_ui.py:190
msgid "By translation:"
msgstr "Par traduction :"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:124
+#: plover/gui_qt/dictionary_editor_ui.py:193
msgid "Translation filter"
msgstr "Filtre de traduction"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:126
+#: plover/gui_qt/dictionary_editor_ui.py:197
msgid "Clear filter"
msgstr "Effacer le filtre"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:128
+#: plover/gui_qt/dictionary_editor_ui.py:203
msgid "Clear"
msgstr "Effacer"
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:130
+#: plover/gui_qt/dictionary_editor_ui.py:206
msgid "Mappings"
msgstr "Traductions"
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:132
-msgid "&Delete"
-msgstr "Supprimer"
-
-#. Widget: “DictionaryEditor”, tool tip.
-#: plover/gui_qt/dictionary_editor_ui.py:134
-msgid "Delete selected entries."
-msgstr "Supprime les entrées sélectionnées."
-
-#. Widget: “DictionaryEditor”, tool tip.
-#: plover/gui_qt/dictionary_editor_ui.py:140
-msgid "Undo last add/delete/edit operation."
-msgstr "Annule la dernière opération."
-
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:144
-msgid "&New translation"
-msgstr "&Nouvelle traduction"
-
#. Widget: “LookupDialog”, tooltip.
-#: plover/gui_qt/lookup_dialog.py:14
+#: plover/gui_qt/lookup_dialog.py:12
msgid "Search the dictionary for translations."
msgstr "Cherche les traductions du dictionnaire."
-#: plover/gui_qt/lookup_dialog.py:16
+#: plover/gui_qt/lookup_dialog.py:14
msgid "Lookup"
msgstr "Recherche"
#. Widget: “LookupDialog”, window title.
-#: plover/gui_qt/lookup_dialog_ui.py:56
+#: plover/gui_qt/lookup_dialog_ui.py:72
msgid "Plover: Dictionary Lookup"
msgstr "Plover: Recherche"
#. Widget: “LookupDialog”, accessible name.
-#: plover/gui_qt/lookup_dialog_ui.py:58
+#: plover/gui_qt/lookup_dialog_ui.py:75
msgid "Pattern"
msgstr "Motif"
#. Widget: “LookupDialog”, accessible description.
-#: plover/gui_qt/lookup_dialog_ui.py:60
+#: plover/gui_qt/lookup_dialog_ui.py:79
#, fuzzy
msgid "Translation pattern to lookup."
msgstr "Motifs de traduction à chercher."
#. Widget: “LookupDialog”, accessible name.
-#: plover/gui_qt/lookup_dialog_ui.py:62
+#: plover/gui_qt/lookup_dialog_ui.py:83
msgid "Results"
msgstr "Résultats"
-#: plover/gui_qt/machine_options.py:106
+#: plover/gui_qt/machine_options.py:36
+#, python-brace-format
+msgid "product: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:37
+#, python-brace-format
+msgid "manufacturer: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:38
+#, python-brace-format
+msgid "serial number: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:46
+#, python-brace-format
+msgid "description: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:199
msgid ""
"Arpeggiate allows using non-NKRO keyboards.\n"
"\n"
@@ -910,307 +1062,354 @@ msgstr ""
"Chaque touche peut alors être frappée individuellement,\n"
"et la barre d'espace utilisée pour terminer l'accord."
-#. Widget: “MainWindow”, accessible name.
-#: plover/gui_qt/main_window_ui.py:166
-msgid "State"
-msgstr "État"
-
-#. Widget: “MainWindow”, accessible description.
-#: plover/gui_qt/main_window_ui.py:168
-msgid "Connection state for the current machine."
-msgstr "État de connexion de la machine."
-
-#. Widget: “MainWindow”, tool tip.
-#. Widget: “MainWindow”, accessible description.
-#: plover/gui_qt/main_window_ui.py:170 plover/gui_qt/main_window_ui.py:174
-#: plover/gui_qt/main_window_ui.py:218
-msgid "Disconnect and reconnect the machine."
-msgstr "Déconnecte puis reconnecte la machine."
-
-#. Widget: “MainWindow”, accessible name.
-#: plover/gui_qt/main_window_ui.py:172
-msgid "Reconnect"
-msgstr "Reconnecter"
-
-#. Widget: “MainWindow”, accessible name.
-#: plover/gui_qt/main_window_ui.py:176
-msgid "Type"
-msgstr "Modèle"
-
-#. Widget: “MainWindow”, accessible description.
-#: plover/gui_qt/main_window_ui.py:178
-msgid "Change the current machine type."
-msgstr "Modifie le type de machine."
-
-#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:184
-msgid "Disabled"
-msgstr "Désactivée"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:186
-msgid "&File"
-msgstr "&Fichier"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:188
-msgid "&Tools"
-msgstr "Outils"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:190
-msgid "&Help"
-msgstr "Aide"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:192
-msgid "&Edit"
-msgstr "&Éditer"
-
-#. Widget: “MainWindow”, window title.
-#: plover/gui_qt/main_window_ui.py:194
-msgid "Plover: Toolbar"
-msgstr "Plover: Bar d'outils"
+#: plover/gui_qt/main_window.py:312
+msgid "Application is still running."
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:196
+#: plover/gui_qt/main_window_ui.py:202
msgid "&Quit Plover"
msgstr "&Quitter Plover"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:198
+#: plover/gui_qt/main_window_ui.py:205
msgid "Quit the application."
msgstr "Quitte l'application."
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:200
+#: plover/gui_qt/main_window_ui.py:209
msgid "Ctrl+Q"
msgstr "Ctrl+Q"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:202
+#: plover/gui_qt/main_window_ui.py:212
msgid "&Configure"
msgstr "&Configurer"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:204
+#: plover/gui_qt/main_window_ui.py:215
msgid "Open the configuration dialog."
msgstr "Ouvre la fenêtre de configuration."
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:206
+#: plover/gui_qt/main_window_ui.py:219
msgid "Ctrl+,"
msgstr "Ctrl+,"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:208
+#: plover/gui_qt/main_window_ui.py:222
msgid "Open config &folder"
msgstr "&Ouvrir le dossier contenant la configuration"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:210
+#: plover/gui_qt/main_window_ui.py:225
msgid "Open the configuration folder."
msgstr "Ouvre le dossier contenant la configuration."
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:212
+#: plover/gui_qt/main_window_ui.py:228
msgid "&About"
msgstr "À propos"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:214
+#: plover/gui_qt/main_window_ui.py:231
msgid "Open the about dialog."
msgstr "Ouvre la fenêtre \"À propos\"."
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:216
+#: plover/gui_qt/main_window_ui.py:234
msgid "&Reconnect machine"
msgstr "&Reconnecter la machine"
+#. Widget: “MainWindow”, tool tip.
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:237 plover/gui_qt/main_window_ui.py:272
+#: plover/gui_qt/main_window_ui.py:280
+msgid "Disconnect and reconnect the machine."
+msgstr "Déconnecte puis reconnecte la machine."
+
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:220
+#: plover/gui_qt/main_window_ui.py:241
msgid "Ctrl+R"
msgstr "Ctrl+R"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:222
+#: plover/gui_qt/main_window_ui.py:244
msgid "&Show"
msgstr "Afficher"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:224
+#: plover/gui_qt/main_window_ui.py:247
msgid "Show the main window."
msgstr "Affiche la fenêtre principale."
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:226
+#: plover/gui_qt/main_window_ui.py:250
msgid "Toggle &output"
msgstr "Activer/désactiver la sortie"
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:228
+#: plover/gui_qt/main_window_ui.py:253
msgid "Toggle the output."
msgstr "Active/désactive la sortie."
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:230
+#: plover/gui_qt/main_window_ui.py:257
msgid "Ctrl+."
msgstr "Ctrl+."
+#. Widget: “MainWindow”, accessible name.
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/main_window_ui.py:263 plover/gui_qt/plugins_manager_ui.py:133
+msgid "State"
+msgstr "État"
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:267
+msgid "Connection state for the current machine."
+msgstr "État de connexion de la machine."
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:276
+msgid "Reconnect"
+msgstr "Reconnecter"
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:285
+msgid "Type"
+msgstr "Modèle"
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:289
+msgid "Change the current machine type."
+msgstr "Modifie le type de machine."
+
+#. Widget: “MainWindow”, text.
+#: plover/gui_qt/main_window_ui.py:296
+msgid "Disabled"
+msgstr "Désactivée"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:298
+msgid "&File"
+msgstr "&Fichier"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:300
+msgid "&Tools"
+msgstr "Outils"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:302
+msgid "&Help"
+msgstr "Aide"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:304
+msgid "&Edit"
+msgstr "&Éditer"
+
+#. Widget: “MainWindow”, window title.
+#: plover/gui_qt/main_window_ui.py:306
+msgid "Plover: Toolbar"
+msgstr "Plover: Bar d'outils"
+
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:26
+#: plover/gui_qt/paper_tape.py:30
msgid "Paper"
msgstr "Papier"
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:28
+#: plover/gui_qt/paper_tape.py:32
msgid "Raw"
msgstr "Brut"
#. Widget: “PaperTape”, tooltip.
-#: plover/gui_qt/paper_tape.py:111
+#: plover/gui_qt/paper_tape.py:122
msgid "Paper tape display of strokes."
msgstr "Affichage des entrées du ruban."
-#: plover/gui_qt/paper_tape.py:113
+#: plover/gui_qt/paper_tape.py:124
msgid "Paper Tape"
msgstr "Ruban"
-#: plover/gui_qt/paper_tape.py:212
+#: plover/gui_qt/paper_tape.py:237
msgid "Do you want to clear the paper tape?"
msgstr "Voulez vous effacer l'historique de la bande papier?"
-#: plover/gui_qt/paper_tape.py:226
+#: plover/gui_qt/paper_tape.py:255
msgid "Save Paper Tape"
msgstr "Enregistrer la bande papier"
#. Paper tape, "save" file picker.
-#: plover/gui_qt/paper_tape.py:228
+#: plover/gui_qt/paper_tape.py:258
msgid "Text files (*.txt)"
msgstr "Fichiers texte (*.txt)"
-#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:89
-msgid "Mode:"
-msgstr "Mode :"
-
-#. Widget: “PaperTape”, accessible name.
-#: plover/gui_qt/paper_tape_ui.py:91
-msgid "Mode"
-msgstr "Mode"
-
-#. Widget: “PaperTape”, accessible description.
-#: plover/gui_qt/paper_tape_ui.py:93
-msgid "Select paper tape display mode."
-msgstr "Choisit le mode d'affichage du ruban."
-
-#. Widget: “PaperTape”, accessible name.
-#: plover/gui_qt/paper_tape_ui.py:95
-msgid "Tape"
-msgstr "Ruban"
-
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:97 plover/gui_qt/suggestions_dialog_ui.py:55
+#: plover/gui_qt/paper_tape_ui.py:112 plover/gui_qt/suggestions_dialog_ui.py:70
msgid "&Clear"
msgstr "&Effacer"
#. Widget: “PaperTape”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:99
+#: plover/gui_qt/paper_tape_ui.py:115
msgid "Clear paper tape."
msgstr "Efface le ruban."
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:101 plover/gui_qt/suggestions_dialog_ui.py:59
+#: plover/gui_qt/paper_tape_ui.py:119 plover/gui_qt/suggestions_dialog_ui.py:77
msgid "Ctrl+L"
msgstr "Ctrl+L"
#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:103
+#: plover/gui_qt/paper_tape_ui.py:122
msgid "&Save"
msgstr "&Sauvegarder"
#. Widget: “PaperTape”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:105
+#: plover/gui_qt/paper_tape_ui.py:125
msgid "Save paper tape to file."
msgstr "Enregistre la bande papier."
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:109 plover/gui_qt/suggestions_dialog_ui.py:61
+#: plover/gui_qt/paper_tape_ui.py:132 plover/gui_qt/suggestions_dialog_ui.py:80
msgid "&Toggle \"always on top\""
msgstr "&Basculer \"toujours visible\""
#. Widget: “PaperTape”, tool tip.
#. Widget: “SuggestionsDialog”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:111 plover/gui_qt/suggestions_dialog_ui.py:63
+#: plover/gui_qt/paper_tape_ui.py:135 plover/gui_qt/suggestions_dialog_ui.py:83
msgid "Toggle \"always on top\"."
msgstr "Bascule \"toujours visible\"."
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:113 plover/gui_qt/suggestions_dialog_ui.py:65
+#: plover/gui_qt/paper_tape_ui.py:139 plover/gui_qt/suggestions_dialog_ui.py:87
msgid "Ctrl+T"
msgstr "Ctrl+T"
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:115 plover/gui_qt/suggestions_dialog_ui.py:67
+#: plover/gui_qt/paper_tape_ui.py:142 plover/gui_qt/suggestions_dialog_ui.py:90
msgid "Select &font"
msgstr "Sélectionner la &fonte de caractères"
#. Widget: “PaperTape”, tool tip.
#. Widget: “SuggestionsDialog”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:117 plover/gui_qt/suggestions_dialog_ui.py:69
+#: plover/gui_qt/paper_tape_ui.py:145 plover/gui_qt/suggestions_dialog_ui.py:93
msgid "Open font selection dialog."
msgstr "Ouvre la fenêtre de sélection de la fonte de caractères."
+#. Widget: “PaperTape”, text.
+#: plover/gui_qt/paper_tape_ui.py:148
+msgid "Mode:"
+msgstr "Mode :"
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:151
+msgid "Mode"
+msgstr "Mode"
+
+#. Widget: “PaperTape”, accessible description.
+#: plover/gui_qt/paper_tape_ui.py:155
+msgid "Select paper tape display mode."
+msgstr "Choisit le mode d'affichage du ruban."
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:159
+msgid "Tape"
+msgstr "Ruban"
+
+#. Widget: “PluginsManager”, window title.
+#. Widget: “RunDialog”, window title.
+#: plover/gui_qt/plugins_manager_ui.py:130 plover/gui_qt/run_dialog_ui.py:51
+msgid "Dialog"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:139
+msgid "Version"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:142
+msgid "Summary"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:144
+#, fuzzy
+msgid "Restart"
+msgstr "État"
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:148
+msgid "Uninstall"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:150
+msgid "Install/Update"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:152
+msgid "..."
+msgstr ""
+
#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/suggestions_dialog.py:27
+#: plover/gui_qt/suggestions_dialog.py:26
msgid "Suggest possible strokes for the last written words."
msgstr "Suggère des accords possibles pour les derniers mots écris."
#. Widget: “SuggestionsDialog”, accessible name.
-#: plover/gui_qt/suggestions_dialog.py:29
-#: plover/gui_qt/suggestions_dialog_ui.py:53
+#: plover/gui_qt/suggestions_dialog.py:28
+#: plover/gui_qt/suggestions_dialog_ui.py:97
msgid "Suggestions"
msgstr "Suggestions"
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:58
+#: plover/gui_qt/suggestions_dialog.py:62
msgid "&Text"
msgstr "&Texte"
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:60
+#: plover/gui_qt/suggestions_dialog.py:64
msgid "&Strokes"
msgstr "&Accords"
#. Widget: “SuggestionsDialog”, tool tip.
-#: plover/gui_qt/suggestions_dialog_ui.py:57
+#: plover/gui_qt/suggestions_dialog_ui.py:73
msgid "Clear the history."
msgstr "Efface l'historique."
#. Widget: “SuggestionsWidget”.
-#: plover/gui_qt/suggestions_widget.py:23
+#: plover/gui_qt/suggestions_widget.py:27
msgid "no suggestions"
msgstr "pas de suggestions"
-#: plover/gui_qt/trayicon.py:115
+#: plover/gui_qt/trayicon.py:118
+#, python-brace-format
msgid "{machine} is {state}"
msgstr "la machine \"{machine}\" est {state}"
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:121
+#: plover/gui_qt/trayicon.py:124
msgid "output is enabled"
msgstr "la sortie est activée"
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:124
+#: plover/gui_qt/trayicon.py:127
msgid "output is disabled"
msgstr "la sortie est désactivée"
+#: plover/gui_qt/utils.py:28
+msgid "Copy selection to clipboard"
+msgstr ""
+
#. Machine state.
#: plover/machine/base.py:20
msgid "stopped"
@@ -1235,3 +1434,13 @@ msgstr "déconnectée"
#: plover/machine/keyboard.py:14
msgid "Keyboard"
msgstr "Clavier"
+
+#~ msgid "Scan"
+#~ msgstr "Balayer"
+
+#~ msgid "Use timeout"
+#~ msgstr "Utiliser"
+
+#~ msgid "Open dictionaries"
+#~ msgstr "Ouvrir des dictionnaires"
+
diff --git a/plover/messages/it/LC_MESSAGES/plover.po b/plover/messages/it/LC_MESSAGES/plover.po
index 71d99faa8..f92d70a1e 100644
--- a/plover/messages/it/LC_MESSAGES/plover.po
+++ b/plover/messages/it/LC_MESSAGES/plover.po
@@ -1,25 +1,25 @@
-# Translations template for plover.
-# Copyright (C) 2021 ORGANIZATION
+# Italian translations for plover.
+# Copyright (C) 2026 ORGANIZATION
# This file is distributed under the same license as the plover project.
-# FIRST AUTHOR , 2021.
+# FIRST AUTHOR , 2026.
#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: plover 4.0.0.dev8+401.g819b997\n"
+"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-17 22:00+0000\n"
-"PO-Revision-Date: 2021-04-18 01:46+0200\n"
-"Last-Translator: Paolo A. Michela Zucco \n"
-"Language-Team: \n"
-"Language: it_IT\n"
+"POT-Creation-Date: 2026-03-07 10:58+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language: it\n"
+"Language-Team: it \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.9.0\n"
-"X-Generator: Poedit 2.4.2\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Generated-By: Babel 2.17.0\n"
-#: plover/__init__.py:19
+#: plover/__init__.py:22
msgid ""
"Founded by stenographer Mirabai Knight.\n"
"\n"
@@ -35,1009 +35,1347 @@ msgid ""
"and many more on GitHub:\n"
""
msgstr ""
-"Fondato dalla stenografa Mirabai Knight.\n"
-"\n"
-"Sviluppatori:\n"
-"\n"
-"Joshua Lifton\n"
-"Hesky Fisher\n"
-"Thea Morin\n"
-"Benoit Pierre\n"
-"Sammi Ta\n"
-"Martin Koerner\n"
-"\n"
-"e molti altri su GitHub:\n"
-""
#. Short description for Plover, currently not used in the interface.
-#: plover/__init__.py:33
+#: plover/__init__.py:38
msgid "Open Source Stenography Software"
-msgstr "Software Open Source per la Stenografia a macchina"
+msgstr ""
-#: plover/__init__.py:34
+#: plover/__init__.py:39
msgid ""
"Plover is a free open source program intended to bring realtime\n"
"stenographic technology not just to stenographers, but also to\n"
"hackers, hobbyists, accessibility mavens, and all-around speed demons."
msgstr ""
-"Plover è un programma gratuito open source creato con l'intento di portare "
-"la tecnologia\n"
-"della stenografia a macchina in tempo reale non solo agli stenografi, ma "
-"anche ad hackers,\n"
-"hobbisti, esperti dell'accessibilità e campioni di velocità a tutto tondo."
-#. Widget: “AboutDialog”, windowtitle.
-#: plover/gui_qt/about_dialog_ui.py:38
+#: plover/dictionary/helpers.py:24
+#, python-format
+msgid "dictionary `%s` loaded with %u invalid steno errors"
+msgstr ""
+
+#. Widget: “AboutDialog”, window title.
+#: plover/gui_qt/about_dialog_ui.py:53
msgid "Plover: About"
-msgstr "Plover: Informazioni su"
+msgstr ""
#. Widget: “AddTranslationDialog”, tooltip.
#. Widget: “AddTranslationWidget”, tooltip.
-#: plover/gui_qt/add_translation_dialog.py:8
-#: plover/gui_qt/add_translation_widget.py:22
+#: plover/gui_qt/add_translation_dialog.py:11
+#: plover/gui_qt/add_translation_widget.py:23
msgid "Add a new translation to the dictionary."
-msgstr "Aggiungi definizione al dizionario."
+msgstr ""
-#: plover/gui_qt/add_translation_dialog.py:10
+#: plover/gui_qt/add_translation_dialog.py:13
msgid "Add Translation"
-msgstr "Aggiungi definizione"
+msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:199
+#: plover/gui_qt/add_translation_widget.py:194
+#, python-brace-format
msgid "{dictionary} (disabled)"
-msgstr "{dictionary} (disabilitato)"
+msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:258
+#: plover/gui_qt/add_translation_widget.py:260
+#, python-brace-format
msgid "{strokes} maps to "
-msgstr "{strokes} definizione "
+msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:269
+#: plover/gui_qt/add_translation_widget.py:272
msgid "Overwritten entries:"
-msgstr "Definizioni sovrascritte:"
+msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:274
+#: plover/gui_qt/add_translation_widget.py:277
+#, python-brace-format
msgid "{strokes} is not mapped in any dictionary"
-msgstr "{strokes} non assegnata ad alcun dizionario"
+msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:290
+#: plover/gui_qt/add_translation_widget.py:291
+#, python-brace-format
msgid "{translation} is mapped to: {strokes}"
-msgstr "{translation} assegnata a {strokes}"
+msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:293
+#: plover/gui_qt/add_translation_widget.py:294
+#, python-brace-format
msgid "{translation} is not in the dictionary"
-msgstr "{translation} non presente nel dizionario"
+msgstr ""
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:101
+#: plover/gui_qt/add_translation_widget_ui.py:124
+msgid "Dictionary:"
+msgstr ""
+
+#. Widget: “AddTranslationWidget”, text.
+#: plover/gui_qt/add_translation_widget_ui.py:126
msgid "Strokes:"
-msgstr "Note steno:"
+msgstr ""
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#. Widget: “DictionaryEditor”.
+#: plover/gui_qt/add_translation_widget_ui.py:129
+#: plover/gui_qt/dictionary_editor.py:170
+msgid "Strokes"
+msgstr ""
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:103
+#: plover/gui_qt/add_translation_widget_ui.py:132
msgid "Translation:"
-msgstr "Traduzione:"
+msgstr ""
-#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:105
-msgid "Dictionary:"
-msgstr "Dizionario:"
+#. Widget: “AddTranslationWidget”, accessible name.
+#. Widget: “DictionaryEditor”.
+#: plover/gui_qt/add_translation_widget_ui.py:135
+#: plover/gui_qt/dictionary_editor.py:173
+msgid "Translation"
+msgstr ""
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#. Widget: “DictionaryEditor”.
+#: plover/gui_qt/add_translation_widget_ui.py:139
+#: plover/gui_qt/dictionary_editor.py:176
+msgid "Dictionary"
+msgstr ""
+
+#. Widget: “AddTranslationWidget”, accessible description.
+#: plover/gui_qt/add_translation_widget_ui.py:143
+msgid "Select the target dictionary for the new translation."
+msgstr ""
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#: plover/gui_qt/add_translation_widget_ui.py:147
+msgid "Existing mappings (strokes)"
+msgstr ""
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#: plover/gui_qt/add_translation_widget_ui.py:152
+msgid "Existing mappings (translations)"
+msgstr ""
+
+#. Widget: “FileWidget”, accessible name.
+#: plover/gui_qt/config_file_widget_ui.py:61
+msgid "Log file path."
+msgstr ""
+
+#. Widget: “FileWidget”, accessible description.
+#: plover/gui_qt/config_file_widget_ui.py:65
+msgid "Path to the log file."
+msgstr ""
+
+#. Widget: “FileWidget”, accessible name.
+#: plover/gui_qt/config_file_widget_ui.py:69
+msgid "Browse."
+msgstr ""
+
+#. Widget: “FileWidget”, accessible description.
+#: plover/gui_qt/config_file_widget_ui.py:73
+msgid "Open a file picker to select the log file."
+msgstr ""
#. Widget: “FileWidget”, text.
-#: plover/gui_qt/config_file_widget_ui.py:45
+#: plover/gui_qt/config_file_widget_ui.py:76
msgid "Browse"
-msgstr "Naviga"
+msgstr ""
+
+#. Widget: “KeyboardWidget”, tool tip.
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_keyboard_widget_ui.py:56
+#: plover/gui_qt/config_plover_hid_widget_ui.py:89
+msgid ""
+"When the first key in a chord is released, the chord is sent.\n"
+"If the key is pressed and released again, another chord is sent."
+msgstr ""
#. Widget: “KeyboardWidget”, text.
-#: plover/gui_qt/config_keyboard_widget_ui.py:36
+#: plover/gui_qt/config_keyboard_widget_ui.py:60
+msgid "First-up chord send"
+msgstr ""
+
+#. Widget: “KeyboardWidget”, text.
+#: plover/gui_qt/config_keyboard_widget_ui.py:62
msgid "Arpeggiate"
-msgstr "Arpeggiare"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:93
+msgid "Send chord on first key release"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:96
+msgid "Tap and then hold a chord to send it repeatedly."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:99
+msgid "Double tap to repeat"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:101
+msgid "Repeat delay (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:104
+msgid "Delay before chord starts repeating."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:107
+msgid "Repeat interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:110
+msgid "Interval between chord repetitions."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:113
+msgid "Device scan interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:116
+msgid "How often to scan for newly plugged-in devices."
+msgstr ""
+
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:215
+msgid "Serial"
+msgstr ""
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:209
+#: plover/gui_qt/config_serial_widget_ui.py:218
msgid "Connection"
-msgstr "Connessione"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:211
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:220
+#: plover/gui_qt/config_serial_widget_ui.py:223
msgid "Port"
-msgstr "Porta"
+msgstr ""
+
+#. Widget: “SerialWidget”, accessible description.
+#: plover/gui_qt/config_serial_widget_ui.py:227
+msgid "Serial port device name."
+msgstr ""
+
+#. Widget: “SerialWidget”, accessible description.
+#: plover/gui_qt/config_serial_widget_ui.py:231
+msgid "Reload all available serial ports."
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:213
-msgid "Scan"
-msgstr "Scannerizza"
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_serial_widget_ui.py:234
+#: plover/gui_qt/plugins_manager_ui.py:146
+msgid "Refresh"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:215
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:236
+#: plover/gui_qt/config_serial_widget_ui.py:239
msgid "Baudrate"
-msgstr "Velocità Baud"
+msgstr ""
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:217
+#: plover/gui_qt/config_serial_widget_ui.py:242
msgid "Data format"
-msgstr "Formato Dati"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:219
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:244
+#: plover/gui_qt/config_serial_widget_ui.py:247
msgid "Data bits"
-msgstr "Bits dati"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:221
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:250
+#: plover/gui_qt/config_serial_widget_ui.py:253
msgid "Stop bits"
-msgstr "Bits di stop"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:223
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:256
+#: plover/gui_qt/config_serial_widget_ui.py:259
msgid "Parity"
-msgstr "Parità"
+msgstr ""
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:225
+#: plover/gui_qt/config_serial_widget_ui.py:265
msgid "Timeout"
-msgstr "Timeout"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:227
-msgid "seconds"
-msgstr "secondi"
+#: plover/gui_qt/config_serial_widget_ui.py:267
+msgid "Duration (s)"
+msgstr ""
-#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:229
-msgid "Use timeout"
-msgstr "Usa timeout"
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:270
+msgid "Duration"
+msgstr ""
+
+#. Widget: “SerialWidget”, accessible description.
+#: plover/gui_qt/config_serial_widget_ui.py:274
+msgid "Timeout duration in seconds."
+msgstr ""
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:231
+#: plover/gui_qt/config_serial_widget_ui.py:277
msgid "Flow control"
-msgstr "Controllo di flusso"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:233
+#: plover/gui_qt/config_serial_widget_ui.py:279
msgid "Xon/Xoff"
-msgstr "Xon/Xoff"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:235
+#: plover/gui_qt/config_serial_widget_ui.py:281
msgid "RTS/CTS"
-msgstr "RTS/CTS"
+msgstr ""
#. Widget: “NopeOption” (empty config option message,
#. e.g. the machine option when selecting the Treal machine).
-#: plover/gui_qt/config_window.py:45
+#: plover/gui_qt/config_window.py:51
msgid "Nothing to see here!"
-msgstr "Niente da visualizzare!"
+msgstr ""
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:145
+#: plover/gui_qt/config_window.py:173
msgid "Key"
-msgstr "Tasto"
+msgstr ""
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:147
+#: plover/gui_qt/config_window.py:175
msgid "Action"
-msgstr "Azione"
+msgstr ""
#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:196
-msgid "Choice"
-msgstr "Scelta"
+#: plover/gui_qt/config_window.py:221
+msgid "Selected"
+msgstr ""
#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:198
-msgid "Selected"
-msgstr "Selezionato"
+#: plover/gui_qt/config_window.py:223
+msgid "Choice"
+msgstr ""
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:294
+#: plover/gui_qt/config_window.py:354
msgid "Interface"
-msgstr "Interfaccia"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:357
+msgid "Appearance:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
+msgid "System"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:363
+msgid "Light"
+msgstr ""
-#: plover/gui_qt/config_window.py:295
+#: plover/gui_qt/config_window.py:364
+msgid "Dark"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:368
+msgid ""
+"Set the application appearance:\n"
+"- System: follow the operating system mode\n"
+"- Light: force light mode\n"
+"- Dark: force dark mode"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
-msgstr "Avvia minimizzato:"
+msgstr ""
-#: plover/gui_qt/config_window.py:296
+#: plover/gui_qt/config_window.py:378
msgid "Minimize the main window to systray on startup."
-msgstr "Minimizza finestra principale nella barra sistema."
+msgstr ""
-#: plover/gui_qt/config_window.py:297
+#: plover/gui_qt/config_window.py:381
msgid "Show paper tape:"
-msgstr "Mostra note steno:"
+msgstr ""
-#: plover/gui_qt/config_window.py:298
+#: plover/gui_qt/config_window.py:384
msgid "Open the paper tape on startup."
-msgstr "Apri note steno all'avvio."
+msgstr ""
-#: plover/gui_qt/config_window.py:299
+#: plover/gui_qt/config_window.py:387
msgid "Show suggestions:"
-msgstr "Mostra i suggerimenti:"
+msgstr ""
-#: plover/gui_qt/config_window.py:300
+#: plover/gui_qt/config_window.py:390
msgid "Open the suggestions dialog on startup."
-msgstr "Mostra finestra suggerimenti all'avvio."
+msgstr ""
-#: plover/gui_qt/config_window.py:301
+#: plover/gui_qt/config_window.py:393
msgid "Add translation dialog opacity:"
-msgstr "Opacizza finestra di dialogo:"
+msgstr ""
-#: plover/gui_qt/config_window.py:303
+#: plover/gui_qt/config_window.py:397
msgid ""
"Set the translation dialog opacity:\n"
"- 0 makes the dialog invisible\n"
"- 100 is fully opaque"
msgstr ""
-"Setta opacità finestra di traduzione:\n"
-"- 0 finestra invisibile\n"
-"- 100 finestra totalmente opaca"
-#: plover/gui_qt/config_window.py:306
+#: plover/gui_qt/config_window.py:403
msgid "Dictionaries display order:"
-msgstr "Ordine visualizzazione dizionari:"
+msgstr ""
-#: plover/gui_qt/config_window.py:308
+#: plover/gui_qt/config_window.py:406
msgid "top-down"
-msgstr "dall'alto al basso"
+msgstr ""
-#: plover/gui_qt/config_window.py:308
+#: plover/gui_qt/config_window.py:406
msgid "bottom-up"
-msgstr "dal basso all'alto"
+msgstr ""
-#: plover/gui_qt/config_window.py:309
+#: plover/gui_qt/config_window.py:409
msgid ""
"Set the display order for dictionaries:\n"
"- top-down: match the search order; highest priority first\n"
"- bottom-up: reverse search order; lowest priority first\n"
msgstr ""
-"Settare l'ordine di visualizzazione dei dizionari:\n"
-"- dall'alto al basso: corrispondenza con l'ordine di ricerca; priorità più "
-"alta al primo\n"
-"- dal basso all'alto: inversione dell'ordine di ricerca; priorità più bassa "
-"al primo\n"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:314
+#: plover/gui_qt/config_window.py:418
msgid "Logging"
-msgstr "Registro log"
+msgstr ""
-#: plover/gui_qt/config_window.py:315
+#: plover/gui_qt/config_window.py:421
msgid "Log file:"
-msgstr "File di registro:"
+msgstr ""
-#: plover/gui_qt/config_window.py:317
+#: plover/gui_qt/config_window.py:424
msgid "Select a log file"
-msgstr "Selezionare un file di registro"
+msgstr ""
-#: plover/gui_qt/config_window.py:318
+#: plover/gui_qt/config_window.py:424
msgid "Log files (*.log)"
-msgstr "Files del registro (*.log)"
+msgstr ""
-#: plover/gui_qt/config_window.py:319
+#: plover/gui_qt/config_window.py:426
msgid "File to use for logging strokes/translations."
-msgstr "File in uso per registro note steno/traduzioni."
+msgstr ""
-#: plover/gui_qt/config_window.py:320
+#: plover/gui_qt/config_window.py:429
msgid "Log strokes:"
-msgstr "Registra note steno:"
+msgstr ""
-#: plover/gui_qt/config_window.py:321
+#: plover/gui_qt/config_window.py:432
msgid "Save strokes to the logfile."
-msgstr "Salva note steno nel registro."
+msgstr ""
-#: plover/gui_qt/config_window.py:322
+#: plover/gui_qt/config_window.py:435
msgid "Log translations:"
-msgstr "Registra le traduzioni:"
+msgstr ""
-#: plover/gui_qt/config_window.py:323
+#: plover/gui_qt/config_window.py:438
msgid "Save translations to the logfile."
-msgstr "Salva le traduzioni nel file di registro."
+msgstr ""
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:326 plover/gui_qt/main_window_ui.py:170
+#: plover/gui_qt/config_window.py:444 plover/gui_qt/main_window_ui.py:260
msgid "Machine"
-msgstr "Macchina"
+msgstr ""
-#: plover/gui_qt/config_window.py:327
+#: plover/gui_qt/config_window.py:447
msgid "Machine:"
-msgstr "Macchina:"
+msgstr ""
-#: plover/gui_qt/config_window.py:332
+#: plover/gui_qt/config_window.py:459
msgid "Options:"
-msgstr "Opzioni:"
+msgstr ""
-#: plover/gui_qt/config_window.py:333
+#: plover/gui_qt/config_window.py:461
msgid "Keymap:"
-msgstr "Mappa dei tasti:"
+msgstr ""
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:336 plover/gui_qt/main_window_ui.py:174
+#: plover/gui_qt/config_window.py:466 plover/gui_qt/main_window_ui.py:292
msgid "Output"
-msgstr "Traduzione note steno"
+msgstr ""
-#: plover/gui_qt/config_window.py:337
+#: plover/gui_qt/config_window.py:469
msgid "Enable at start:"
-msgstr "Attiva all'avvio:"
+msgstr ""
-#: plover/gui_qt/config_window.py:338
+#: plover/gui_qt/config_window.py:472
msgid "Enable output on startup."
-msgstr "Attiva traduzione steno all'avvio."
+msgstr ""
-#: plover/gui_qt/config_window.py:339
+#: plover/gui_qt/config_window.py:475
msgid "Start attached:"
-msgstr "Inizia senza spazio iniziale:"
+msgstr ""
-#: plover/gui_qt/config_window.py:340
+#: plover/gui_qt/config_window.py:479
msgid ""
"Disable preceding space on first output.\n"
"\n"
"This option is only applicable when spaces are placed before."
msgstr ""
-"Disabilita lo spazio anteriore per la prima parola.\n"
-"\n"
-"Questa opzione è applicabile solo nel caso in cui lo spazio sia prima della "
-"parola."
-#: plover/gui_qt/config_window.py:343
+#: plover/gui_qt/config_window.py:485
msgid "Start capitalized:"
-msgstr "Inizia in maiuscolo:"
+msgstr ""
-#: plover/gui_qt/config_window.py:344
+#: plover/gui_qt/config_window.py:488
msgid "Capitalize the first word."
-msgstr "Inizia in maiuscolo."
+msgstr ""
-#: plover/gui_qt/config_window.py:345
+#: plover/gui_qt/config_window.py:491
msgid "Space placement:"
-msgstr "Posizionamento dello spazio:"
+msgstr ""
-#: plover/gui_qt/config_window.py:347
+#: plover/gui_qt/config_window.py:496
msgid "Before Output"
-msgstr "Prima della parola"
+msgstr ""
-#: plover/gui_qt/config_window.py:348
+#: plover/gui_qt/config_window.py:497
msgid "After Output"
-msgstr "Dopo la parola"
+msgstr ""
-#: plover/gui_qt/config_window.py:350
+#: plover/gui_qt/config_window.py:500
msgid "Set automatic space placement: before or after each word."
-msgstr "Collocazione spazio: prima o dopo ogni parola parola."
+msgstr ""
-#: plover/gui_qt/config_window.py:351
+#: plover/gui_qt/config_window.py:503
msgid "Undo levels:"
-msgstr "Numero note steno annullabili:"
+msgstr ""
-#: plover/gui_qt/config_window.py:355
+#: plover/gui_qt/config_window.py:507
msgid ""
"Set how many preceding strokes can be undone.\n"
"\n"
"Note: the effective value will take into account the\n"
"dictionaries entry with the maximum number of strokes."
msgstr ""
-"Settare il numero di note steno precedenti che è possibile annullare.\n"
+
+#: plover/gui_qt/config_window.py:514
+msgid "Key press delay (ms):"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:522
+msgid ""
+"Set the delay between emulated key presses (in milliseconds).\n"
"\n"
-"Nota: il valore effettivo terrà conto dell'entrata\n"
-"con il maggior numero di note steno nei dizionari."
+"Some programs may drop key presses if too many are sent\n"
+"within a short period of time. Increasing the delay gives\n"
+"programs time to process each key press.\n"
+"Setting the delay too high will negatively impact the\n"
+"performance of key stroke output."
+msgstr ""
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:361
-msgid "Plugins"
-msgstr "Plugins"
+#: plover/gui_qt/config_window.py:532
+msgid "Linux keyboard layout:"
+msgstr ""
-#: plover/gui_qt/config_window.py:362
-msgid "Extension:"
-msgstr "Estensione:"
+#: plover/gui_qt/config_window.py:546
+msgid ""
+"Set the keyboard layout configured in your system.\n"
+"This only applies when using Linux/BSD and not using X11.\n"
+"\n"
+"When Wayland auto detect is selected,Plover is only able to detect the "
+"first keyboard layout\n"
+"and can not detect layout switches."
+msgstr ""
-#: plover/gui_qt/config_window.py:366
-msgid "Name"
-msgstr "Nome"
+#: plover/gui_qt/config_window.py:556
+msgid ""
+"When Wayland auto detect is selected, Plover is only able to detect the "
+"first keyboard layout and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:567
+msgid "Plugins"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:570
+msgid "Extensions:"
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/config_window.py:366 plover/gui_qt/main_window_ui.py:176
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
msgid "Enabled"
-msgstr "Abilita"
+msgstr ""
-#: plover/gui_qt/config_window.py:367
-msgid "Configure enabled plugin extensions."
-msgstr "Configura estensioni abilitate del plugin."
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/plugins_manager_ui.py:136
+msgid "Name"
+msgstr ""
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:370
-msgid "System"
-msgstr "Sistema"
+#: plover/gui_qt/config_window.py:580
+msgid "Configure enabled plugin extensions."
+msgstr ""
-#: plover/gui_qt/config_window.py:371
+#: plover/gui_qt/config_window.py:589
msgid "System:"
-msgstr "Sistema:"
+msgstr ""
-#. Widget: “ConfigWindow”, windowtitle.
-#: plover/gui_qt/config_window_ui.py:43
+#. Widget: “ConfigWindow”, window title.
+#: plover/gui_qt/config_window_ui.py:61
msgid "Plover: Configuration"
-msgstr "Plover: Configurazione"
+msgstr ""
+
+#. Widget: “ConsoleWidget”, window title.
+#: plover/gui_qt/console_widget_ui.py:49
+msgid "Form"
+msgstr ""
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:43
+#: plover/gui_qt/dictionaries_widget.py:46
+#, python-brace-format
msgid "Dictionaries ({extensions})"
-msgstr "Dizionari ({extensions})"
+msgstr ""
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:46
+#: plover/gui_qt/dictionaries_widget.py:49
+#, python-brace-format
msgid "{format} dictionaries ({extensions})"
-msgstr "{format} dizionari ({extensions})"
+msgstr ""
-#. Widget: “DictionariesWidget”, “add” menu.
-#: plover/gui_qt/dictionaries_widget.py:106
-msgid "Open dictionaries"
-msgstr "Aprire dizionari"
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:391
+msgid "disabled"
+msgstr ""
-#. Widget: “DictionariesWidget”, “add” menu.
-#. Widget: “DictionariesWidget”, “new” file picker.
-#: plover/gui_qt/dictionaries_widget.py:110
-#: plover/gui_qt/dictionaries_widget.py:483
-msgid "New dictionary"
-msgstr "Nuovo dizionario"
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:394
+msgid "favorite"
+msgstr ""
-#. Widget: “DictionariesWidget”, “save” menu.
-#: plover/gui_qt/dictionaries_widget.py:117
-msgid "Create a copy of each dictionary"
-msgstr "Crea una copia di ogni dizionario"
+#: plover/gui_qt/dictionaries_widget.py:398
+#, python-brace-format
+msgid "errored: {exception}."
+msgstr ""
-#. Widget: “DictionariesWidget”, “save” menu.
-#: plover/gui_qt/dictionaries_widget.py:121
-msgid "Merge dictionaries into a new one"
-msgstr "Unisci i dizionari in uno nuovo"
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:402
+msgid "loading"
+msgstr ""
+
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:405
+msgid "read-only"
+msgstr ""
#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:196
+#: plover/gui_qt/dictionaries_widget.py:411
+#, python-brace-format
+msgid "Full path: {path}."
+msgstr ""
+
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget.py:414
+msgid "This dictionary is marked as the favorite."
+msgstr ""
+
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget.py:417
msgid "This dictionary is being loaded."
-msgstr "Questo dizionario si sta caricando."
+msgstr ""
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:205
-msgid "This dictionary is read-only."
-msgstr "Questo dizionario è di sola lettura."
+#: plover/gui_qt/dictionaries_widget.py:421
+#, python-brace-format
+msgid "Loading this dictionary failed: {exception}."
+msgstr ""
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:209
-msgid "This dictionary is marked as a favorite."
-msgstr "Questo dizionario è selezionato come favorito."
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget.py:427
+msgid "This dictionary is read-only."
+msgstr ""
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:399
+#: plover/gui_qt/dictionaries_widget.py:618
+#, python-brace-format
msgid "Save a copy of {name} as..."
-msgstr "Salva una copia di {name} come..."
+msgstr ""
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:401
+#: plover/gui_qt/dictionaries_widget.py:620
+#, python-brace-format
msgid "{name} - Copy"
-msgstr "{name} - Copia"
+msgstr ""
#. Widget: “DictionariesWidget”, “save as merge” file picker.
-#: plover/gui_qt/dictionaries_widget.py:422
+#: plover/gui_qt/dictionaries_widget.py:642
+#, python-brace-format
msgid "Merge {names} as..."
-msgstr "Unisci {names} as..."
+msgstr ""
-#. Widget: “DictionariesWidget”, “add” file picker.
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:466
-#: plover/gui_qt/dictionaries_widget_ui.py:130
-msgid "Add dictionaries"
-msgstr "Aggiungi dizionari"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget.py:671
+#: plover/gui_qt/dictionaries_widget_ui.py:203
+msgid "Load dictionaries"
+msgstr ""
+#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:102
+#: plover/gui_qt/dictionaries_widget.py:683
+#: plover/gui_qt/dictionaries_widget_ui.py:205
+msgid "Create dictionary"
+msgstr ""
+
+#. Widget: “DictionariesWidget”, title.
+#. Widget: “DictionariesWidget”, accessible name.
+#: plover/gui_qt/dictionaries_widget_ui.py:125
+#: plover/gui_qt/dictionaries_widget_ui.py:208
msgid "Dictionaries"
-msgstr "Dizionari"
+msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:104
+#: plover/gui_qt/dictionaries_widget_ui.py:127
msgid "&Edit dictionaries"
-msgstr "&Editare dizionari"
+msgstr ""
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:106
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:130
msgid "Edit selected dictionaries"
-msgstr "Editare dizionari selezionati"
+msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:108
+#: plover/gui_qt/dictionaries_widget_ui.py:134
msgid "Ctrl+E"
-msgstr "Ctrl+E"
+msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:110
+#: plover/gui_qt/dictionaries_widget_ui.py:137
msgid "&Save dictionaries as..."
-msgstr "&Salva dizionari come."
+msgstr ""
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:112
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:140
msgid ""
"Save the selected dictionaries: create a new copy of each dictionary, or "
"merge them into a new dictionary."
msgstr ""
-"Salva i dizionari selezionati: crea una nuova copia di ciascun dizionario, o "
-"uniscili in un nuovo dizionario."
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “PaperTape”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:114
-#: plover/gui_qt/paper_tape_ui.py:99
+#: plover/gui_qt/dictionaries_widget_ui.py:144
+#: plover/gui_qt/paper_tape_ui.py:129
msgid "Ctrl+S"
-msgstr "Ctrl+S"
+msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:116
+#: plover/gui_qt/dictionaries_widget_ui.py:147
msgid "&Remove dictionaries"
-msgstr "&Rimuovi dizionari"
+msgstr ""
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:118
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:150
msgid "Remove selected dictionaries"
-msgstr "Elimina dizionari selezionati"
+msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:120
-#: plover/gui_qt/dictionary_editor_ui.py:116
+#: plover/gui_qt/dictionaries_widget_ui.py:154
+#: plover/gui_qt/dictionary_editor_ui.py:149
msgid "Del"
-msgstr "Cancella"
+msgstr ""
#. Widget: “DictionariesWidget”, text.
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:122
-#: plover/gui_qt/dictionary_editor_ui.py:118
+#: plover/gui_qt/dictionaries_widget_ui.py:157
+#: plover/gui_qt/dictionary_editor_ui.py:152
msgid "&Undo"
-msgstr "Annulla &operazione"
+msgstr ""
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:124
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:160
msgid "Undo last add/delete/reorder operation."
-msgstr "Annulla ultima operazione di aggiunta/cancellazione/riordino."
+msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:126
-#: plover/gui_qt/dictionary_editor_ui.py:122
+#: plover/gui_qt/dictionaries_widget_ui.py:164
+#: plover/gui_qt/dictionary_editor_ui.py:159
msgid "Ctrl+Z"
-msgstr "Ctrl+Z"
+msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:128
+#: plover/gui_qt/dictionaries_widget_ui.py:167
msgid "&Add dictionaries"
-msgstr "&Aggiungere dizionari"
+msgstr ""
+
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:170
+msgid "Add dictionaries"
+msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:132
+#: plover/gui_qt/dictionaries_widget_ui.py:174
msgid "Ctrl+O"
-msgstr "Ctrl+O"
+msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:134
+#: plover/gui_qt/dictionaries_widget_ui.py:177
msgid "Add &translation"
-msgstr "Aggiungere &traduzione"
+msgstr ""
-#. Widget: “DictionariesWidget”, tooltip.
-#. Widget: “DictionaryEditor”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:136
-#: plover/gui_qt/dictionary_editor_ui.py:126
+#. Widget: “DictionariesWidget”, tool tip.
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:180
+#: plover/gui_qt/dictionary_editor_ui.py:165
msgid "Add a new translation"
-msgstr "Aggiungere traduzione"
+msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:138
-#: plover/gui_qt/dictionary_editor_ui.py:128
+#: plover/gui_qt/dictionaries_widget_ui.py:184
+#: plover/gui_qt/dictionary_editor_ui.py:169
msgid "Ctrl+N"
-msgstr "Ctrl+N"
+msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:140
+#: plover/gui_qt/dictionaries_widget_ui.py:187
msgid "Move dictionaries &up"
-msgstr "S&posta dizionari sù"
+msgstr ""
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:142
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:190
msgid "Move selected dictionaries up."
-msgstr "Sposta dizionari selezionati verso l'alto."
+msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:144
+#: plover/gui_qt/dictionaries_widget_ui.py:193
msgid "Move dictionaries &down"
-msgstr "Sposta dizionari &giù"
+msgstr ""
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:146
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:196
msgid "Move selected dictionaries down."
-msgstr "Sposta dizionari selezionati verso il basso."
-
-#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/dictionary_editor.py:163
-msgid "Strokes"
-msgstr "Note steno"
+msgstr ""
-#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/dictionary_editor.py:166
-msgid "Translation"
-msgstr "Traduzione"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget_ui.py:199
+msgid "Create a copy of each dictionary"
+msgstr ""
-#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/dictionary_editor.py:169
-msgid "Dictionary"
-msgstr "Dizionario"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget_ui.py:201
+msgid "Merge dictionaries into a new one"
+msgstr ""
-#. Widget: “DictionaryEditor”, windowtitle.
-#: plover/gui_qt/dictionary_editor_ui.py:100
+#. Widget: “DictionaryEditor”, window title.
+#: plover/gui_qt/dictionary_editor_ui.py:140
msgid "Plover: Dictionary Editor"
-msgstr "Plover: Editor dizionario"
+msgstr ""
+
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:142
+msgid "&Delete"
+msgstr ""
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:145
+msgid "Delete selected entries."
+msgstr ""
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:155
+msgid "Undo last add/delete/edit operation."
+msgstr ""
+
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:162
+msgid "&New translation"
+msgstr ""
+
+#. Widget: “DictionaryEditor”, accessible name.
#. Widget: “DictionaryEditor”, title.
-#: plover/gui_qt/dictionary_editor_ui.py:102
+#: plover/gui_qt/dictionary_editor_ui.py:173
+#: plover/gui_qt/dictionary_editor_ui.py:176
msgid "Filter"
-msgstr "Filtra"
+msgstr ""
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:104
+#: plover/gui_qt/dictionary_editor_ui.py:178
msgid "By strokes:"
-msgstr "Per note steno:"
+msgstr ""
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:106
-msgid "Apply"
-msgstr "Applica"
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:181
+msgid "Strokes filter"
+msgstr ""
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:108
-msgid "By translation:"
-msgstr "Per traduzione:"
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:185
+msgid "Apply filter"
+msgstr ""
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:110
-msgid "Clear"
-msgstr "Pulisci"
+#: plover/gui_qt/dictionary_editor_ui.py:188
+msgid "Apply"
+msgstr ""
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:112
-msgid "&Delete"
-msgstr "&Cancella"
+#: plover/gui_qt/dictionary_editor_ui.py:190
+msgid "By translation:"
+msgstr ""
-#. Widget: “DictionaryEditor”, tooltip.
-#: plover/gui_qt/dictionary_editor_ui.py:114
-msgid "Delete selected entries."
-msgstr "Cancella entrate selezionate."
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:193
+msgid "Translation filter"
+msgstr ""
-#. Widget: “DictionaryEditor”, tooltip.
-#: plover/gui_qt/dictionary_editor_ui.py:120
-msgid "Undo last add/delete/edit operation."
-msgstr "Cancellare l'ultima operazione di aggiunta/cancellazione/editazione."
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:197
+msgid "Clear filter"
+msgstr ""
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:124
-msgid "&New translation"
-msgstr "&Nuova traduzione"
+#: plover/gui_qt/dictionary_editor_ui.py:203
+msgid "Clear"
+msgstr ""
+
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:206
+msgid "Mappings"
+msgstr ""
#. Widget: “LookupDialog”, tooltip.
-#: plover/gui_qt/lookup_dialog.py:13
+#: plover/gui_qt/lookup_dialog.py:12
msgid "Search the dictionary for translations."
-msgstr "Cerca il dizionario per le traduzioni."
+msgstr ""
-#: plover/gui_qt/lookup_dialog.py:15
+#: plover/gui_qt/lookup_dialog.py:14
msgid "Lookup"
-msgstr "Ricerca"
+msgstr ""
-#. Widget: “LookupDialog”, windowtitle.
-#: plover/gui_qt/lookup_dialog_ui.py:56
+#. Widget: “LookupDialog”, window title.
+#: plover/gui_qt/lookup_dialog_ui.py:72
msgid "Plover: Dictionary Lookup"
-msgstr "Plover: Ricerca nel dizionario"
+msgstr ""
-#: plover/gui_qt/machine_options.py:104
-msgid ""
-"Arpeggiate allows using non-NKRO keyboards.\n"
-"\n"
-"Each key can be pressed separately and the\n"
-"space bar is pressed to send the stroke."
+#. Widget: “LookupDialog”, accessible name.
+#: plover/gui_qt/lookup_dialog_ui.py:75
+msgid "Pattern"
msgstr ""
-"Arpeggiando è possibile usare una tastiera non NKRO.\n"
-"\n"
-"Ogni tasto può essere premuto separatamente\n"
-"premere la barra spazio per inviare la battuta."
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:172 plover/gui_qt/main_window_ui.py:212
-msgid "Disconnect and reconnect the machine."
-msgstr "Disconnettere e riconnettere la macchina."
+#. Widget: “LookupDialog”, accessible description.
+#: plover/gui_qt/lookup_dialog_ui.py:79
+msgid "Translation pattern to lookup."
+msgstr ""
-#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:178
-msgid "Disabled"
-msgstr "Disabilita"
+#. Widget: “LookupDialog”, accessible name.
+#: plover/gui_qt/lookup_dialog_ui.py:83
+msgid "Results"
+msgstr ""
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:180
-msgid "&File"
-msgstr "&File"
+#: plover/gui_qt/machine_options.py:36
+#, python-brace-format
+msgid "product: {value}"
+msgstr ""
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:182
-msgid "&Tools"
-msgstr "Stru&menti"
+#: plover/gui_qt/machine_options.py:37
+#, python-brace-format
+msgid "manufacturer: {value}"
+msgstr ""
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:184
-msgid "&Help"
-msgstr "Ai&uto"
+#: plover/gui_qt/machine_options.py:38
+#, python-brace-format
+msgid "serial number: {value}"
+msgstr ""
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:186
-msgid "&Edit"
-msgstr "E&dita"
+#: plover/gui_qt/machine_options.py:46
+#, python-brace-format
+msgid "description: {value}"
+msgstr ""
-#. Widget: “MainWindow”, windowtitle.
-#: plover/gui_qt/main_window_ui.py:188
-msgid "Plover: Toolbar"
-msgstr "Plover: Barra degli strumenti"
+#: plover/gui_qt/machine_options.py:199
+msgid ""
+"Arpeggiate allows using non-NKRO keyboards.\n"
+"\n"
+"Each key can be pressed separately and the\n"
+"space bar is pressed to send the stroke."
+msgstr ""
+
+#: plover/gui_qt/main_window.py:312
+msgid "Application is still running."
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:190
+#: plover/gui_qt/main_window_ui.py:202
msgid "&Quit Plover"
-msgstr "Uscire da P&lover"
+msgstr ""
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:192
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:205
msgid "Quit the application."
-msgstr "Uscire dall'applicazione."
+msgstr ""
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:194
+#: plover/gui_qt/main_window_ui.py:209
msgid "Ctrl+Q"
-msgstr "Ctrl+Q"
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:196
+#: plover/gui_qt/main_window_ui.py:212
msgid "&Configure"
-msgstr "Co&nfigura"
+msgstr ""
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:198
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:215
msgid "Open the configuration dialog."
-msgstr "Aprire la finestra di configurazione."
+msgstr ""
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:200
+#: plover/gui_qt/main_window_ui.py:219
msgid "Ctrl+,"
-msgstr "Ctrl+,"
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:202
+#: plover/gui_qt/main_window_ui.py:222
msgid "Open config &folder"
-msgstr "Aprire cartella di &configurazione"
+msgstr ""
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:204
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:225
msgid "Open the configuration folder."
-msgstr "Apre la cartella di configurazione."
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:206
+#: plover/gui_qt/main_window_ui.py:228
msgid "&About"
-msgstr "Informazioni su"
+msgstr ""
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:208
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:231
msgid "Open the about dialog."
-msgstr "Aprire la finestra: Informazioni su."
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:210
+#: plover/gui_qt/main_window_ui.py:234
msgid "&Reconnect machine"
-msgstr "&Riconnettere macchina"
+msgstr ""
+
+#. Widget: “MainWindow”, tool tip.
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:237 plover/gui_qt/main_window_ui.py:272
+#: plover/gui_qt/main_window_ui.py:280
+msgid "Disconnect and reconnect the machine."
+msgstr ""
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:214
+#: plover/gui_qt/main_window_ui.py:241
msgid "Ctrl+R"
-msgstr "Ctrl+R"
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:216
+#: plover/gui_qt/main_window_ui.py:244
msgid "&Show"
-msgstr "M&ostra"
+msgstr ""
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:218
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:247
msgid "Show the main window."
-msgstr "Mostra la finestra principale."
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:220
+#: plover/gui_qt/main_window_ui.py:250
msgid "Toggle &output"
-msgstr "&Attiva/disattiva traduzione"
+msgstr ""
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:222
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:253
msgid "Toggle the output."
-msgstr "Cambia lo stato dell'output."
+msgstr ""
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:224
+#: plover/gui_qt/main_window_ui.py:257
msgid "Ctrl+."
-msgstr "Ctrl+."
+msgstr ""
-#: plover/gui_qt/paper_tape.py:25
-msgid "Paper Tape"
-msgstr "Note Steno"
+#. Widget: “MainWindow”, accessible name.
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/main_window_ui.py:263 plover/gui_qt/plugins_manager_ui.py:133
+msgid "State"
+msgstr ""
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:267
+msgid "Connection state for the current machine."
+msgstr ""
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:276
+msgid "Reconnect"
+msgstr ""
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:285
+msgid "Type"
+msgstr ""
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:289
+msgid "Change the current machine type."
+msgstr ""
+
+#. Widget: “MainWindow”, text.
+#: plover/gui_qt/main_window_ui.py:296
+msgid "Disabled"
+msgstr ""
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:298
+msgid "&File"
+msgstr ""
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:300
+msgid "&Tools"
+msgstr ""
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:302
+msgid "&Help"
+msgstr ""
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:304
+msgid "&Edit"
+msgstr ""
+
+#. Widget: “MainWindow”, window title.
+#: plover/gui_qt/main_window_ui.py:306
+msgid "Plover: Toolbar"
+msgstr ""
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:32
+#: plover/gui_qt/paper_tape.py:30
msgid "Paper"
-msgstr "Carta"
+msgstr ""
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:34
+#: plover/gui_qt/paper_tape.py:32
msgid "Raw"
-msgstr "Senza formattazione"
+msgstr ""
+
+#. Widget: “PaperTape”, tooltip.
+#: plover/gui_qt/paper_tape.py:122
+msgid "Paper tape display of strokes."
+msgstr ""
+
+#: plover/gui_qt/paper_tape.py:124
+msgid "Paper Tape"
+msgstr ""
-#: plover/gui_qt/paper_tape.py:158
+#: plover/gui_qt/paper_tape.py:237
msgid "Do you want to clear the paper tape?"
-msgstr "Cancellare note steno?"
+msgstr ""
-#: plover/gui_qt/paper_tape.py:172
+#: plover/gui_qt/paper_tape.py:255
msgid "Save Paper Tape"
-msgstr "Salva Note Steno"
+msgstr ""
#. Paper tape, "save" file picker.
-#: plover/gui_qt/paper_tape.py:174
+#: plover/gui_qt/paper_tape.py:258
msgid "Text files (*.txt)"
-msgstr "Files di testo (*.txt)"
-
-#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:87
-msgid "Mode"
-msgstr "Modalità"
+msgstr ""
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:89 plover/gui_qt/suggestions_dialog_ui.py:53
+#: plover/gui_qt/paper_tape_ui.py:112 plover/gui_qt/suggestions_dialog_ui.py:70
msgid "&Clear"
-msgstr "&Pulisci"
+msgstr ""
-#. Widget: “PaperTape”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:91
+#. Widget: “PaperTape”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:115
msgid "Clear paper tape."
-msgstr "Cancella schermo."
+msgstr ""
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:93 plover/gui_qt/suggestions_dialog_ui.py:57
+#: plover/gui_qt/paper_tape_ui.py:119 plover/gui_qt/suggestions_dialog_ui.py:77
msgid "Ctrl+L"
-msgstr "Ctrl+L"
+msgstr ""
#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:95
+#: plover/gui_qt/paper_tape_ui.py:122
msgid "&Save"
-msgstr "&Salva"
+msgstr ""
-#. Widget: “PaperTape”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:97
+#. Widget: “PaperTape”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:125
msgid "Save paper tape to file."
-msgstr "Salva note steno su file."
+msgstr ""
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:101 plover/gui_qt/suggestions_dialog_ui.py:59
+#: plover/gui_qt/paper_tape_ui.py:132 plover/gui_qt/suggestions_dialog_ui.py:80
msgid "&Toggle \"always on top\""
-msgstr "&Attiva/disattiva \"sempre in primo piano\""
+msgstr ""
-#. Widget: “PaperTape”, tooltip.
-#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:103 plover/gui_qt/suggestions_dialog_ui.py:61
+#. Widget: “PaperTape”, tool tip.
+#. Widget: “SuggestionsDialog”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:135 plover/gui_qt/suggestions_dialog_ui.py:83
msgid "Toggle \"always on top\"."
-msgstr "Cambia lo stato \"sempre in primo piano\"."
+msgstr ""
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:105 plover/gui_qt/suggestions_dialog_ui.py:63
+#: plover/gui_qt/paper_tape_ui.py:139 plover/gui_qt/suggestions_dialog_ui.py:87
msgid "Ctrl+T"
-msgstr "Ctrl+T"
+msgstr ""
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:107 plover/gui_qt/suggestions_dialog_ui.py:65
+#: plover/gui_qt/paper_tape_ui.py:142 plover/gui_qt/suggestions_dialog_ui.py:90
msgid "Select &font"
-msgstr "Seleziona c&arattere"
+msgstr ""
-#. Widget: “PaperTape”, tooltip.
-#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:109 plover/gui_qt/suggestions_dialog_ui.py:67
+#. Widget: “PaperTape”, tool tip.
+#. Widget: “SuggestionsDialog”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:145 plover/gui_qt/suggestions_dialog_ui.py:93
msgid "Open font selection dialog."
-msgstr "Apre finestra di selezione caratteri."
+msgstr ""
+
+#. Widget: “PaperTape”, text.
+#: plover/gui_qt/paper_tape_ui.py:148
+msgid "Mode:"
+msgstr ""
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:151
+msgid "Mode"
+msgstr ""
+
+#. Widget: “PaperTape”, accessible description.
+#: plover/gui_qt/paper_tape_ui.py:155
+msgid "Select paper tape display mode."
+msgstr ""
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:159
+msgid "Tape"
+msgstr ""
+
+#. Widget: “PluginsManager”, window title.
+#. Widget: “RunDialog”, window title.
+#: plover/gui_qt/plugins_manager_ui.py:130 plover/gui_qt/run_dialog_ui.py:51
+msgid "Dialog"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:139
+msgid "Version"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:142
+msgid "Summary"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:144
+msgid "Restart"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:148
+msgid "Uninstall"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:150
+msgid "Install/Update"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:152
+msgid "..."
+msgstr ""
#. Widget: “SuggestionsDialog”, tooltip.
#: plover/gui_qt/suggestions_dialog.py:26
msgid "Suggest possible strokes for the last written words."
-msgstr "Suggerisci possibili note steno per le ultime parole scritte."
+msgstr ""
+#. Widget: “SuggestionsDialog”, accessible name.
#: plover/gui_qt/suggestions_dialog.py:28
+#: plover/gui_qt/suggestions_dialog_ui.py:97
msgid "Suggestions"
-msgstr "Suggerimenti"
+msgstr ""
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:57
+#: plover/gui_qt/suggestions_dialog.py:62
msgid "&Text"
-msgstr "&Testo"
+msgstr ""
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:59
+#: plover/gui_qt/suggestions_dialog.py:64
msgid "&Strokes"
-msgstr "&Note steno"
+msgstr ""
-#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/suggestions_dialog_ui.py:55
+#. Widget: “SuggestionsDialog”, tool tip.
+#: plover/gui_qt/suggestions_dialog_ui.py:73
msgid "Clear the history."
-msgstr "Cancella schermo."
+msgstr ""
#. Widget: “SuggestionsWidget”.
-#: plover/gui_qt/suggestions_widget.py:42
+#: plover/gui_qt/suggestions_widget.py:27
msgid "no suggestions"
-msgstr "nessun suggerimento"
+msgstr ""
-#: plover/gui_qt/trayicon.py:116
+#: plover/gui_qt/trayicon.py:118
+#, python-brace-format
msgid "{machine} is {state}"
-msgstr "{machine} è {state}"
+msgstr ""
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:122
+#: plover/gui_qt/trayicon.py:124
msgid "output is enabled"
-msgstr "l'output è attivato"
+msgstr ""
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:125
+#: plover/gui_qt/trayicon.py:127
msgid "output is disabled"
-msgstr "l'output è disattivato"
+msgstr ""
+
+#: plover/gui_qt/utils.py:28
+msgid "Copy selection to clipboard"
+msgstr ""
#. Machine state.
#: plover/machine/base.py:20
msgid "stopped"
-msgstr "fermato"
+msgstr ""
#. Machine state.
#: plover/machine/base.py:22
msgid "initializing"
-msgstr "inizializzazione"
+msgstr ""
#. Machine state.
#: plover/machine/base.py:24
msgid "connected"
-msgstr "connessa"
+msgstr ""
#. Machine state.
#: plover/machine/base.py:26
msgid "disconnected"
-msgstr "disconnessa"
+msgstr ""
#. Machine name.
#: plover/machine/keyboard.py:14
msgid "Keyboard"
-msgstr "Tastiera"
-
-#~ msgid "Plover: Add Translation"
-#~ msgstr "Aggiungi definizione"
-
-#~ msgid "disabled"
-#~ msgstr "disabilita"
-
-#~ msgid "Form"
-#~ msgstr "Forma"
-
-#, python-format
-#~ msgid "%s dictionaries"
-#~ msgstr "%s dizionari"
-
-#~ msgid "Plover: Paper Tape"
-#~ msgstr "Plover: Note steno"
+msgstr ""
-#~ msgid "Plover: Suggestions"
-#~ msgstr "Plover: Informazioni su"
diff --git a/plover/messages/nl/LC_MESSAGES/plover.po b/plover/messages/nl/LC_MESSAGES/plover.po
index c90124ea3..9ed958792 100644
--- a/plover/messages/nl/LC_MESSAGES/plover.po
+++ b/plover/messages/nl/LC_MESSAGES/plover.po
@@ -1,4 +1,4 @@
-# Translations template for plover.
+# Dutch translations for plover.
# Copyright (C) 2021 ORGANIZATION
# This file is distributed under the same license as the plover project.
#
@@ -6,21 +6,20 @@
# Willem Sonke , 2021.
msgid ""
msgstr ""
-"Project-Id-Version: plover 4.0.0.dev8\n"
+"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-16 05:40+0200\n"
+"POT-Creation-Date: 2026-03-07 10:58+0100\n"
"PO-Revision-Date: 2021-04-17 16:41+0200\n"
"Last-Translator: Willem Sonke \n"
+"Language: nl\n"
"Language-Team: Dutch \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.9.0\n"
-"Language: nl\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 20.12.3\n"
+"Generated-By: Babel 2.17.0\n"
-#: plover/__init__.py:19
+#: plover/__init__.py:22
msgid ""
"Founded by stenographer Mirabai Knight.\n"
"\n"
@@ -51,11 +50,11 @@ msgstr ""
""
#. Short description for Plover, currently not used in the interface.
-#: plover/__init__.py:33
+#: plover/__init__.py:38
msgid "Open Source Stenography Software"
msgstr "Opensourcesoftware voor stenografie"
-#: plover/__init__.py:34
+#: plover/__init__.py:39
msgid ""
"Plover is a free open source program intended to bring realtime\n"
"stenographic technology not just to stenographers, but also to\n"
@@ -63,210 +62,397 @@ msgid ""
msgstr ""
"Plover is een vrij opensourceprogramma met het doel om realtime\n"
"stenografische technologie beschikbaar te maken niet alleen voor\n"
-"stenografen, maar ook voor hackers, hobbyisten, fans van toegankelijkheid\n"
+"stenografen, maar ook voor hackers, hobbyisten, fans van toegankelijkheid"
+"\n"
"en snelheidsduivels."
-#. Widget: “AboutDialog”, windowtitle.
-#: plover/gui_qt/about_dialog_ui.py:38
+#: plover/dictionary/helpers.py:24
+#, python-format
+msgid "dictionary `%s` loaded with %u invalid steno errors"
+msgstr ""
+
+#. Widget: “AboutDialog”, window title.
+#: plover/gui_qt/about_dialog_ui.py:53
msgid "Plover: About"
msgstr "Plover: Over"
#. Widget: “AddTranslationDialog”, tooltip.
#. Widget: “AddTranslationWidget”, tooltip.
-#: plover/gui_qt/add_translation_dialog.py:8
-#: plover/gui_qt/add_translation_widget.py:22
+#: plover/gui_qt/add_translation_dialog.py:11
+#: plover/gui_qt/add_translation_widget.py:23
msgid "Add a new translation to the dictionary."
msgstr "Voeg een nieuwe vertaling toe aan het woordenboek."
-#: plover/gui_qt/add_translation_dialog.py:10
+#: plover/gui_qt/add_translation_dialog.py:13
msgid "Add Translation"
msgstr "Vertaling toevoegen"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:199
+#: plover/gui_qt/add_translation_widget.py:194
+#, python-brace-format
msgid "{dictionary} (disabled)"
msgstr "{dictionary} (uitgeschakeld)"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:258
+#: plover/gui_qt/add_translation_widget.py:260
+#, python-brace-format
msgid "{strokes} maps to "
msgstr "{strokes} wordt vertaald als "
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:269
+#: plover/gui_qt/add_translation_widget.py:272
msgid "Overwritten entries:"
msgstr "Overschreven regels:"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:274
+#: plover/gui_qt/add_translation_widget.py:277
+#, python-brace-format
msgid "{strokes} is not mapped in any dictionary"
msgstr "{strokes} is in geen enkel woordenboek opgenomen"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:290
+#: plover/gui_qt/add_translation_widget.py:291
+#, python-brace-format
msgid "{translation} is mapped to: {strokes}"
msgstr "{translation} is opgenomen als: {strokes}"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:293
+#: plover/gui_qt/add_translation_widget.py:294
+#, python-brace-format
msgid "{translation} is not in the dictionary"
msgstr "{translation} is niet in het woordenboek"
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:101
+#: plover/gui_qt/add_translation_widget_ui.py:124
+msgid "Dictionary:"
+msgstr "Woordenboek:"
+
+#. Widget: “AddTranslationWidget”, text.
+#: plover/gui_qt/add_translation_widget_ui.py:126
msgid "Strokes:"
msgstr "Aanslagen:"
+#. Widget: “AddTranslationWidget”, accessible name.
+#. Widget: “DictionaryEditor”.
+#: plover/gui_qt/add_translation_widget_ui.py:129
+#: plover/gui_qt/dictionary_editor.py:170
+msgid "Strokes"
+msgstr "Aanslagen"
+
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:103
+#: plover/gui_qt/add_translation_widget_ui.py:132
msgid "Translation:"
msgstr "Vertaling:"
-#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:105
-msgid "Dictionary:"
-msgstr "Woordenboek:"
+#. Widget: “AddTranslationWidget”, accessible name.
+#. Widget: “DictionaryEditor”.
+#: plover/gui_qt/add_translation_widget_ui.py:135
+#: plover/gui_qt/dictionary_editor.py:173
+msgid "Translation"
+msgstr "Vertaling"
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#. Widget: “DictionaryEditor”.
+#: plover/gui_qt/add_translation_widget_ui.py:139
+#: plover/gui_qt/dictionary_editor.py:176
+msgid "Dictionary"
+msgstr "Woordenboek"
+
+#. Widget: “AddTranslationWidget”, accessible description.
+#: plover/gui_qt/add_translation_widget_ui.py:143
+#, fuzzy
+msgid "Select the target dictionary for the new translation."
+msgstr "Zoek in het woordenboek naar vertalingen."
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#: plover/gui_qt/add_translation_widget_ui.py:147
+msgid "Existing mappings (strokes)"
+msgstr ""
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#: plover/gui_qt/add_translation_widget_ui.py:152
+msgid "Existing mappings (translations)"
+msgstr ""
+
+#. Widget: “FileWidget”, accessible name.
+#: plover/gui_qt/config_file_widget_ui.py:61
+#, fuzzy
+msgid "Log file path."
+msgstr "Logbestand:"
+
+#. Widget: “FileWidget”, accessible description.
+#: plover/gui_qt/config_file_widget_ui.py:65
+#, fuzzy
+msgid "Path to the log file."
+msgstr "Sla aanslagen op in het logbestand."
+
+#. Widget: “FileWidget”, accessible name.
+#: plover/gui_qt/config_file_widget_ui.py:69
+#, fuzzy
+msgid "Browse."
+msgstr "Bladeren"
+
+#. Widget: “FileWidget”, accessible description.
+#: plover/gui_qt/config_file_widget_ui.py:73
+#, fuzzy
+msgid "Open a file picker to select the log file."
+msgstr "Sla aanslagen op in het logbestand."
#. Widget: “FileWidget”, text.
-#: plover/gui_qt/config_file_widget_ui.py:45
+#: plover/gui_qt/config_file_widget_ui.py:76
msgid "Browse"
msgstr "Bladeren"
+#. Widget: “KeyboardWidget”, tool tip.
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_keyboard_widget_ui.py:56
+#: plover/gui_qt/config_plover_hid_widget_ui.py:89
+msgid ""
+"When the first key in a chord is released, the chord is sent.\n"
+"If the key is pressed and released again, another chord is sent."
+msgstr ""
+
#. Widget: “KeyboardWidget”, text.
-#: plover/gui_qt/config_keyboard_widget_ui.py:36
+#: plover/gui_qt/config_keyboard_widget_ui.py:60
+msgid "First-up chord send"
+msgstr ""
+
+#. Widget: “KeyboardWidget”, text.
+#: plover/gui_qt/config_keyboard_widget_ui.py:62
msgid "Arpeggiate"
msgstr "Arpeggiëren"
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:93
+msgid "Send chord on first key release"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:96
+msgid "Tap and then hold a chord to send it repeatedly."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:99
+msgid "Double tap to repeat"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:101
+msgid "Repeat delay (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:104
+msgid "Delay before chord starts repeating."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:107
+msgid "Repeat interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:110
+msgid "Interval between chord repetitions."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:113
+msgid "Device scan interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:116
+msgid "How often to scan for newly plugged-in devices."
+msgstr ""
+
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:215
+msgid "Serial"
+msgstr ""
+
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:209
+#: plover/gui_qt/config_serial_widget_ui.py:218
msgid "Connection"
msgstr "Verbinding"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:211
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:220
+#: plover/gui_qt/config_serial_widget_ui.py:223
msgid "Port"
msgstr "Poort"
+#. Widget: “SerialWidget”, accessible description.
+#: plover/gui_qt/config_serial_widget_ui.py:227
+msgid "Serial port device name."
+msgstr ""
+
+#. Widget: “SerialWidget”, accessible description.
+#: plover/gui_qt/config_serial_widget_ui.py:231
+msgid "Reload all available serial ports."
+msgstr ""
+
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:213
-msgid "Scan"
-msgstr "Scannen"
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_serial_widget_ui.py:234
+#: plover/gui_qt/plugins_manager_ui.py:146
+msgid "Refresh"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:215
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:236
+#: plover/gui_qt/config_serial_widget_ui.py:239
msgid "Baudrate"
msgstr "Baudrate"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:217
+#: plover/gui_qt/config_serial_widget_ui.py:242
msgid "Data format"
msgstr "Gegevensformaat"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:219
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:244
+#: plover/gui_qt/config_serial_widget_ui.py:247
msgid "Data bits"
msgstr "Gegevensbits"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:221
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:250
+#: plover/gui_qt/config_serial_widget_ui.py:253
msgid "Stop bits"
msgstr "Stopbits"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:223
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:256
+#: plover/gui_qt/config_serial_widget_ui.py:259
msgid "Parity"
msgstr "Pariteit"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:225
+#: plover/gui_qt/config_serial_widget_ui.py:265
msgid "Timeout"
msgstr "Time-out"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:227
-msgid "seconds"
-msgstr "seconden"
+#: plover/gui_qt/config_serial_widget_ui.py:267
+msgid "Duration (s)"
+msgstr ""
-#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:229
-msgid "Use timeout"
-msgstr "Time-out gebruiken"
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:270
+#, fuzzy
+msgid "Duration"
+msgstr "Actie"
+
+#. Widget: “SerialWidget”, accessible description.
+#: plover/gui_qt/config_serial_widget_ui.py:274
+msgid "Timeout duration in seconds."
+msgstr ""
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:231
+#: plover/gui_qt/config_serial_widget_ui.py:277
msgid "Flow control"
msgstr "Flowcontrole"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:233
+#: plover/gui_qt/config_serial_widget_ui.py:279
msgid "Xon/Xoff"
msgstr "Xon/Xoff"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:235
+#: plover/gui_qt/config_serial_widget_ui.py:281
msgid "RTS/CTS"
msgstr "RTS/CTS"
#. Widget: “NopeOption” (empty config option message,
#. e.g. the machine option when selecting the Treal machine).
-#: plover/gui_qt/config_window.py:45
+#: plover/gui_qt/config_window.py:51
msgid "Nothing to see here!"
msgstr "Niks te zien hier!"
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:145
+#: plover/gui_qt/config_window.py:173
msgid "Key"
msgstr "Toets"
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:147
+#: plover/gui_qt/config_window.py:175
msgid "Action"
msgstr "Actie"
#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:196
-msgid "Choice"
-msgstr "Keuze"
-
-#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:198
+#: plover/gui_qt/config_window.py:221
msgid "Selected"
msgstr "Geselecteerd"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:294
+#. Widget: “MultipleChoicesOption”.
+#: plover/gui_qt/config_window.py:223
+msgid "Choice"
+msgstr "Keuze"
+
+#: plover/gui_qt/config_window.py:354
msgid "Interface"
msgstr "Interface"
-#: plover/gui_qt/config_window.py:295
+#: plover/gui_qt/config_window.py:357
+msgid "Appearance:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
+msgid "System"
+msgstr "Systeem"
+
+#: plover/gui_qt/config_window.py:363
+msgid "Light"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:364
+msgid "Dark"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:368
+msgid ""
+"Set the application appearance:\n"
+"- System: follow the operating system mode\n"
+"- Light: force light mode\n"
+"- Dark: force dark mode"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
msgstr "Start geminimaliseerd:"
-#: plover/gui_qt/config_window.py:296
+#: plover/gui_qt/config_window.py:378
msgid "Minimize the main window to systray on startup."
msgstr "Minimaliseer bij het opstarten het hoofdvenster naar de systray."
-#: plover/gui_qt/config_window.py:297
+#: plover/gui_qt/config_window.py:381
msgid "Show paper tape:"
msgstr "Papierstrook weergeven:"
-#: plover/gui_qt/config_window.py:298
+#: plover/gui_qt/config_window.py:384
msgid "Open the paper tape on startup."
msgstr "Open de papierstrook bij het opstarten."
-#: plover/gui_qt/config_window.py:299
+#: plover/gui_qt/config_window.py:387
msgid "Show suggestions:"
msgstr "Suggesties weergeven:"
-#: plover/gui_qt/config_window.py:300
+#: plover/gui_qt/config_window.py:390
msgid "Open the suggestions dialog on startup."
msgstr "Open het venster met suggesties bij het opstarten."
-#: plover/gui_qt/config_window.py:301
+#: plover/gui_qt/config_window.py:393
msgid "Add translation dialog opacity:"
msgstr "Doorzichtigheid van het vertalingsvenster:"
-#: plover/gui_qt/config_window.py:303
+#: plover/gui_qt/config_window.py:397
msgid ""
"Set the translation dialog opacity:\n"
"- 0 makes the dialog invisible\n"
@@ -276,103 +462,101 @@ msgstr ""
"- 0 maakt het venster onzichtbaar\n"
"- 100 is volledig ondoorzichtig"
-#: plover/gui_qt/config_window.py:306
+#: plover/gui_qt/config_window.py:403
msgid "Dictionaries display order:"
msgstr "Volgorde woordenboeken:"
-#: plover/gui_qt/config_window.py:308
+#: plover/gui_qt/config_window.py:406
msgid "top-down"
msgstr "boven naar onder"
-#: plover/gui_qt/config_window.py:308
+#: plover/gui_qt/config_window.py:406
msgid "bottom-up"
msgstr "onder naar boven"
-#: plover/gui_qt/config_window.py:309
+#: plover/gui_qt/config_window.py:409
msgid ""
"Set the display order for dictionaries:\n"
"- top-down: match the search order; highest priority first\n"
"- bottom-up: reverse search order; lowest priority first\n"
msgstr ""
"Dit stelt de volgorde van de woordenboeken in:\n"
-"- boven naar onder: in dezelfde volgorde als er gezocht wordt, hoogste"
-" prioriteit eerst\n"
-"- onder naar boven: andersom dan de zoekvolgorde, laagste prioriteit eerst\n"
+"- boven naar onder: in dezelfde volgorde als er gezocht wordt, hoogste "
+"prioriteit eerst\n"
+"- onder naar boven: andersom dan de zoekvolgorde, laagste prioriteit "
+"eerst\n"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:314
+#: plover/gui_qt/config_window.py:418
msgid "Logging"
msgstr "Logs"
-#: plover/gui_qt/config_window.py:315
+#: plover/gui_qt/config_window.py:421
msgid "Log file:"
msgstr "Logbestand:"
-#: plover/gui_qt/config_window.py:317
+#: plover/gui_qt/config_window.py:424
msgid "Select a log file"
msgstr "Selecteer een logbestand"
-#: plover/gui_qt/config_window.py:318
+#: plover/gui_qt/config_window.py:424
msgid "Log files (*.log)"
msgstr "Logbestanden (*.log)"
-#: plover/gui_qt/config_window.py:319
+#: plover/gui_qt/config_window.py:426
msgid "File to use for logging strokes/translations."
msgstr "Bestand om aanslagen en vertalingen naar te schrijven."
-#: plover/gui_qt/config_window.py:320
+#: plover/gui_qt/config_window.py:429
msgid "Log strokes:"
msgstr "Aanslagen loggen:"
-#: plover/gui_qt/config_window.py:321
+#: plover/gui_qt/config_window.py:432
msgid "Save strokes to the logfile."
msgstr "Sla aanslagen op in het logbestand."
-#: plover/gui_qt/config_window.py:322
+#: plover/gui_qt/config_window.py:435
msgid "Log translations:"
msgstr "Vertalingen loggen:"
-#: plover/gui_qt/config_window.py:323
+#: plover/gui_qt/config_window.py:438
msgid "Save translations to the logfile."
msgstr "Sla vertalingen op in het logbestand."
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:326 plover/gui_qt/main_window_ui.py:170
+#: plover/gui_qt/config_window.py:444 plover/gui_qt/main_window_ui.py:260
msgid "Machine"
msgstr "Machine"
-#: plover/gui_qt/config_window.py:327
+#: plover/gui_qt/config_window.py:447
msgid "Machine:"
msgstr "Machine:"
-#: plover/gui_qt/config_window.py:332
+#: plover/gui_qt/config_window.py:459
msgid "Options:"
msgstr "Opties:"
-#: plover/gui_qt/config_window.py:333
+#: plover/gui_qt/config_window.py:461
msgid "Keymap:"
msgstr "Toetsenmapping:"
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:336 plover/gui_qt/main_window_ui.py:174
+#: plover/gui_qt/config_window.py:466 plover/gui_qt/main_window_ui.py:292
msgid "Output"
msgstr "Uitvoer"
-#: plover/gui_qt/config_window.py:337
+#: plover/gui_qt/config_window.py:469
msgid "Enable at start:"
msgstr "Inschakelen bij starten:"
-#: plover/gui_qt/config_window.py:338
+#: plover/gui_qt/config_window.py:472
msgid "Enable output on startup."
msgstr "Schakel uitvoer in bij het opstarten."
-#: plover/gui_qt/config_window.py:339
+#: plover/gui_qt/config_window.py:475
msgid "Start attached:"
msgstr "Start aaneengeschreven:"
-#: plover/gui_qt/config_window.py:340
+#: plover/gui_qt/config_window.py:479
msgid ""
"Disable preceding space on first output.\n"
"\n"
@@ -382,36 +566,35 @@ msgstr ""
"\n"
"Deze optie is alleen van toepassing als spaties ervoor worden geplaatst."
-#: plover/gui_qt/config_window.py:343
+#: plover/gui_qt/config_window.py:485
msgid "Start capitalized:"
msgstr "Start met hoofdletter:"
-#: plover/gui_qt/config_window.py:344
+#: plover/gui_qt/config_window.py:488
msgid "Capitalize the first word."
msgstr "Schrijf het eerste woord met een hoofdletter."
-#: plover/gui_qt/config_window.py:345
+#: plover/gui_qt/config_window.py:491
msgid "Space placement:"
msgstr "Spatieplaatsing:"
-#: plover/gui_qt/config_window.py:347
+#: plover/gui_qt/config_window.py:496
msgid "Before Output"
msgstr "Voor uitvoer"
-#: plover/gui_qt/config_window.py:348
+#: plover/gui_qt/config_window.py:497
msgid "After Output"
msgstr "Na uitvoer"
-#: plover/gui_qt/config_window.py:350
+#: plover/gui_qt/config_window.py:500
msgid "Set automatic space placement: before or after each word."
-msgstr ""
-"Stelt de automatische plaatsing van spaties in: voor of na ieder woord."
+msgstr "Stelt de automatische plaatsing van spaties in: voor of na ieder woord."
-#: plover/gui_qt/config_window.py:351
+#: plover/gui_qt/config_window.py:503
msgid "Undo levels:"
msgstr "Aantal ongedaan-maak-stappen:"
-#: plover/gui_qt/config_window.py:355
+#: plover/gui_qt/config_window.py:507
msgid ""
"Set how many preceding strokes can be undone.\n"
"\n"
@@ -423,317 +606,452 @@ msgstr ""
"Let op: de daadwerkelijke waarde hangt ook of van de regel\n"
"in het woordenboek met de meeste aanslagen."
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:361
+#: plover/gui_qt/config_window.py:514
+msgid "Key press delay (ms):"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:522
+msgid ""
+"Set the delay between emulated key presses (in milliseconds).\n"
+"\n"
+"Some programs may drop key presses if too many are sent\n"
+"within a short period of time. Increasing the delay gives\n"
+"programs time to process each key press.\n"
+"Setting the delay too high will negatively impact the\n"
+"performance of key stroke output."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:532
+msgid "Linux keyboard layout:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:546
+msgid ""
+"Set the keyboard layout configured in your system.\n"
+"This only applies when using Linux/BSD and not using X11.\n"
+"\n"
+"When Wayland auto detect is selected,Plover is only able to detect the "
+"first keyboard layout\n"
+"and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:556
+msgid ""
+"When Wayland auto detect is selected, Plover is only able to detect the "
+"first keyboard layout and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:567
msgid "Plugins"
msgstr "Plug-ins"
-#: plover/gui_qt/config_window.py:362
-msgid "Extension:"
+#: plover/gui_qt/config_window.py:570
+#, fuzzy
+msgid "Extensions:"
msgstr "Extensie:"
-#: plover/gui_qt/config_window.py:366
-msgid "Name"
-msgstr "Naam"
-
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/config_window.py:366 plover/gui_qt/main_window_ui.py:176
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
msgid "Enabled"
msgstr "Ingeschakeld"
-#: plover/gui_qt/config_window.py:367
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/plugins_manager_ui.py:136
+msgid "Name"
+msgstr "Naam"
+
+#: plover/gui_qt/config_window.py:580
msgid "Configure enabled plugin extensions."
msgstr "Stel in welke plug-in-extensies ingeschakeld zijn."
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:370
-msgid "System"
-msgstr "Systeem"
-
-#: plover/gui_qt/config_window.py:371
+#: plover/gui_qt/config_window.py:589
msgid "System:"
msgstr "Systeem:"
-#. Widget: “ConfigWindow”, windowtitle.
-#: plover/gui_qt/config_window_ui.py:43
+#. Widget: “ConfigWindow”, window title.
+#: plover/gui_qt/config_window_ui.py:61
msgid "Plover: Configuration"
msgstr "Plover: Instellingen"
+#. Widget: “ConsoleWidget”, window title.
+#: plover/gui_qt/console_widget_ui.py:49
+msgid "Form"
+msgstr ""
+
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:43
+#: plover/gui_qt/dictionaries_widget.py:46
+#, python-brace-format
msgid "Dictionaries ({extensions})"
msgstr "Woordenboeken ({extensions})"
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:46
+#: plover/gui_qt/dictionaries_widget.py:49
+#, python-brace-format
msgid "{format} dictionaries ({extensions})"
msgstr "{format} woordenboeken ({extensions})"
-#. Widget: “DictionariesWidget”, “add” menu.
-#: plover/gui_qt/dictionaries_widget.py:106
-msgid "Open dictionaries"
-msgstr "Open woordenboeken"
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:391
+#, fuzzy
+msgid "disabled"
+msgstr "Uitgeschakeld"
-#. Widget: “DictionariesWidget”, “add” menu.
-#. Widget: “DictionariesWidget”, “new” file picker.
-#: plover/gui_qt/dictionaries_widget.py:110
-#: plover/gui_qt/dictionaries_widget.py:483
-msgid "New dictionary"
-msgstr "Nieuw woordenboek"
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:394
+msgid "favorite"
+msgstr ""
-#. Widget: “DictionariesWidget”, “save” menu.
-#: plover/gui_qt/dictionaries_widget.py:117
-msgid "Create a copy of each dictionary"
-msgstr "Maak een kopie van ieder woordenboek"
+#: plover/gui_qt/dictionaries_widget.py:398
+#, python-brace-format
+msgid "errored: {exception}."
+msgstr ""
-#. Widget: “DictionariesWidget”, “save” menu.
-#: plover/gui_qt/dictionaries_widget.py:121
-msgid "Merge dictionaries into a new one"
-msgstr "Voeg woordenboeken samen in een nieuw woordenboek"
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:402
+#, fuzzy
+msgid "loading"
+msgstr "Logs"
+
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:405
+msgid "read-only"
+msgstr ""
#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:196
+#: plover/gui_qt/dictionaries_widget.py:411
+#, python-brace-format
+msgid "Full path: {path}."
+msgstr ""
+
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget.py:414
+#, fuzzy
+msgid "This dictionary is marked as the favorite."
+msgstr "Dit woordenboek is gemarkeerd als favoriet."
+
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget.py:417
msgid "This dictionary is being loaded."
msgstr "Dit woordenboek wordt momenteel geladen."
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:205
-msgid "This dictionary is read-only."
+#: plover/gui_qt/dictionaries_widget.py:421
+#, fuzzy, python-brace-format
+msgid "Loading this dictionary failed: {exception}."
msgstr "Dit woordenboek is alleen-lezen."
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:209
-msgid "This dictionary is marked as a favorite."
-msgstr "Dit woordenboek is gemarkeerd als favoriet."
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget.py:427
+msgid "This dictionary is read-only."
+msgstr "Dit woordenboek is alleen-lezen."
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:399
+#: plover/gui_qt/dictionaries_widget.py:618
+#, python-brace-format
msgid "Save a copy of {name} as..."
msgstr "Sla een kopie van {name} op als..."
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:401
+#: plover/gui_qt/dictionaries_widget.py:620
+#, python-brace-format
msgid "{name} - Copy"
msgstr "{name} - Kopie"
#. Widget: “DictionariesWidget”, “save as merge” file picker.
-#: plover/gui_qt/dictionaries_widget.py:422
+#: plover/gui_qt/dictionaries_widget.py:642
+#, python-brace-format
msgid "Merge {names} as..."
msgstr "Voeg {names} samen als..."
-#. Widget: “DictionariesWidget”, “add” file picker.
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:466
-#: plover/gui_qt/dictionaries_widget_ui.py:130
-msgid "Add dictionaries"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget.py:671
+#: plover/gui_qt/dictionaries_widget_ui.py:203
+#, fuzzy
+msgid "Load dictionaries"
msgstr "Woordenboeken toevoegen"
+#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:102
+#: plover/gui_qt/dictionaries_widget.py:683
+#: plover/gui_qt/dictionaries_widget_ui.py:205
+#, fuzzy
+msgid "Create dictionary"
+msgstr "Nieuw woordenboek"
+
+#. Widget: “DictionariesWidget”, title.
+#. Widget: “DictionariesWidget”, accessible name.
+#: plover/gui_qt/dictionaries_widget_ui.py:125
+#: plover/gui_qt/dictionaries_widget_ui.py:208
msgid "Dictionaries"
msgstr "Woordenboeken"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:104
+#: plover/gui_qt/dictionaries_widget_ui.py:127
msgid "&Edit dictionaries"
msgstr "Woordenboeken &bewerken"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:106
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:130
msgid "Edit selected dictionaries"
msgstr "Geselecteerde woordenboeken bewerken"
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:108
+#: plover/gui_qt/dictionaries_widget_ui.py:134
msgid "Ctrl+E"
msgstr "Ctrl+E"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:110
+#: plover/gui_qt/dictionaries_widget_ui.py:137
msgid "&Save dictionaries as..."
msgstr "Woordenboeken &opslaan als..."
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:112
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:140
msgid ""
"Save the selected dictionaries: create a new copy of each dictionary, or "
"merge them into a new dictionary."
msgstr ""
-"Sla de geselecteerde woordenboeken op: maak een nieuwe kopie van ieder"
-" woordenboek, of voeg ze samen in een enkel nieuw woordenboek."
+"Sla de geselecteerde woordenboeken op: maak een nieuwe kopie van ieder "
+"woordenboek, of voeg ze samen in een enkel nieuw woordenboek."
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “PaperTape”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:114
-#: plover/gui_qt/paper_tape_ui.py:99
+#: plover/gui_qt/dictionaries_widget_ui.py:144
+#: plover/gui_qt/paper_tape_ui.py:129
msgid "Ctrl+S"
msgstr "Ctrl+S"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:116
+#: plover/gui_qt/dictionaries_widget_ui.py:147
msgid "&Remove dictionaries"
msgstr "Woordenboeken &verwijderen"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:118
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:150
msgid "Remove selected dictionaries"
msgstr "Verwijder geselecteerde woordenboeken"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:120
-#: plover/gui_qt/dictionary_editor_ui.py:116
+#: plover/gui_qt/dictionaries_widget_ui.py:154
+#: plover/gui_qt/dictionary_editor_ui.py:149
msgid "Del"
msgstr "Del"
#. Widget: “DictionariesWidget”, text.
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:122
-#: plover/gui_qt/dictionary_editor_ui.py:118
+#: plover/gui_qt/dictionaries_widget_ui.py:157
+#: plover/gui_qt/dictionary_editor_ui.py:152
msgid "&Undo"
msgstr "&Ongedaan maken"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:124
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:160
msgid "Undo last add/delete/reorder operation."
msgstr "Maak de laatste toevoeg-/verwijder-/verplaats-operatie ongedaan."
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:126
-#: plover/gui_qt/dictionary_editor_ui.py:122
+#: plover/gui_qt/dictionaries_widget_ui.py:164
+#: plover/gui_qt/dictionary_editor_ui.py:159
msgid "Ctrl+Z"
msgstr "Ctrl+Z"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:128
+#: plover/gui_qt/dictionaries_widget_ui.py:167
msgid "&Add dictionaries"
msgstr "&Woordenboeken toevoegen"
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:170
+msgid "Add dictionaries"
+msgstr "Woordenboeken toevoegen"
+
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:132
+#: plover/gui_qt/dictionaries_widget_ui.py:174
msgid "Ctrl+O"
msgstr "Ctrl+O"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:134
+#: plover/gui_qt/dictionaries_widget_ui.py:177
msgid "Add &translation"
msgstr "&Vertaling toevoegen"
-#. Widget: “DictionariesWidget”, tooltip.
-#. Widget: “DictionaryEditor”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:136
-#: plover/gui_qt/dictionary_editor_ui.py:126
+#. Widget: “DictionariesWidget”, tool tip.
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:180
+#: plover/gui_qt/dictionary_editor_ui.py:165
msgid "Add a new translation"
msgstr "Voeg een nieuwe vertaling toe"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:138
-#: plover/gui_qt/dictionary_editor_ui.py:128
+#: plover/gui_qt/dictionaries_widget_ui.py:184
+#: plover/gui_qt/dictionary_editor_ui.py:169
msgid "Ctrl+N"
msgstr "Ctrl+N"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:140
+#: plover/gui_qt/dictionaries_widget_ui.py:187
msgid "Move dictionaries &up"
msgstr "Schuif woordenboeken om&hoog"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:142
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:190
msgid "Move selected dictionaries up."
msgstr "Beweeg de geselecteerde woordenboeken omhoog."
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:144
+#: plover/gui_qt/dictionaries_widget_ui.py:193
msgid "Move dictionaries &down"
msgstr "Schuif woordenboeken om&loog"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:146
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:196
msgid "Move selected dictionaries down."
msgstr "Beweeg de geselecteerde woordenboeken omlaag."
-#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/dictionary_editor.py:163
-msgid "Strokes"
-msgstr "Aanslagen"
-
-#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/dictionary_editor.py:166
-msgid "Translation"
-msgstr "Vertaling"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget_ui.py:199
+msgid "Create a copy of each dictionary"
+msgstr "Maak een kopie van ieder woordenboek"
-#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/dictionary_editor.py:169
-msgid "Dictionary"
-msgstr "Woordenboek"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget_ui.py:201
+msgid "Merge dictionaries into a new one"
+msgstr "Voeg woordenboeken samen in een nieuw woordenboek"
-#. Widget: “DictionaryEditor”, windowtitle.
-#: plover/gui_qt/dictionary_editor_ui.py:100
+#. Widget: “DictionaryEditor”, window title.
+#: plover/gui_qt/dictionary_editor_ui.py:140
msgid "Plover: Dictionary Editor"
msgstr "Plover: Bewerk woordenboek"
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:142
+msgid "&Delete"
+msgstr "&Verwijderen"
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:145
+msgid "Delete selected entries."
+msgstr "Verwijder geselecteerde regels."
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:155
+msgid "Undo last add/delete/edit operation."
+msgstr "Maak de laatste toevoeg-/verwijder-/bewerk-operatie ongedaan."
+
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:162
+msgid "&New translation"
+msgstr "&Nieuwe vertaling"
+
+#. Widget: “DictionaryEditor”, accessible name.
#. Widget: “DictionaryEditor”, title.
-#: plover/gui_qt/dictionary_editor_ui.py:102
+#: plover/gui_qt/dictionary_editor_ui.py:173
+#: plover/gui_qt/dictionary_editor_ui.py:176
msgid "Filter"
msgstr "Filter"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:104
+#: plover/gui_qt/dictionary_editor_ui.py:178
msgid "By strokes:"
msgstr "Op aanslagen:"
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:181
+#, fuzzy
+msgid "Strokes filter"
+msgstr "Aanslagen"
+
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:185
+#, fuzzy
+msgid "Apply filter"
+msgstr "Filter"
+
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:106
+#: plover/gui_qt/dictionary_editor_ui.py:188
msgid "Apply"
msgstr "Toepassen"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:108
+#: plover/gui_qt/dictionary_editor_ui.py:190
msgid "By translation:"
msgstr "Op vertaling:"
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:193
+#, fuzzy
+msgid "Translation filter"
+msgstr "Vertaling"
+
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:197
+#, fuzzy
+msgid "Clear filter"
+msgstr "Filter"
+
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:110
+#: plover/gui_qt/dictionary_editor_ui.py:203
msgid "Clear"
msgstr "Leegmaken"
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:112
-msgid "&Delete"
-msgstr "&Verwijderen"
-
-#. Widget: “DictionaryEditor”, tooltip.
-#: plover/gui_qt/dictionary_editor_ui.py:114
-msgid "Delete selected entries."
-msgstr "Verwijder geselecteerde regels."
-
-#. Widget: “DictionaryEditor”, tooltip.
-#: plover/gui_qt/dictionary_editor_ui.py:120
-msgid "Undo last add/delete/edit operation."
-msgstr "Maak de laatste toevoeg-/verwijder-/bewerk-operatie ongedaan."
-
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:124
-msgid "&New translation"
-msgstr "&Nieuwe vertaling"
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:206
+msgid "Mappings"
+msgstr ""
#. Widget: “LookupDialog”, tooltip.
-#: plover/gui_qt/lookup_dialog.py:13
+#: plover/gui_qt/lookup_dialog.py:12
msgid "Search the dictionary for translations."
msgstr "Zoek in het woordenboek naar vertalingen."
-#: plover/gui_qt/lookup_dialog.py:15
+#: plover/gui_qt/lookup_dialog.py:14
msgid "Lookup"
msgstr "Opzoeken"
-#. Widget: “LookupDialog”, windowtitle.
-#: plover/gui_qt/lookup_dialog_ui.py:56
+#. Widget: “LookupDialog”, window title.
+#: plover/gui_qt/lookup_dialog_ui.py:72
msgid "Plover: Dictionary Lookup"
msgstr "Plover: Zoek in woordenboek"
-#: plover/gui_qt/machine_options.py:104
+#. Widget: “LookupDialog”, accessible name.
+#: plover/gui_qt/lookup_dialog_ui.py:75
+#, fuzzy
+msgid "Pattern"
+msgstr "Papier"
+
+#. Widget: “LookupDialog”, accessible description.
+#: plover/gui_qt/lookup_dialog_ui.py:79
+msgid "Translation pattern to lookup."
+msgstr ""
+
+#. Widget: “LookupDialog”, accessible name.
+#: plover/gui_qt/lookup_dialog_ui.py:83
+msgid "Results"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:36
+#, python-brace-format
+msgid "product: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:37
+#, python-brace-format
+msgid "manufacturer: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:38
+#, python-brace-format
+msgid "serial number: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:46
+#, python-brace-format
+msgid "description: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:199
msgid ""
"Arpeggiate allows using non-NKRO keyboards.\n"
"\n"
@@ -746,258 +1064,358 @@ msgstr ""
"Iedere toets kan één voor één ingedrukt worden,\n"
"waarna de spatiebalk de aanslag verzendt."
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:172 plover/gui_qt/main_window_ui.py:212
-msgid "Disconnect and reconnect the machine."
-msgstr "Verbreek en herstel de verbinding met de machine."
-
-#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:178
-msgid "Disabled"
-msgstr "Uitgeschakeld"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:180
-msgid "&File"
-msgstr "&Bestand"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:182
-msgid "&Tools"
-msgstr "&Gereedschappen"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:184
-msgid "&Help"
-msgstr "&Help"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:186
-msgid "&Edit"
-msgstr "&Bewerken"
-
-#. Widget: “MainWindow”, windowtitle.
-#: plover/gui_qt/main_window_ui.py:188
-msgid "Plover: Toolbar"
-msgstr "Plover: Werkbalk"
+#: plover/gui_qt/main_window.py:312
+msgid "Application is still running."
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:190
+#: plover/gui_qt/main_window_ui.py:202
msgid "&Quit Plover"
msgstr "Plover &afsluiten"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:192
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:205
msgid "Quit the application."
msgstr "Sluit deze applicatie af."
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:194
+#: plover/gui_qt/main_window_ui.py:209
msgid "Ctrl+Q"
msgstr "Ctrl+Q"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:196
+#: plover/gui_qt/main_window_ui.py:212
msgid "&Configure"
msgstr "&Instellingen"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:198
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:215
msgid "Open the configuration dialog."
msgstr "Opent het instellingen-venster."
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:200
+#: plover/gui_qt/main_window_ui.py:219
msgid "Ctrl+,"
msgstr "Ctrl+,"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:202
+#: plover/gui_qt/main_window_ui.py:222
msgid "Open config &folder"
msgstr "Open &instellingenmap"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:204
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:225
msgid "Open the configuration folder."
msgstr "Opent de map met configuratiebestanden."
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:206
+#: plover/gui_qt/main_window_ui.py:228
msgid "&About"
msgstr "&Over"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:208
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:231
msgid "Open the about dialog."
msgstr "Opent een venster met informatie over Plover."
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:210
+#: plover/gui_qt/main_window_ui.py:234
msgid "&Reconnect machine"
msgstr "&Herverbinden met machine"
+#. Widget: “MainWindow”, tool tip.
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:237 plover/gui_qt/main_window_ui.py:272
+#: plover/gui_qt/main_window_ui.py:280
+msgid "Disconnect and reconnect the machine."
+msgstr "Verbreek en herstel de verbinding met de machine."
+
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:214
+#: plover/gui_qt/main_window_ui.py:241
msgid "Ctrl+R"
msgstr "Ctrl+R"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:216
+#: plover/gui_qt/main_window_ui.py:244
msgid "&Show"
msgstr "&Weergeven"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:218
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:247
msgid "Show the main window."
msgstr "Het hoofdvenster weergeven."
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:220
+#: plover/gui_qt/main_window_ui.py:250
msgid "Toggle &output"
msgstr "&Uitvoer aan-/uitzetten"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:222
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:253
msgid "Toggle the output."
msgstr "Zet de uitvoer aan of uit."
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:224
+#: plover/gui_qt/main_window_ui.py:257
msgid "Ctrl+."
msgstr "Ctrl+."
-#: plover/gui_qt/paper_tape.py:25
-msgid "Paper Tape"
-msgstr "Papierstrook"
+#. Widget: “MainWindow”, accessible name.
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/main_window_ui.py:263 plover/gui_qt/plugins_manager_ui.py:133
+#, fuzzy
+msgid "State"
+msgstr "&Opslaan"
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:267
+msgid "Connection state for the current machine."
+msgstr ""
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:276
+#, fuzzy
+msgid "Reconnect"
+msgstr "verbonden"
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:285
+msgid "Type"
+msgstr ""
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:289
+msgid "Change the current machine type."
+msgstr ""
+
+#. Widget: “MainWindow”, text.
+#: plover/gui_qt/main_window_ui.py:296
+msgid "Disabled"
+msgstr "Uitgeschakeld"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:298
+msgid "&File"
+msgstr "&Bestand"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:300
+msgid "&Tools"
+msgstr "&Gereedschappen"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:302
+msgid "&Help"
+msgstr "&Help"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:304
+msgid "&Edit"
+msgstr "&Bewerken"
+
+#. Widget: “MainWindow”, window title.
+#: plover/gui_qt/main_window_ui.py:306
+msgid "Plover: Toolbar"
+msgstr "Plover: Werkbalk"
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:32
+#: plover/gui_qt/paper_tape.py:30
msgid "Paper"
msgstr "Papier"
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:34
+#: plover/gui_qt/paper_tape.py:32
msgid "Raw"
msgstr "Ruw"
-#: plover/gui_qt/paper_tape.py:158
+#. Widget: “PaperTape”, tooltip.
+#: plover/gui_qt/paper_tape.py:122
+msgid "Paper tape display of strokes."
+msgstr ""
+
+#: plover/gui_qt/paper_tape.py:124
+msgid "Paper Tape"
+msgstr "Papierstrook"
+
+#: plover/gui_qt/paper_tape.py:237
msgid "Do you want to clear the paper tape?"
msgstr "De papierstrook echt wissen?"
-#: plover/gui_qt/paper_tape.py:172
+#: plover/gui_qt/paper_tape.py:255
msgid "Save Paper Tape"
msgstr "Papierstrook opslaan"
#. Paper tape, "save" file picker.
-#: plover/gui_qt/paper_tape.py:174
+#: plover/gui_qt/paper_tape.py:258
msgid "Text files (*.txt)"
msgstr "Tekstbestanden (*.txt)"
-#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:87
-msgid "Mode"
-msgstr "Modus"
-
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:89 plover/gui_qt/suggestions_dialog_ui.py:53
+#: plover/gui_qt/paper_tape_ui.py:112 plover/gui_qt/suggestions_dialog_ui.py:70
msgid "&Clear"
msgstr "&Leegmaken"
-#. Widget: “PaperTape”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:91
+#. Widget: “PaperTape”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:115
msgid "Clear paper tape."
msgstr "Maakt de papierstrook leeg."
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:93 plover/gui_qt/suggestions_dialog_ui.py:57
+#: plover/gui_qt/paper_tape_ui.py:119 plover/gui_qt/suggestions_dialog_ui.py:77
msgid "Ctrl+L"
msgstr "Ctrl+L"
#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:95
+#: plover/gui_qt/paper_tape_ui.py:122
msgid "&Save"
msgstr "&Opslaan"
-#. Widget: “PaperTape”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:97
+#. Widget: “PaperTape”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:125
msgid "Save paper tape to file."
msgstr "Slaat de papierstrook op in een bestand."
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:101 plover/gui_qt/suggestions_dialog_ui.py:59
+#: plover/gui_qt/paper_tape_ui.py:132 plover/gui_qt/suggestions_dialog_ui.py:80
msgid "&Toggle \"always on top\""
msgstr "\"Altijd bovenaan\" &aan/uit"
-#. Widget: “PaperTape”, tooltip.
-#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:103 plover/gui_qt/suggestions_dialog_ui.py:61
+#. Widget: “PaperTape”, tool tip.
+#. Widget: “SuggestionsDialog”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:135 plover/gui_qt/suggestions_dialog_ui.py:83
msgid "Toggle \"always on top\"."
msgstr "Zet de instelling \"altijd bovenaan\" aan of uit."
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:105 plover/gui_qt/suggestions_dialog_ui.py:63
+#: plover/gui_qt/paper_tape_ui.py:139 plover/gui_qt/suggestions_dialog_ui.py:87
msgid "Ctrl+T"
msgstr "Ctrl+T"
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:107 plover/gui_qt/suggestions_dialog_ui.py:65
+#: plover/gui_qt/paper_tape_ui.py:142 plover/gui_qt/suggestions_dialog_ui.py:90
msgid "Select &font"
msgstr "&Lettertype selecteren"
-#. Widget: “PaperTape”, tooltip.
-#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:109 plover/gui_qt/suggestions_dialog_ui.py:67
+#. Widget: “PaperTape”, tool tip.
+#. Widget: “SuggestionsDialog”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:145 plover/gui_qt/suggestions_dialog_ui.py:93
msgid "Open font selection dialog."
msgstr "Opent het venster om een lettertype te selecteren."
+#. Widget: “PaperTape”, text.
+#: plover/gui_qt/paper_tape_ui.py:148
+#, fuzzy
+msgid "Mode:"
+msgstr "Modus"
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:151
+msgid "Mode"
+msgstr "Modus"
+
+#. Widget: “PaperTape”, accessible description.
+#: plover/gui_qt/paper_tape_ui.py:155
+#, fuzzy
+msgid "Select paper tape display mode."
+msgstr "Slaat de papierstrook op in een bestand."
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:159
+#, fuzzy
+msgid "Tape"
+msgstr "Papier"
+
+#. Widget: “PluginsManager”, window title.
+#. Widget: “RunDialog”, window title.
+#: plover/gui_qt/plugins_manager_ui.py:130 plover/gui_qt/run_dialog_ui.py:51
+msgid "Dialog"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:139
+msgid "Version"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:142
+msgid "Summary"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:144
+msgid "Restart"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:148
+msgid "Uninstall"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:150
+msgid "Install/Update"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:152
+msgid "..."
+msgstr ""
+
#. Widget: “SuggestionsDialog”, tooltip.
#: plover/gui_qt/suggestions_dialog.py:26
msgid "Suggest possible strokes for the last written words."
msgstr "Stel mogelijke aanslagen voor de laatste geschreven woorden voor."
+#. Widget: “SuggestionsDialog”, accessible name.
#: plover/gui_qt/suggestions_dialog.py:28
+#: plover/gui_qt/suggestions_dialog_ui.py:97
msgid "Suggestions"
msgstr "Suggesties"
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:57
+#: plover/gui_qt/suggestions_dialog.py:62
msgid "&Text"
msgstr "&Tekst"
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:59
+#: plover/gui_qt/suggestions_dialog.py:64
msgid "&Strokes"
msgstr "&Aanslagen"
-#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/suggestions_dialog_ui.py:55
+#. Widget: “SuggestionsDialog”, tool tip.
+#: plover/gui_qt/suggestions_dialog_ui.py:73
msgid "Clear the history."
msgstr "Maakt de geschiedenis leeg."
#. Widget: “SuggestionsWidget”.
-#: plover/gui_qt/suggestions_widget.py:42
+#: plover/gui_qt/suggestions_widget.py:27
msgid "no suggestions"
msgstr "geen suggesties"
-#: plover/gui_qt/trayicon.py:116
+#: plover/gui_qt/trayicon.py:118
+#, python-brace-format
msgid "{machine} is {state}"
msgstr "{machine} is {state}"
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:122
+#: plover/gui_qt/trayicon.py:124
msgid "output is enabled"
msgstr "uitvoer staat aan"
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:125
+#: plover/gui_qt/trayicon.py:127
msgid "output is disabled"
msgstr "uitvoer staat uit"
+#: plover/gui_qt/utils.py:28
+msgid "Copy selection to clipboard"
+msgstr ""
+
#. Machine state.
#: plover/machine/base.py:20
msgid "stopped"
@@ -1022,3 +1440,16 @@ msgstr "verbinding verbroken"
#: plover/machine/keyboard.py:14
msgid "Keyboard"
msgstr "Toetsenbord"
+
+#~ msgid "Scan"
+#~ msgstr "Scannen"
+
+#~ msgid "seconds"
+#~ msgstr "seconden"
+
+#~ msgid "Use timeout"
+#~ msgstr "Time-out gebruiken"
+
+#~ msgid "Open dictionaries"
+#~ msgstr "Open woordenboeken"
+
diff --git a/plover/messages/plover.pot b/plover/messages/plover.pot
index 8f3ae2791..c65bbf589 100644
--- a/plover/messages/plover.pot
+++ b/plover/messages/plover.pot
@@ -1,23 +1,23 @@
# Translations template for plover.
-# Copyright (C) 2022 ORGANIZATION
+# Copyright (C) 2026 ORGANIZATION
# This file is distributed under the same license as the plover project.
-# FIRST AUTHOR , 2022.
+# FIRST AUTHOR , 2026.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: plover 4.0.0.dev10\n"
+"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2022-02-06 17:18+0000\n"
+"POT-Creation-Date: 2026-03-07 10:58+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.9.1\n"
+"Generated-By: Babel 2.17.0\n"
-#: plover/__init__.py:19
+#: plover/__init__.py:22
msgid ""
"Founded by stenographer Mirabai Knight.\n"
"\n"
@@ -35,440 +35,529 @@ msgid ""
msgstr ""
#. Short description for Plover, currently not used in the interface.
-#: plover/__init__.py:33
+#: plover/__init__.py:38
msgid "Open Source Stenography Software"
msgstr ""
-#: plover/__init__.py:34
+#: plover/__init__.py:39
msgid ""
"Plover is a free open source program intended to bring realtime\n"
"stenographic technology not just to stenographers, but also to\n"
"hackers, hobbyists, accessibility mavens, and all-around speed demons."
msgstr ""
+#: plover/dictionary/helpers.py:24
+#, python-format
+msgid "dictionary `%s` loaded with %u invalid steno errors"
+msgstr ""
+
#. Widget: “AboutDialog”, window title.
-#: plover/gui_qt/about_dialog_ui.py:38
+#: plover/gui_qt/about_dialog_ui.py:53
msgid "Plover: About"
msgstr ""
#. Widget: “AddTranslationDialog”, tooltip.
#. Widget: “AddTranslationWidget”, tooltip.
-#: plover/gui_qt/add_translation_dialog.py:12
+#: plover/gui_qt/add_translation_dialog.py:11
#: plover/gui_qt/add_translation_widget.py:23
msgid "Add a new translation to the dictionary."
msgstr ""
-#: plover/gui_qt/add_translation_dialog.py:14
+#: plover/gui_qt/add_translation_dialog.py:13
msgid "Add Translation"
msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:193
+#: plover/gui_qt/add_translation_widget.py:194
+#, python-brace-format
msgid "{dictionary} (disabled)"
msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:255
+#: plover/gui_qt/add_translation_widget.py:260
+#, python-brace-format
msgid "{strokes} maps to "
msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:266
+#: plover/gui_qt/add_translation_widget.py:272
msgid "Overwritten entries:"
msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:271
+#: plover/gui_qt/add_translation_widget.py:277
+#, python-brace-format
msgid "{strokes} is not mapped in any dictionary"
msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:284
+#: plover/gui_qt/add_translation_widget.py:291
+#, python-brace-format
msgid "{translation} is mapped to: {strokes}"
msgstr ""
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:287
+#: plover/gui_qt/add_translation_widget.py:294
+#, python-brace-format
msgid "{translation} is not in the dictionary"
msgstr ""
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:106
+#: plover/gui_qt/add_translation_widget_ui.py:124
msgid "Dictionary:"
msgstr ""
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:108
+#: plover/gui_qt/add_translation_widget_ui.py:126
msgid "Strokes:"
msgstr ""
#. Widget: “AddTranslationWidget”, accessible name.
#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/add_translation_widget_ui.py:110
-#: plover/gui_qt/dictionary_editor.py:173
+#: plover/gui_qt/add_translation_widget_ui.py:129
+#: plover/gui_qt/dictionary_editor.py:170
msgid "Strokes"
msgstr ""
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:112
+#: plover/gui_qt/add_translation_widget_ui.py:132
msgid "Translation:"
msgstr ""
#. Widget: “AddTranslationWidget”, accessible name.
#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/add_translation_widget_ui.py:114
-#: plover/gui_qt/dictionary_editor.py:176
+#: plover/gui_qt/add_translation_widget_ui.py:135
+#: plover/gui_qt/dictionary_editor.py:173
msgid "Translation"
msgstr ""
#. Widget: “AddTranslationWidget”, accessible name.
#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/add_translation_widget_ui.py:116
-#: plover/gui_qt/dictionary_editor.py:179
+#: plover/gui_qt/add_translation_widget_ui.py:139
+#: plover/gui_qt/dictionary_editor.py:176
msgid "Dictionary"
msgstr ""
#. Widget: “AddTranslationWidget”, accessible description.
-#: plover/gui_qt/add_translation_widget_ui.py:118
+#: plover/gui_qt/add_translation_widget_ui.py:143
msgid "Select the target dictionary for the new translation."
msgstr ""
#. Widget: “AddTranslationWidget”, accessible name.
-#: plover/gui_qt/add_translation_widget_ui.py:120
+#: plover/gui_qt/add_translation_widget_ui.py:147
msgid "Existing mappings (strokes)"
msgstr ""
#. Widget: “AddTranslationWidget”, accessible name.
-#: plover/gui_qt/add_translation_widget_ui.py:122
+#: plover/gui_qt/add_translation_widget_ui.py:152
msgid "Existing mappings (translations)"
msgstr ""
#. Widget: “FileWidget”, accessible name.
-#: plover/gui_qt/config_file_widget_ui.py:45
+#: plover/gui_qt/config_file_widget_ui.py:61
msgid "Log file path."
msgstr ""
#. Widget: “FileWidget”, accessible description.
-#: plover/gui_qt/config_file_widget_ui.py:47
+#: plover/gui_qt/config_file_widget_ui.py:65
msgid "Path to the log file."
msgstr ""
#. Widget: “FileWidget”, accessible name.
-#: plover/gui_qt/config_file_widget_ui.py:49
+#: plover/gui_qt/config_file_widget_ui.py:69
msgid "Browse."
msgstr ""
#. Widget: “FileWidget”, accessible description.
-#: plover/gui_qt/config_file_widget_ui.py:51
+#: plover/gui_qt/config_file_widget_ui.py:73
msgid "Open a file picker to select the log file."
msgstr ""
#. Widget: “FileWidget”, text.
-#: plover/gui_qt/config_file_widget_ui.py:53
+#: plover/gui_qt/config_file_widget_ui.py:76
msgid "Browse"
msgstr ""
+#. Widget: “KeyboardWidget”, tool tip.
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_keyboard_widget_ui.py:56
+#: plover/gui_qt/config_plover_hid_widget_ui.py:89
+msgid ""
+"When the first key in a chord is released, the chord is sent.\n"
+"If the key is pressed and released again, another chord is sent."
+msgstr ""
+
+#. Widget: “KeyboardWidget”, text.
+#: plover/gui_qt/config_keyboard_widget_ui.py:60
+msgid "First-up chord send"
+msgstr ""
+
#. Widget: “KeyboardWidget”, text.
-#: plover/gui_qt/config_keyboard_widget_ui.py:36
+#: plover/gui_qt/config_keyboard_widget_ui.py:62
msgid "Arpeggiate"
msgstr ""
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:93
+msgid "Send chord on first key release"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:96
+msgid "Tap and then hold a chord to send it repeatedly."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:99
+msgid "Double tap to repeat"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:101
+msgid "Repeat delay (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:104
+msgid "Delay before chord starts repeating."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:107
+msgid "Repeat interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:110
+msgid "Interval between chord repetitions."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:113
+msgid "Device scan interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:116
+msgid "How often to scan for newly plugged-in devices."
+msgstr ""
+
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:205
+#: plover/gui_qt/config_serial_widget_ui.py:215
msgid "Serial"
msgstr ""
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:207
+#: plover/gui_qt/config_serial_widget_ui.py:218
msgid "Connection"
msgstr ""
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:209
-#: plover/gui_qt/config_serial_widget_ui.py:211
+#: plover/gui_qt/config_serial_widget_ui.py:220
+#: plover/gui_qt/config_serial_widget_ui.py:223
msgid "Port"
msgstr ""
#. Widget: “SerialWidget”, accessible description.
-#: plover/gui_qt/config_serial_widget_ui.py:213
+#: plover/gui_qt/config_serial_widget_ui.py:227
msgid "Serial port device name."
msgstr ""
#. Widget: “SerialWidget”, accessible description.
-#: plover/gui_qt/config_serial_widget_ui.py:215
-msgid "Scan for available serial ports."
+#: plover/gui_qt/config_serial_widget_ui.py:231
+msgid "Reload all available serial ports."
msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:217
-msgid "Scan"
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_serial_widget_ui.py:234
+#: plover/gui_qt/plugins_manager_ui.py:146
+msgid "Refresh"
msgstr ""
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:219
-#: plover/gui_qt/config_serial_widget_ui.py:221
+#: plover/gui_qt/config_serial_widget_ui.py:236
+#: plover/gui_qt/config_serial_widget_ui.py:239
msgid "Baudrate"
msgstr ""
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:223
+#: plover/gui_qt/config_serial_widget_ui.py:242
msgid "Data format"
msgstr ""
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:225
-#: plover/gui_qt/config_serial_widget_ui.py:227
+#: plover/gui_qt/config_serial_widget_ui.py:244
+#: plover/gui_qt/config_serial_widget_ui.py:247
msgid "Data bits"
msgstr ""
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:229
-#: plover/gui_qt/config_serial_widget_ui.py:231
+#: plover/gui_qt/config_serial_widget_ui.py:250
+#: plover/gui_qt/config_serial_widget_ui.py:253
msgid "Stop bits"
msgstr ""
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:233
-#: plover/gui_qt/config_serial_widget_ui.py:235
+#: plover/gui_qt/config_serial_widget_ui.py:256
+#: plover/gui_qt/config_serial_widget_ui.py:259
msgid "Parity"
msgstr ""
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:237
+#: plover/gui_qt/config_serial_widget_ui.py:265
msgid "Timeout"
msgstr ""
#. Widget: “SerialWidget”, text.
+#: plover/gui_qt/config_serial_widget_ui.py:267
+msgid "Duration (s)"
+msgstr ""
+
#. Widget: “SerialWidget”, accessible name.
-#: plover/gui_qt/config_serial_widget_ui.py:239
-#: plover/gui_qt/config_serial_widget_ui.py:241
+#: plover/gui_qt/config_serial_widget_ui.py:270
msgid "Duration"
msgstr ""
#. Widget: “SerialWidget”, accessible description.
-#: plover/gui_qt/config_serial_widget_ui.py:243
+#: plover/gui_qt/config_serial_widget_ui.py:274
msgid "Timeout duration in seconds."
msgstr ""
-#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:245
-msgid "Use timeout"
-msgstr ""
-
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:247
+#: plover/gui_qt/config_serial_widget_ui.py:277
msgid "Flow control"
msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:249
+#: plover/gui_qt/config_serial_widget_ui.py:279
msgid "Xon/Xoff"
msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:251
+#: plover/gui_qt/config_serial_widget_ui.py:281
msgid "RTS/CTS"
msgstr ""
#. Widget: “NopeOption” (empty config option message,
#. e.g. the machine option when selecting the Treal machine).
-#: plover/gui_qt/config_window.py:46
+#: plover/gui_qt/config_window.py:51
msgid "Nothing to see here!"
msgstr ""
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:175
+#: plover/gui_qt/config_window.py:173
msgid "Key"
msgstr ""
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:177
+#: plover/gui_qt/config_window.py:175
msgid "Action"
msgstr ""
#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:223
-msgid "Choice"
+#: plover/gui_qt/config_window.py:221
+msgid "Selected"
msgstr ""
#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:225
-msgid "Selected"
+#: plover/gui_qt/config_window.py:223
+msgid "Choice"
msgstr ""
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:319
+#: plover/gui_qt/config_window.py:354
msgid "Interface"
msgstr ""
-#: plover/gui_qt/config_window.py:320
+#: plover/gui_qt/config_window.py:357
+msgid "Appearance:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
+msgid "System"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:363
+msgid "Light"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:364
+msgid "Dark"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:368
+msgid ""
+"Set the application appearance:\n"
+"- System: follow the operating system mode\n"
+"- Light: force light mode\n"
+"- Dark: force dark mode"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
msgstr ""
-#: plover/gui_qt/config_window.py:321
+#: plover/gui_qt/config_window.py:378
msgid "Minimize the main window to systray on startup."
msgstr ""
-#: plover/gui_qt/config_window.py:322
+#: plover/gui_qt/config_window.py:381
msgid "Show paper tape:"
msgstr ""
-#: plover/gui_qt/config_window.py:323
+#: plover/gui_qt/config_window.py:384
msgid "Open the paper tape on startup."
msgstr ""
-#: plover/gui_qt/config_window.py:324
+#: plover/gui_qt/config_window.py:387
msgid "Show suggestions:"
msgstr ""
-#: plover/gui_qt/config_window.py:325
+#: plover/gui_qt/config_window.py:390
msgid "Open the suggestions dialog on startup."
msgstr ""
-#: plover/gui_qt/config_window.py:326
+#: plover/gui_qt/config_window.py:393
msgid "Add translation dialog opacity:"
msgstr ""
-#: plover/gui_qt/config_window.py:328
+#: plover/gui_qt/config_window.py:397
msgid ""
"Set the translation dialog opacity:\n"
"- 0 makes the dialog invisible\n"
"- 100 is fully opaque"
msgstr ""
-#: plover/gui_qt/config_window.py:331
+#: plover/gui_qt/config_window.py:403
msgid "Dictionaries display order:"
msgstr ""
-#: plover/gui_qt/config_window.py:333
+#: plover/gui_qt/config_window.py:406
msgid "top-down"
msgstr ""
-#: plover/gui_qt/config_window.py:333
+#: plover/gui_qt/config_window.py:406
msgid "bottom-up"
msgstr ""
-#: plover/gui_qt/config_window.py:334
+#: plover/gui_qt/config_window.py:409
msgid ""
"Set the display order for dictionaries:\n"
"- top-down: match the search order; highest priority first\n"
"- bottom-up: reverse search order; lowest priority first\n"
msgstr ""
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:339
+#: plover/gui_qt/config_window.py:418
msgid "Logging"
msgstr ""
-#: plover/gui_qt/config_window.py:340
+#: plover/gui_qt/config_window.py:421
msgid "Log file:"
msgstr ""
-#: plover/gui_qt/config_window.py:342
+#: plover/gui_qt/config_window.py:424
msgid "Select a log file"
msgstr ""
-#: plover/gui_qt/config_window.py:343
+#: plover/gui_qt/config_window.py:424
msgid "Log files (*.log)"
msgstr ""
-#: plover/gui_qt/config_window.py:344
+#: plover/gui_qt/config_window.py:426
msgid "File to use for logging strokes/translations."
msgstr ""
-#: plover/gui_qt/config_window.py:345
+#: plover/gui_qt/config_window.py:429
msgid "Log strokes:"
msgstr ""
-#: plover/gui_qt/config_window.py:346
+#: plover/gui_qt/config_window.py:432
msgid "Save strokes to the logfile."
msgstr ""
-#: plover/gui_qt/config_window.py:347
+#: plover/gui_qt/config_window.py:435
msgid "Log translations:"
msgstr ""
-#: plover/gui_qt/config_window.py:348
+#: plover/gui_qt/config_window.py:438
msgid "Save translations to the logfile."
msgstr ""
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:351 plover/gui_qt/main_window_ui.py:164
+#: plover/gui_qt/config_window.py:444 plover/gui_qt/main_window_ui.py:260
msgid "Machine"
msgstr ""
-#: plover/gui_qt/config_window.py:352
+#: plover/gui_qt/config_window.py:447
msgid "Machine:"
msgstr ""
-#: plover/gui_qt/config_window.py:357
+#: plover/gui_qt/config_window.py:459
msgid "Options:"
msgstr ""
-#: plover/gui_qt/config_window.py:358
+#: plover/gui_qt/config_window.py:461
msgid "Keymap:"
msgstr ""
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:361 plover/gui_qt/main_window_ui.py:180
+#: plover/gui_qt/config_window.py:466 plover/gui_qt/main_window_ui.py:292
msgid "Output"
msgstr ""
-#: plover/gui_qt/config_window.py:362
+#: plover/gui_qt/config_window.py:469
msgid "Enable at start:"
msgstr ""
-#: plover/gui_qt/config_window.py:363
+#: plover/gui_qt/config_window.py:472
msgid "Enable output on startup."
msgstr ""
-#: plover/gui_qt/config_window.py:364
+#: plover/gui_qt/config_window.py:475
msgid "Start attached:"
msgstr ""
-#: plover/gui_qt/config_window.py:365
+#: plover/gui_qt/config_window.py:479
msgid ""
"Disable preceding space on first output.\n"
"\n"
"This option is only applicable when spaces are placed before."
msgstr ""
-#: plover/gui_qt/config_window.py:368
+#: plover/gui_qt/config_window.py:485
msgid "Start capitalized:"
msgstr ""
-#: plover/gui_qt/config_window.py:369
+#: plover/gui_qt/config_window.py:488
msgid "Capitalize the first word."
msgstr ""
-#: plover/gui_qt/config_window.py:370
+#: plover/gui_qt/config_window.py:491
msgid "Space placement:"
msgstr ""
-#: plover/gui_qt/config_window.py:372
+#: plover/gui_qt/config_window.py:496
msgid "Before Output"
msgstr ""
-#: plover/gui_qt/config_window.py:373
+#: plover/gui_qt/config_window.py:497
msgid "After Output"
msgstr ""
-#: plover/gui_qt/config_window.py:375
+#: plover/gui_qt/config_window.py:500
msgid "Set automatic space placement: before or after each word."
msgstr ""
-#: plover/gui_qt/config_window.py:376
+#: plover/gui_qt/config_window.py:503
msgid "Undo levels:"
msgstr ""
-#: plover/gui_qt/config_window.py:380
+#: plover/gui_qt/config_window.py:507
msgid ""
"Set how many preceding strokes can be undone.\n"
"\n"
@@ -476,160 +565,200 @@ msgid ""
"dictionaries entry with the maximum number of strokes."
msgstr ""
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:386
-msgid "Plugins"
+#: plover/gui_qt/config_window.py:514
+msgid "Key press delay (ms):"
msgstr ""
-#: plover/gui_qt/config_window.py:387
-msgid "Extension:"
+#: plover/gui_qt/config_window.py:522
+msgid ""
+"Set the delay between emulated key presses (in milliseconds).\n"
+"\n"
+"Some programs may drop key presses if too many are sent\n"
+"within a short period of time. Increasing the delay gives\n"
+"programs time to process each key press.\n"
+"Setting the delay too high will negatively impact the\n"
+"performance of key stroke output."
msgstr ""
-#: plover/gui_qt/config_window.py:391
-msgid "Name"
+#: plover/gui_qt/config_window.py:532
+msgid "Linux keyboard layout:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:546
+msgid ""
+"Set the keyboard layout configured in your system.\n"
+"This only applies when using Linux/BSD and not using X11.\n"
+"\n"
+"When Wayland auto detect is selected,Plover is only able to detect the "
+"first keyboard layout\n"
+"and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:556
+msgid ""
+"When Wayland auto detect is selected, Plover is only able to detect the "
+"first keyboard layout and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:567
+msgid "Plugins"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:570
+msgid "Extensions:"
msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/config_window.py:391 plover/gui_qt/main_window_ui.py:182
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
msgid "Enabled"
msgstr ""
-#: plover/gui_qt/config_window.py:392
-msgid "Configure enabled plugin extensions."
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/plugins_manager_ui.py:136
+msgid "Name"
msgstr ""
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:395
-msgid "System"
+#: plover/gui_qt/config_window.py:580
+msgid "Configure enabled plugin extensions."
msgstr ""
-#: plover/gui_qt/config_window.py:396
+#: plover/gui_qt/config_window.py:589
msgid "System:"
msgstr ""
#. Widget: “ConfigWindow”, window title.
-#: plover/gui_qt/config_window_ui.py:43
+#: plover/gui_qt/config_window_ui.py:61
msgid "Plover: Configuration"
msgstr ""
+#. Widget: “ConsoleWidget”, window title.
+#: plover/gui_qt/console_widget_ui.py:49
+msgid "Form"
+msgstr ""
+
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:39
+#: plover/gui_qt/dictionaries_widget.py:46
+#, python-brace-format
msgid "Dictionaries ({extensions})"
msgstr ""
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:42
+#: plover/gui_qt/dictionaries_widget.py:49
+#, python-brace-format
msgid "{format} dictionaries ({extensions})"
msgstr ""
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:373
+#: plover/gui_qt/dictionaries_widget.py:391
msgid "disabled"
msgstr ""
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:376
+#: plover/gui_qt/dictionaries_widget.py:394
msgid "favorite"
msgstr ""
-#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:379
+#: plover/gui_qt/dictionaries_widget.py:398
+#, python-brace-format
msgid "errored: {exception}."
msgstr ""
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:383
+#: plover/gui_qt/dictionaries_widget.py:402
msgid "loading"
msgstr ""
#. Widget: “DictionariesWidget”, accessible text.
-#: plover/gui_qt/dictionaries_widget.py:386
+#: plover/gui_qt/dictionaries_widget.py:405
msgid "read-only"
msgstr ""
#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:392
+#: plover/gui_qt/dictionaries_widget.py:411
+#, python-brace-format
msgid "Full path: {path}."
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:395
+#: plover/gui_qt/dictionaries_widget.py:414
msgid "This dictionary is marked as the favorite."
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:398
+#: plover/gui_qt/dictionaries_widget.py:417
msgid "This dictionary is being loaded."
msgstr ""
-#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:401
+#: plover/gui_qt/dictionaries_widget.py:421
+#, python-brace-format
msgid "Loading this dictionary failed: {exception}."
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget.py:405
+#: plover/gui_qt/dictionaries_widget.py:427
msgid "This dictionary is read-only."
msgstr ""
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:585
+#: plover/gui_qt/dictionaries_widget.py:618
+#, python-brace-format
msgid "Save a copy of {name} as..."
msgstr ""
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:587
+#: plover/gui_qt/dictionaries_widget.py:620
+#, python-brace-format
msgid "{name} - Copy"
msgstr ""
#. Widget: “DictionariesWidget”, “save as merge” file picker.
-#: plover/gui_qt/dictionaries_widget.py:608
+#: plover/gui_qt/dictionaries_widget.py:642
+#, python-brace-format
msgid "Merge {names} as..."
msgstr ""
-#. Widget: “DictionariesWidget”, “add” file picker.
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget.py:635
-#: plover/gui_qt/dictionaries_widget_ui.py:161
+#: plover/gui_qt/dictionaries_widget.py:671
+#: plover/gui_qt/dictionaries_widget_ui.py:203
msgid "Load dictionaries"
msgstr ""
#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget.py:646
-#: plover/gui_qt/dictionaries_widget_ui.py:163
+#: plover/gui_qt/dictionaries_widget.py:683
+#: plover/gui_qt/dictionaries_widget_ui.py:205
msgid "Create dictionary"
msgstr ""
#. Widget: “DictionariesWidget”, title.
#. Widget: “DictionariesWidget”, accessible name.
-#: plover/gui_qt/dictionaries_widget_ui.py:109
-#: plover/gui_qt/dictionaries_widget_ui.py:111
+#: plover/gui_qt/dictionaries_widget_ui.py:125
+#: plover/gui_qt/dictionaries_widget_ui.py:208
msgid "Dictionaries"
msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:113
+#: plover/gui_qt/dictionaries_widget_ui.py:127
msgid "&Edit dictionaries"
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:115
+#: plover/gui_qt/dictionaries_widget_ui.py:130
msgid "Edit selected dictionaries"
msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:117
+#: plover/gui_qt/dictionaries_widget_ui.py:134
msgid "Ctrl+E"
msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:119
+#: plover/gui_qt/dictionaries_widget_ui.py:137
msgid "&Save dictionaries as..."
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:121
+#: plover/gui_qt/dictionaries_widget_ui.py:140
msgid ""
"Save the selected dictionaries: create a new copy of each dictionary, or "
"merge them into a new dictionary."
@@ -637,530 +766,592 @@ msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “PaperTape”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:123
-#: plover/gui_qt/paper_tape_ui.py:107
+#: plover/gui_qt/dictionaries_widget_ui.py:144
+#: plover/gui_qt/paper_tape_ui.py:129
msgid "Ctrl+S"
msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:125
+#: plover/gui_qt/dictionaries_widget_ui.py:147
msgid "&Remove dictionaries"
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:127
+#: plover/gui_qt/dictionaries_widget_ui.py:150
msgid "Remove selected dictionaries"
msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:129
-#: plover/gui_qt/dictionary_editor_ui.py:136
+#: plover/gui_qt/dictionaries_widget_ui.py:154
+#: plover/gui_qt/dictionary_editor_ui.py:149
msgid "Del"
msgstr ""
#. Widget: “DictionariesWidget”, text.
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:131
-#: plover/gui_qt/dictionary_editor_ui.py:138
+#: plover/gui_qt/dictionaries_widget_ui.py:157
+#: plover/gui_qt/dictionary_editor_ui.py:152
msgid "&Undo"
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:133
+#: plover/gui_qt/dictionaries_widget_ui.py:160
msgid "Undo last add/delete/reorder operation."
msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:135
-#: plover/gui_qt/dictionary_editor_ui.py:142
+#: plover/gui_qt/dictionaries_widget_ui.py:164
+#: plover/gui_qt/dictionary_editor_ui.py:159
msgid "Ctrl+Z"
msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:137
+#: plover/gui_qt/dictionaries_widget_ui.py:167
msgid "&Add dictionaries"
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:139
+#: plover/gui_qt/dictionaries_widget_ui.py:170
msgid "Add dictionaries"
msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:141
+#: plover/gui_qt/dictionaries_widget_ui.py:174
msgid "Ctrl+O"
msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:143
+#: plover/gui_qt/dictionaries_widget_ui.py:177
msgid "Add &translation"
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
#. Widget: “DictionaryEditor”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:145
-#: plover/gui_qt/dictionary_editor_ui.py:146
+#: plover/gui_qt/dictionaries_widget_ui.py:180
+#: plover/gui_qt/dictionary_editor_ui.py:165
msgid "Add a new translation"
msgstr ""
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:147
-#: plover/gui_qt/dictionary_editor_ui.py:148
+#: plover/gui_qt/dictionaries_widget_ui.py:184
+#: plover/gui_qt/dictionary_editor_ui.py:169
msgid "Ctrl+N"
msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:149
+#: plover/gui_qt/dictionaries_widget_ui.py:187
msgid "Move dictionaries &up"
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:151
+#: plover/gui_qt/dictionaries_widget_ui.py:190
msgid "Move selected dictionaries up."
msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:153
+#: plover/gui_qt/dictionaries_widget_ui.py:193
msgid "Move dictionaries &down"
msgstr ""
#. Widget: “DictionariesWidget”, tool tip.
-#: plover/gui_qt/dictionaries_widget_ui.py:155
+#: plover/gui_qt/dictionaries_widget_ui.py:196
msgid "Move selected dictionaries down."
msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:157
+#: plover/gui_qt/dictionaries_widget_ui.py:199
msgid "Create a copy of each dictionary"
msgstr ""
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:159
+#: plover/gui_qt/dictionaries_widget_ui.py:201
msgid "Merge dictionaries into a new one"
msgstr ""
#. Widget: “DictionaryEditor”, window title.
-#: plover/gui_qt/dictionary_editor_ui.py:108
+#: plover/gui_qt/dictionary_editor_ui.py:140
msgid "Plover: Dictionary Editor"
msgstr ""
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:142
+msgid "&Delete"
+msgstr ""
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:145
+msgid "Delete selected entries."
+msgstr ""
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:155
+msgid "Undo last add/delete/edit operation."
+msgstr ""
+
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:162
+msgid "&New translation"
+msgstr ""
+
#. Widget: “DictionaryEditor”, accessible name.
#. Widget: “DictionaryEditor”, title.
-#: plover/gui_qt/dictionary_editor_ui.py:110
-#: plover/gui_qt/dictionary_editor_ui.py:112
+#: plover/gui_qt/dictionary_editor_ui.py:173
+#: plover/gui_qt/dictionary_editor_ui.py:176
msgid "Filter"
msgstr ""
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:114
+#: plover/gui_qt/dictionary_editor_ui.py:178
msgid "By strokes:"
msgstr ""
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:116
+#: plover/gui_qt/dictionary_editor_ui.py:181
msgid "Strokes filter"
msgstr ""
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:118
+#: plover/gui_qt/dictionary_editor_ui.py:185
msgid "Apply filter"
msgstr ""
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:120
+#: plover/gui_qt/dictionary_editor_ui.py:188
msgid "Apply"
msgstr ""
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:122
+#: plover/gui_qt/dictionary_editor_ui.py:190
msgid "By translation:"
msgstr ""
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:124
+#: plover/gui_qt/dictionary_editor_ui.py:193
msgid "Translation filter"
msgstr ""
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:126
+#: plover/gui_qt/dictionary_editor_ui.py:197
msgid "Clear filter"
msgstr ""
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:128
+#: plover/gui_qt/dictionary_editor_ui.py:203
msgid "Clear"
msgstr ""
#. Widget: “DictionaryEditor”, accessible name.
-#: plover/gui_qt/dictionary_editor_ui.py:130
+#: plover/gui_qt/dictionary_editor_ui.py:206
msgid "Mappings"
msgstr ""
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:132
-msgid "&Delete"
-msgstr ""
-
-#. Widget: “DictionaryEditor”, tool tip.
-#: plover/gui_qt/dictionary_editor_ui.py:134
-msgid "Delete selected entries."
-msgstr ""
-
-#. Widget: “DictionaryEditor”, tool tip.
-#: plover/gui_qt/dictionary_editor_ui.py:140
-msgid "Undo last add/delete/edit operation."
-msgstr ""
-
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:144
-msgid "&New translation"
-msgstr ""
-
#. Widget: “LookupDialog”, tooltip.
-#: plover/gui_qt/lookup_dialog.py:14
+#: plover/gui_qt/lookup_dialog.py:12
msgid "Search the dictionary for translations."
msgstr ""
-#: plover/gui_qt/lookup_dialog.py:16
+#: plover/gui_qt/lookup_dialog.py:14
msgid "Lookup"
msgstr ""
#. Widget: “LookupDialog”, window title.
-#: plover/gui_qt/lookup_dialog_ui.py:56
+#: plover/gui_qt/lookup_dialog_ui.py:72
msgid "Plover: Dictionary Lookup"
msgstr ""
#. Widget: “LookupDialog”, accessible name.
-#: plover/gui_qt/lookup_dialog_ui.py:58
+#: plover/gui_qt/lookup_dialog_ui.py:75
msgid "Pattern"
msgstr ""
#. Widget: “LookupDialog”, accessible description.
-#: plover/gui_qt/lookup_dialog_ui.py:60
+#: plover/gui_qt/lookup_dialog_ui.py:79
msgid "Translation pattern to lookup."
msgstr ""
#. Widget: “LookupDialog”, accessible name.
-#: plover/gui_qt/lookup_dialog_ui.py:62
+#: plover/gui_qt/lookup_dialog_ui.py:83
msgid "Results"
msgstr ""
-#: plover/gui_qt/machine_options.py:106
-msgid ""
-"Arpeggiate allows using non-NKRO keyboards.\n"
-"\n"
-"Each key can be pressed separately and the\n"
-"space bar is pressed to send the stroke."
-msgstr ""
-
-#: plover/gui_qt/main_window.py:273
-msgid "Application is still running."
-msgstr ""
-
-#. Widget: “MainWindow”, accessible name.
-#: plover/gui_qt/main_window_ui.py:166
-msgid "State"
+#: plover/gui_qt/machine_options.py:36
+#, python-brace-format
+msgid "product: {value}"
msgstr ""
-#. Widget: “MainWindow”, accessible description.
-#: plover/gui_qt/main_window_ui.py:168
-msgid "Connection state for the current machine."
-msgstr ""
-
-#. Widget: “MainWindow”, tool tip.
-#. Widget: “MainWindow”, accessible description.
-#: plover/gui_qt/main_window_ui.py:170 plover/gui_qt/main_window_ui.py:174
-#: plover/gui_qt/main_window_ui.py:218
-msgid "Disconnect and reconnect the machine."
+#: plover/gui_qt/machine_options.py:37
+#, python-brace-format
+msgid "manufacturer: {value}"
msgstr ""
-#. Widget: “MainWindow”, accessible name.
-#: plover/gui_qt/main_window_ui.py:172
-msgid "Reconnect"
-msgstr ""
-
-#. Widget: “MainWindow”, accessible name.
-#: plover/gui_qt/main_window_ui.py:176
-msgid "Type"
-msgstr ""
-
-#. Widget: “MainWindow”, accessible description.
-#: plover/gui_qt/main_window_ui.py:178
-msgid "Change the current machine type."
-msgstr ""
-
-#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:184
-msgid "Disabled"
-msgstr ""
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:186
-msgid "&File"
-msgstr ""
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:188
-msgid "&Tools"
+#: plover/gui_qt/machine_options.py:38
+#, python-brace-format
+msgid "serial number: {value}"
msgstr ""
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:190
-msgid "&Help"
+#: plover/gui_qt/machine_options.py:46
+#, python-brace-format
+msgid "description: {value}"
msgstr ""
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:192
-msgid "&Edit"
+#: plover/gui_qt/machine_options.py:199
+msgid ""
+"Arpeggiate allows using non-NKRO keyboards.\n"
+"\n"
+"Each key can be pressed separately and the\n"
+"space bar is pressed to send the stroke."
msgstr ""
-#. Widget: “MainWindow”, window title.
-#: plover/gui_qt/main_window_ui.py:194
-msgid "Plover: Toolbar"
+#: plover/gui_qt/main_window.py:312
+msgid "Application is still running."
msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:196
+#: plover/gui_qt/main_window_ui.py:202
msgid "&Quit Plover"
msgstr ""
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:198
+#: plover/gui_qt/main_window_ui.py:205
msgid "Quit the application."
msgstr ""
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:200
+#: plover/gui_qt/main_window_ui.py:209
msgid "Ctrl+Q"
msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:202
+#: plover/gui_qt/main_window_ui.py:212
msgid "&Configure"
msgstr ""
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:204
+#: plover/gui_qt/main_window_ui.py:215
msgid "Open the configuration dialog."
msgstr ""
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:206
+#: plover/gui_qt/main_window_ui.py:219
msgid "Ctrl+,"
msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:208
+#: plover/gui_qt/main_window_ui.py:222
msgid "Open config &folder"
msgstr ""
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:210
+#: plover/gui_qt/main_window_ui.py:225
msgid "Open the configuration folder."
msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:212
+#: plover/gui_qt/main_window_ui.py:228
msgid "&About"
msgstr ""
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:214
+#: plover/gui_qt/main_window_ui.py:231
msgid "Open the about dialog."
msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:216
+#: plover/gui_qt/main_window_ui.py:234
msgid "&Reconnect machine"
msgstr ""
+#. Widget: “MainWindow”, tool tip.
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:237 plover/gui_qt/main_window_ui.py:272
+#: plover/gui_qt/main_window_ui.py:280
+msgid "Disconnect and reconnect the machine."
+msgstr ""
+
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:220
+#: plover/gui_qt/main_window_ui.py:241
msgid "Ctrl+R"
msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:222
+#: plover/gui_qt/main_window_ui.py:244
msgid "&Show"
msgstr ""
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:224
+#: plover/gui_qt/main_window_ui.py:247
msgid "Show the main window."
msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:226
+#: plover/gui_qt/main_window_ui.py:250
msgid "Toggle &output"
msgstr ""
#. Widget: “MainWindow”, tool tip.
-#: plover/gui_qt/main_window_ui.py:228
+#: plover/gui_qt/main_window_ui.py:253
msgid "Toggle the output."
msgstr ""
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:230
+#: plover/gui_qt/main_window_ui.py:257
msgid "Ctrl+."
msgstr ""
+#. Widget: “MainWindow”, accessible name.
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/main_window_ui.py:263 plover/gui_qt/plugins_manager_ui.py:133
+msgid "State"
+msgstr ""
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:267
+msgid "Connection state for the current machine."
+msgstr ""
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:276
+msgid "Reconnect"
+msgstr ""
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:285
+msgid "Type"
+msgstr ""
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:289
+msgid "Change the current machine type."
+msgstr ""
+
+#. Widget: “MainWindow”, text.
+#: plover/gui_qt/main_window_ui.py:296
+msgid "Disabled"
+msgstr ""
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:298
+msgid "&File"
+msgstr ""
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:300
+msgid "&Tools"
+msgstr ""
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:302
+msgid "&Help"
+msgstr ""
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:304
+msgid "&Edit"
+msgstr ""
+
+#. Widget: “MainWindow”, window title.
+#: plover/gui_qt/main_window_ui.py:306
+msgid "Plover: Toolbar"
+msgstr ""
+
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:26
+#: plover/gui_qt/paper_tape.py:30
msgid "Paper"
msgstr ""
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:28
+#: plover/gui_qt/paper_tape.py:32
msgid "Raw"
msgstr ""
#. Widget: “PaperTape”, tooltip.
-#: plover/gui_qt/paper_tape.py:105
+#: plover/gui_qt/paper_tape.py:122
msgid "Paper tape display of strokes."
msgstr ""
-#: plover/gui_qt/paper_tape.py:107
+#: plover/gui_qt/paper_tape.py:124
msgid "Paper Tape"
msgstr ""
-#: plover/gui_qt/paper_tape.py:207
+#: plover/gui_qt/paper_tape.py:237
msgid "Do you want to clear the paper tape?"
msgstr ""
-#: plover/gui_qt/paper_tape.py:221
+#: plover/gui_qt/paper_tape.py:255
msgid "Save Paper Tape"
msgstr ""
#. Paper tape, "save" file picker.
-#: plover/gui_qt/paper_tape.py:223
+#: plover/gui_qt/paper_tape.py:258
msgid "Text files (*.txt)"
msgstr ""
-#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:89
-msgid "Mode:"
-msgstr ""
-
-#. Widget: “PaperTape”, accessible name.
-#: plover/gui_qt/paper_tape_ui.py:91
-msgid "Mode"
-msgstr ""
-
-#. Widget: “PaperTape”, accessible description.
-#: plover/gui_qt/paper_tape_ui.py:93
-msgid "Select paper tape display mode."
-msgstr ""
-
-#. Widget: “PaperTape”, accessible name.
-#: plover/gui_qt/paper_tape_ui.py:95
-msgid "Tape"
-msgstr ""
-
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:97 plover/gui_qt/suggestions_dialog_ui.py:55
+#: plover/gui_qt/paper_tape_ui.py:112 plover/gui_qt/suggestions_dialog_ui.py:70
msgid "&Clear"
msgstr ""
#. Widget: “PaperTape”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:99
+#: plover/gui_qt/paper_tape_ui.py:115
msgid "Clear paper tape."
msgstr ""
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:101 plover/gui_qt/suggestions_dialog_ui.py:59
+#: plover/gui_qt/paper_tape_ui.py:119 plover/gui_qt/suggestions_dialog_ui.py:77
msgid "Ctrl+L"
msgstr ""
#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:103
+#: plover/gui_qt/paper_tape_ui.py:122
msgid "&Save"
msgstr ""
#. Widget: “PaperTape”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:105
+#: plover/gui_qt/paper_tape_ui.py:125
msgid "Save paper tape to file."
msgstr ""
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:109 plover/gui_qt/suggestions_dialog_ui.py:61
+#: plover/gui_qt/paper_tape_ui.py:132 plover/gui_qt/suggestions_dialog_ui.py:80
msgid "&Toggle \"always on top\""
msgstr ""
#. Widget: “PaperTape”, tool tip.
#. Widget: “SuggestionsDialog”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:111 plover/gui_qt/suggestions_dialog_ui.py:63
+#: plover/gui_qt/paper_tape_ui.py:135 plover/gui_qt/suggestions_dialog_ui.py:83
msgid "Toggle \"always on top\"."
msgstr ""
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:113 plover/gui_qt/suggestions_dialog_ui.py:65
+#: plover/gui_qt/paper_tape_ui.py:139 plover/gui_qt/suggestions_dialog_ui.py:87
msgid "Ctrl+T"
msgstr ""
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:115 plover/gui_qt/suggestions_dialog_ui.py:67
+#: plover/gui_qt/paper_tape_ui.py:142 plover/gui_qt/suggestions_dialog_ui.py:90
msgid "Select &font"
msgstr ""
#. Widget: “PaperTape”, tool tip.
#. Widget: “SuggestionsDialog”, tool tip.
-#: plover/gui_qt/paper_tape_ui.py:117 plover/gui_qt/suggestions_dialog_ui.py:69
+#: plover/gui_qt/paper_tape_ui.py:145 plover/gui_qt/suggestions_dialog_ui.py:93
msgid "Open font selection dialog."
msgstr ""
+#. Widget: “PaperTape”, text.
+#: plover/gui_qt/paper_tape_ui.py:148
+msgid "Mode:"
+msgstr ""
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:151
+msgid "Mode"
+msgstr ""
+
+#. Widget: “PaperTape”, accessible description.
+#: plover/gui_qt/paper_tape_ui.py:155
+msgid "Select paper tape display mode."
+msgstr ""
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:159
+msgid "Tape"
+msgstr ""
+
+#. Widget: “PluginsManager”, window title.
+#. Widget: “RunDialog”, window title.
+#: plover/gui_qt/plugins_manager_ui.py:130 plover/gui_qt/run_dialog_ui.py:51
+msgid "Dialog"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:139
+msgid "Version"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:142
+msgid "Summary"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:144
+msgid "Restart"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:148
+msgid "Uninstall"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:150
+msgid "Install/Update"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:152
+msgid "..."
+msgstr ""
+
#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/suggestions_dialog.py:27
+#: plover/gui_qt/suggestions_dialog.py:26
msgid "Suggest possible strokes for the last written words."
msgstr ""
#. Widget: “SuggestionsDialog”, accessible name.
-#: plover/gui_qt/suggestions_dialog.py:29
-#: plover/gui_qt/suggestions_dialog_ui.py:53
+#: plover/gui_qt/suggestions_dialog.py:28
+#: plover/gui_qt/suggestions_dialog_ui.py:97
msgid "Suggestions"
msgstr ""
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:58
+#: plover/gui_qt/suggestions_dialog.py:62
msgid "&Text"
msgstr ""
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:60
+#: plover/gui_qt/suggestions_dialog.py:64
msgid "&Strokes"
msgstr ""
#. Widget: “SuggestionsDialog”, tool tip.
-#: plover/gui_qt/suggestions_dialog_ui.py:57
+#: plover/gui_qt/suggestions_dialog_ui.py:73
msgid "Clear the history."
msgstr ""
#. Widget: “SuggestionsWidget”.
-#: plover/gui_qt/suggestions_widget.py:23
+#: plover/gui_qt/suggestions_widget.py:27
msgid "no suggestions"
msgstr ""
-#: plover/gui_qt/trayicon.py:120
+#: plover/gui_qt/trayicon.py:118
+#, python-brace-format
msgid "{machine} is {state}"
msgstr ""
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:126
+#: plover/gui_qt/trayicon.py:124
msgid "output is enabled"
msgstr ""
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:129
+#: plover/gui_qt/trayicon.py:127
msgid "output is disabled"
msgstr ""
+#: plover/gui_qt/utils.py:28
+msgid "Copy selection to clipboard"
+msgstr ""
+
#. Machine state.
#: plover/machine/base.py:20
msgid "stopped"
diff --git a/plover/messages/zh_tw/LC_MESSAGES/plover.po b/plover/messages/zh_tw/LC_MESSAGES/plover.po
index f5c35b566..518ba0dcf 100644
--- a/plover/messages/zh_tw/LC_MESSAGES/plover.po
+++ b/plover/messages/zh_tw/LC_MESSAGES/plover.po
@@ -1,25 +1,24 @@
-# Translations template for plover.
+# Chinese (Traditional, Taiwan) translations for plover.
# Copyright (C) 2021 ORGANIZATION
# This file is distributed under the same license as the plover project.
# FIRST AUTHOR , 2021.
#
msgid ""
msgstr ""
-"Project-Id-Version: plover 4.0.0.dev8\n"
+"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-04-16 05:40+0200\n"
+"POT-Creation-Date: 2026-03-07 10:58+0100\n"
"PO-Revision-Date: 2021-08-25 14:34+0800\n"
+"Last-Translator: \n"
+"Language: zh_TW\n"
"Language-Team: \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.9.0\n"
-"X-Generator: Poedit 3.0\n"
-"Last-Translator: \n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Language: zh_TW\n"
+"Generated-By: Babel 2.17.0\n"
-#: plover/__init__.py:19
+#: plover/__init__.py:22
msgid ""
"Founded by stenographer Mirabai Knight.\n"
"\n"
@@ -49,11 +48,11 @@ msgstr ""
""
#. Short description for Plover, currently not used in the interface.
-#: plover/__init__.py:33
+#: plover/__init__.py:38
msgid "Open Source Stenography Software"
msgstr "開源速錄軟體"
-#: plover/__init__.py:34
+#: plover/__init__.py:39
msgid ""
"Plover is a free open source program intended to bring realtime\n"
"stenographic technology not just to stenographers, but also to\n"
@@ -63,207 +62,393 @@ msgstr ""
"其目的在將實時速錄技術帶給專業速錄師、程式設計師、\n"
"業餘愛好者、以及追求速度的狂人。"
-#. Widget: “AboutDialog”, windowtitle.
-#: plover/gui_qt/about_dialog_ui.py:38
+#: plover/dictionary/helpers.py:24
+#, python-format
+msgid "dictionary `%s` loaded with %u invalid steno errors"
+msgstr ""
+
+#. Widget: “AboutDialog”, window title.
+#: plover/gui_qt/about_dialog_ui.py:53
msgid "Plover: About"
msgstr "Plover: 關於"
#. Widget: “AddTranslationDialog”, tooltip.
#. Widget: “AddTranslationWidget”, tooltip.
-#: plover/gui_qt/add_translation_dialog.py:8
-#: plover/gui_qt/add_translation_widget.py:22
+#: plover/gui_qt/add_translation_dialog.py:11
+#: plover/gui_qt/add_translation_widget.py:23
msgid "Add a new translation to the dictionary."
msgstr "在字典中添加新的翻譯。"
-#: plover/gui_qt/add_translation_dialog.py:10
+#: plover/gui_qt/add_translation_dialog.py:13
msgid "Add Translation"
msgstr "添加翻譯"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:199
+#: plover/gui_qt/add_translation_widget.py:194
+#, python-brace-format
msgid "{dictionary} (disabled)"
msgstr "{dictionary} (已禁用)"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:258
+#: plover/gui_qt/add_translation_widget.py:260
+#, python-brace-format
msgid "{strokes} maps to "
msgstr "{strokes} 對映至 "
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:269
+#: plover/gui_qt/add_translation_widget.py:272
msgid "Overwritten entries:"
msgstr "被覆蓋的項目:"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:274
+#: plover/gui_qt/add_translation_widget.py:277
+#, python-brace-format
msgid "{strokes} is not mapped in any dictionary"
msgstr "{strokes} 在所有字典中皆尚未指定"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:290
+#: plover/gui_qt/add_translation_widget.py:291
+#, python-brace-format
msgid "{translation} is mapped to: {strokes}"
msgstr "{translation}對映至: {strokes}"
#. Widget: “AddTranslationWidget”.
-#: plover/gui_qt/add_translation_widget.py:293
+#: plover/gui_qt/add_translation_widget.py:294
+#, python-brace-format
msgid "{translation} is not in the dictionary"
msgstr "{translation} 並不在此字典內"
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:101
+#: plover/gui_qt/add_translation_widget_ui.py:124
+msgid "Dictionary:"
+msgstr "字典:"
+
+#. Widget: “AddTranslationWidget”, text.
+#: plover/gui_qt/add_translation_widget_ui.py:126
msgid "Strokes:"
msgstr "和弦:"
+#. Widget: “AddTranslationWidget”, accessible name.
+#. Widget: “DictionaryEditor”.
+#: plover/gui_qt/add_translation_widget_ui.py:129
+#: plover/gui_qt/dictionary_editor.py:170
+msgid "Strokes"
+msgstr "和弦"
+
#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:103
+#: plover/gui_qt/add_translation_widget_ui.py:132
msgid "Translation:"
msgstr "翻譯:"
-#. Widget: “AddTranslationWidget”, text.
-#: plover/gui_qt/add_translation_widget_ui.py:105
-msgid "Dictionary:"
-msgstr "字典:"
+#. Widget: “AddTranslationWidget”, accessible name.
+#. Widget: “DictionaryEditor”.
+#: plover/gui_qt/add_translation_widget_ui.py:135
+#: plover/gui_qt/dictionary_editor.py:173
+msgid "Translation"
+msgstr "翻譯"
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#. Widget: “DictionaryEditor”.
+#: plover/gui_qt/add_translation_widget_ui.py:139
+#: plover/gui_qt/dictionary_editor.py:176
+msgid "Dictionary"
+msgstr "字典"
+
+#. Widget: “AddTranslationWidget”, accessible description.
+#: plover/gui_qt/add_translation_widget_ui.py:143
+#, fuzzy
+msgid "Select the target dictionary for the new translation."
+msgstr "在字典內尋找翻譯。"
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#: plover/gui_qt/add_translation_widget_ui.py:147
+msgid "Existing mappings (strokes)"
+msgstr ""
+
+#. Widget: “AddTranslationWidget”, accessible name.
+#: plover/gui_qt/add_translation_widget_ui.py:152
+msgid "Existing mappings (translations)"
+msgstr ""
+
+#. Widget: “FileWidget”, accessible name.
+#: plover/gui_qt/config_file_widget_ui.py:61
+#, fuzzy
+msgid "Log file path."
+msgstr "紀錄檔:"
+
+#. Widget: “FileWidget”, accessible description.
+#: plover/gui_qt/config_file_widget_ui.py:65
+#, fuzzy
+msgid "Path to the log file."
+msgstr "將和弦紀錄至紀錄檔。"
+
+#. Widget: “FileWidget”, accessible name.
+#: plover/gui_qt/config_file_widget_ui.py:69
+#, fuzzy
+msgid "Browse."
+msgstr "瀏覽"
+
+#. Widget: “FileWidget”, accessible description.
+#: plover/gui_qt/config_file_widget_ui.py:73
+#, fuzzy
+msgid "Open a file picker to select the log file."
+msgstr "將和弦紀錄至紀錄檔。"
#. Widget: “FileWidget”, text.
-#: plover/gui_qt/config_file_widget_ui.py:45
+#: plover/gui_qt/config_file_widget_ui.py:76
msgid "Browse"
msgstr "瀏覽"
+#. Widget: “KeyboardWidget”, tool tip.
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_keyboard_widget_ui.py:56
+#: plover/gui_qt/config_plover_hid_widget_ui.py:89
+msgid ""
+"When the first key in a chord is released, the chord is sent.\n"
+"If the key is pressed and released again, another chord is sent."
+msgstr ""
+
+#. Widget: “KeyboardWidget”, text.
+#: plover/gui_qt/config_keyboard_widget_ui.py:60
+msgid "First-up chord send"
+msgstr ""
+
#. Widget: “KeyboardWidget”, text.
-#: plover/gui_qt/config_keyboard_widget_ui.py:36
+#: plover/gui_qt/config_keyboard_widget_ui.py:62
msgid "Arpeggiate"
msgstr "琶音"
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:93
+msgid "Send chord on first key release"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:96
+msgid "Tap and then hold a chord to send it repeatedly."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:99
+msgid "Double tap to repeat"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:101
+msgid "Repeat delay (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:104
+msgid "Delay before chord starts repeating."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:107
+msgid "Repeat interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:110
+msgid "Interval between chord repetitions."
+msgstr ""
+
+#. Widget: “PloverHidWidget”, text.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:113
+msgid "Device scan interval (ms)"
+msgstr ""
+
+#. Widget: “PloverHidWidget”, tool tip.
+#: plover/gui_qt/config_plover_hid_widget_ui.py:116
+msgid "How often to scan for newly plugged-in devices."
+msgstr ""
+
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:215
+msgid "Serial"
+msgstr ""
+
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:209
+#: plover/gui_qt/config_serial_widget_ui.py:218
msgid "Connection"
msgstr "連接"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:211
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:220
+#: plover/gui_qt/config_serial_widget_ui.py:223
msgid "Port"
msgstr "連接埠"
+#. Widget: “SerialWidget”, accessible description.
+#: plover/gui_qt/config_serial_widget_ui.py:227
+msgid "Serial port device name."
+msgstr ""
+
+#. Widget: “SerialWidget”, accessible description.
+#: plover/gui_qt/config_serial_widget_ui.py:231
+msgid "Reload all available serial ports."
+msgstr ""
+
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:213
-msgid "Scan"
-msgstr "偵測"
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_serial_widget_ui.py:234
+#: plover/gui_qt/plugins_manager_ui.py:146
+msgid "Refresh"
+msgstr ""
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:215
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:236
+#: plover/gui_qt/config_serial_widget_ui.py:239
msgid "Baudrate"
msgstr "傳輸速率"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:217
+#: plover/gui_qt/config_serial_widget_ui.py:242
msgid "Data format"
msgstr "資料形式"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:219
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:244
+#: plover/gui_qt/config_serial_widget_ui.py:247
msgid "Data bits"
msgstr "資料位元數"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:221
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:250
+#: plover/gui_qt/config_serial_widget_ui.py:253
msgid "Stop bits"
msgstr "停止位元數"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:223
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:256
+#: plover/gui_qt/config_serial_widget_ui.py:259
msgid "Parity"
msgstr "同位元檢查"
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:225
+#: plover/gui_qt/config_serial_widget_ui.py:265
msgid "Timeout"
msgstr "等待時間"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:227
-msgid "seconds"
-msgstr "秒"
+#: plover/gui_qt/config_serial_widget_ui.py:267
+msgid "Duration (s)"
+msgstr ""
-#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:229
-msgid "Use timeout"
-msgstr "使用等待時間"
+#. Widget: “SerialWidget”, accessible name.
+#: plover/gui_qt/config_serial_widget_ui.py:270
+#, fuzzy
+msgid "Duration"
+msgstr "字根"
+
+#. Widget: “SerialWidget”, accessible description.
+#: plover/gui_qt/config_serial_widget_ui.py:274
+msgid "Timeout duration in seconds."
+msgstr ""
#. Widget: “SerialWidget”, title.
-#: plover/gui_qt/config_serial_widget_ui.py:231
+#: plover/gui_qt/config_serial_widget_ui.py:277
msgid "Flow control"
msgstr "流量控制"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:233
+#: plover/gui_qt/config_serial_widget_ui.py:279
msgid "Xon/Xoff"
msgstr "Xon/Xoff"
#. Widget: “SerialWidget”, text.
-#: plover/gui_qt/config_serial_widget_ui.py:235
+#: plover/gui_qt/config_serial_widget_ui.py:281
msgid "RTS/CTS"
msgstr "RTS/CTS"
#. Widget: “NopeOption” (empty config option message,
#. e.g. the machine option when selecting the Treal machine).
-#: plover/gui_qt/config_window.py:45
+#: plover/gui_qt/config_window.py:51
msgid "Nothing to see here!"
msgstr "這裡沒有東西!"
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:145
+#: plover/gui_qt/config_window.py:173
msgid "Key"
msgstr "按鍵"
#. Widget: “KeymapOption”.
-#: plover/gui_qt/config_window.py:147
+#: plover/gui_qt/config_window.py:175
msgid "Action"
msgstr "字根"
#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:196
-msgid "Choice"
-msgstr "選項"
-
-#. Widget: “MultipleChoicesOption”.
-#: plover/gui_qt/config_window.py:198
+#: plover/gui_qt/config_window.py:221
msgid "Selected"
msgstr "已選取"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:294
+#. Widget: “MultipleChoicesOption”.
+#: plover/gui_qt/config_window.py:223
+msgid "Choice"
+msgstr "選項"
+
+#: plover/gui_qt/config_window.py:354
msgid "Interface"
msgstr "界面"
-#: plover/gui_qt/config_window.py:295
+#: plover/gui_qt/config_window.py:357
+msgid "Appearance:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
+msgid "System"
+msgstr "語言系統"
+
+#: plover/gui_qt/config_window.py:363
+msgid "Light"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:364
+msgid "Dark"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:368
+msgid ""
+"Set the application appearance:\n"
+"- System: follow the operating system mode\n"
+"- Light: force light mode\n"
+"- Dark: force dark mode"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
msgstr "啟用時最小化:"
-#: plover/gui_qt/config_window.py:296
+#: plover/gui_qt/config_window.py:378
msgid "Minimize the main window to systray on startup."
msgstr "開啟程式時將主視窗最小化。"
-#: plover/gui_qt/config_window.py:297
+#: plover/gui_qt/config_window.py:381
msgid "Show paper tape:"
msgstr "顯示輸入紙帶:"
-#: plover/gui_qt/config_window.py:298
+#: plover/gui_qt/config_window.py:384
msgid "Open the paper tape on startup."
msgstr "開啟程式時同時開啟輸入紙帶。"
-#: plover/gui_qt/config_window.py:299
+#: plover/gui_qt/config_window.py:387
msgid "Show suggestions:"
msgstr "顯示和弦建議:"
-#: plover/gui_qt/config_window.py:300
+#: plover/gui_qt/config_window.py:390
msgid "Open the suggestions dialog on startup."
msgstr "開啟程式時同時開啟和弦建議視窗。"
-#: plover/gui_qt/config_window.py:301
+#: plover/gui_qt/config_window.py:393
msgid "Add translation dialog opacity:"
msgstr "「新增翻譯」視窗透明度:"
-#: plover/gui_qt/config_window.py:303
+#: plover/gui_qt/config_window.py:397
msgid ""
"Set the translation dialog opacity:\n"
"- 0 makes the dialog invisible\n"
@@ -272,99 +457,96 @@ msgstr ""
"設定「新增翻譯」視窗透明度\n"
"-0為完全透明,100為完全不透明"
-#: plover/gui_qt/config_window.py:306
+#: plover/gui_qt/config_window.py:403
msgid "Dictionaries display order:"
msgstr "字典顯示順序:"
-#: plover/gui_qt/config_window.py:308
+#: plover/gui_qt/config_window.py:406
msgid "top-down"
msgstr "由上而下"
-#: plover/gui_qt/config_window.py:308
+#: plover/gui_qt/config_window.py:406
msgid "bottom-up"
msgstr "由下而上"
-#: plover/gui_qt/config_window.py:309
+#: plover/gui_qt/config_window.py:409
msgid ""
"Set the display order for dictionaries:\n"
"- top-down: match the search order; highest priority first\n"
"- bottom-up: reverse search order; lowest priority first\n"
msgstr "設定字典的顯示順序。\n"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:314
+#: plover/gui_qt/config_window.py:418
msgid "Logging"
msgstr "輸入紀錄"
-#: plover/gui_qt/config_window.py:315
+#: plover/gui_qt/config_window.py:421
msgid "Log file:"
msgstr "紀錄檔:"
-#: plover/gui_qt/config_window.py:317
+#: plover/gui_qt/config_window.py:424
msgid "Select a log file"
msgstr "選擇紀錄檔"
-#: plover/gui_qt/config_window.py:318
+#: plover/gui_qt/config_window.py:424
msgid "Log files (*.log)"
msgstr "記錄檔(*.log)"
-#: plover/gui_qt/config_window.py:319
+#: plover/gui_qt/config_window.py:426
msgid "File to use for logging strokes/translations."
msgstr "用來記錄輸入過的和弦、翻譯的檔案。"
-#: plover/gui_qt/config_window.py:320
+#: plover/gui_qt/config_window.py:429
msgid "Log strokes:"
msgstr "紀錄和弦:"
-#: plover/gui_qt/config_window.py:321
+#: plover/gui_qt/config_window.py:432
msgid "Save strokes to the logfile."
msgstr "將和弦紀錄至紀錄檔。"
-#: plover/gui_qt/config_window.py:322
+#: plover/gui_qt/config_window.py:435
msgid "Log translations:"
msgstr "紀錄翻譯:"
-#: plover/gui_qt/config_window.py:323
+#: plover/gui_qt/config_window.py:438
msgid "Save translations to the logfile."
msgstr "將翻譯紀錄至紀錄檔。"
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:326 plover/gui_qt/main_window_ui.py:170
+#: plover/gui_qt/config_window.py:444 plover/gui_qt/main_window_ui.py:260
msgid "Machine"
msgstr "輸入硬體"
-#: plover/gui_qt/config_window.py:327
+#: plover/gui_qt/config_window.py:447
msgid "Machine:"
msgstr "輸入硬體:"
-#: plover/gui_qt/config_window.py:332
+#: plover/gui_qt/config_window.py:459
msgid "Options:"
msgstr "選項:"
-#: plover/gui_qt/config_window.py:333
+#: plover/gui_qt/config_window.py:461
msgid "Keymap:"
msgstr "按鍵映射:"
-#. Widget: “ConfigWindow”.
#. Widget: “MainWindow”, title.
-#: plover/gui_qt/config_window.py:336 plover/gui_qt/main_window_ui.py:174
+#: plover/gui_qt/config_window.py:466 plover/gui_qt/main_window_ui.py:292
msgid "Output"
msgstr "輸出"
-#: plover/gui_qt/config_window.py:337
+#: plover/gui_qt/config_window.py:469
msgid "Enable at start:"
msgstr "啟用時啟用輸出:"
-#: plover/gui_qt/config_window.py:338
+#: plover/gui_qt/config_window.py:472
msgid "Enable output on startup."
msgstr "啟用時啟用輸出。"
-#: plover/gui_qt/config_window.py:339
+#: plover/gui_qt/config_window.py:475
msgid "Start attached:"
msgstr "首字取消空白:"
-#: plover/gui_qt/config_window.py:340
+#: plover/gui_qt/config_window.py:479
msgid ""
"Disable preceding space on first output.\n"
"\n"
@@ -374,35 +556,35 @@ msgstr ""
"\n"
"這個選項只適用於空白放置於字串前方時。"
-#: plover/gui_qt/config_window.py:343
+#: plover/gui_qt/config_window.py:485
msgid "Start capitalized:"
msgstr "首字大寫:"
-#: plover/gui_qt/config_window.py:344
+#: plover/gui_qt/config_window.py:488
msgid "Capitalize the first word."
msgstr "將第一個字母大寫。"
-#: plover/gui_qt/config_window.py:345
+#: plover/gui_qt/config_window.py:491
msgid "Space placement:"
msgstr "空白的放置位置:"
-#: plover/gui_qt/config_window.py:347
+#: plover/gui_qt/config_window.py:496
msgid "Before Output"
msgstr "在字串前面"
-#: plover/gui_qt/config_window.py:348
+#: plover/gui_qt/config_window.py:497
msgid "After Output"
msgstr "在字串後面"
-#: plover/gui_qt/config_window.py:350
+#: plover/gui_qt/config_window.py:500
msgid "Set automatic space placement: before or after each word."
msgstr "設定空白的放置位置。"
-#: plover/gui_qt/config_window.py:351
+#: plover/gui_qt/config_window.py:503
msgid "Undo levels:"
msgstr "最大回復次數:"
-#: plover/gui_qt/config_window.py:355
+#: plover/gui_qt/config_window.py:507
msgid ""
"Set how many preceding strokes can be undone.\n"
"\n"
@@ -410,138 +592,206 @@ msgid ""
"dictionaries entry with the maximum number of strokes."
msgstr "設定回復的最大次數。"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:361
+#: plover/gui_qt/config_window.py:514
+msgid "Key press delay (ms):"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:522
+msgid ""
+"Set the delay between emulated key presses (in milliseconds).\n"
+"\n"
+"Some programs may drop key presses if too many are sent\n"
+"within a short period of time. Increasing the delay gives\n"
+"programs time to process each key press.\n"
+"Setting the delay too high will negatively impact the\n"
+"performance of key stroke output."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:532
+msgid "Linux keyboard layout:"
+msgstr ""
+
+#: plover/gui_qt/config_window.py:546
+msgid ""
+"Set the keyboard layout configured in your system.\n"
+"This only applies when using Linux/BSD and not using X11.\n"
+"\n"
+"When Wayland auto detect is selected,Plover is only able to detect the "
+"first keyboard layout\n"
+"and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:556
+msgid ""
+"When Wayland auto detect is selected, Plover is only able to detect the "
+"first keyboard layout and can not detect layout switches."
+msgstr ""
+
+#: plover/gui_qt/config_window.py:567
msgid "Plugins"
msgstr "外掛程式"
-#: plover/gui_qt/config_window.py:362
-msgid "Extension:"
+#: plover/gui_qt/config_window.py:570
+#, fuzzy
+msgid "Extensions:"
msgstr "擴充程式:"
-#: plover/gui_qt/config_window.py:366
-msgid "Name"
-msgstr "名稱"
-
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/config_window.py:366 plover/gui_qt/main_window_ui.py:176
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
msgid "Enabled"
msgstr "已啟用"
-#: plover/gui_qt/config_window.py:367
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/config_window.py:578 plover/gui_qt/plugins_manager_ui.py:136
+msgid "Name"
+msgstr "名稱"
+
+#: plover/gui_qt/config_window.py:580
msgid "Configure enabled plugin extensions."
msgstr "設定已開啟的外掛程式。"
-#. Widget: “ConfigWindow”.
-#: plover/gui_qt/config_window.py:370
-msgid "System"
-msgstr "語言系統"
-
-#: plover/gui_qt/config_window.py:371
+#: plover/gui_qt/config_window.py:589
msgid "System:"
msgstr "語言系統:"
-#. Widget: “ConfigWindow”, windowtitle.
-#: plover/gui_qt/config_window_ui.py:43
+#. Widget: “ConfigWindow”, window title.
+#: plover/gui_qt/config_window_ui.py:61
msgid "Plover: Configuration"
msgstr "Plover: 設定"
+#. Widget: “ConsoleWidget”, window title.
+#: plover/gui_qt/console_widget_ui.py:49
+msgid "Form"
+msgstr ""
+
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:43
+#: plover/gui_qt/dictionaries_widget.py:46
+#, python-brace-format
msgid "Dictionaries ({extensions})"
msgstr "字典 ({extensions})"
#. Widget: “DictionariesWidget”, file picker.
-#: plover/gui_qt/dictionaries_widget.py:46
+#: plover/gui_qt/dictionaries_widget.py:49
+#, python-brace-format
msgid "{format} dictionaries ({extensions})"
msgstr "{format} 字典 ({extensions})"
-#. Widget: “DictionariesWidget”, “add” menu.
-#: plover/gui_qt/dictionaries_widget.py:106
-msgid "Open dictionaries"
-msgstr "開啟字典"
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:391
+#, fuzzy
+msgid "disabled"
+msgstr "已禁用"
-#. Widget: “DictionariesWidget”, “add” menu.
-#. Widget: “DictionariesWidget”, “new” file picker.
-#: plover/gui_qt/dictionaries_widget.py:110
-#: plover/gui_qt/dictionaries_widget.py:483
-msgid "New dictionary"
-msgstr "新字典"
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:394
+msgid "favorite"
+msgstr ""
-#. Widget: “DictionariesWidget”, “save” menu.
-#: plover/gui_qt/dictionaries_widget.py:117
-msgid "Create a copy of each dictionary"
-msgstr "複製每一個字典"
+#: plover/gui_qt/dictionaries_widget.py:398
+#, python-brace-format
+msgid "errored: {exception}."
+msgstr ""
-#. Widget: “DictionariesWidget”, “save” menu.
-#: plover/gui_qt/dictionaries_widget.py:121
-msgid "Merge dictionaries into a new one"
-msgstr "合併字典"
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:402
+#, fuzzy
+msgid "loading"
+msgstr "輸入紀錄"
+
+#. Widget: “DictionariesWidget”, accessible text.
+#: plover/gui_qt/dictionaries_widget.py:405
+msgid "read-only"
+msgstr ""
#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:196
+#: plover/gui_qt/dictionaries_widget.py:411
+#, python-brace-format
+msgid "Full path: {path}."
+msgstr ""
+
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget.py:414
+#, fuzzy
+msgid "This dictionary is marked as the favorite."
+msgstr "字典已被加到最愛。"
+
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget.py:417
msgid "This dictionary is being loaded."
msgstr "字典正在載入中…"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:205
-msgid "This dictionary is read-only."
+#: plover/gui_qt/dictionaries_widget.py:421
+#, fuzzy, python-brace-format
+msgid "Loading this dictionary failed: {exception}."
msgstr "字典為唯讀狀態。"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:209
-msgid "This dictionary is marked as a favorite."
-msgstr "字典已被加到最愛。"
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget.py:427
+msgid "This dictionary is read-only."
+msgstr "字典為唯讀狀態。"
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:399
+#: plover/gui_qt/dictionaries_widget.py:618
+#, python-brace-format
msgid "Save a copy of {name} as..."
msgstr "將{name}另存至..."
#. Widget: “DictionariesWidget”, “save as copy” file picker.
-#: plover/gui_qt/dictionaries_widget.py:401
+#: plover/gui_qt/dictionaries_widget.py:620
+#, python-brace-format
msgid "{name} - Copy"
msgstr "{name} - 副本"
#. Widget: “DictionariesWidget”, “save as merge” file picker.
-#: plover/gui_qt/dictionaries_widget.py:422
+#: plover/gui_qt/dictionaries_widget.py:642
+#, python-brace-format
msgid "Merge {names} as..."
msgstr "合併 {names} 為..."
-#. Widget: “DictionariesWidget”, “add” file picker.
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget.py:466
-#: plover/gui_qt/dictionaries_widget_ui.py:130
-msgid "Add dictionaries"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget.py:671
+#: plover/gui_qt/dictionaries_widget_ui.py:203
+#, fuzzy
+msgid "Load dictionaries"
msgstr "新增字典"
+#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:102
+#: plover/gui_qt/dictionaries_widget.py:683
+#: plover/gui_qt/dictionaries_widget_ui.py:205
+#, fuzzy
+msgid "Create dictionary"
+msgstr "新字典"
+
+#. Widget: “DictionariesWidget”, title.
+#. Widget: “DictionariesWidget”, accessible name.
+#: plover/gui_qt/dictionaries_widget_ui.py:125
+#: plover/gui_qt/dictionaries_widget_ui.py:208
msgid "Dictionaries"
msgstr "字典"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:104
+#: plover/gui_qt/dictionaries_widget_ui.py:127
msgid "&Edit dictionaries"
msgstr "&編輯字典"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:106
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:130
msgid "Edit selected dictionaries"
msgstr "編輯選中的字典"
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:108
+#: plover/gui_qt/dictionaries_widget_ui.py:134
msgid "Ctrl+E"
msgstr "Ctrl+E"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:110
+#: plover/gui_qt/dictionaries_widget_ui.py:137
msgid "&Save dictionaries as..."
msgstr "&另存字典為..."
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:112
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:140
msgid ""
"Save the selected dictionaries: create a new copy of each dictionary, or "
"merge them into a new dictionary."
@@ -549,176 +799,243 @@ msgstr "將字典存檔:各自存檔或是合成一個檔案。"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “PaperTape”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:114
-#: plover/gui_qt/paper_tape_ui.py:99
+#: plover/gui_qt/dictionaries_widget_ui.py:144
+#: plover/gui_qt/paper_tape_ui.py:129
msgid "Ctrl+S"
msgstr "Ctrl+S"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:116
+#: plover/gui_qt/dictionaries_widget_ui.py:147
msgid "&Remove dictionaries"
msgstr "&移除字典"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:118
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:150
msgid "Remove selected dictionaries"
msgstr "移除選中的字典"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:120
-#: plover/gui_qt/dictionary_editor_ui.py:116
+#: plover/gui_qt/dictionaries_widget_ui.py:154
+#: plover/gui_qt/dictionary_editor_ui.py:149
msgid "Del"
msgstr "刪除"
#. Widget: “DictionariesWidget”, text.
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:122
-#: plover/gui_qt/dictionary_editor_ui.py:118
+#: plover/gui_qt/dictionaries_widget_ui.py:157
+#: plover/gui_qt/dictionary_editor_ui.py:152
msgid "&Undo"
msgstr "&回復"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:124
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:160
msgid "Undo last add/delete/reorder operation."
msgstr "回復上一個動作。"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:126
-#: plover/gui_qt/dictionary_editor_ui.py:122
+#: plover/gui_qt/dictionaries_widget_ui.py:164
+#: plover/gui_qt/dictionary_editor_ui.py:159
msgid "Ctrl+Z"
msgstr "Ctrl+Z"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:128
+#: plover/gui_qt/dictionaries_widget_ui.py:167
msgid "&Add dictionaries"
msgstr "&新增字典"
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:170
+msgid "Add dictionaries"
+msgstr "新增字典"
+
#. Widget: “DictionariesWidget”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:132
+#: plover/gui_qt/dictionaries_widget_ui.py:174
msgid "Ctrl+O"
msgstr "Ctrl+O"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:134
+#: plover/gui_qt/dictionaries_widget_ui.py:177
msgid "Add &translation"
msgstr "新增 &翻譯"
-#. Widget: “DictionariesWidget”, tooltip.
-#. Widget: “DictionaryEditor”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:136
-#: plover/gui_qt/dictionary_editor_ui.py:126
+#. Widget: “DictionariesWidget”, tool tip.
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:180
+#: plover/gui_qt/dictionary_editor_ui.py:165
msgid "Add a new translation"
msgstr "新增新的翻譯"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
-#: plover/gui_qt/dictionaries_widget_ui.py:138
-#: plover/gui_qt/dictionary_editor_ui.py:128
+#: plover/gui_qt/dictionaries_widget_ui.py:184
+#: plover/gui_qt/dictionary_editor_ui.py:169
msgid "Ctrl+N"
msgstr "Ctrl+N"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:140
+#: plover/gui_qt/dictionaries_widget_ui.py:187
msgid "Move dictionaries &up"
msgstr "將字典向&上 移動"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:142
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:190
msgid "Move selected dictionaries up."
msgstr "將字典向上移動。"
#. Widget: “DictionariesWidget”, text.
-#: plover/gui_qt/dictionaries_widget_ui.py:144
+#: plover/gui_qt/dictionaries_widget_ui.py:193
msgid "Move dictionaries &down"
msgstr "將字典向&下 移動"
-#. Widget: “DictionariesWidget”, tooltip.
-#: plover/gui_qt/dictionaries_widget_ui.py:146
+#. Widget: “DictionariesWidget”, tool tip.
+#: plover/gui_qt/dictionaries_widget_ui.py:196
msgid "Move selected dictionaries down."
msgstr "將字典向下移動。"
-#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/dictionary_editor.py:163
-msgid "Strokes"
-msgstr "和弦"
-
-#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/dictionary_editor.py:166
-msgid "Translation"
-msgstr "翻譯"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget_ui.py:199
+msgid "Create a copy of each dictionary"
+msgstr "複製每一個字典"
-#. Widget: “DictionaryEditor”.
-#: plover/gui_qt/dictionary_editor.py:169
-msgid "Dictionary"
-msgstr "字典"
+#. Widget: “DictionariesWidget”, text.
+#: plover/gui_qt/dictionaries_widget_ui.py:201
+msgid "Merge dictionaries into a new one"
+msgstr "合併字典"
-#. Widget: “DictionaryEditor”, windowtitle.
-#: plover/gui_qt/dictionary_editor_ui.py:100
+#. Widget: “DictionaryEditor”, window title.
+#: plover/gui_qt/dictionary_editor_ui.py:140
msgid "Plover: Dictionary Editor"
msgstr "Plover:字典編輯器"
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:142
+msgid "&Delete"
+msgstr "&刪除"
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:145
+msgid "Delete selected entries."
+msgstr "刪除所選項目。"
+
+#. Widget: “DictionaryEditor”, tool tip.
+#: plover/gui_qt/dictionary_editor_ui.py:155
+msgid "Undo last add/delete/edit operation."
+msgstr "回復上一個動作。"
+
+#. Widget: “DictionaryEditor”, text.
+#: plover/gui_qt/dictionary_editor_ui.py:162
+msgid "&New translation"
+msgstr "&新增新的翻譯"
+
+#. Widget: “DictionaryEditor”, accessible name.
#. Widget: “DictionaryEditor”, title.
-#: plover/gui_qt/dictionary_editor_ui.py:102
+#: plover/gui_qt/dictionary_editor_ui.py:173
+#: plover/gui_qt/dictionary_editor_ui.py:176
msgid "Filter"
msgstr "過濾"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:104
+#: plover/gui_qt/dictionary_editor_ui.py:178
msgid "By strokes:"
msgstr "依照和弦:"
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:181
+#, fuzzy
+msgid "Strokes filter"
+msgstr "和弦"
+
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:185
+#, fuzzy
+msgid "Apply filter"
+msgstr "過濾"
+
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:106
+#: plover/gui_qt/dictionary_editor_ui.py:188
msgid "Apply"
msgstr "適用"
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:108
+#: plover/gui_qt/dictionary_editor_ui.py:190
msgid "By translation:"
msgstr "依照翻譯:"
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:193
+#, fuzzy
+msgid "Translation filter"
+msgstr "翻譯"
+
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:197
+#, fuzzy
+msgid "Clear filter"
+msgstr "過濾"
+
#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:110
+#: plover/gui_qt/dictionary_editor_ui.py:203
msgid "Clear"
msgstr "清除"
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:112
-msgid "&Delete"
-msgstr "&刪除"
-
-#. Widget: “DictionaryEditor”, tooltip.
-#: plover/gui_qt/dictionary_editor_ui.py:114
-msgid "Delete selected entries."
-msgstr "刪除所選項目。"
-
-#. Widget: “DictionaryEditor”, tooltip.
-#: plover/gui_qt/dictionary_editor_ui.py:120
-msgid "Undo last add/delete/edit operation."
-msgstr "回復上一個動作。"
-
-#. Widget: “DictionaryEditor”, text.
-#: plover/gui_qt/dictionary_editor_ui.py:124
-msgid "&New translation"
-msgstr "&新增新的翻譯"
+#. Widget: “DictionaryEditor”, accessible name.
+#: plover/gui_qt/dictionary_editor_ui.py:206
+msgid "Mappings"
+msgstr ""
#. Widget: “LookupDialog”, tooltip.
-#: plover/gui_qt/lookup_dialog.py:13
+#: plover/gui_qt/lookup_dialog.py:12
msgid "Search the dictionary for translations."
msgstr "在字典內尋找翻譯。"
-#: plover/gui_qt/lookup_dialog.py:15
+#: plover/gui_qt/lookup_dialog.py:14
msgid "Lookup"
msgstr "查詢"
-#. Widget: “LookupDialog”, windowtitle.
-#: plover/gui_qt/lookup_dialog_ui.py:56
+#. Widget: “LookupDialog”, window title.
+#: plover/gui_qt/lookup_dialog_ui.py:72
msgid "Plover: Dictionary Lookup"
msgstr "Plover:字典查詢"
-#: plover/gui_qt/machine_options.py:104
+#. Widget: “LookupDialog”, accessible name.
+#: plover/gui_qt/lookup_dialog_ui.py:75
+#, fuzzy
+msgid "Pattern"
+msgstr "紙帶模式"
+
+#. Widget: “LookupDialog”, accessible description.
+#: plover/gui_qt/lookup_dialog_ui.py:79
+msgid "Translation pattern to lookup."
+msgstr ""
+
+#. Widget: “LookupDialog”, accessible name.
+#: plover/gui_qt/lookup_dialog_ui.py:83
+msgid "Results"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:36
+#, python-brace-format
+msgid "product: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:37
+#, python-brace-format
+msgid "manufacturer: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:38
+#, python-brace-format
+msgid "serial number: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:46
+#, python-brace-format
+msgid "description: {value}"
+msgstr ""
+
+#: plover/gui_qt/machine_options.py:199
msgid ""
"Arpeggiate allows using non-NKRO keyboards.\n"
"\n"
@@ -730,258 +1047,358 @@ msgstr ""
"每個鍵可以分開來輸出,\n"
"最後按下空白鍵以送出和弦。"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:172 plover/gui_qt/main_window_ui.py:212
-msgid "Disconnect and reconnect the machine."
-msgstr "將輸入硬體重新連接。"
-
-#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:178
-msgid "Disabled"
-msgstr "已禁用"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:180
-msgid "&File"
-msgstr "&檔案"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:182
-msgid "&Tools"
-msgstr "&工具"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:184
-msgid "&Help"
-msgstr "&協助"
-
-#. Widget: “MainWindow”, title.
-#: plover/gui_qt/main_window_ui.py:186
-msgid "&Edit"
-msgstr "&編輯"
-
-#. Widget: “MainWindow”, windowtitle.
-#: plover/gui_qt/main_window_ui.py:188
-msgid "Plover: Toolbar"
-msgstr "Plover: 工具列"
+#: plover/gui_qt/main_window.py:312
+msgid "Application is still running."
+msgstr ""
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:190
+#: plover/gui_qt/main_window_ui.py:202
msgid "&Quit Plover"
msgstr "&離開 Plover"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:192
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:205
msgid "Quit the application."
msgstr "關閉應用程式。"
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:194
+#: plover/gui_qt/main_window_ui.py:209
msgid "Ctrl+Q"
msgstr "Ctrl+Q"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:196
+#: plover/gui_qt/main_window_ui.py:212
msgid "&Configure"
msgstr "&設定"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:198
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:215
msgid "Open the configuration dialog."
msgstr "開啟設定視窗。"
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:200
+#: plover/gui_qt/main_window_ui.py:219
msgid "Ctrl+,"
msgstr "Ctrl+,"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:202
+#: plover/gui_qt/main_window_ui.py:222
msgid "Open config &folder"
msgstr "開啟設定檔目錄"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:204
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:225
msgid "Open the configuration folder."
msgstr "開啟設定檔所在目錄。"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:206
+#: plover/gui_qt/main_window_ui.py:228
msgid "&About"
msgstr "&關於"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:208
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:231
msgid "Open the about dialog."
msgstr "開啟關於視窗。"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:210
+#: plover/gui_qt/main_window_ui.py:234
msgid "&Reconnect machine"
msgstr "&重新連接輸入硬體"
+#. Widget: “MainWindow”, tool tip.
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:237 plover/gui_qt/main_window_ui.py:272
+#: plover/gui_qt/main_window_ui.py:280
+msgid "Disconnect and reconnect the machine."
+msgstr "將輸入硬體重新連接。"
+
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:214
+#: plover/gui_qt/main_window_ui.py:241
msgid "Ctrl+R"
msgstr "Ctrl+R"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:216
+#: plover/gui_qt/main_window_ui.py:244
msgid "&Show"
msgstr "&顯示"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:218
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:247
msgid "Show the main window."
msgstr "顯示主視窗。"
#. Widget: “MainWindow”, text.
-#: plover/gui_qt/main_window_ui.py:220
+#: plover/gui_qt/main_window_ui.py:250
msgid "Toggle &output"
msgstr "切換&輸出"
-#. Widget: “MainWindow”, tooltip.
-#: plover/gui_qt/main_window_ui.py:222
+#. Widget: “MainWindow”, tool tip.
+#: plover/gui_qt/main_window_ui.py:253
msgid "Toggle the output."
msgstr "切換輸出。"
#. Widget: “MainWindow”, shortcut.
-#: plover/gui_qt/main_window_ui.py:224
+#: plover/gui_qt/main_window_ui.py:257
msgid "Ctrl+."
msgstr "Ctrl+."
-#: plover/gui_qt/paper_tape.py:25
-msgid "Paper Tape"
-msgstr "紙帶"
+#. Widget: “MainWindow”, accessible name.
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/main_window_ui.py:263 plover/gui_qt/plugins_manager_ui.py:133
+#, fuzzy
+msgid "State"
+msgstr "&存檔"
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:267
+msgid "Connection state for the current machine."
+msgstr ""
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:276
+#, fuzzy
+msgid "Reconnect"
+msgstr "已連接"
+
+#. Widget: “MainWindow”, accessible name.
+#: plover/gui_qt/main_window_ui.py:285
+msgid "Type"
+msgstr ""
+
+#. Widget: “MainWindow”, accessible description.
+#: plover/gui_qt/main_window_ui.py:289
+msgid "Change the current machine type."
+msgstr ""
+
+#. Widget: “MainWindow”, text.
+#: plover/gui_qt/main_window_ui.py:296
+msgid "Disabled"
+msgstr "已禁用"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:298
+msgid "&File"
+msgstr "&檔案"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:300
+msgid "&Tools"
+msgstr "&工具"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:302
+msgid "&Help"
+msgstr "&協助"
+
+#. Widget: “MainWindow”, title.
+#: plover/gui_qt/main_window_ui.py:304
+msgid "&Edit"
+msgstr "&編輯"
+
+#. Widget: “MainWindow”, window title.
+#: plover/gui_qt/main_window_ui.py:306
+msgid "Plover: Toolbar"
+msgstr "Plover: 工具列"
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:32
+#: plover/gui_qt/paper_tape.py:30
msgid "Paper"
msgstr "紙帶模式"
#. Paper tape style.
-#: plover/gui_qt/paper_tape.py:34
+#: plover/gui_qt/paper_tape.py:32
msgid "Raw"
msgstr "原始模式"
-#: plover/gui_qt/paper_tape.py:158
+#. Widget: “PaperTape”, tooltip.
+#: plover/gui_qt/paper_tape.py:122
+msgid "Paper tape display of strokes."
+msgstr ""
+
+#: plover/gui_qt/paper_tape.py:124
+msgid "Paper Tape"
+msgstr "紙帶"
+
+#: plover/gui_qt/paper_tape.py:237
msgid "Do you want to clear the paper tape?"
msgstr "確認要清除紙帶嗎?"
-#: plover/gui_qt/paper_tape.py:172
+#: plover/gui_qt/paper_tape.py:255
msgid "Save Paper Tape"
msgstr "將紙帶存檔"
#. Paper tape, "save" file picker.
-#: plover/gui_qt/paper_tape.py:174
+#: plover/gui_qt/paper_tape.py:258
msgid "Text files (*.txt)"
msgstr "Text 文字檔 (*.txt)"
-#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:87
-msgid "Mode"
-msgstr "模式"
-
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:89 plover/gui_qt/suggestions_dialog_ui.py:53
+#: plover/gui_qt/paper_tape_ui.py:112 plover/gui_qt/suggestions_dialog_ui.py:70
msgid "&Clear"
msgstr "&清除"
-#. Widget: “PaperTape”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:91
+#. Widget: “PaperTape”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:115
msgid "Clear paper tape."
msgstr "清除紙帶。"
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:93 plover/gui_qt/suggestions_dialog_ui.py:57
+#: plover/gui_qt/paper_tape_ui.py:119 plover/gui_qt/suggestions_dialog_ui.py:77
msgid "Ctrl+L"
msgstr "Ctrl+L"
#. Widget: “PaperTape”, text.
-#: plover/gui_qt/paper_tape_ui.py:95
+#: plover/gui_qt/paper_tape_ui.py:122
msgid "&Save"
msgstr "&存檔"
-#. Widget: “PaperTape”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:97
+#. Widget: “PaperTape”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:125
msgid "Save paper tape to file."
msgstr "將輸入紙帶存檔。"
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:101 plover/gui_qt/suggestions_dialog_ui.py:59
+#: plover/gui_qt/paper_tape_ui.py:132 plover/gui_qt/suggestions_dialog_ui.py:80
msgid "&Toggle \"always on top\""
msgstr "&切換懸浮視窗"
-#. Widget: “PaperTape”, tooltip.
-#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:103 plover/gui_qt/suggestions_dialog_ui.py:61
+#. Widget: “PaperTape”, tool tip.
+#. Widget: “SuggestionsDialog”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:135 plover/gui_qt/suggestions_dialog_ui.py:83
msgid "Toggle \"always on top\"."
msgstr "切換懸浮視窗。"
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
-#: plover/gui_qt/paper_tape_ui.py:105 plover/gui_qt/suggestions_dialog_ui.py:63
+#: plover/gui_qt/paper_tape_ui.py:139 plover/gui_qt/suggestions_dialog_ui.py:87
msgid "Ctrl+T"
msgstr "Ctrl+T"
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
-#: plover/gui_qt/paper_tape_ui.py:107 plover/gui_qt/suggestions_dialog_ui.py:65
+#: plover/gui_qt/paper_tape_ui.py:142 plover/gui_qt/suggestions_dialog_ui.py:90
msgid "Select &font"
msgstr "選擇&字體"
-#. Widget: “PaperTape”, tooltip.
-#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/paper_tape_ui.py:109 plover/gui_qt/suggestions_dialog_ui.py:67
+#. Widget: “PaperTape”, tool tip.
+#. Widget: “SuggestionsDialog”, tool tip.
+#: plover/gui_qt/paper_tape_ui.py:145 plover/gui_qt/suggestions_dialog_ui.py:93
msgid "Open font selection dialog."
msgstr "開啟字體選擇視窗。"
+#. Widget: “PaperTape”, text.
+#: plover/gui_qt/paper_tape_ui.py:148
+#, fuzzy
+msgid "Mode:"
+msgstr "模式"
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:151
+msgid "Mode"
+msgstr "模式"
+
+#. Widget: “PaperTape”, accessible description.
+#: plover/gui_qt/paper_tape_ui.py:155
+#, fuzzy
+msgid "Select paper tape display mode."
+msgstr "將輸入紙帶存檔。"
+
+#. Widget: “PaperTape”, accessible name.
+#: plover/gui_qt/paper_tape_ui.py:159
+#, fuzzy
+msgid "Tape"
+msgstr "紙帶模式"
+
+#. Widget: “PluginsManager”, window title.
+#. Widget: “RunDialog”, window title.
+#: plover/gui_qt/plugins_manager_ui.py:130 plover/gui_qt/run_dialog_ui.py:51
+msgid "Dialog"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:139
+msgid "Version"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:142
+msgid "Summary"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:144
+msgid "Restart"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:148
+msgid "Uninstall"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:150
+msgid "Install/Update"
+msgstr ""
+
+#. Widget: “PluginsManager”, text.
+#: plover/gui_qt/plugins_manager_ui.py:152
+msgid "..."
+msgstr ""
+
#. Widget: “SuggestionsDialog”, tooltip.
#: plover/gui_qt/suggestions_dialog.py:26
msgid "Suggest possible strokes for the last written words."
msgstr "列出上一和弦的所有可能和弦。"
+#. Widget: “SuggestionsDialog”, accessible name.
#: plover/gui_qt/suggestions_dialog.py:28
+#: plover/gui_qt/suggestions_dialog_ui.py:97
msgid "Suggestions"
msgstr "和弦建議"
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:57
+#: plover/gui_qt/suggestions_dialog.py:62
msgid "&Text"
msgstr "&文字"
#. Widget: “SuggestionsDialog”, “font” menu.
-#: plover/gui_qt/suggestions_dialog.py:59
+#: plover/gui_qt/suggestions_dialog.py:64
msgid "&Strokes"
msgstr "&和弦"
-#. Widget: “SuggestionsDialog”, tooltip.
-#: plover/gui_qt/suggestions_dialog_ui.py:55
+#. Widget: “SuggestionsDialog”, tool tip.
+#: plover/gui_qt/suggestions_dialog_ui.py:73
msgid "Clear the history."
msgstr "清除歷史紀錄。"
#. Widget: “SuggestionsWidget”.
-#: plover/gui_qt/suggestions_widget.py:42
+#: plover/gui_qt/suggestions_widget.py:27
msgid "no suggestions"
msgstr "無和弦建議"
-#: plover/gui_qt/trayicon.py:116
+#: plover/gui_qt/trayicon.py:118
+#, python-brace-format
msgid "{machine} is {state}"
msgstr "{machine}{state}"
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:122
+#: plover/gui_qt/trayicon.py:124
msgid "output is enabled"
msgstr "輸出已開啟"
#. Tray icon tooltip.
-#: plover/gui_qt/trayicon.py:125
+#: plover/gui_qt/trayicon.py:127
msgid "output is disabled"
msgstr "輸出已關閉"
+#: plover/gui_qt/utils.py:28
+msgid "Copy selection to clipboard"
+msgstr ""
+
#. Machine state.
#: plover/machine/base.py:20
msgid "stopped"
@@ -1006,3 +1423,16 @@ msgstr "尚未連接"
#: plover/machine/keyboard.py:14
msgid "Keyboard"
msgstr "鍵盤"
+
+#~ msgid "Scan"
+#~ msgstr "偵測"
+
+#~ msgid "seconds"
+#~ msgstr "秒"
+
+#~ msgid "Use timeout"
+#~ msgstr "使用等待時間"
+
+#~ msgid "Open dictionaries"
+#~ msgstr "開啟字典"
+
diff --git a/plover_build_utils/functions.sh b/plover_build_utils/functions.sh
index d5b2b3b26..c81242977 100644
--- a/plover_build_utils/functions.sh
+++ b/plover_build_utils/functions.sh
@@ -303,6 +303,10 @@ release_prepare()
run "$python" setup.py patch_version "$1"
run git add plover/__init__.py
run git add doc/conf.py
+ run "$python" setup.py extract_messages
+ run git add plover/messages/plover.pot
+ run "$python" setup.py update_catalog
+ run git add plover/messages/*/*/*.po
run towncrier build --version "$1" --yes
}
diff --git a/plover_build_utils/pyqt.py b/plover_build_utils/pyqt.py
deleted file mode 100644
index 2e132ee29..000000000
--- a/plover_build_utils/pyqt.py
+++ /dev/null
@@ -1,43 +0,0 @@
-import re
-
-
-def gettext(contents):
- # replace ``_translate("context", `` by ``_(``
- contents = re.sub(
- r"\n", ('\n_ = __import__(__package__.split(".", 1)[0])._\n'), contents, 1
- )
- contents = re.sub(
- r"\n\s+_translate = QtCore\.QCoreApplication\.translate\n", "\n", contents
- )
-
- def repl(m):
- gd = m.groupdict()
- comment = "{ws}# i18n: Widget: “{widget}”".format(**gd)
- field = gd["field"]
- if field:
- field = " ".join(
- word.lower() for word in re.split(r"([A-Z][a-z_0-9]+)", field) if word
- )
- comment += ", {field}".format(field=field)
- comment += "."
- gd["pre2"] = gd["pre2"] or ""
- return "{comment}\n{ws}{pre1}{pre2}_(".format(comment=comment, **gd)
-
- contents = re.sub(
- (
- r"(?P *)(?P.*?)(?P\.set(?P\w+)\()?"
- r'\b_translate\("(?P.*)",\s'
- ),
- repl,
- contents,
- )
- assert re.search(r"\b_translate\(", contents) is None
- return contents
-
-
-def no_autoconnection(contents):
- # remove calls to ``QtCore.QMetaObject.connectSlotsByName``
- contents = re.sub(
- r"\n\s+QtCore\.QMetaObject\.connectSlotsByName\(\w+\)\n", "\n", contents
- )
- return contents
diff --git a/plover_build_utils/qt_ui_hooks.py b/plover_build_utils/qt_ui_hooks.py
new file mode 100644
index 000000000..90a5267bc
--- /dev/null
+++ b/plover_build_utils/qt_ui_hooks.py
@@ -0,0 +1,59 @@
+import re
+from typing import Match
+
+
+def convert_ui_translations(contents: str) -> str:
+ """
+ Transforms Qt-generated translation calls into standard Gettext calls.
+
+ This function processes the content of a Python file generated by `pyside6-uic` and:
+ 1. Injects a project-wide `_` translation function import at the top of the file.
+ 2. Replaces `QCoreApplication.translate("Context", "Message")` with `_("Message")`.
+ 3. Generates descriptive 'i18n:' comments above each translated string, including
+ the widget context and the specific UI field (e.g., 'window title', 'text', 'tool tip')
+ being set. These comments are later extracted by Babel to provide context for translators.
+ 4. Ensures compliance by asserting that no legacy `_translate` calls remain.
+ """
+ contents = re.sub(
+ r"\n", ('\n_ = __import__(__package__.split(".", 1)[0])._\n'), contents, 1
+ )
+
+ def repl(m: Match[str]) -> str:
+ gd = m.groupdict()
+ comment = "{ws}# i18n: Widget: “{widget}”".format(**gd)
+ field = gd["field"]
+ if field:
+ field = " ".join(
+ word.lower() for word in re.split(r"([A-Z][a-z_0-9]+)", field) if word
+ )
+ comment += ", {field}".format(field=field)
+ comment += "."
+ gd["pre2"] = gd["pre2"] or ""
+ return "{comment}\n{ws}{pre1}{pre2}_({msg}".format(comment=comment, **gd)
+
+ contents = re.sub(
+ (
+ r"(?P *)(?P.*?)(?P\.set(?P\w+)\()?"
+ r'(?:QCoreApplication\.translate)\("(?P.*?)",\s*'
+ r'(?Pu?"(?:[^"\\]|\\.)*?")'
+ r"(?:,\s*None)?"
+ ),
+ repl,
+ contents,
+ )
+ assert re.search(r"\b_translate\(", contents) is None
+ return contents
+
+
+def remove_ui_autoconnection(contents: str) -> str:
+ """
+ Removes automatic signal-slot connection calls from the generated UI file.
+
+ Strips `connectSlotsByName` calls to prevent implicit bindings via naming
+ conventions. This ensures all connections are explicitly defined for
+ improved clarity and maintainability.
+ """
+ contents = re.sub(
+ r"\n\s+QtCore\.QMetaObject\.connectSlotsByName\(\w+\)\n", "\n", contents
+ )
+ return contents
diff --git a/plover_build_utils/setup.py b/plover_build_utils/setup.py
index 722e5d57f..0c9d3660c 100644
--- a/plover_build_utils/setup.py
+++ b/plover_build_utils/setup.py
@@ -72,6 +72,7 @@ def babel_options(package, resource_dir=None):
},
"update_catalog": {
"domain": package,
+ "input_file": template,
"output_dir": localedir,
},
}
@@ -89,7 +90,7 @@ class BuildUi(Command):
]
hooks = """
- plover_build_utils.pyqt:no_autoconnection
+ plover_build_utils.qt_ui_hooks:remove_ui_autoconnection
""".split()
def initialize_options(self):
@@ -136,7 +137,7 @@ def _build_resources(self, src):
def run(self):
self.run_command("egg_info")
- std_hook_prefix = __package__ + ".pyqt:"
+ std_hook_prefix = __package__ + ".qt_ui_hooks:"
hooks_info = [
h[len(std_hook_prefix) :] if h.startswith(std_hook_prefix) else h
for h in self.hooks
diff --git a/setup.py b/setup.py
index b3b81e8b3..3defeadf9 100755
--- a/setup.py
+++ b/setup.py
@@ -2,6 +2,7 @@
# Copyright (c) 2010 Joshua Harlan Lifton.
# See LICENSE.txt for details.
+import glob
import os
import re
import subprocess
@@ -191,6 +192,18 @@ def run(self):
doc_conf_file_path, r"^release = .*$", 'release = "%s"', version
)
+ from babel.messages.pofile import read_po, write_po
+
+ for messages_file_path in glob.glob(
+ os.path.join("plover", "messages", "*", "LC_MESSAGES", "plover.po")
+ ):
+ with open(messages_file_path, "rb") as fp:
+ catalog = read_po(fp)
+ catalog.project = __software_name__
+ catalog.version = version
+ with open(messages_file_path, "wb") as fp:
+ write_po(fp, catalog)
+
cmdclass["patch_version"] = PatchVersion
@@ -358,7 +371,7 @@ def run(self):
options.update(babel_options(__software_name__))
BuildPy.build_dependencies.append("compile_catalog")
-BuildUi.hooks.append("plover_build_utils.pyqt:gettext")
+BuildUi.hooks.append("plover_build_utils.qt_ui_hooks:convert_ui_translations")
# }}}
diff --git a/test/gui_qt/test_i18n_files.py b/test/gui_qt/test_i18n_files.py
new file mode 100644
index 000000000..3b0b942f9
--- /dev/null
+++ b/test/gui_qt/test_i18n_files.py
@@ -0,0 +1,153 @@
+import os
+import subprocess
+import sys
+import tempfile
+import difflib
+import shutil
+from pathlib import Path
+
+import pytest
+
+import plover
+
+
+def filter_i18n_file(lines):
+ filtered = []
+ for line in lines:
+ # Ignore Copyright and Author comments
+ if line.startswith("# Copyright (C)"):
+ continue
+ if line.startswith("# FIRST AUTHOR"):
+ continue
+ # Ignore volatile header metadata fields that change on every run
+ if any(
+ field in line
+ for field in [
+ '"POT-Creation-Date:',
+ '"PO-Revision-Date:',
+ '"Generated-By:',
+ '"Report-Msgid-Bugs-To:',
+ '"X-Generator:',
+ '"Last-Translator:',
+ '"Language-Team:',
+ ]
+ ):
+ continue
+ filtered.append(line)
+ return filtered
+
+
+def run_pybabel(args, cwd, env):
+ cmd = [sys.executable, "-m", "babel.messages.frontend"] + args
+ try:
+ return subprocess.check_output(
+ cmd,
+ cwd=cwd,
+ env=env,
+ stderr=subprocess.STDOUT,
+ )
+ except subprocess.CalledProcessError as e:
+ print(f"\nCommand {' '.join(cmd)} failed with output:\n{e.output.decode()}")
+ raise
+
+
+@pytest.mark.gui_qt
+def test_i18n_files_up_to_date():
+ # Paths setup
+ root_dir = Path(__file__).parent.parent.parent.absolute()
+ messages_dir = root_dir / "plover" / "messages"
+ pot_path = messages_dir / "plover.pot"
+
+ with tempfile.TemporaryDirectory() as tmpdir:
+ tmp_dir_path = Path(tmpdir)
+ # Copy the current messages directory to avoid polluting the workspace
+ tmp_messages_dir = tmp_dir_path / "messages"
+ shutil.copytree(messages_dir, tmp_messages_dir)
+
+ tmp_pot_path = tmp_messages_dir / "plover.pot"
+
+ env = os.environ.copy()
+ # Ensure the project root is in PYTHONPATH
+ env["PYTHONPATH"] = str(root_dir)
+
+ # 1. Run extraction into the temp POT
+ # Matches settings in plover_build_utils/setup.py:babel_options
+ run_pybabel(
+ [
+ "extract",
+ "--project",
+ "plover",
+ "--version",
+ plover.__version__,
+ "--add-comments",
+ "i18n:",
+ "--strip-comments",
+ "-o",
+ str(tmp_pot_path),
+ "plover",
+ ],
+ cwd=root_dir,
+ env=env,
+ )
+
+ # 2. Run update_catalog in the temp messages dir
+ run_pybabel(
+ [
+ "update",
+ "--domain",
+ "plover",
+ "-i",
+ str(tmp_pot_path),
+ "-d",
+ str(tmp_messages_dir),
+ ],
+ cwd=root_dir,
+ env=env,
+ )
+
+ # 3. Compare POT
+ with open(pot_path, "r", encoding="utf-8") as f:
+ current_pot_lines = f.readlines()
+ with open(tmp_pot_path, "r", encoding="utf-8") as f:
+ generated_pot_lines = f.readlines()
+
+ pot_diff = "".join(
+ difflib.unified_diff(
+ filter_i18n_file(current_pot_lines),
+ filter_i18n_file(generated_pot_lines),
+ fromfile="plover/messages/plover.pot",
+ tofile="newly_extracted.pot",
+ )
+ )
+
+ # 4. Compare POs
+ po_diffs = []
+ # Find all PO files in the original messages dir
+ for current_po_path in messages_dir.glob("*/LC_MESSAGES/plover.po"):
+ relative_path = current_po_path.relative_to(messages_dir)
+ generated_po_path = tmp_messages_dir / relative_path
+
+ with open(current_po_path, "r", encoding="utf-8") as f:
+ current_po_lines = f.readlines()
+ with open(generated_po_path, "r", encoding="utf-8") as f:
+ generated_po_lines = f.readlines()
+
+ diff = "".join(
+ difflib.unified_diff(
+ filter_i18n_file(current_po_lines),
+ filter_i18n_file(generated_po_lines),
+ fromfile=f"plover/messages/{relative_path}",
+ tofile=f"newly_updated_{relative_path.name}",
+ )
+ )
+ if diff:
+ po_diffs.append(diff)
+
+ # Final validation
+ if pot_diff or po_diffs:
+ error_msg = "Fix with: python setup.py extract_messages update_catalog\n\n"
+ if pot_diff:
+ error_msg += f"POT Diff:\n{pot_diff}\n"
+ for diff in po_diffs:
+ error_msg += f"PO Diff:\n{diff}\n"
+ assert False, error_msg