diff --git a/news.d/feature/1825.ui.md b/news.d/feature/1825.ui.md
new file mode 100644
index 000000000..c0961e121
--- /dev/null
+++ b/news.d/feature/1825.ui.md
@@ -0,0 +1 @@
+Add missing translations.
diff --git a/plover/gui_qt/plugins_manager.py b/plover/gui_qt/plugins_manager.py
index 2a2a429a3..aa6430141 100644
--- a/plover/gui_qt/plugins_manager.py
+++ b/plover/gui_qt/plugins_manager.py
@@ -12,7 +12,7 @@
QInputDialog,
)
-from plover import log
+from plover import _, log
from plover.gui_qt.tool import Tool
from plover.gui_qt.info_browser import InfoBrowser
from plover.gui_qt.plugins_manager_ui import Ui_PluginsManager
@@ -23,7 +23,7 @@
class PluginsManager(Tool, Ui_PluginsManager):
- TITLE = "Plugins Manager"
+ TITLE = _("Plugins Manager")
ROLE = "plugins_manager"
ICON = ":/resources/plugins_manager.svg"
@@ -67,7 +67,13 @@ def _update_table(self):
self.table.setRowCount(len(self._packages))
for row, state in enumerate(self._packages):
for column, attr in enumerate("status name version summary".split()):
- item = QTableWidgetItem(getattr(state, attr, "N/A"))
+ value = getattr(state, attr, "N/A")
+ if attr == "status":
+ if value:
+ value = _(value)
+ elif value == "N/A":
+ value = _("N/A")
+ item = QTableWidgetItem(value)
item.setFlags(item.flags() & ~Qt.ItemFlag.ItemIsEditable)
self.table.setItem(row, column, item)
self.table.resizeColumnsToContents()
@@ -117,12 +123,14 @@ def handle_selection_change(self):
html.escape(metadata.version),
)
if metadata.author and metadata.author_email:
- prologue += '
Author: %s
' % (
+ # i18n: Metadata field.
+ prologue += _('Author: %s
') % (
html.escape(metadata.author_email),
html.escape(metadata.author),
)
if metadata.home_page:
- prologue += 'Home page: %s
' % (
+ # i18n: Metadata field.
+ prologue += _('Home page: %s
') % (
metadata.home_page,
html.escape(metadata.home_page),
)
@@ -169,13 +177,15 @@ def refresh(self):
def install_from_git(self):
url, ok = QInputDialog.getText(
self,
- "Install from Git repo",
- "WARNING: Installing plugins is a security risk.
"
- "A plugin from a Git repo can contain malicious code.
"
- "Only install it if you got it from a trusted source.
"
- "Enter repository link for plugin
"
- "(will look similar to "
- "https://github.com/user/repository.git):
",
+ _("Install from Git repo"),
+ _(
+ "WARNING: Installing plugins is a security risk.
"
+ "A plugin from a Git repo can contain malicious code.
"
+ "Only install it if you got it from a trusted source.
"
+ "Enter repository link for plugin
"
+ "(will look similar to "
+ "https://github.com/user/repository.git):
"
+ ),
)
if not ok or not url:
return
@@ -191,11 +201,13 @@ def install_selected_package(self):
if (
QMessageBox.warning(
self,
- "Install " + ", ".join(packages),
- "Installing plugins is a security risk. "
- "A plugin can contain virus/malware. "
- "Only install it if you got it from a trusted source."
- " Are you sure you want to proceed?",
+ _("Install {packages}").format(packages=", ".join(packages)),
+ _(
+ "Installing plugins is a security risk. "
+ "A plugin can contain virus/malware. "
+ "Only install it if you got it from a trusted source."
+ " Are you sure you want to proceed?"
+ ),
buttons=QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No,
defaultButton=QMessageBox.StandardButton.No,
)
@@ -215,6 +227,17 @@ def install_selected_package(self):
@Slot()
def uninstall_selected_package(self):
packages = self._get_selection()[1]
+ if (
+ QMessageBox.warning(
+ self,
+ _("Uninstall {packages}").format(packages=", ".join(packages)),
+ _("Are you sure you want to proceed?"),
+ buttons=QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No,
+ defaultButton=QMessageBox.StandardButton.No,
+ )
+ != QMessageBox.StandardButton.Yes
+ ):
+ return
code = self._run(["uninstall", "-y"] + packages)
if code == QDialog.DialogCode.Accepted:
for name in packages:
diff --git a/plover/messages/es/LC_MESSAGES/plover.po b/plover/messages/es/LC_MESSAGES/plover.po
index d1e0d9b45..bceea5e51 100644
--- a/plover/messages/es/LC_MESSAGES/plover.po
+++ b/plover/messages/es/LC_MESSAGES/plover.po
@@ -3,9 +3,9 @@ msgid ""
msgstr ""
"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\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"
+"POT-Creation-Date: 2026-03-09 20:26+0100\n"
+"PO-Revision-Date: 2026-03-08 12:00+0100\n"
+"Last-Translator: Gemini CLI\n"
"Language: es\n"
"Language-Team: Noelia Ruiz Martínez \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -64,7 +64,7 @@ msgstr ""
#: plover/dictionary/helpers.py:24
#, python-format
msgid "dictionary `%s` loaded with %u invalid steno errors"
-msgstr ""
+msgstr "diccionario «%s» cargado con %u errores de esteno no válidos"
#. Widget: “AboutDialog”, window title.
#: plover/gui_qt/about_dialog_ui.py:53
@@ -201,11 +201,13 @@ 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 ""
+"Cuando se suelta la primera tecla de un acorde, se envía el acorde.\n"
+"Si se vuelve a pulsar y soltar la tecla, se envía otro acorde."
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:60
msgid "First-up chord send"
-msgstr ""
+msgstr "Envío de acorde al soltar la primera tecla"
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:62
@@ -215,47 +217,47 @@ msgstr "Arpegiar"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:93
msgid "Send chord on first key release"
-msgstr ""
+msgstr "Enviar acorde al soltar la primera tecla"
#. 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 ""
+msgstr "Mantener un acorde pulsado para enviarlo repetidamente."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:99
msgid "Double tap to repeat"
-msgstr ""
+msgstr "Doble pulsación para repetir"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:101
msgid "Repeat delay (ms)"
-msgstr ""
+msgstr "Retraso de repetición (ms)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:104
msgid "Delay before chord starts repeating."
-msgstr ""
+msgstr "Retraso antes de que el acorde comience a repetirse."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:107
msgid "Repeat interval (ms)"
-msgstr ""
+msgstr "Intervalo de repetición (ms)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:110
msgid "Interval between chord repetitions."
-msgstr ""
+msgstr "Intervalo entre las repeticiones del acorde."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:113
msgid "Device scan interval (ms)"
-msgstr ""
+msgstr "Intervalo de escaneo de dispositivos (ms)"
#. 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 ""
+msgstr "Frecuencia de escaneo de nuevos dispositivos conectados."
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:215
@@ -281,16 +283,15 @@ msgstr "Nombre de dispositivo para puerto serie."
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:231
-#, fuzzy
msgid "Reload all available serial ports."
-msgstr "Escanear puertos serie disponibles."
+msgstr "Ricaricar todos los puertos serie disponibles."
#. Widget: “SerialWidget”, text.
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/config_serial_widget_ui.py:234
#: plover/gui_qt/plugins_manager_ui.py:146
msgid "Refresh"
-msgstr ""
+msgstr "Actualizar"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
@@ -332,14 +333,13 @@ msgstr "Tiempo de espera"
#. Widget: “SerialWidget”, text.
#: plover/gui_qt/config_serial_widget_ui.py:267
-#, fuzzy
msgid "Duration (s)"
-msgstr "DuraciónTraducción"
+msgstr "Duración (s)"
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:270
msgid "Duration"
-msgstr "DuraciónTraducción"
+msgstr "Duración"
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:274
@@ -393,7 +393,7 @@ msgstr "Interfaz"
#: plover/gui_qt/config_window.py:357
msgid "Appearance:"
-msgstr ""
+msgstr "Apariencia:"
#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
msgid "System"
@@ -401,11 +401,11 @@ msgstr "Sistema"
#: plover/gui_qt/config_window.py:363
msgid "Light"
-msgstr ""
+msgstr "Claro"
#: plover/gui_qt/config_window.py:364
msgid "Dark"
-msgstr ""
+msgstr "Oscuro"
#: plover/gui_qt/config_window.py:368
msgid ""
@@ -414,6 +414,10 @@ msgid ""
"- Light: force light mode\n"
"- Dark: force dark mode"
msgstr ""
+"Establecer la apariencia de la aplicación:\n"
+"- Sistema: seguir el modo del sistema operativo\n"
+"- Claro: forzar el modo claro\n"
+"- Oscuro: forzar el modo oscuro"
#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
@@ -601,7 +605,7 @@ msgstr ""
#: plover/gui_qt/config_window.py:514
msgid "Key press delay (ms):"
-msgstr ""
+msgstr "Retraso de pulsación de tecla (ms):"
#: plover/gui_qt/config_window.py:522
msgid ""
@@ -613,10 +617,19 @@ msgid ""
"Setting the delay too high will negatively impact the\n"
"performance of key stroke output."
msgstr ""
+"Establecer el retraso entre las pulsaciones de teclas emuladas (en "
+"milisegundos).\n"
+"\n"
+"Algunos programas pueden perder pulsaciones de teclas si se envían "
+"demasiadas\n"
+"en un corto período de tiempo. Aumentar el retraso da a los\n"
+"programas tiempo para procesar cada pulsación.\n"
+"Establecer el retraso demasiado alto afectará negativamente al\n"
+"rendimiento de la salida de las pulsaciones de teclas."
#: plover/gui_qt/config_window.py:532
msgid "Linux keyboard layout:"
-msgstr ""
+msgstr "Disposición del teclado de Linux:"
#: plover/gui_qt/config_window.py:546
msgid ""
@@ -627,21 +640,29 @@ msgid ""
"first keyboard layout\n"
"and can not detect layout switches."
msgstr ""
+"Establecer la disposición del teclado configurada en su sistema.\n"
+"Esto solo se aplica cuando se usa Linux/BSD y no se usa X11.\n"
+"\n"
+"Cuando se selecciona la detección automática de Wayland, Plover solo "
+"puede detectar la primera disposición del teclado\n"
+"y no puede detectar cambios de disposición."
#: 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 ""
+"Cuando se selecciona la detección automática de Wayland, Plover solo "
+"puede detectar la primera disposición del teclado y no puede detectar "
+"cambios de disposición."
#: plover/gui_qt/config_window.py:567
msgid "Plugins"
msgstr "Complementos"
#: plover/gui_qt/config_window.py:570
-#, fuzzy
msgid "Extensions:"
-msgstr "Extensión:"
+msgstr "Extensiones:"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
@@ -669,7 +690,7 @@ msgstr "Plover: Configuración"
#. Widget: “ConsoleWidget”, window title.
#: plover/gui_qt/console_widget_ui.py:49
msgid "Form"
-msgstr ""
+msgstr "Formulario"
#. Widget: “DictionariesWidget”, file picker.
#: plover/gui_qt/dictionaries_widget.py:46
@@ -755,17 +776,15 @@ msgstr "Fusionar {names} como..."
#. 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"
+msgstr "Cargar diccionarios"
#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget.py:683
#: plover/gui_qt/dictionaries_widget_ui.py:205
-#, fuzzy
msgid "Create dictionary"
-msgstr "Nuevo diccionario"
+msgstr "Crear diccionario"
#. Widget: “DictionariesWidget”, title.
#. Widget: “DictionariesWidget”, accessible name.
@@ -1019,22 +1038,22 @@ msgstr "Resultados"
#: plover/gui_qt/machine_options.py:36
#, python-brace-format
msgid "product: {value}"
-msgstr ""
+msgstr "producto: {value}"
#: plover/gui_qt/machine_options.py:37
#, python-brace-format
msgid "manufacturer: {value}"
-msgstr ""
+msgstr "fabricante: {value}"
#: plover/gui_qt/machine_options.py:38
#, python-brace-format
msgid "serial number: {value}"
-msgstr ""
+msgstr "número de serie: {value}"
#: plover/gui_qt/machine_options.py:46
#, python-brace-format
msgid "description: {value}"
-msgstr ""
+msgstr "descripción: {value}"
#: plover/gui_qt/machine_options.py:199
msgid ""
@@ -1308,42 +1327,103 @@ msgstr "Seleccionar modo de visualización en tira de papel."
msgid "Tape"
msgstr "Tira"
+#: plover/gui_qt/plugins_manager.py:26
+msgid "Plugins Manager"
+msgstr "Complementos"
+
+#: plover/gui_qt/plugins_manager.py:75
+msgid "N/A"
+msgstr "N/D"
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:127
+#, python-format
+msgid "Author: %s
"
+msgstr "Autor: %s
"
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:133
+#, python-format
+msgid "Home page: %s
"
+msgstr "Página principal: %s
"
+
+#: plover/gui_qt/plugins_manager.py:180
+msgid "Install from Git repo"
+msgstr "Instalar desde un repositorio Git"
+
+#: plover/gui_qt/plugins_manager.py:182
+msgid ""
+"WARNING: Installing plugins is a security risk.
A plugin from a Git"
+" repo can contain malicious code.
Only install it if you got it from a"
+" trusted source.
Enter repository link for plugin
(will "
+"look similar to https://github.com/user/repository.git):
"
+msgstr ""
+"ADVERTENCIA: La instalación de complementos es un riesgo de "
+"seguridad.
Un complemento de un repositorio Git puede contener código "
+"malicioso.
Solo instálelo si lo obtuvo de una fuente "
+"confiable.
Ingrese el enlace al repositorio del "
+"complemento
(se verá similar a "
+"https://github.com/usuario/repositorio.git):
"
+
+#: plover/gui_qt/plugins_manager.py:204
+#, python-brace-format
+msgid "Install {packages}"
+msgstr "Instalar {packages}"
+
+#: plover/gui_qt/plugins_manager.py:206
+msgid ""
+"Installing plugins is a security risk. A plugin can contain "
+"virus/malware. Only install it if you got it from a trusted source. Are "
+"you sure you want to proceed?"
+msgstr ""
+"La instalación de complementos es un riesgo de seguridad. Un "
+"complemento puede contener virus o malware. Solo instálelo si lo obtuvo "
+"de una fuente confiable. ¿Está seguro de que desea continuar?"
+
+#: plover/gui_qt/plugins_manager.py:233
+#, python-brace-format
+msgid "Uninstall {packages}"
+msgstr "Desinstalar {packages}"
+
+#: plover/gui_qt/plugins_manager.py:234
+msgid "Are you sure you want to proceed?"
+msgstr "¿Está seguro de que desea continuar?"
+
#. 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 ""
+msgstr "Diálogo"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:139
msgid "Version"
-msgstr ""
+msgstr "Versión"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:142
msgid "Summary"
-msgstr ""
+msgstr "Resumen"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:144
-#, fuzzy
msgid "Restart"
-msgstr "Estado"
+msgstr "Reiniciar"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:148
msgid "Uninstall"
-msgstr ""
+msgstr "Desinstalar"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:150
msgid "Install/Update"
-msgstr ""
+msgstr "Instalar/Actualizar"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:152
msgid "..."
-msgstr ""
+msgstr "..."
#. Widget: “SuggestionsDialog”, tooltip.
#: plover/gui_qt/suggestions_dialog.py:26
@@ -1393,7 +1473,7 @@ msgstr "la salida está desactivada"
#: plover/gui_qt/utils.py:28
msgid "Copy selection to clipboard"
-msgstr ""
+msgstr "Copiar selección al portapapeles"
#. Machine state.
#: plover/machine/base.py:20
diff --git a/plover/messages/fr/LC_MESSAGES/plover.po b/plover/messages/fr/LC_MESSAGES/plover.po
index 552869bcd..fc8f650a6 100644
--- a/plover/messages/fr/LC_MESSAGES/plover.po
+++ b/plover/messages/fr/LC_MESSAGES/plover.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\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"
+"POT-Creation-Date: 2026-03-09 20:26+0100\n"
+"PO-Revision-Date: 2026-03-08 12:00+0100\n"
+"Last-Translator: Gemini CLI\n"
"Language: fr\n"
"Language-Team: fr \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -54,7 +54,6 @@ msgid "Open Source Stenography Software"
msgstr "Logiciel libre de sténographie"
#: 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"
@@ -68,7 +67,7 @@ msgstr ""
#: plover/dictionary/helpers.py:24
#, python-format
msgid "dictionary `%s` loaded with %u invalid steno errors"
-msgstr ""
+msgstr "dictionnaire « %s » chargé avec %u erreurs de sténo invalides"
#. Widget: “AboutDialog”, window title.
#: plover/gui_qt/about_dialog_ui.py:53
@@ -159,9 +158,8 @@ msgstr "Dictionnaire"
#. Widget: “AddTranslationWidget”, accessible description.
#: 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."
+msgstr "Sélectionnez le dictionnaire cible pour la nouvelle traduction."
#. Widget: “AddTranslationWidget”, accessible name.
#: plover/gui_qt/add_translation_widget_ui.py:147
@@ -170,7 +168,6 @@ msgstr "Traductions existantes (accords)"
#. Widget: “AddTranslationWidget”, accessible name.
#: plover/gui_qt/add_translation_widget_ui.py:152
-#, fuzzy
msgid "Existing mappings (translations)"
msgstr "Traductions existantes (traductions)"
@@ -207,11 +204,14 @@ 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 ""
+"Quand la première touche d'un accord est relâchée, l'accord est envoyé.\n"
+"Si la touche est pressée et relâchée de nouveau, un autre accord est "
+"envoyé."
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:60
msgid "First-up chord send"
-msgstr ""
+msgstr "Envoyer l'accord au relâchement de la touche"
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:62
@@ -221,53 +221,52 @@ msgstr "Arpéger"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:93
msgid "Send chord on first key release"
-msgstr ""
+msgstr "Envoyer l'accord dès le relâchement de la première touche"
#. 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 ""
+msgstr "Appuyez puis maintenez un accord pour l'envoyer de façon répétée."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:99
msgid "Double tap to repeat"
-msgstr ""
+msgstr "Double appui pour répéter"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:101
msgid "Repeat delay (ms)"
-msgstr ""
+msgstr "Délai de répétition (ms)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:104
msgid "Delay before chord starts repeating."
-msgstr ""
+msgstr "Délai avant que l'accord ne commence à se répéter."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:107
msgid "Repeat interval (ms)"
-msgstr ""
+msgstr "Intervalle de répétition (ms)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:110
msgid "Interval between chord repetitions."
-msgstr ""
+msgstr "Intervalle entre les répétitions d'un accord."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:113
msgid "Device scan interval (ms)"
-msgstr ""
+msgstr "Intervalle de détection des périphériques (ms)"
#. 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 ""
+msgstr "Fréquence de détection des nouveaux périphériques."
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:215
-#, fuzzy
msgid "Serial"
-msgstr "Connexion en série"
+msgstr "Série"
#. Widget: “SerialWidget”, title.
#: plover/gui_qt/config_serial_widget_ui.py:218
@@ -283,13 +282,11 @@ msgstr "Port"
#. Widget: “SerialWidget”, accessible description.
#: 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:231
-#, fuzzy
msgid "Reload all available serial ports."
msgstr "Scanner les ports série."
@@ -298,7 +295,7 @@ msgstr "Scanner les ports série."
#: plover/gui_qt/config_serial_widget_ui.py:234
#: plover/gui_qt/plugins_manager_ui.py:146
msgid "Refresh"
-msgstr ""
+msgstr "Actualiser"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
@@ -340,9 +337,8 @@ msgstr "Délai de transmission"
#. Widget: “SerialWidget”, text.
#: plover/gui_qt/config_serial_widget_ui.py:267
-#, fuzzy
msgid "Duration (s)"
-msgstr "Durée"
+msgstr "Durée (s)"
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:270
@@ -351,7 +347,6 @@ msgstr "Durée"
#. Widget: “SerialWidget”, accessible description.
#: 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."
@@ -402,7 +397,7 @@ msgstr "Interface"
#: plover/gui_qt/config_window.py:357
msgid "Appearance:"
-msgstr ""
+msgstr "Apparence :"
#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
msgid "System"
@@ -410,11 +405,11 @@ msgstr "Système"
#: plover/gui_qt/config_window.py:363
msgid "Light"
-msgstr ""
+msgstr "Clair"
#: plover/gui_qt/config_window.py:364
msgid "Dark"
-msgstr ""
+msgstr "Sombre"
#: plover/gui_qt/config_window.py:368
msgid ""
@@ -423,6 +418,10 @@ msgid ""
"- Light: force light mode\n"
"- Dark: force dark mode"
msgstr ""
+"Définit l'apparence de l'application :\n"
+"- Système : suit le mode du système d'exploitation\n"
+"- Clair : force le mode clair\n"
+"- Sombre : force le mode sombre"
#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
@@ -450,9 +449,7 @@ msgstr "Ouvre la fenêtre des suggestions au démarrage."
#: plover/gui_qt/config_window.py:393
msgid "Add translation dialog opacity:"
-msgstr ""
-"Opacité de la fenêtre\n"
-"\"Ajouter une traduction\" :"
+msgstr "Opacité de la fenêtre d'ajout de traduction :"
#: plover/gui_qt/config_window.py:397
msgid ""
@@ -612,7 +609,7 @@ msgstr ""
#: plover/gui_qt/config_window.py:514
msgid "Key press delay (ms):"
-msgstr ""
+msgstr "Délai de pression des touches (ms) :"
#: plover/gui_qt/config_window.py:522
msgid ""
@@ -624,10 +621,19 @@ msgid ""
"Setting the delay too high will negatively impact the\n"
"performance of key stroke output."
msgstr ""
+"Définit le délai entre les pressions de touches émulées (en "
+"millisecondes).\n"
+"\n"
+"Certains programmes peuvent ignorer des pressions de touches si trop "
+"d'entre elles sont envoyées\n"
+"dans un court laps de temps. Augmenter le délai donne aux\n"
+"programmes le temps de traiter chaque pression de touche.\n"
+"Définir un délai trop élevé aura un impact négatif sur les\n"
+"performances de sortie des touches."
#: plover/gui_qt/config_window.py:532
msgid "Linux keyboard layout:"
-msgstr ""
+msgstr "Disposition du clavier Linux :"
#: plover/gui_qt/config_window.py:546
msgid ""
@@ -638,21 +644,30 @@ msgid ""
"first keyboard layout\n"
"and can not detect layout switches."
msgstr ""
+"Définit la disposition du clavier configurée dans votre système.\n"
+"Cela ne s'applique que lors de l'utilisation de Linux/BSD et de la non-"
+"utilisation de X11.\n"
+"\n"
+"Lorsque la détection automatique de Wayland est sélectionnée, Plover ne "
+"peut détecter que la première disposition du clavier\n"
+"et ne peut pas détecter les changements de disposition."
#: 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 ""
+"Lorsque la détection automatique de Wayland est sélectionnée, Plover ne "
+"peut détecter que la première disposition du clavier et ne peut pas "
+"détecter les changements de disposition."
#: plover/gui_qt/config_window.py:567
msgid "Plugins"
msgstr "Greffons"
#: plover/gui_qt/config_window.py:570
-#, fuzzy
msgid "Extensions:"
-msgstr "Extension :"
+msgstr "Extensions :"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
@@ -680,7 +695,7 @@ msgstr "Plover : Configuration"
#. Widget: “ConsoleWidget”, window title.
#: plover/gui_qt/console_widget_ui.py:49
msgid "Form"
-msgstr ""
+msgstr "Formulaire"
#. Widget: “DictionariesWidget”, file picker.
#: plover/gui_qt/dictionaries_widget.py:46
@@ -728,7 +743,6 @@ msgstr "Chemin complet : {path}."
# | msgid "This dictionary is marked as a favorite."
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget.py:414
-#, fuzzy
msgid "This dictionary is marked as the favorite."
msgstr "Ce dictionnaire est marqué comme favori."
@@ -768,17 +782,15 @@ msgstr "Fusionner {names} sous..."
#. 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"
+msgstr "Charger des dictionnaires"
#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget.py:683
#: plover/gui_qt/dictionaries_widget_ui.py:205
-#, fuzzy
msgid "Create dictionary"
-msgstr "Nouveau dictionnaire"
+msgstr "Créer un dictionnaire"
#. Widget: “DictionariesWidget”, title.
#. Widget: “DictionariesWidget”, accessible name.
@@ -1021,9 +1033,8 @@ msgstr "Motif"
#. Widget: “LookupDialog”, accessible description.
#: plover/gui_qt/lookup_dialog_ui.py:79
-#, fuzzy
msgid "Translation pattern to lookup."
-msgstr "Motifs de traduction à chercher."
+msgstr "Motif de traduction à rechercher."
#. Widget: “LookupDialog”, accessible name.
#: plover/gui_qt/lookup_dialog_ui.py:83
@@ -1033,22 +1044,22 @@ msgstr "Résultats"
#: plover/gui_qt/machine_options.py:36
#, python-brace-format
msgid "product: {value}"
-msgstr ""
+msgstr "produit : {value}"
#: plover/gui_qt/machine_options.py:37
#, python-brace-format
msgid "manufacturer: {value}"
-msgstr ""
+msgstr "fabricant : {value}"
#: plover/gui_qt/machine_options.py:38
#, python-brace-format
msgid "serial number: {value}"
-msgstr ""
+msgstr "numéro de série : {value}"
#: plover/gui_qt/machine_options.py:46
#, python-brace-format
msgid "description: {value}"
-msgstr ""
+msgstr "description : {value}"
#: plover/gui_qt/machine_options.py:199
msgid ""
@@ -1064,7 +1075,7 @@ msgstr ""
#: plover/gui_qt/main_window.py:312
msgid "Application is still running."
-msgstr ""
+msgstr "L'application est encore en cours d'exécution."
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:202
@@ -1231,7 +1242,7 @@ msgstr "Affichage des entrées du ruban."
#: plover/gui_qt/paper_tape.py:124
msgid "Paper Tape"
-msgstr "Ruban"
+msgstr "Bande papier"
#: plover/gui_qt/paper_tape.py:237
msgid "Do you want to clear the paper tape?"
@@ -1323,47 +1334,108 @@ msgstr "Choisit le mode d'affichage du ruban."
msgid "Tape"
msgstr "Ruban"
+#: plover/gui_qt/plugins_manager.py:26
+msgid "Plugins Manager"
+msgstr "Greffons"
+
+#: plover/gui_qt/plugins_manager.py:75
+msgid "N/A"
+msgstr "N/A"
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:127
+#, python-format
+msgid "Author: %s
"
+msgstr "Auteur : %s
"
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:133
+#, python-format
+msgid "Home page: %s
"
+msgstr "Page d'accueil : %s
"
+
+#: plover/gui_qt/plugins_manager.py:180
+msgid "Install from Git repo"
+msgstr "Installer depuis un dépôt Git"
+
+#: plover/gui_qt/plugins_manager.py:182
+msgid ""
+"WARNING: Installing plugins is a security risk.
A plugin from a Git"
+" repo can contain malicious code.
Only install it if you got it from a"
+" trusted source.
Enter repository link for plugin
(will "
+"look similar to https://github.com/user/repository.git):
"
+msgstr ""
+"AVERTISSEMENT : L'installation de greffons est un risque pour la "
+"sécurité.
Un greffon provenant d'un dépôt Git peut contenir du code "
+"malveillant.
Ne l'installez que si vous l'avez obtenu d'une source "
+"fiable.
Entrez le lien du dépôt pour le "
+"greffon
(ressemblera à https://github.com/user/repository.git) :
"
+
+#: plover/gui_qt/plugins_manager.py:204
+#, python-brace-format
+msgid "Install {packages}"
+msgstr "Installer {packages}"
+
+#: plover/gui_qt/plugins_manager.py:206
+msgid ""
+"Installing plugins is a security risk. A plugin can contain "
+"virus/malware. Only install it if you got it from a trusted source. Are "
+"you sure you want to proceed?"
+msgstr ""
+"L'installation de greffons est un risque pour la sécurité. Un "
+"greffon peut contenir des virus ou des logiciels malveillants. Ne "
+"l'installez que si vous l'avez obtenu d'une source fiable. Êtes-vous sûr "
+"de vouloir continuer ?"
+
+#: plover/gui_qt/plugins_manager.py:233
+#, python-brace-format
+msgid "Uninstall {packages}"
+msgstr "Désinstaller {packages}"
+
+#: plover/gui_qt/plugins_manager.py:234
+msgid "Are you sure you want to proceed?"
+msgstr "Êtes-vous sûr de vouloir continuer ?"
+
#. 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 ""
+msgstr "Fenêtre de dialogue"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:139
msgid "Version"
-msgstr ""
+msgstr "Version"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:142
msgid "Summary"
-msgstr ""
+msgstr "Résumé"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:144
-#, fuzzy
msgid "Restart"
-msgstr "État"
+msgstr "Redémarrer"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:148
msgid "Uninstall"
-msgstr ""
+msgstr "Désinstaller"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:150
msgid "Install/Update"
-msgstr ""
+msgstr "Installer/Mettre à jour"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:152
msgid "..."
-msgstr ""
+msgstr "..."
#. Widget: “SuggestionsDialog”, tooltip.
#: 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."
+msgstr "Suggère des accords possibles pour les derniers mots écrits."
#. Widget: “SuggestionsDialog”, accessible name.
#: plover/gui_qt/suggestions_dialog.py:28
@@ -1408,7 +1480,7 @@ msgstr "la sortie est désactivée"
#: plover/gui_qt/utils.py:28
msgid "Copy selection to clipboard"
-msgstr ""
+msgstr "Copier la sélection dans le presse-papiers"
#. Machine state.
#: plover/machine/base.py:20
diff --git a/plover/messages/it/LC_MESSAGES/plover.po b/plover/messages/it/LC_MESSAGES/plover.po
index f92d70a1e..36f30feb9 100644
--- a/plover/messages/it/LC_MESSAGES/plover.po
+++ b/plover/messages/it/LC_MESSAGES/plover.po
@@ -3,14 +3,13 @@
# This file is distributed under the same license as the plover project.
# FIRST AUTHOR , 2026.
#
-#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\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"
+"POT-Creation-Date: 2026-03-09 20:26+0100\n"
+"PO-Revision-Date: 2026-03-08 12:00+0100\n"
+"Last-Translator: Gemini CLI\n"
"Language: it\n"
"Language-Team: it \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -35,11 +34,24 @@ 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:38
msgid "Open Source Stenography Software"
-msgstr ""
+msgstr "Software per stenotipia open source"
#: plover/__init__.py:39
msgid ""
@@ -47,138 +59,142 @@ msgid ""
"stenographic technology not just to stenographers, but also to\n"
"hackers, hobbyists, accessibility mavens, and all-around speed demons."
msgstr ""
+"Plover è un programma open source gratuito destinato a portare la "
+"tecnologia\n"
+"stenotipica in tempo reale non solo ai professionisti, ma anche a\n"
+"hacker, appassionati, esperti di accessibilità e demoni della velocità."
#: plover/dictionary/helpers.py:24
#, python-format
msgid "dictionary `%s` loaded with %u invalid steno errors"
-msgstr ""
+msgstr "dizionario \"%s\" caricato con %u errori di steno non validi"
#. Widget: “AboutDialog”, window title.
#: plover/gui_qt/about_dialog_ui.py:53
msgid "Plover: About"
-msgstr ""
+msgstr "Plover: Informazioni"
#. Widget: “AddTranslationDialog”, tooltip.
#. Widget: “AddTranslationWidget”, tooltip.
#: 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 ""
+msgstr "Aggiungi una nuova traduzione al dizionario."
#: plover/gui_qt/add_translation_dialog.py:13
msgid "Add Translation"
-msgstr ""
+msgstr "Aggiungi traduzione"
#. Widget: “AddTranslationWidget”.
#: plover/gui_qt/add_translation_widget.py:194
#, python-brace-format
msgid "{dictionary} (disabled)"
-msgstr ""
+msgstr "{dictionary} (disabilitato)"
#. Widget: “AddTranslationWidget”.
#: plover/gui_qt/add_translation_widget.py:260
#, python-brace-format
msgid "{strokes} maps to "
-msgstr ""
+msgstr "{strokes} corrisponde a "
#. Widget: “AddTranslationWidget”.
#: plover/gui_qt/add_translation_widget.py:272
msgid "Overwritten entries:"
-msgstr ""
+msgstr "Voci sovrascritte:"
#. Widget: “AddTranslationWidget”.
#: plover/gui_qt/add_translation_widget.py:277
#, python-brace-format
msgid "{strokes} is not mapped in any dictionary"
-msgstr ""
+msgstr "{strokes} non è presente in alcun dizionario"
#. Widget: “AddTranslationWidget”.
#: plover/gui_qt/add_translation_widget.py:291
#, python-brace-format
msgid "{translation} is mapped to: {strokes}"
-msgstr ""
+msgstr "{translation} è associato a: {strokes}"
#. Widget: “AddTranslationWidget”.
#: plover/gui_qt/add_translation_widget.py:294
#, python-brace-format
msgid "{translation} is not in the dictionary"
-msgstr ""
+msgstr "{translation} non è nel dizionario"
#. Widget: “AddTranslationWidget”, text.
#: plover/gui_qt/add_translation_widget_ui.py:124
msgid "Dictionary:"
-msgstr ""
+msgstr "Dizionario:"
#. Widget: “AddTranslationWidget”, text.
#: plover/gui_qt/add_translation_widget_ui.py:126
msgid "Strokes:"
-msgstr ""
+msgstr "Battute:"
#. 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 ""
+msgstr "Battute"
#. Widget: “AddTranslationWidget”, text.
#: plover/gui_qt/add_translation_widget_ui.py:132
msgid "Translation:"
-msgstr ""
+msgstr "Traduzione:"
#. 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 ""
+msgstr "Traduzione"
#. 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 ""
+msgstr "Dizionario"
#. Widget: “AddTranslationWidget”, accessible description.
#: plover/gui_qt/add_translation_widget_ui.py:143
msgid "Select the target dictionary for the new translation."
-msgstr ""
+msgstr "Seleziona il dizionario di destinazione per la nuova traduzione."
#. Widget: “AddTranslationWidget”, accessible name.
#: plover/gui_qt/add_translation_widget_ui.py:147
msgid "Existing mappings (strokes)"
-msgstr ""
+msgstr "Associazioni esistenti (battute)"
#. Widget: “AddTranslationWidget”, accessible name.
#: plover/gui_qt/add_translation_widget_ui.py:152
msgid "Existing mappings (translations)"
-msgstr ""
+msgstr "Associazioni esistenti (traduzioni)"
#. Widget: “FileWidget”, accessible name.
#: plover/gui_qt/config_file_widget_ui.py:61
msgid "Log file path."
-msgstr ""
+msgstr "Percorso del file di log."
#. Widget: “FileWidget”, accessible description.
#: plover/gui_qt/config_file_widget_ui.py:65
msgid "Path to the log file."
-msgstr ""
+msgstr "Percorso del file di log."
#. Widget: “FileWidget”, accessible name.
#: plover/gui_qt/config_file_widget_ui.py:69
msgid "Browse."
-msgstr ""
+msgstr "Sfoglia."
#. Widget: “FileWidget”, accessible description.
#: plover/gui_qt/config_file_widget_ui.py:73
msgid "Open a file picker to select the log file."
-msgstr ""
+msgstr "Apri un selettore di file per scegliere il file di log."
#. Widget: “FileWidget”, text.
#: plover/gui_qt/config_file_widget_ui.py:76
msgid "Browse"
-msgstr ""
+msgstr "Sfoglia"
#. Widget: “KeyboardWidget”, tool tip.
#. Widget: “PloverHidWidget”, tool tip.
@@ -188,209 +204,213 @@ 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 ""
+"Quando il primo tasto di un accordo viene rilasciato, l'accordo viene "
+"inviato.\n"
+"Se il tasto viene premuto e rilasciato di nuovo, viene inviato un altro "
+"accordo."
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:60
msgid "First-up chord send"
-msgstr ""
+msgstr "Invio accordo al primo rilascio"
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:62
msgid "Arpeggiate"
-msgstr ""
+msgstr "Arpeggio"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:93
msgid "Send chord on first key release"
-msgstr ""
+msgstr "Invia accordo al rilascio del primo tasto"
#. 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 ""
+msgstr "Tocca e tieni premuto un accordo per inviarlo ripetutamente."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:99
msgid "Double tap to repeat"
-msgstr ""
+msgstr "Doppio tocco per ripetere"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:101
msgid "Repeat delay (ms)"
-msgstr ""
+msgstr "Ritardo ripetizione (ms)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:104
msgid "Delay before chord starts repeating."
-msgstr ""
+msgstr "Ritardo prima che l'accordo inizi a ripetersi."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:107
msgid "Repeat interval (ms)"
-msgstr ""
+msgstr "Intervallo ripetizione (ms)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:110
msgid "Interval between chord repetitions."
-msgstr ""
+msgstr "Intervallo tra le ripetizioni dell'accordo."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:113
msgid "Device scan interval (ms)"
-msgstr ""
+msgstr "Intervallo scansione dispositivi (ms)"
#. 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 ""
+msgstr "Frequenza di scansione per nuovi dispositivi collegati."
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:215
msgid "Serial"
-msgstr ""
+msgstr "Seriale"
#. Widget: “SerialWidget”, title.
#: plover/gui_qt/config_serial_widget_ui.py:218
msgid "Connection"
-msgstr ""
+msgstr "Connessione"
#. Widget: “SerialWidget”, text.
#. 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 ""
+msgstr "Porta"
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:227
msgid "Serial port device name."
-msgstr ""
+msgstr "Nome del dispositivo della porta seriale."
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:231
msgid "Reload all available serial ports."
-msgstr ""
+msgstr "Ricarica tutte le porte seriali disponibili."
#. Widget: “SerialWidget”, text.
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/config_serial_widget_ui.py:234
#: plover/gui_qt/plugins_manager_ui.py:146
msgid "Refresh"
-msgstr ""
+msgstr "Aggiorna"
#. Widget: “SerialWidget”, text.
#. 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 ""
+msgstr "Baud rate"
#. Widget: “SerialWidget”, title.
#: plover/gui_qt/config_serial_widget_ui.py:242
msgid "Data format"
-msgstr ""
+msgstr "Formato dati"
#. Widget: “SerialWidget”, text.
#. 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 ""
+msgstr "Bit di dati"
#. Widget: “SerialWidget”, text.
#. 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 ""
+msgstr "Bit di stop"
#. Widget: “SerialWidget”, text.
#. 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 ""
+msgstr "Parità"
#. Widget: “SerialWidget”, title.
#: plover/gui_qt/config_serial_widget_ui.py:265
msgid "Timeout"
-msgstr ""
+msgstr "Timeout"
#. Widget: “SerialWidget”, text.
#: plover/gui_qt/config_serial_widget_ui.py:267
msgid "Duration (s)"
-msgstr ""
+msgstr "Durata (s)"
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:270
msgid "Duration"
-msgstr ""
+msgstr "Durata"
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:274
msgid "Timeout duration in seconds."
-msgstr ""
+msgstr "Durata del timeout in secondi."
#. Widget: “SerialWidget”, title.
#: plover/gui_qt/config_serial_widget_ui.py:277
msgid "Flow control"
-msgstr ""
+msgstr "Controllo di flusso"
#. Widget: “SerialWidget”, text.
#: plover/gui_qt/config_serial_widget_ui.py:279
msgid "Xon/Xoff"
-msgstr ""
+msgstr "Xon/Xoff"
#. Widget: “SerialWidget”, text.
#: plover/gui_qt/config_serial_widget_ui.py:281
msgid "RTS/CTS"
-msgstr ""
+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:51
msgid "Nothing to see here!"
-msgstr ""
+msgstr "Nulla da vedere qui!"
#. Widget: “KeymapOption”.
#: plover/gui_qt/config_window.py:173
msgid "Key"
-msgstr ""
+msgstr "Tasto"
#. Widget: “KeymapOption”.
#: plover/gui_qt/config_window.py:175
msgid "Action"
-msgstr ""
+msgstr "Azione"
#. Widget: “MultipleChoicesOption”.
#: plover/gui_qt/config_window.py:221
msgid "Selected"
-msgstr ""
+msgstr "Selezionato"
#. Widget: “MultipleChoicesOption”.
#: plover/gui_qt/config_window.py:223
msgid "Choice"
-msgstr ""
+msgstr "Scelta"
#: plover/gui_qt/config_window.py:354
msgid "Interface"
-msgstr ""
+msgstr "Interfaccia"
#: plover/gui_qt/config_window.py:357
msgid "Appearance:"
-msgstr ""
+msgstr "Aspetto:"
#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
msgid "System"
-msgstr ""
+msgstr "Sistema"
#: plover/gui_qt/config_window.py:363
msgid "Light"
-msgstr ""
+msgstr "Chiaro"
#: plover/gui_qt/config_window.py:364
msgid "Dark"
-msgstr ""
+msgstr "Scuro"
#: plover/gui_qt/config_window.py:368
msgid ""
@@ -399,34 +419,38 @@ msgid ""
"- Light: force light mode\n"
"- Dark: force dark mode"
msgstr ""
+"Imposta l'aspetto dell'applicazione:\n"
+"- Sistema: segui la modalità del sistema operativo\n"
+"- Chiaro: forza la modalità chiara\n"
+"- Scuro: forza la modalità scura"
#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
-msgstr ""
+msgstr "Avvia ridotto a icona:"
#: plover/gui_qt/config_window.py:378
msgid "Minimize the main window to systray on startup."
-msgstr ""
+msgstr "Riduci la finestra principale nella systray all'avvio."
#: plover/gui_qt/config_window.py:381
msgid "Show paper tape:"
-msgstr ""
+msgstr "Mostra nastro di carta:"
#: plover/gui_qt/config_window.py:384
msgid "Open the paper tape on startup."
-msgstr ""
+msgstr "Apri il nastro di carta all'avvio."
#: plover/gui_qt/config_window.py:387
msgid "Show suggestions:"
-msgstr ""
+msgstr "Mostra suggerimenti:"
#: plover/gui_qt/config_window.py:390
msgid "Open the suggestions dialog on startup."
-msgstr ""
+msgstr "Apri la finestra dei suggerimenti all'avvio."
#: plover/gui_qt/config_window.py:393
msgid "Add translation dialog opacity:"
-msgstr ""
+msgstr "Opacità finestra aggiunta traduzione:"
#: plover/gui_qt/config_window.py:397
msgid ""
@@ -434,18 +458,21 @@ msgid ""
"- 0 makes the dialog invisible\n"
"- 100 is fully opaque"
msgstr ""
+"Imposta l'opacità della finestra di traduzione:\n"
+"- 0 rende la finestra invisibile\n"
+"- 100 è completamente opaco"
#: plover/gui_qt/config_window.py:403
msgid "Dictionaries display order:"
-msgstr ""
+msgstr "Ordine di visualizzazione dizionari:"
#: plover/gui_qt/config_window.py:406
msgid "top-down"
-msgstr ""
+msgstr "dall'alto in basso"
#: plover/gui_qt/config_window.py:406
msgid "bottom-up"
-msgstr ""
+msgstr "dal basso in alto"
#: plover/gui_qt/config_window.py:409
msgid ""
@@ -453,76 +480,81 @@ msgid ""
"- top-down: match the search order; highest priority first\n"
"- bottom-up: reverse search order; lowest priority first\n"
msgstr ""
+"Imposta l'ordine di visualizzazione dei dizionari:\n"
+"- dall'alto in basso: corrisponde all'ordine di ricerca; priorità più "
+"alta per prima\n"
+"- dal basso in alto: ordine di ricerca inverso; priorità più bassa per "
+"prima\n"
#: plover/gui_qt/config_window.py:418
msgid "Logging"
-msgstr ""
+msgstr "Log"
#: plover/gui_qt/config_window.py:421
msgid "Log file:"
-msgstr ""
+msgstr "File di log:"
#: plover/gui_qt/config_window.py:424
msgid "Select a log file"
-msgstr ""
+msgstr "Seleziona un file di log"
#: plover/gui_qt/config_window.py:424
msgid "Log files (*.log)"
-msgstr ""
+msgstr "File di log (*.log)"
#: plover/gui_qt/config_window.py:426
msgid "File to use for logging strokes/translations."
-msgstr ""
+msgstr "File da utilizzare per il log di battute/traduzioni."
#: plover/gui_qt/config_window.py:429
msgid "Log strokes:"
-msgstr ""
+msgstr "Log battute:"
#: plover/gui_qt/config_window.py:432
msgid "Save strokes to the logfile."
-msgstr ""
+msgstr "Salva le battute nel file di log."
#: plover/gui_qt/config_window.py:435
msgid "Log translations:"
-msgstr ""
+msgstr "Log traduzioni:"
#: plover/gui_qt/config_window.py:438
msgid "Save translations to the logfile."
-msgstr ""
+msgstr "Salva le traduzioni nel file di log."
#. Widget: “MainWindow”, title.
#: plover/gui_qt/config_window.py:444 plover/gui_qt/main_window_ui.py:260
msgid "Machine"
-msgstr ""
+msgstr "Macchina"
#: plover/gui_qt/config_window.py:447
msgid "Machine:"
-msgstr ""
+msgstr "Macchina:"
#: plover/gui_qt/config_window.py:459
msgid "Options:"
-msgstr ""
+msgstr "Opzioni:"
#: plover/gui_qt/config_window.py:461
msgid "Keymap:"
-msgstr ""
+msgstr "Mappatura tasti:"
#. Widget: “MainWindow”, title.
#: plover/gui_qt/config_window.py:466 plover/gui_qt/main_window_ui.py:292
msgid "Output"
-msgstr ""
+msgstr "Uscita"
#: plover/gui_qt/config_window.py:469
msgid "Enable at start:"
-msgstr ""
+msgstr "Abilita all'avvio:"
#: plover/gui_qt/config_window.py:472
msgid "Enable output on startup."
-msgstr ""
+msgstr "Abilita l'uscita all'avvio."
#: plover/gui_qt/config_window.py:475
msgid "Start attached:"
-msgstr ""
+msgstr "Inizia senza spazio:"
#: plover/gui_qt/config_window.py:479
msgid ""
@@ -530,34 +562,39 @@ msgid ""
"\n"
"This option is only applicable when spaces are placed before."
msgstr ""
+"Disabilita lo spazio precedente alla prima uscita.\n"
+"\n"
+"Questa opzione è applicabile solo quando gli spazi sono posizionati prima."
#: plover/gui_qt/config_window.py:485
msgid "Start capitalized:"
-msgstr ""
+msgstr "Inizia con la maiuscola:"
#: plover/gui_qt/config_window.py:488
msgid "Capitalize the first word."
-msgstr ""
+msgstr "Scrivi la prima parola con la maiuscola."
#: plover/gui_qt/config_window.py:491
msgid "Space placement:"
-msgstr ""
+msgstr "Posizionamento spazio:"
#: plover/gui_qt/config_window.py:496
msgid "Before Output"
-msgstr ""
+msgstr "Prima dell'uscita"
#: plover/gui_qt/config_window.py:497
msgid "After Output"
-msgstr ""
+msgstr "Dopo l'uscita"
#: plover/gui_qt/config_window.py:500
msgid "Set automatic space placement: before or after each word."
msgstr ""
+"Imposta il posizionamento automatico dello spazio: prima o dopo ogni "
+"parola."
#: plover/gui_qt/config_window.py:503
msgid "Undo levels:"
-msgstr ""
+msgstr "Livelli di annullamento:"
#: plover/gui_qt/config_window.py:507
msgid ""
@@ -566,10 +603,14 @@ msgid ""
"Note: the effective value will take into account the\n"
"dictionaries entry with the maximum number of strokes."
msgstr ""
+"Imposta quante battute precedenti possono essere annullate.\n"
+"\n"
+"Nota: il valore effettivo terrà conto della voce\n"
+"dei dizionari con il numero massimo di battute."
#: plover/gui_qt/config_window.py:514
msgid "Key press delay (ms):"
-msgstr ""
+msgstr "Ritardo pressione tasti (ms):"
#: plover/gui_qt/config_window.py:522
msgid ""
@@ -581,10 +622,18 @@ msgid ""
"Setting the delay too high will negatively impact the\n"
"performance of key stroke output."
msgstr ""
+"Imposta il ritardo tra le pressioni dei tasti emulate (in millisecondi).\n"
+"\n"
+"Alcuni programmi potrebbero perdere le pressioni dei tasti se ne vengono "
+"inviate troppe\n"
+"in un breve periodo di tempo. Aumentare il ritardo dà ai\n"
+"programmi il tempo di elaborare ogni pressione.\n"
+"Impostare un ritardo troppo alto influirà negativamente sulle\n"
+"prestazioni dell'uscita delle battute."
#: plover/gui_qt/config_window.py:532
msgid "Linux keyboard layout:"
-msgstr ""
+msgstr "Layout tastiera Linux:"
#: plover/gui_qt/config_window.py:546
msgid ""
@@ -595,169 +644,179 @@ msgid ""
"first keyboard layout\n"
"and can not detect layout switches."
msgstr ""
+"Imposta il layout della tastiera configurato nel sistema.\n"
+"Questo si applica solo quando si utilizza Linux/BSD e non si utilizza "
+"X11.\n"
+"\n"
+"Quando è selezionato il rilevamento automatico di Wayland, Plover è in "
+"grado di rilevare solo il primo layout di tastiera\n"
+"e non può rilevare i cambi di layout."
#: 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 ""
+"Quando è selezionato il rilevamento automatico di Wayland, Plover è in "
+"grado di rilevare solo il primo layout di tastiera e non può rilevare i "
+"cambi di layout."
#: plover/gui_qt/config_window.py:567
msgid "Plugins"
-msgstr ""
+msgstr "Plugin"
#: plover/gui_qt/config_window.py:570
msgid "Extensions:"
-msgstr ""
+msgstr "Estensioni:"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
msgid "Enabled"
-msgstr ""
+msgstr "Abilitata"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/config_window.py:578 plover/gui_qt/plugins_manager_ui.py:136
msgid "Name"
-msgstr ""
+msgstr "Nome"
#: plover/gui_qt/config_window.py:580
msgid "Configure enabled plugin extensions."
-msgstr ""
+msgstr "Configura le estensioni dei plugin abilitate."
#: plover/gui_qt/config_window.py:589
msgid "System:"
-msgstr ""
+msgstr "Sistema:"
#. Widget: “ConfigWindow”, window title.
#: plover/gui_qt/config_window_ui.py:61
msgid "Plover: Configuration"
-msgstr ""
+msgstr "Plover: Configurazione"
#. Widget: “ConsoleWidget”, window title.
#: plover/gui_qt/console_widget_ui.py:49
msgid "Form"
-msgstr ""
+msgstr "Modulo"
#. Widget: “DictionariesWidget”, file picker.
#: plover/gui_qt/dictionaries_widget.py:46
#, python-brace-format
msgid "Dictionaries ({extensions})"
-msgstr ""
+msgstr "Dizionari ({extensions})"
#. Widget: “DictionariesWidget”, file picker.
#: plover/gui_qt/dictionaries_widget.py:49
#, python-brace-format
msgid "{format} dictionaries ({extensions})"
-msgstr ""
+msgstr "Dizionari {format} ({extensions})"
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:391
msgid "disabled"
-msgstr ""
+msgstr "disabilitato"
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:394
msgid "favorite"
-msgstr ""
+msgstr "preferito"
#: plover/gui_qt/dictionaries_widget.py:398
#, python-brace-format
msgid "errored: {exception}."
-msgstr ""
+msgstr "errore: {exception}."
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:402
msgid "loading"
-msgstr ""
+msgstr "caricamento"
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:405
msgid "read-only"
-msgstr ""
+msgstr "sola lettura"
#. Widget: “DictionariesWidget”, tooltip.
#: plover/gui_qt/dictionaries_widget.py:411
#, python-brace-format
msgid "Full path: {path}."
-msgstr ""
+msgstr "Percorso completo: {path}."
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget.py:414
msgid "This dictionary is marked as the favorite."
-msgstr ""
+msgstr "Questo dizionario è contrassegnato come preferito."
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget.py:417
msgid "This dictionary is being loaded."
-msgstr ""
+msgstr "Caricamento di questo dizionario in corso."
#: plover/gui_qt/dictionaries_widget.py:421
#, python-brace-format
msgid "Loading this dictionary failed: {exception}."
-msgstr ""
+msgstr "Caricamento di questo dizionario fallito: {exception}."
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget.py:427
msgid "This dictionary is read-only."
-msgstr ""
+msgstr "Questo dizionario è in sola lettura."
#. Widget: “DictionariesWidget”, “save as copy” file picker.
#: plover/gui_qt/dictionaries_widget.py:618
#, python-brace-format
msgid "Save a copy of {name} as..."
-msgstr ""
+msgstr "Salva una copia di {name} come..."
#. Widget: “DictionariesWidget”, “save as copy” file picker.
#: plover/gui_qt/dictionaries_widget.py:620
#, python-brace-format
msgid "{name} - Copy"
-msgstr ""
+msgstr "{name} - Copia"
#. Widget: “DictionariesWidget”, “save as merge” file picker.
#: plover/gui_qt/dictionaries_widget.py:642
#, python-brace-format
msgid "Merge {names} as..."
-msgstr ""
+msgstr "Unisci {names} come..."
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget.py:671
#: plover/gui_qt/dictionaries_widget_ui.py:203
msgid "Load dictionaries"
-msgstr ""
+msgstr "Carica dizionari"
#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget.py:683
#: plover/gui_qt/dictionaries_widget_ui.py:205
msgid "Create dictionary"
-msgstr ""
+msgstr "Crea dizionario"
#. 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 ""
+msgstr "Dizionari"
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:127
msgid "&Edit dictionaries"
-msgstr ""
+msgstr "&Modifica dizionari"
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget_ui.py:130
msgid "Edit selected dictionaries"
-msgstr ""
+msgstr "Modifica i dizionari selezionati"
#. Widget: “DictionariesWidget”, shortcut.
#: plover/gui_qt/dictionaries_widget_ui.py:134
msgid "Ctrl+E"
-msgstr ""
+msgstr "Ctrl+E"
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:137
msgid "&Save dictionaries as..."
-msgstr ""
+msgstr "&Salva dizionari come..."
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget_ui.py:140
@@ -765,239 +824,241 @@ 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 ogni dizionario o "
+"uniscili in un nuovo dizionario."
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “PaperTape”, shortcut.
#: plover/gui_qt/dictionaries_widget_ui.py:144
#: plover/gui_qt/paper_tape_ui.py:129
msgid "Ctrl+S"
-msgstr ""
+msgstr "Ctrl+S"
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:147
msgid "&Remove dictionaries"
-msgstr ""
+msgstr "&Rimuovi dizionari"
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget_ui.py:150
msgid "Remove selected dictionaries"
-msgstr ""
+msgstr "Rimuovi i dizionari selezionati"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
#: plover/gui_qt/dictionaries_widget_ui.py:154
#: plover/gui_qt/dictionary_editor_ui.py:149
msgid "Del"
-msgstr ""
+msgstr "Canc"
#. Widget: “DictionariesWidget”, text.
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:157
#: plover/gui_qt/dictionary_editor_ui.py:152
msgid "&Undo"
-msgstr ""
+msgstr "&Annulla"
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget_ui.py:160
msgid "Undo last add/delete/reorder operation."
-msgstr ""
+msgstr "Annulla l'ultima operazione di aggiunta/eliminazione/riordino."
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
#: plover/gui_qt/dictionaries_widget_ui.py:164
#: plover/gui_qt/dictionary_editor_ui.py:159
msgid "Ctrl+Z"
-msgstr ""
+msgstr "Ctrl+Z"
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:167
msgid "&Add dictionaries"
-msgstr ""
+msgstr "&Aggiungi dizionari"
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget_ui.py:170
msgid "Add dictionaries"
-msgstr ""
+msgstr "Aggiungi dizionari"
#. Widget: “DictionariesWidget”, shortcut.
#: plover/gui_qt/dictionaries_widget_ui.py:174
msgid "Ctrl+O"
-msgstr ""
+msgstr "Ctrl+O"
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:177
msgid "Add &translation"
-msgstr ""
+msgstr "Aggiungi &traduzione"
#. 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 ""
+msgstr "Aggiungi una nuova traduzione"
#. Widget: “DictionariesWidget”, shortcut.
#. Widget: “DictionaryEditor”, shortcut.
#: plover/gui_qt/dictionaries_widget_ui.py:184
#: plover/gui_qt/dictionary_editor_ui.py:169
msgid "Ctrl+N"
-msgstr ""
+msgstr "Ctrl+N"
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:187
msgid "Move dictionaries &up"
-msgstr ""
+msgstr "Sposta i dizionari in &alto"
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget_ui.py:190
msgid "Move selected dictionaries up."
-msgstr ""
+msgstr "Sposta i dizionari selezionati in alto."
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:193
msgid "Move dictionaries &down"
-msgstr ""
+msgstr "Sposta i dizionari in &basso"
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget_ui.py:196
msgid "Move selected dictionaries down."
-msgstr ""
+msgstr "Sposta i dizionari selezionati in basso."
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:199
msgid "Create a copy of each dictionary"
-msgstr ""
+msgstr "Crea una copia di ogni dizionario"
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget_ui.py:201
msgid "Merge dictionaries into a new one"
-msgstr ""
+msgstr "Unisci i dizionari in uno nuovo"
#. Widget: “DictionaryEditor”, window title.
#: plover/gui_qt/dictionary_editor_ui.py:140
msgid "Plover: Dictionary Editor"
-msgstr ""
+msgstr "Plover: Editor dizionari"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:142
msgid "&Delete"
-msgstr ""
+msgstr "&Elimina"
#. Widget: “DictionaryEditor”, tool tip.
#: plover/gui_qt/dictionary_editor_ui.py:145
msgid "Delete selected entries."
-msgstr ""
+msgstr "Elimina le voci selezionate."
#. Widget: “DictionaryEditor”, tool tip.
#: plover/gui_qt/dictionary_editor_ui.py:155
msgid "Undo last add/delete/edit operation."
-msgstr ""
+msgstr "Annulla l'ultima operazione di aggiunta/eliminazione/modifica."
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:162
msgid "&New translation"
-msgstr ""
+msgstr "&Nuova traduzione"
#. Widget: “DictionaryEditor”, accessible name.
#. Widget: “DictionaryEditor”, title.
#: plover/gui_qt/dictionary_editor_ui.py:173
#: plover/gui_qt/dictionary_editor_ui.py:176
msgid "Filter"
-msgstr ""
+msgstr "Filtro"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:178
msgid "By strokes:"
-msgstr ""
+msgstr "Per battute:"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:181
msgid "Strokes filter"
-msgstr ""
+msgstr "Filtro battute"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:185
msgid "Apply filter"
-msgstr ""
+msgstr "Applica filtro"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:188
msgid "Apply"
-msgstr ""
+msgstr "Applica"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:190
msgid "By translation:"
-msgstr ""
+msgstr "Per traduzione:"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:193
msgid "Translation filter"
-msgstr ""
+msgstr "Filtro traduzione"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:197
msgid "Clear filter"
-msgstr ""
+msgstr "Cancella filtro"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:203
msgid "Clear"
-msgstr ""
+msgstr "Cancella"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:206
msgid "Mappings"
-msgstr ""
+msgstr "Associazioni"
#. Widget: “LookupDialog”, tooltip.
#: plover/gui_qt/lookup_dialog.py:12
msgid "Search the dictionary for translations."
-msgstr ""
+msgstr "Cerca le traduzioni nel dizionario."
#: plover/gui_qt/lookup_dialog.py:14
msgid "Lookup"
-msgstr ""
+msgstr "Ricerca"
#. Widget: “LookupDialog”, window title.
#: plover/gui_qt/lookup_dialog_ui.py:72
msgid "Plover: Dictionary Lookup"
-msgstr ""
+msgstr "Plover: Ricerca nel dizionario"
#. Widget: “LookupDialog”, accessible name.
#: plover/gui_qt/lookup_dialog_ui.py:75
msgid "Pattern"
-msgstr ""
+msgstr "Modello"
#. Widget: “LookupDialog”, accessible description.
#: plover/gui_qt/lookup_dialog_ui.py:79
msgid "Translation pattern to lookup."
-msgstr ""
+msgstr "Modello di traduzione da cercare."
#. Widget: “LookupDialog”, accessible name.
#: plover/gui_qt/lookup_dialog_ui.py:83
msgid "Results"
-msgstr ""
+msgstr "Risultati"
#: plover/gui_qt/machine_options.py:36
#, python-brace-format
msgid "product: {value}"
-msgstr ""
+msgstr "prodotto: {value}"
#: plover/gui_qt/machine_options.py:37
#, python-brace-format
msgid "manufacturer: {value}"
-msgstr ""
+msgstr "produttore: {value}"
#: plover/gui_qt/machine_options.py:38
#, python-brace-format
msgid "serial number: {value}"
-msgstr ""
+msgstr "numero di serie: {value}"
#: plover/gui_qt/machine_options.py:46
#, python-brace-format
msgid "description: {value}"
-msgstr ""
+msgstr "descrizione: {value}"
#: plover/gui_qt/machine_options.py:199
msgid ""
@@ -1006,376 +1067,441 @@ msgid ""
"Each key can be pressed separately and the\n"
"space bar is pressed to send the stroke."
msgstr ""
+"L'arpeggio consente di utilizzare tastiere non NKRO.\n"
+"\n"
+"Ogni tasto può essere premuto separatamente e la\n"
+"barra spaziatrice viene premuta per inviare la battuta."
#: plover/gui_qt/main_window.py:312
msgid "Application is still running."
-msgstr ""
+msgstr "L'applicazione è ancora in esecuzione."
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:202
msgid "&Quit Plover"
-msgstr ""
+msgstr "&Esci da Plover"
#. Widget: “MainWindow”, tool tip.
#: plover/gui_qt/main_window_ui.py:205
msgid "Quit the application."
-msgstr ""
+msgstr "Esci dall'applicazione."
#. Widget: “MainWindow”, shortcut.
#: plover/gui_qt/main_window_ui.py:209
msgid "Ctrl+Q"
-msgstr ""
+msgstr "Ctrl+Q"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:212
msgid "&Configure"
-msgstr ""
+msgstr "&Configura"
#. Widget: “MainWindow”, tool tip.
#: plover/gui_qt/main_window_ui.py:215
msgid "Open the configuration dialog."
-msgstr ""
+msgstr "Apri la finestra di configurazione."
#. Widget: “MainWindow”, shortcut.
#: plover/gui_qt/main_window_ui.py:219
msgid "Ctrl+,"
-msgstr ""
+msgstr "Ctrl+,"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:222
msgid "Open config &folder"
-msgstr ""
+msgstr "Apri la &cartella di configurazione"
#. Widget: “MainWindow”, tool tip.
#: plover/gui_qt/main_window_ui.py:225
msgid "Open the configuration folder."
-msgstr ""
+msgstr "Apri la cartella di configurazione."
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:228
msgid "&About"
-msgstr ""
+msgstr "&Informazioni"
#. Widget: “MainWindow”, tool tip.
#: plover/gui_qt/main_window_ui.py:231
msgid "Open the about dialog."
-msgstr ""
+msgstr "Apri la finestra delle informazioni."
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:234
msgid "&Reconnect machine"
-msgstr ""
+msgstr "&Riconnetti macchina"
#. 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 ""
+msgstr "Disconnetti e riconnetti la macchina."
#. Widget: “MainWindow”, shortcut.
#: plover/gui_qt/main_window_ui.py:241
msgid "Ctrl+R"
-msgstr ""
+msgstr "Ctrl+R"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:244
msgid "&Show"
-msgstr ""
+msgstr "&Mostra"
#. Widget: “MainWindow”, tool tip.
#: plover/gui_qt/main_window_ui.py:247
msgid "Show the main window."
-msgstr ""
+msgstr "Mostra la finestra principale."
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:250
msgid "Toggle &output"
-msgstr ""
+msgstr "Attiva/disattiva &uscita"
#. Widget: “MainWindow”, tool tip.
#: plover/gui_qt/main_window_ui.py:253
msgid "Toggle the output."
-msgstr ""
+msgstr "Attiva o disattiva l'uscita."
#. Widget: “MainWindow”, shortcut.
#: plover/gui_qt/main_window_ui.py:257
msgid "Ctrl+."
-msgstr ""
+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 ""
+msgstr "Stato"
#. Widget: “MainWindow”, accessible description.
#: plover/gui_qt/main_window_ui.py:267
msgid "Connection state for the current machine."
-msgstr ""
+msgstr "Stato della connessione per la macchina corrente."
#. Widget: “MainWindow”, accessible name.
#: plover/gui_qt/main_window_ui.py:276
msgid "Reconnect"
-msgstr ""
+msgstr "Riconnetti"
#. Widget: “MainWindow”, accessible name.
#: plover/gui_qt/main_window_ui.py:285
msgid "Type"
-msgstr ""
+msgstr "Tipo"
#. Widget: “MainWindow”, accessible description.
#: plover/gui_qt/main_window_ui.py:289
msgid "Change the current machine type."
-msgstr ""
+msgstr "Cambia il tipo di macchina corrente."
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:296
msgid "Disabled"
-msgstr ""
+msgstr "Disabilitata"
#. Widget: “MainWindow”, title.
#: plover/gui_qt/main_window_ui.py:298
msgid "&File"
-msgstr ""
+msgstr "&File"
#. Widget: “MainWindow”, title.
#: plover/gui_qt/main_window_ui.py:300
msgid "&Tools"
-msgstr ""
+msgstr "&Strumenti"
#. Widget: “MainWindow”, title.
#: plover/gui_qt/main_window_ui.py:302
msgid "&Help"
-msgstr ""
+msgstr "&Aiuto"
#. Widget: “MainWindow”, title.
#: plover/gui_qt/main_window_ui.py:304
msgid "&Edit"
-msgstr ""
+msgstr "&Modifica"
#. Widget: “MainWindow”, window title.
#: plover/gui_qt/main_window_ui.py:306
msgid "Plover: Toolbar"
-msgstr ""
+msgstr "Plover: Barra degli strumenti"
#. Paper tape style.
#: plover/gui_qt/paper_tape.py:30
msgid "Paper"
-msgstr ""
+msgstr "Carta"
#. Paper tape style.
#: plover/gui_qt/paper_tape.py:32
msgid "Raw"
-msgstr ""
+msgstr "Grezzo"
#. Widget: “PaperTape”, tooltip.
#: plover/gui_qt/paper_tape.py:122
msgid "Paper tape display of strokes."
-msgstr ""
+msgstr "Visualizzazione delle battute sul nastro di carta."
#: plover/gui_qt/paper_tape.py:124
msgid "Paper Tape"
-msgstr ""
+msgstr "Nastro di carta"
#: plover/gui_qt/paper_tape.py:237
msgid "Do you want to clear the paper tape?"
-msgstr ""
+msgstr "Vuoi cancellare il nastro di carta?"
#: plover/gui_qt/paper_tape.py:255
msgid "Save Paper Tape"
-msgstr ""
+msgstr "Salva nastro di carta"
#. Paper tape, "save" file picker.
#: plover/gui_qt/paper_tape.py:258
msgid "Text files (*.txt)"
-msgstr ""
+msgstr "File di testo (*.txt)"
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
#: plover/gui_qt/paper_tape_ui.py:112 plover/gui_qt/suggestions_dialog_ui.py:70
msgid "&Clear"
-msgstr ""
+msgstr "&Cancella"
#. Widget: “PaperTape”, tool tip.
#: plover/gui_qt/paper_tape_ui.py:115
msgid "Clear paper tape."
-msgstr ""
+msgstr "Cancella il nastro di carta."
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
#: plover/gui_qt/paper_tape_ui.py:119 plover/gui_qt/suggestions_dialog_ui.py:77
msgid "Ctrl+L"
-msgstr ""
+msgstr "Ctrl+L"
#. Widget: “PaperTape”, text.
#: plover/gui_qt/paper_tape_ui.py:122
msgid "&Save"
-msgstr ""
+msgstr "&Salva"
#. Widget: “PaperTape”, tool tip.
#: plover/gui_qt/paper_tape_ui.py:125
msgid "Save paper tape to file."
-msgstr ""
+msgstr "Salva il nastro di carta su file."
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
#: plover/gui_qt/paper_tape_ui.py:132 plover/gui_qt/suggestions_dialog_ui.py:80
msgid "&Toggle \"always on top\""
-msgstr ""
+msgstr "&Attiva/disattiva \"sempre in primo piano\""
#. 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 ""
+msgstr "Attiva o disattiva \"sempre in primo piano\"."
#. Widget: “PaperTape”, shortcut.
#. Widget: “SuggestionsDialog”, shortcut.
#: plover/gui_qt/paper_tape_ui.py:139 plover/gui_qt/suggestions_dialog_ui.py:87
msgid "Ctrl+T"
-msgstr ""
+msgstr "Ctrl+T"
#. Widget: “PaperTape”, text.
#. Widget: “SuggestionsDialog”, text.
#: plover/gui_qt/paper_tape_ui.py:142 plover/gui_qt/suggestions_dialog_ui.py:90
msgid "Select &font"
-msgstr ""
+msgstr "Seleziona &carattere"
#. 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 ""
+msgstr "Apri la finestra di selezione del carattere."
#. Widget: “PaperTape”, text.
#: plover/gui_qt/paper_tape_ui.py:148
msgid "Mode:"
-msgstr ""
+msgstr "Modalità:"
#. Widget: “PaperTape”, accessible name.
#: plover/gui_qt/paper_tape_ui.py:151
msgid "Mode"
-msgstr ""
+msgstr "Modalità"
#. Widget: “PaperTape”, accessible description.
#: plover/gui_qt/paper_tape_ui.py:155
msgid "Select paper tape display mode."
-msgstr ""
+msgstr "Seleziona la modalità di visualizzazione del nastro di carta."
#. Widget: “PaperTape”, accessible name.
#: plover/gui_qt/paper_tape_ui.py:159
msgid "Tape"
+msgstr "Nastro"
+
+#: plover/gui_qt/plugins_manager.py:26
+msgid "Plugins Manager"
+msgstr "Gestore plugin"
+
+#: plover/gui_qt/plugins_manager.py:75
+msgid "N/A"
+msgstr "N/D"
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:127
+#, python-format
+msgid "Author: %s
"
+msgstr "Autore: %s
"
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:133
+#, python-format
+msgid "Home page: %s
"
+msgstr "Pagina iniziale: %s
"
+
+#: plover/gui_qt/plugins_manager.py:180
+msgid "Install from Git repo"
+msgstr "Installa da repository Git"
+
+#: plover/gui_qt/plugins_manager.py:182
+msgid ""
+"WARNING: Installing plugins is a security risk.
A plugin from a Git"
+" repo can contain malicious code.
Only install it if you got it from a"
+" trusted source.
Enter repository link for plugin
(will "
+"look similar to https://github.com/user/repository.git):
"
+msgstr ""
+"ATTENZIONE: L'installazione di plugin è un rischio per la "
+"sicurezza.
Un plugin da un repository Git può contenere codice "
+"malevolo.
Installalo solo se lo hai ottenuto da una fonte "
+"attendibile.
Inserisci il link del repository per il "
+"plugin
(sarà simile a https://github.com/utente/repository.git):
"
+
+#: plover/gui_qt/plugins_manager.py:204
+#, python-brace-format
+msgid "Install {packages}"
+msgstr "Installa {packages}"
+
+#: plover/gui_qt/plugins_manager.py:206
+msgid ""
+"Installing plugins is a security risk. A plugin can contain "
+"virus/malware. Only install it if you got it from a trusted source. Are "
+"you sure you want to proceed?"
msgstr ""
+"L'installazione di plugin è un rischio per la sicurezza. Un plugin"
+" può contenere virus/malware. Installalo solo se lo hai ottenuto da una "
+"fonte attendibile. Sei sicuro di voler procedere?"
+
+#: plover/gui_qt/plugins_manager.py:233
+#, python-brace-format
+msgid "Uninstall {packages}"
+msgstr "Disinstalla {packages}"
+
+#: plover/gui_qt/plugins_manager.py:234
+msgid "Are you sure you want to proceed?"
+msgstr "Sei sicuro di voler procedere?"
#. 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 ""
+msgstr "Finestra"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:139
msgid "Version"
-msgstr ""
+msgstr "Versione"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:142
msgid "Summary"
-msgstr ""
+msgstr "Riepilogo"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:144
msgid "Restart"
-msgstr ""
+msgstr "Riavvia"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:148
msgid "Uninstall"
-msgstr ""
+msgstr "Disinstalla"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:150
msgid "Install/Update"
-msgstr ""
+msgstr "Installa/Aggiorna"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:152
msgid "..."
-msgstr ""
+msgstr "..."
#. Widget: “SuggestionsDialog”, tooltip.
#: plover/gui_qt/suggestions_dialog.py:26
msgid "Suggest possible strokes for the last written words."
-msgstr ""
+msgstr "Suggerisce le possibili battute per le ultime parole scritte."
#. Widget: “SuggestionsDialog”, accessible name.
#: plover/gui_qt/suggestions_dialog.py:28
#: plover/gui_qt/suggestions_dialog_ui.py:97
msgid "Suggestions"
-msgstr ""
+msgstr "Suggerimenti"
#. Widget: “SuggestionsDialog”, “font” menu.
#: plover/gui_qt/suggestions_dialog.py:62
msgid "&Text"
-msgstr ""
+msgstr "&Testo"
#. Widget: “SuggestionsDialog”, “font” menu.
#: plover/gui_qt/suggestions_dialog.py:64
msgid "&Strokes"
-msgstr ""
+msgstr "&Battute"
#. Widget: “SuggestionsDialog”, tool tip.
#: plover/gui_qt/suggestions_dialog_ui.py:73
msgid "Clear the history."
-msgstr ""
+msgstr "Cancella la cronologia."
#. Widget: “SuggestionsWidget”.
#: plover/gui_qt/suggestions_widget.py:27
msgid "no suggestions"
-msgstr ""
+msgstr "nessun suggerimento"
#: plover/gui_qt/trayicon.py:118
#, python-brace-format
msgid "{machine} is {state}"
-msgstr ""
+msgstr "{machine} è {state}"
#. Tray icon tooltip.
#: plover/gui_qt/trayicon.py:124
msgid "output is enabled"
-msgstr ""
+msgstr "l'uscita è abilitata"
#. Tray icon tooltip.
#: plover/gui_qt/trayicon.py:127
msgid "output is disabled"
-msgstr ""
+msgstr "l'uscita è disabilitata"
#: plover/gui_qt/utils.py:28
msgid "Copy selection to clipboard"
-msgstr ""
+msgstr "Copia la selezione negli appunti"
#. Machine state.
#: plover/machine/base.py:20
msgid "stopped"
-msgstr ""
+msgstr "fermata"
#. Machine state.
#: plover/machine/base.py:22
msgid "initializing"
-msgstr ""
+msgstr "inizializzazione"
#. Machine state.
#: plover/machine/base.py:24
msgid "connected"
-msgstr ""
+msgstr "connessa"
#. Machine state.
#: plover/machine/base.py:26
msgid "disconnected"
-msgstr ""
+msgstr "disconnessa"
#. Machine name.
#: plover/machine/keyboard.py:14
msgid "Keyboard"
-msgstr ""
+msgstr "Tastiera"
diff --git a/plover/messages/nl/LC_MESSAGES/plover.po b/plover/messages/nl/LC_MESSAGES/plover.po
index 9ed958792..d9a120b97 100644
--- a/plover/messages/nl/LC_MESSAGES/plover.po
+++ b/plover/messages/nl/LC_MESSAGES/plover.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\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"
+"POT-Creation-Date: 2026-03-09 20:26+0100\n"
+"PO-Revision-Date: 2026-03-08 12:00+0100\n"
+"Last-Translator: Gemini CLI\n"
"Language: nl\n"
"Language-Team: Dutch \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -69,7 +69,7 @@ msgstr ""
#: plover/dictionary/helpers.py:24
#, python-format
msgid "dictionary `%s` loaded with %u invalid steno errors"
-msgstr ""
+msgstr "woordenboek \"%s\" geladen met %u ongeldige steno-fouten"
#. Widget: “AboutDialog”, window title.
#: plover/gui_qt/about_dialog_ui.py:53
@@ -160,43 +160,38 @@ 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."
+msgstr "Selecteer het doelwoordenboek voor de nieuwe vertaling."
#. Widget: “AddTranslationWidget”, accessible name.
#: plover/gui_qt/add_translation_widget_ui.py:147
msgid "Existing mappings (strokes)"
-msgstr ""
+msgstr "Bestaande toewijzingen (aanslagen)"
#. Widget: “AddTranslationWidget”, accessible name.
#: plover/gui_qt/add_translation_widget_ui.py:152
msgid "Existing mappings (translations)"
-msgstr ""
+msgstr "Bestaande toewijzingen (vertalingen)"
#. Widget: “FileWidget”, accessible name.
#: plover/gui_qt/config_file_widget_ui.py:61
-#, fuzzy
msgid "Log file path."
-msgstr "Logbestand:"
+msgstr "Pad naar 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."
+msgstr "Pad naar het logbestand."
#. Widget: “FileWidget”, accessible name.
#: plover/gui_qt/config_file_widget_ui.py:69
-#, fuzzy
msgid "Browse."
-msgstr "Bladeren"
+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."
+msgstr "Open een bestandsverkenner om het logbestand te selecteren."
#. Widget: “FileWidget”, text.
#: plover/gui_qt/config_file_widget_ui.py:76
@@ -211,11 +206,15 @@ 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 ""
+"Wanneer de eerste toets in een akkoord wordt losgelaten, wordt het "
+"akkoord verzonden.\n"
+"Als de toets opnieuw wordt ingedrukt en losgelaten, wordt er nog een "
+"akkoord verzonden."
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:60
msgid "First-up chord send"
-msgstr ""
+msgstr "Verzend akkoord bij loslaten"
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:62
@@ -225,52 +224,52 @@ msgstr "Arpeggiëren"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:93
msgid "Send chord on first key release"
-msgstr ""
+msgstr "Verzend akkoord bij het loslaten van de eerste toets"
#. 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 ""
+msgstr "Tik op een akkoord en houd het vast om het herhaaldelijk te verzenden."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:99
msgid "Double tap to repeat"
-msgstr ""
+msgstr "Dubbeltik om te herhalen"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:101
msgid "Repeat delay (ms)"
-msgstr ""
+msgstr "Herhaalvertraging (ms)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:104
msgid "Delay before chord starts repeating."
-msgstr ""
+msgstr "Vertraging voordat akkoord begint te herhalen."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:107
msgid "Repeat interval (ms)"
-msgstr ""
+msgstr "Herhaalinterval (ms)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:110
msgid "Interval between chord repetitions."
-msgstr ""
+msgstr "Interval tussen herhalingen van akkoorden."
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:113
msgid "Device scan interval (ms)"
-msgstr ""
+msgstr "Scaninterval voor apparaten (ms)"
#. 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 ""
+msgstr "Hoe vaak moet er worden gezocht naar nieuw aangesloten apparaten."
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:215
msgid "Serial"
-msgstr ""
+msgstr "Serieel"
#. Widget: “SerialWidget”, title.
#: plover/gui_qt/config_serial_widget_ui.py:218
@@ -287,19 +286,19 @@ msgstr "Poort"
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:227
msgid "Serial port device name."
-msgstr ""
+msgstr "Apparaatnaam van seriële poort."
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:231
msgid "Reload all available serial ports."
-msgstr ""
+msgstr "Alle beschikbare seriële poorten herladen."
#. Widget: “SerialWidget”, text.
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/config_serial_widget_ui.py:234
#: plover/gui_qt/plugins_manager_ui.py:146
msgid "Refresh"
-msgstr ""
+msgstr "Vernieuwen"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
@@ -342,18 +341,17 @@ msgstr "Time-out"
#. Widget: “SerialWidget”, text.
#: plover/gui_qt/config_serial_widget_ui.py:267
msgid "Duration (s)"
-msgstr ""
+msgstr "Duur (s)"
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:270
-#, fuzzy
msgid "Duration"
-msgstr "Actie"
+msgstr "Duur"
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:274
msgid "Timeout duration in seconds."
-msgstr ""
+msgstr "Timeoutduur in seconden."
#. Widget: “SerialWidget”, title.
#: plover/gui_qt/config_serial_widget_ui.py:277
@@ -402,7 +400,7 @@ msgstr "Interface"
#: plover/gui_qt/config_window.py:357
msgid "Appearance:"
-msgstr ""
+msgstr "Uiterlijk:"
#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
msgid "System"
@@ -410,11 +408,11 @@ msgstr "Systeem"
#: plover/gui_qt/config_window.py:363
msgid "Light"
-msgstr ""
+msgstr "Licht"
#: plover/gui_qt/config_window.py:364
msgid "Dark"
-msgstr ""
+msgstr "Donker"
#: plover/gui_qt/config_window.py:368
msgid ""
@@ -423,6 +421,10 @@ msgid ""
"- Light: force light mode\n"
"- Dark: force dark mode"
msgstr ""
+"Stel het uiterlijk van de applicatie in:\n"
+"- Systeem: volg de modus van het besturingssysteem\n"
+"- Licht: forceer lichte modus\n"
+"- Donker: forceer donkere modus"
#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
@@ -608,7 +610,7 @@ msgstr ""
#: plover/gui_qt/config_window.py:514
msgid "Key press delay (ms):"
-msgstr ""
+msgstr "Toetsaanslagvertraging (ms):"
#: plover/gui_qt/config_window.py:522
msgid ""
@@ -620,10 +622,19 @@ msgid ""
"Setting the delay too high will negatively impact the\n"
"performance of key stroke output."
msgstr ""
+"Stel de vertraging tussen gesimuleerde toetsaanslagen in (in "
+"milliseconden).\n"
+"\n"
+"Sommige programma's kunnen toetsaanslagen missen als er te veel worden "
+"verzonden\n"
+"binnen een korte tijd. Het verhogen van de vertraging geeft\n"
+"programma's de tijd om elke toetsaanslag te verwerken.\n"
+"Een te hoge vertraging zal de prestaties van de uitvoer nadelig "
+"beïnvloeden."
#: plover/gui_qt/config_window.py:532
msgid "Linux keyboard layout:"
-msgstr ""
+msgstr "Linux-toetsenbordindeling:"
#: plover/gui_qt/config_window.py:546
msgid ""
@@ -634,21 +645,29 @@ msgid ""
"first keyboard layout\n"
"and can not detect layout switches."
msgstr ""
+"Stel de toetsenbordindeling in die in uw systeem is geconfigureerd.\n"
+"Dit geldt alleen bij gebruik van Linux/BSD en geen gebruik van X11.\n"
+"\n"
+"Wanneer Wayland auto-detect is geselecteerd, kan Plover alleen de eerste "
+"toetsenbordindeling detecteren\n"
+"en geen wijzigingen in de indeling detecteren."
#: 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 ""
+"Wanneer Wayland auto-detect is geselecteerd, kan Plover alleen de eerste "
+"toetsenbordindeling detecteren en geen wijzigingen in de indeling "
+"detecteren."
#: plover/gui_qt/config_window.py:567
msgid "Plugins"
msgstr "Plug-ins"
#: plover/gui_qt/config_window.py:570
-#, fuzzy
msgid "Extensions:"
-msgstr "Extensie:"
+msgstr "Extensies:"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
@@ -676,7 +695,7 @@ msgstr "Plover: Instellingen"
#. Widget: “ConsoleWidget”, window title.
#: plover/gui_qt/console_widget_ui.py:49
msgid "Form"
-msgstr ""
+msgstr "Formulier"
#. Widget: “DictionariesWidget”, file picker.
#: plover/gui_qt/dictionaries_widget.py:46
@@ -692,40 +711,37 @@ msgstr "{format} woordenboeken ({extensions})"
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:391
-#, fuzzy
msgid "disabled"
-msgstr "Uitgeschakeld"
+msgstr "uitgeschakeld"
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:394
msgid "favorite"
-msgstr ""
+msgstr "favoriet"
#: plover/gui_qt/dictionaries_widget.py:398
#, python-brace-format
msgid "errored: {exception}."
-msgstr ""
+msgstr "fout: {exception}."
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:402
-#, fuzzy
msgid "loading"
-msgstr "Logs"
+msgstr "laden..."
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:405
msgid "read-only"
-msgstr ""
+msgstr "alleen-lezen"
#. Widget: “DictionariesWidget”, tooltip.
#: plover/gui_qt/dictionaries_widget.py:411
#, python-brace-format
msgid "Full path: {path}."
-msgstr ""
+msgstr "Volledig pad: {path}."
#. 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."
@@ -735,9 +751,9 @@ msgid "This dictionary is being loaded."
msgstr "Dit woordenboek wordt momenteel geladen."
#: plover/gui_qt/dictionaries_widget.py:421
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Loading this dictionary failed: {exception}."
-msgstr "Dit woordenboek is alleen-lezen."
+msgstr "Laden van dit woordenboek is mislukt: {exception}."
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget.py:427
@@ -765,17 +781,15 @@ msgstr "Voeg {names} samen als..."
#. 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"
+msgstr "Woordenboeken laden"
#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget.py:683
#: plover/gui_qt/dictionaries_widget_ui.py:205
-#, fuzzy
msgid "Create dictionary"
-msgstr "Nieuw woordenboek"
+msgstr "Woordenboek maken"
#. Widget: “DictionariesWidget”, title.
#. Widget: “DictionariesWidget”, accessible name.
@@ -959,15 +973,13 @@ msgstr "Op aanslagen:"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:181
-#, fuzzy
msgid "Strokes filter"
-msgstr "Aanslagen"
+msgstr "Aanslagenfilter"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:185
-#, fuzzy
msgid "Apply filter"
-msgstr "Filter"
+msgstr "Filter toepassen"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:188
@@ -981,15 +993,13 @@ msgstr "Op vertaling:"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:193
-#, fuzzy
msgid "Translation filter"
-msgstr "Vertaling"
+msgstr "Vertalingfilter"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:197
-#, fuzzy
msgid "Clear filter"
-msgstr "Filter"
+msgstr "Filter wissen"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:203
@@ -999,7 +1009,7 @@ msgstr "Leegmaken"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:206
msgid "Mappings"
-msgstr ""
+msgstr "Toewijzingen"
#. Widget: “LookupDialog”, tooltip.
#: plover/gui_qt/lookup_dialog.py:12
@@ -1017,39 +1027,38 @@ msgstr "Plover: Zoek in woordenboek"
#. Widget: “LookupDialog”, accessible name.
#: plover/gui_qt/lookup_dialog_ui.py:75
-#, fuzzy
msgid "Pattern"
-msgstr "Papier"
+msgstr "Patroon"
#. Widget: “LookupDialog”, accessible description.
#: plover/gui_qt/lookup_dialog_ui.py:79
msgid "Translation pattern to lookup."
-msgstr ""
+msgstr "Vertalingspatroon om op te zoeken."
#. Widget: “LookupDialog”, accessible name.
#: plover/gui_qt/lookup_dialog_ui.py:83
msgid "Results"
-msgstr ""
+msgstr "Resultaten"
#: plover/gui_qt/machine_options.py:36
#, python-brace-format
msgid "product: {value}"
-msgstr ""
+msgstr "product: {value}"
#: plover/gui_qt/machine_options.py:37
#, python-brace-format
msgid "manufacturer: {value}"
-msgstr ""
+msgstr "fabrikant: {value}"
#: plover/gui_qt/machine_options.py:38
#, python-brace-format
msgid "serial number: {value}"
-msgstr ""
+msgstr "serienummer: {value}"
#: plover/gui_qt/machine_options.py:46
#, python-brace-format
msgid "description: {value}"
-msgstr ""
+msgstr "beschrijving: {value}"
#: plover/gui_qt/machine_options.py:199
msgid ""
@@ -1066,7 +1075,7 @@ msgstr ""
#: plover/gui_qt/main_window.py:312
msgid "Application is still running."
-msgstr ""
+msgstr "Applicatie is nog steeds in uitvoering."
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:202
@@ -1163,30 +1172,28 @@ 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
-#, fuzzy
msgid "State"
-msgstr "&Opslaan"
+msgstr "Status"
#. Widget: “MainWindow”, accessible description.
#: plover/gui_qt/main_window_ui.py:267
msgid "Connection state for the current machine."
-msgstr ""
+msgstr "Verbindingsstatus van de huidige machine."
#. Widget: “MainWindow”, accessible name.
#: plover/gui_qt/main_window_ui.py:276
-#, fuzzy
msgid "Reconnect"
-msgstr "verbonden"
+msgstr "Herverbinden"
#. Widget: “MainWindow”, accessible name.
#: plover/gui_qt/main_window_ui.py:285
msgid "Type"
-msgstr ""
+msgstr "Type"
#. Widget: “MainWindow”, accessible description.
#: plover/gui_qt/main_window_ui.py:289
msgid "Change the current machine type."
-msgstr ""
+msgstr "Huidige machinetype wijzigen."
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:296
@@ -1231,7 +1238,7 @@ msgstr "Ruw"
#. Widget: “PaperTape”, tooltip.
#: plover/gui_qt/paper_tape.py:122
msgid "Paper tape display of strokes."
-msgstr ""
+msgstr "Papierstrookweergave van aanslagen."
#: plover/gui_qt/paper_tape.py:124
msgid "Paper Tape"
@@ -1309,9 +1316,8 @@ 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"
+msgstr "Modus:"
#. Widget: “PaperTape”, accessible name.
#: plover/gui_qt/paper_tape_ui.py:151
@@ -1320,51 +1326,110 @@ 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."
+msgstr "Selecteer de weergavemodus van de papierstrook."
#. Widget: “PaperTape”, accessible name.
#: plover/gui_qt/paper_tape_ui.py:159
-#, fuzzy
msgid "Tape"
-msgstr "Papier"
+msgstr "Strook"
+
+#: plover/gui_qt/plugins_manager.py:26
+msgid "Plugins Manager"
+msgstr "Plug-inbeheer"
+
+#: plover/gui_qt/plugins_manager.py:75
+msgid "N/A"
+msgstr "n.v.t."
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:127
+#, python-format
+msgid "Author: %s
"
+msgstr "Auteur: %s
"
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:133
+#, python-format
+msgid "Home page: %s
"
+msgstr "Homepage: %s
"
+
+#: plover/gui_qt/plugins_manager.py:180
+msgid "Install from Git repo"
+msgstr "Installeren vanuit Git-repo"
+
+#: plover/gui_qt/plugins_manager.py:182
+msgid ""
+"WARNING: Installing plugins is a security risk.
A plugin from a Git"
+" repo can contain malicious code.
Only install it if you got it from a"
+" trusted source.
Enter repository link for plugin
(will "
+"look similar to https://github.com/user/repository.git):
"
+msgstr ""
+"WAARSCHUWING: Het installeren van plug-ins is een "
+"veiligheidsrisico.
Een plug-in uit een Git-repository kan kwaadaardige"
+" code bevatten.
Installeer deze alleen als u deze van een vertrouwde "
+"bron hebt verkregen.
Voer de repository-link voor de plug-in "
+"in
(zal lijken op https://github.com/gebruiker/repository.git):
"
+
+#: plover/gui_qt/plugins_manager.py:204
+#, python-brace-format
+msgid "Install {packages}"
+msgstr "Installeer {packages}"
+
+#: plover/gui_qt/plugins_manager.py:206
+msgid ""
+"Installing plugins is a security risk. A plugin can contain "
+"virus/malware. Only install it if you got it from a trusted source. Are "
+"you sure you want to proceed?"
+msgstr ""
+"Het installeren van plug-ins is een veiligheidsrisico. Een plug-in"
+" kan virussen/malware bevatten. Installeer deze alleen als u deze van een"
+" vertrouwde bron hebt verkregen. Weet u zeker dat u wilt doorgaan?"
+
+#: plover/gui_qt/plugins_manager.py:233
+#, python-brace-format
+msgid "Uninstall {packages}"
+msgstr "Deïnstalleer {packages}"
+
+#: plover/gui_qt/plugins_manager.py:234
+msgid "Are you sure you want to proceed?"
+msgstr "Weet u zeker dat u wilt doorgaan?"
#. 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 ""
+msgstr "Dialoogvenster"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:139
msgid "Version"
-msgstr ""
+msgstr "Versie"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:142
msgid "Summary"
-msgstr ""
+msgstr "Samenvatting"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:144
msgid "Restart"
-msgstr ""
+msgstr "Herstarten"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:148
msgid "Uninstall"
-msgstr ""
+msgstr "Verwijderen"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:150
msgid "Install/Update"
-msgstr ""
+msgstr "Installeren/Updaten"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:152
msgid "..."
-msgstr ""
+msgstr "..."
#. Widget: “SuggestionsDialog”, tooltip.
#: plover/gui_qt/suggestions_dialog.py:26
@@ -1414,7 +1479,7 @@ msgstr "uitvoer staat uit"
#: plover/gui_qt/utils.py:28
msgid "Copy selection to clipboard"
-msgstr ""
+msgstr "Selectie naar klembord kopiëren"
#. Machine state.
#: plover/machine/base.py:20
diff --git a/plover/messages/plover.pot b/plover/messages/plover.pot
index c65bbf589..4b45c1ca6 100644
--- a/plover/messages/plover.pot
+++ b/plover/messages/plover.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2026-03-07 10:58+0100\n"
+"POT-Creation-Date: 2026-03-09 20:26+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -1266,6 +1266,59 @@ msgstr ""
msgid "Tape"
msgstr ""
+#: plover/gui_qt/plugins_manager.py:26
+msgid "Plugins Manager"
+msgstr ""
+
+#: plover/gui_qt/plugins_manager.py:75
+msgid "N/A"
+msgstr ""
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:127
+#, python-format
+msgid "Author: %s
"
+msgstr ""
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:133
+#, python-format
+msgid "Home page: %s
"
+msgstr ""
+
+#: plover/gui_qt/plugins_manager.py:180
+msgid "Install from Git repo"
+msgstr ""
+
+#: plover/gui_qt/plugins_manager.py:182
+msgid ""
+"WARNING: Installing plugins is a security risk.
A plugin from a Git"
+" repo can contain malicious code.
Only install it if you got it from a"
+" trusted source.
Enter repository link for plugin
(will "
+"look similar to https://github.com/user/repository.git):
"
+msgstr ""
+
+#: plover/gui_qt/plugins_manager.py:204
+#, python-brace-format
+msgid "Install {packages}"
+msgstr ""
+
+#: plover/gui_qt/plugins_manager.py:206
+msgid ""
+"Installing plugins is a security risk. A plugin can contain "
+"virus/malware. Only install it if you got it from a trusted source. Are "
+"you sure you want to proceed?"
+msgstr ""
+
+#: plover/gui_qt/plugins_manager.py:233
+#, python-brace-format
+msgid "Uninstall {packages}"
+msgstr ""
+
+#: plover/gui_qt/plugins_manager.py:234
+msgid "Are you sure you want to proceed?"
+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
diff --git a/plover/messages/zh_tw/LC_MESSAGES/plover.po b/plover/messages/zh_tw/LC_MESSAGES/plover.po
index 518ba0dcf..e284eb609 100644
--- a/plover/messages/zh_tw/LC_MESSAGES/plover.po
+++ b/plover/messages/zh_tw/LC_MESSAGES/plover.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: plover 5.2.3\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2026-03-07 10:58+0100\n"
-"PO-Revision-Date: 2021-08-25 14:34+0800\n"
-"Last-Translator: \n"
+"POT-Creation-Date: 2026-03-09 20:26+0100\n"
+"PO-Revision-Date: 2026-03-08 12:00+0100\n"
+"Last-Translator: Gemini CLI\n"
"Language: zh_TW\n"
"Language-Team: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -65,7 +65,7 @@ msgstr ""
#: plover/dictionary/helpers.py:24
#, python-format
msgid "dictionary `%s` loaded with %u invalid steno errors"
-msgstr ""
+msgstr "字典「%s」載入完畢,共有 %u 個無效速錄錯誤"
#. Widget: “AboutDialog”, window title.
#: plover/gui_qt/about_dialog_ui.py:53
@@ -156,43 +156,38 @@ 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 "在字典內尋找翻譯。"
+msgstr "選擇新翻譯的目標字典。"
#. Widget: “AddTranslationWidget”, accessible name.
#: plover/gui_qt/add_translation_widget_ui.py:147
msgid "Existing mappings (strokes)"
-msgstr ""
+msgstr "現有的對映 (和弦)"
#. Widget: “AddTranslationWidget”, accessible name.
#: plover/gui_qt/add_translation_widget_ui.py:152
msgid "Existing mappings (translations)"
-msgstr ""
+msgstr "現有的對映 (翻譯)"
#. Widget: “FileWidget”, accessible name.
#: plover/gui_qt/config_file_widget_ui.py:61
-#, fuzzy
msgid "Log file path."
-msgstr "紀錄檔:"
+msgstr "紀錄檔路徑。"
#. Widget: “FileWidget”, accessible description.
#: plover/gui_qt/config_file_widget_ui.py:65
-#, fuzzy
msgid "Path to the log file."
-msgstr "將和弦紀錄至紀錄檔。"
+msgstr "紀錄檔的路徑。"
#. Widget: “FileWidget”, accessible name.
#: plover/gui_qt/config_file_widget_ui.py:69
-#, fuzzy
msgid "Browse."
-msgstr "瀏覽"
+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 "將和弦紀錄至紀錄檔。"
+msgstr "開啟檔案選取器以選擇紀錄檔。"
#. Widget: “FileWidget”, text.
#: plover/gui_qt/config_file_widget_ui.py:76
@@ -207,11 +202,13 @@ 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 ""
+"當和弦中的第一個按鍵放開時,即送出和弦。\n"
+"如果該按鍵再次被按下並放開,則會送出另一個和弦。"
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:60
msgid "First-up chord send"
-msgstr ""
+msgstr "放開首鍵時送出和弦"
#. Widget: “KeyboardWidget”, text.
#: plover/gui_qt/config_keyboard_widget_ui.py:62
@@ -221,52 +218,52 @@ msgstr "琶音"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:93
msgid "Send chord on first key release"
-msgstr ""
+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 ""
+msgstr "點擊並按住和弦以重複送出。"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:99
msgid "Double tap to repeat"
-msgstr ""
+msgstr "雙擊重複"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:101
msgid "Repeat delay (ms)"
-msgstr ""
+msgstr "重複延遲 (毫秒)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:104
msgid "Delay before chord starts repeating."
-msgstr ""
+msgstr "和弦開始重複前的延遲時間。"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:107
msgid "Repeat interval (ms)"
-msgstr ""
+msgstr "重複間隔 (毫秒)"
#. Widget: “PloverHidWidget”, tool tip.
#: plover/gui_qt/config_plover_hid_widget_ui.py:110
msgid "Interval between chord repetitions."
-msgstr ""
+msgstr "和弦重複之間的間隔時間。"
#. Widget: “PloverHidWidget”, text.
#: plover/gui_qt/config_plover_hid_widget_ui.py:113
msgid "Device scan interval (ms)"
-msgstr ""
+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 ""
+msgstr "掃描新插入設備的頻率。"
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:215
msgid "Serial"
-msgstr ""
+msgstr "序列埠"
#. Widget: “SerialWidget”, title.
#: plover/gui_qt/config_serial_widget_ui.py:218
@@ -283,19 +280,19 @@ msgstr "連接埠"
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:227
msgid "Serial port device name."
-msgstr ""
+msgstr "序列埠設備名稱。"
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:231
msgid "Reload all available serial ports."
-msgstr ""
+msgstr "重新載入所有可用的序列埠。"
#. Widget: “SerialWidget”, text.
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/config_serial_widget_ui.py:234
#: plover/gui_qt/plugins_manager_ui.py:146
msgid "Refresh"
-msgstr ""
+msgstr "重新整理"
#. Widget: “SerialWidget”, text.
#. Widget: “SerialWidget”, accessible name.
@@ -338,18 +335,17 @@ msgstr "等待時間"
#. Widget: “SerialWidget”, text.
#: plover/gui_qt/config_serial_widget_ui.py:267
msgid "Duration (s)"
-msgstr ""
+msgstr "持續時間 (秒)"
#. Widget: “SerialWidget”, accessible name.
#: plover/gui_qt/config_serial_widget_ui.py:270
-#, fuzzy
msgid "Duration"
-msgstr "字根"
+msgstr "持續時間"
#. Widget: “SerialWidget”, accessible description.
#: plover/gui_qt/config_serial_widget_ui.py:274
msgid "Timeout duration in seconds."
-msgstr ""
+msgstr "等待時間 (以秒計)。"
#. Widget: “SerialWidget”, title.
#: plover/gui_qt/config_serial_widget_ui.py:277
@@ -398,19 +394,19 @@ msgstr "界面"
#: plover/gui_qt/config_window.py:357
msgid "Appearance:"
-msgstr ""
+msgstr "外觀:"
#: plover/gui_qt/config_window.py:362 plover/gui_qt/config_window.py:586
msgid "System"
-msgstr "語言系統"
+msgstr "系統"
#: plover/gui_qt/config_window.py:363
msgid "Light"
-msgstr ""
+msgstr "淺色"
#: plover/gui_qt/config_window.py:364
msgid "Dark"
-msgstr ""
+msgstr "深色"
#: plover/gui_qt/config_window.py:368
msgid ""
@@ -419,6 +415,10 @@ msgid ""
"- Light: force light mode\n"
"- Dark: force dark mode"
msgstr ""
+"設定應用程式外觀:\n"
+"- 系統:跟隨作業系統設定\n"
+"- 淺色:強制使用淺色模式\n"
+"- 深色:強制使用深色模式"
#: plover/gui_qt/config_window.py:375
msgid "Start minimized:"
@@ -594,7 +594,7 @@ msgstr "設定回復的最大次數。"
#: plover/gui_qt/config_window.py:514
msgid "Key press delay (ms):"
-msgstr ""
+msgstr "按鍵延遲 (毫秒):"
#: plover/gui_qt/config_window.py:522
msgid ""
@@ -606,10 +606,15 @@ msgid ""
"Setting the delay too high will negatively impact the\n"
"performance of key stroke output."
msgstr ""
+"設定模擬按鍵之間的延遲時間 (以毫秒計)。\n"
+"\n"
+"如果在短時間內送出太多按鍵,某些程式可能會漏掉按鍵。\n"
+"增加延遲可以讓程式有時間處理每次按鍵。\n"
+"延遲設定過高會對輸出效能產生負面影響。"
#: plover/gui_qt/config_window.py:532
msgid "Linux keyboard layout:"
-msgstr ""
+msgstr "Linux 鍵盤佈局:"
#: plover/gui_qt/config_window.py:546
msgid ""
@@ -620,21 +625,25 @@ msgid ""
"first keyboard layout\n"
"and can not detect layout switches."
msgstr ""
+"設定系統中配置的鍵盤佈局。\n"
+"這僅適用於使用 Linux/BSD 且不使用 X11 的情況。\n"
+"\n"
+"當選取 Wayland 自動偵測時,Plover 僅能偵測第一個鍵盤佈局,\n"
+"且無法偵測佈局切換。"
#: 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 ""
+msgstr "當選取 Wayland 自動偵測時,Plover 僅能偵測第一個鍵盤佈局,且無法偵測佈局切換。"
#: plover/gui_qt/config_window.py:567
msgid "Plugins"
msgstr "外掛程式"
#: plover/gui_qt/config_window.py:570
-#, fuzzy
msgid "Extensions:"
-msgstr "擴充程式:"
+msgstr "擴充功能:"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/config_window.py:578 plover/gui_qt/main_window_ui.py:294
@@ -662,7 +671,7 @@ msgstr "Plover: 設定"
#. Widget: “ConsoleWidget”, window title.
#: plover/gui_qt/console_widget_ui.py:49
msgid "Form"
-msgstr ""
+msgstr "表單"
#. Widget: “DictionariesWidget”, file picker.
#: plover/gui_qt/dictionaries_widget.py:46
@@ -678,42 +687,39 @@ msgstr "{format} 字典 ({extensions})"
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:391
-#, fuzzy
msgid "disabled"
-msgstr "已禁用"
+msgstr "已停用"
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:394
msgid "favorite"
-msgstr ""
+msgstr "最愛"
#: plover/gui_qt/dictionaries_widget.py:398
#, python-brace-format
msgid "errored: {exception}."
-msgstr ""
+msgstr "錯誤:{exception}。"
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:402
-#, fuzzy
msgid "loading"
-msgstr "輸入紀錄"
+msgstr "載入中…"
#. Widget: “DictionariesWidget”, accessible text.
#: plover/gui_qt/dictionaries_widget.py:405
msgid "read-only"
-msgstr ""
+msgstr "唯讀"
#. Widget: “DictionariesWidget”, tooltip.
#: plover/gui_qt/dictionaries_widget.py:411
#, python-brace-format
msgid "Full path: {path}."
-msgstr ""
+msgstr "完整路徑:{path}。"
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget.py:414
-#, fuzzy
msgid "This dictionary is marked as the favorite."
-msgstr "字典已被加到最愛。"
+msgstr "此字典已標記為最愛。"
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget.py:417
@@ -721,9 +727,9 @@ msgid "This dictionary is being loaded."
msgstr "字典正在載入中…"
#: plover/gui_qt/dictionaries_widget.py:421
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "Loading this dictionary failed: {exception}."
-msgstr "字典為唯讀狀態。"
+msgstr "載入此字典失敗:{exception}。"
#. Widget: “DictionariesWidget”, tool tip.
#: plover/gui_qt/dictionaries_widget.py:427
@@ -751,17 +757,15 @@ msgstr "合併 {names} 為..."
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget.py:671
#: plover/gui_qt/dictionaries_widget_ui.py:203
-#, fuzzy
msgid "Load dictionaries"
-msgstr "新增字典"
+msgstr "載入字典"
#. Widget: “DictionariesWidget”, “new” file picker.
#. Widget: “DictionariesWidget”, text.
#: plover/gui_qt/dictionaries_widget.py:683
#: plover/gui_qt/dictionaries_widget_ui.py:205
-#, fuzzy
msgid "Create dictionary"
-msgstr "新字典"
+msgstr "建立字典"
#. Widget: “DictionariesWidget”, title.
#. Widget: “DictionariesWidget”, accessible name.
@@ -943,20 +947,18 @@ msgstr "依照和弦:"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:181
-#, fuzzy
msgid "Strokes filter"
-msgstr "和弦"
+msgstr "和弦過濾器"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:185
-#, fuzzy
msgid "Apply filter"
-msgstr "過濾"
+msgstr "套用過濾器"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:188
msgid "Apply"
-msgstr "適用"
+msgstr "套用"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:190
@@ -965,15 +967,13 @@ msgstr "依照翻譯:"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:193
-#, fuzzy
msgid "Translation filter"
-msgstr "翻譯"
+msgstr "翻譯過濾器"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:197
-#, fuzzy
msgid "Clear filter"
-msgstr "過濾"
+msgstr "清除過濾器"
#. Widget: “DictionaryEditor”, text.
#: plover/gui_qt/dictionary_editor_ui.py:203
@@ -983,7 +983,7 @@ msgstr "清除"
#. Widget: “DictionaryEditor”, accessible name.
#: plover/gui_qt/dictionary_editor_ui.py:206
msgid "Mappings"
-msgstr ""
+msgstr "對映"
#. Widget: “LookupDialog”, tooltip.
#: plover/gui_qt/lookup_dialog.py:12
@@ -1001,39 +1001,38 @@ msgstr "Plover:字典查詢"
#. Widget: “LookupDialog”, accessible name.
#: plover/gui_qt/lookup_dialog_ui.py:75
-#, fuzzy
msgid "Pattern"
-msgstr "紙帶模式"
+msgstr "樣式"
#. Widget: “LookupDialog”, accessible description.
#: plover/gui_qt/lookup_dialog_ui.py:79
msgid "Translation pattern to lookup."
-msgstr ""
+msgstr "要查詢的翻譯樣式。"
#. Widget: “LookupDialog”, accessible name.
#: plover/gui_qt/lookup_dialog_ui.py:83
msgid "Results"
-msgstr ""
+msgstr "結果"
#: plover/gui_qt/machine_options.py:36
#, python-brace-format
msgid "product: {value}"
-msgstr ""
+msgstr "產品:{value}"
#: plover/gui_qt/machine_options.py:37
#, python-brace-format
msgid "manufacturer: {value}"
-msgstr ""
+msgstr "製造商:{value}"
#: plover/gui_qt/machine_options.py:38
#, python-brace-format
msgid "serial number: {value}"
-msgstr ""
+msgstr "序號:{value}"
#: plover/gui_qt/machine_options.py:46
#, python-brace-format
msgid "description: {value}"
-msgstr ""
+msgstr "描述:{value}"
#: plover/gui_qt/machine_options.py:199
msgid ""
@@ -1049,7 +1048,7 @@ msgstr ""
#: plover/gui_qt/main_window.py:312
msgid "Application is still running."
-msgstr ""
+msgstr "應用程式仍在執行中。"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:202
@@ -1146,30 +1145,28 @@ 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
-#, fuzzy
msgid "State"
-msgstr "&存檔"
+msgstr "狀態"
#. Widget: “MainWindow”, accessible description.
#: plover/gui_qt/main_window_ui.py:267
msgid "Connection state for the current machine."
-msgstr ""
+msgstr "目前機器的連接狀態。"
#. Widget: “MainWindow”, accessible name.
#: plover/gui_qt/main_window_ui.py:276
-#, fuzzy
msgid "Reconnect"
-msgstr "已連接"
+msgstr "重新連接"
#. Widget: “MainWindow”, accessible name.
#: plover/gui_qt/main_window_ui.py:285
msgid "Type"
-msgstr ""
+msgstr "類型"
#. Widget: “MainWindow”, accessible description.
#: plover/gui_qt/main_window_ui.py:289
msgid "Change the current machine type."
-msgstr ""
+msgstr "更改目前機器類型。"
#. Widget: “MainWindow”, text.
#: plover/gui_qt/main_window_ui.py:296
@@ -1214,7 +1211,7 @@ msgstr "原始模式"
#. Widget: “PaperTape”, tooltip.
#: plover/gui_qt/paper_tape.py:122
msgid "Paper tape display of strokes."
-msgstr ""
+msgstr "紙帶顯示和弦。"
#: plover/gui_qt/paper_tape.py:124
msgid "Paper Tape"
@@ -1292,9 +1289,8 @@ msgstr "開啟字體選擇視窗。"
#. Widget: “PaperTape”, text.
#: plover/gui_qt/paper_tape_ui.py:148
-#, fuzzy
msgid "Mode:"
-msgstr "模式"
+msgstr "模式:"
#. Widget: “PaperTape”, accessible name.
#: plover/gui_qt/paper_tape_ui.py:151
@@ -1303,56 +1299,110 @@ msgstr "模式"
#. Widget: “PaperTape”, accessible description.
#: plover/gui_qt/paper_tape_ui.py:155
-#, fuzzy
msgid "Select paper tape display mode."
-msgstr "將輸入紙帶存檔。"
+msgstr "選擇紙帶顯示模式。"
#. Widget: “PaperTape”, accessible name.
#: plover/gui_qt/paper_tape_ui.py:159
-#, fuzzy
msgid "Tape"
-msgstr "紙帶模式"
+msgstr "紙帶"
+
+#: plover/gui_qt/plugins_manager.py:26
+msgid "Plugins Manager"
+msgstr "外掛程式"
+
+#: plover/gui_qt/plugins_manager.py:75
+msgid "N/A"
+msgstr "不適用"
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:127
+#, python-format
+msgid "Author: %s
"
+msgstr "作者:%s
"
+
+#. Metadata field.
+#: plover/gui_qt/plugins_manager.py:133
+#, python-format
+msgid "Home page: %s
"
+msgstr "首頁:%s
"
+
+#: plover/gui_qt/plugins_manager.py:180
+msgid "Install from Git repo"
+msgstr "從 Git 儲存庫安裝"
+
+#: plover/gui_qt/plugins_manager.py:182
+msgid ""
+"WARNING: Installing plugins is a security risk.
A plugin from a Git"
+" repo can contain malicious code.
Only install it if you got it from a"
+" trusted source.
Enter repository link for plugin
(will "
+"look similar to https://github.com/user/repository.git):
"
+msgstr ""
+"警告:安裝外掛程式存在安全風險。
來自 Git "
+"儲存庫的外掛程式可能包含惡意代碼。
僅在您從信任的來源獲取時才進行安裝。
輸入外掛程式的儲存庫連結
(看起來類似於"
+" https://github.com/user/repository.git):
"
+
+#: plover/gui_qt/plugins_manager.py:204
+#, python-brace-format
+msgid "Install {packages}"
+msgstr "安裝 {packages}"
+
+#: plover/gui_qt/plugins_manager.py:206
+msgid ""
+"Installing plugins is a security risk. A plugin can contain "
+"virus/malware. Only install it if you got it from a trusted source. Are "
+"you sure you want to proceed?"
+msgstr "安裝外掛程式是一個安全風險。外掛程式可能包含病毒或惡意軟體。僅在您從信任的來源獲取時才進行安裝。您確定要繼續嗎?"
+
+#: plover/gui_qt/plugins_manager.py:233
+#, python-brace-format
+msgid "Uninstall {packages}"
+msgstr "解除安裝 {packages}"
+
+#: plover/gui_qt/plugins_manager.py:234
+msgid "Are you sure you want to proceed?"
+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 ""
+msgstr "對話框"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:139
msgid "Version"
-msgstr ""
+msgstr "版本"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:142
msgid "Summary"
-msgstr ""
+msgstr "摘要"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:144
msgid "Restart"
-msgstr ""
+msgstr "重新啟動"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:148
msgid "Uninstall"
-msgstr ""
+msgstr "解除安裝"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:150
msgid "Install/Update"
-msgstr ""
+msgstr "安裝/更新"
#. Widget: “PluginsManager”, text.
#: plover/gui_qt/plugins_manager_ui.py:152
msgid "..."
-msgstr ""
+msgstr "..."
#. Widget: “SuggestionsDialog”, tooltip.
#: plover/gui_qt/suggestions_dialog.py:26
msgid "Suggest possible strokes for the last written words."
-msgstr "列出上一和弦的所有可能和弦。"
+msgstr "最後輸入文字的所有可能和弦建議。"
#. Widget: “SuggestionsDialog”, accessible name.
#: plover/gui_qt/suggestions_dialog.py:28
@@ -1397,7 +1447,7 @@ msgstr "輸出已關閉"
#: plover/gui_qt/utils.py:28
msgid "Copy selection to clipboard"
-msgstr ""
+msgstr "複製選取內容到剪貼簿"
#. Machine state.
#: plover/machine/base.py:20
diff --git a/plover_build_utils/qt_ui_hooks.py b/plover_build_utils/qt_ui_hooks.py
index 90a5267bc..1759dcb2b 100644
--- a/plover_build_utils/qt_ui_hooks.py
+++ b/plover_build_utils/qt_ui_hooks.py
@@ -35,7 +35,7 @@ def repl(m: Match[str]) -> str:
(
r"(?P *)(?P.*?)(?P\.set(?P\w+)\()?"
r'(?:QCoreApplication\.translate)\("(?P.*?)",\s*'
- r'(?Pu?"(?:[^"\\]|\\.)*?")'
+ r'(?P(?:u?"(?:[^"\\]|\\.)*?"\s*)+)'
r"(?:,\s*None)?"
),
repl,