diff --git a/.gitignore b/.gitignore index 988c9a15..0223b70f 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ buzz/whisper_cpp.py # Internationalization - compiled binaries *.mo +*.po~ benchmarks.json diff --git a/buzz/__version__.py b/buzz/__version__.py index ca638cf3..848258f9 100644 --- a/buzz/__version__.py +++ b/buzz/__version__.py @@ -1 +1 @@ -VERSION = "1.1.1" +VERSION = "1.2.0" diff --git a/buzz/locale/ca_ES/LC_MESSAGES/buzz.po b/buzz/locale/ca_ES/LC_MESSAGES/buzz.po index d217a155..9b5933c1 100644 --- a/buzz/locale/ca_ES/LC_MESSAGES/buzz.po +++ b/buzz/locale/ca_ES/LC_MESSAGES/buzz.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: buzz\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-27 11:58+0300\n" +"POT-Creation-Date: 2024-10-06 13:55+0300\n" "PO-Revision-Date: 2023-02-15 05:01+0000\n" "Last-Translator: Jordi Mas i Hernàndez \n" "Language-Team: Catalan \n" @@ -26,6 +26,7 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:295 #: buzz/widgets/main_window.py:234 @@ -34,7 +35,9 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 +#: buzz/widgets/model_download_progress_dialog.py:29 #: buzz/widgets/main_window.py:235 #, fuzzy msgid "Cancel" @@ -56,56 +59,61 @@ msgstr "" msgid "Reset to Defaults" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:49 msgid "Font Size" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:56 msgid "Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:62 msgid "OpenAI API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:75 msgid "OpenAI base url" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 msgid "Default export file name" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Enable live recording transcription export" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:115 msgid "Export folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +#, fuzzy +msgid "Live recording mode" +msgstr "Enregistrament en viu" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:151 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "OpenAI API Key Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:152 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:179 msgid "Select Export Folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:216 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:231 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -154,52 +162,52 @@ msgstr "Dreceres" msgid "Folder Watch" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:68 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 msgid "Group" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:80 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 msgid "Huggingface ID of a Faster whisper model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:91 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:93 msgid "Download" msgstr "Baixada" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:98 msgid "Show file location" msgstr "Mostra la ubicació del fitxer" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:106 msgid "Delete" msgstr "Suprimeix" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:137 msgid "Downloaded" msgstr "Baixat" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:140 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:142 msgid "Available for Download" msgstr "Disponible per baixar" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:161 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:163 msgid "Download link to Whisper.cpp ggml model file" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:237 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 msgid "Delete Model" msgstr "Suprimeix el model" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 msgid "Are you sure you want to delete the selected model?" msgstr "Esteu segur que voleu suprimir el model seleccionat?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:258 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:267 #, fuzzy msgid "Download failed" msgstr "Baixat" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:259 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 #: buzz/widgets/main_window.py:291 buzz/model_loader.py:473 msgid "Error" msgstr "Error" @@ -213,7 +221,7 @@ msgstr "Enregistra" msgid "Stop" msgstr "Atura" -#: buzz/widgets/transcriber/languages_combo_box.py:25 +#: buzz/widgets/transcriber/languages_combo_box.py:35 #: buzz/transcriber/transcriber.py:159 msgid "Detect Language" msgstr "Detecta l'idioma" @@ -291,7 +299,7 @@ msgstr "Temps amb granularitat de paraula" msgid "Export:" msgstr "" -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:36 +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 msgid "Huggingface ID of a model" msgstr "" @@ -316,75 +324,75 @@ msgstr "Cancel·la la transcripció" msgid "Clear History" msgstr "Neteja l'historial" -#: buzz/widgets/transcription_tasks_table_widget.py:62 +#: buzz/widgets/transcription_tasks_table_widget.py:64 msgid "In Progress" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:65 +#: buzz/widgets/transcription_tasks_table_widget.py:67 msgid "Completed" msgstr "Completat" -#: buzz/widgets/transcription_tasks_table_widget.py:72 +#: buzz/widgets/transcription_tasks_table_widget.py:74 msgid "Failed" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:75 +#: buzz/widgets/transcription_tasks_table_widget.py:77 msgid "Canceled" msgstr "Cancel·lat" -#: buzz/widgets/transcription_tasks_table_widget.py:77 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Queued" msgstr "A la cua" -#: buzz/widgets/transcription_tasks_table_widget.py:84 +#: buzz/widgets/transcription_tasks_table_widget.py:86 #, fuzzy msgid "File Name / URL" msgstr "Nom del fitxer" -#: buzz/widgets/transcription_tasks_table_widget.py:96 +#: buzz/widgets/transcription_tasks_table_widget.py:98 #, fuzzy msgid "Model" msgstr "Model:" -#: buzz/widgets/transcription_tasks_table_widget.py:105 +#: buzz/widgets/transcription_tasks_table_widget.py:107 #, fuzzy msgid "Task" msgstr "Tasca:" -#: buzz/widgets/transcription_tasks_table_widget.py:114 +#: buzz/widgets/transcription_tasks_table_widget.py:116 msgid "Status" msgstr "Estat" -#: buzz/widgets/transcription_tasks_table_widget.py:122 +#: buzz/widgets/transcription_tasks_table_widget.py:124 msgid "Date Added" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:133 +#: buzz/widgets/transcription_tasks_table_widget.py:135 #, fuzzy msgid "Date Completed" msgstr "Completat" -#: buzz/widgets/recording_transcriber_widget.py:73 +#: buzz/widgets/recording_transcriber_widget.py:79 msgid "Live Recording" msgstr "Enregistrament en viu" -#: buzz/widgets/recording_transcriber_widget.py:135 +#: buzz/widgets/recording_transcriber_widget.py:144 msgid "Click Record to begin..." msgstr "Feu clic a Enregistra per a començar..." -#: buzz/widgets/recording_transcriber_widget.py:138 +#: buzz/widgets/recording_transcriber_widget.py:147 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:150 +#: buzz/widgets/recording_transcriber_widget.py:159 msgid "Microphone:" msgstr "Micròfon:" -#: buzz/widgets/recording_transcriber_widget.py:414 +#: buzz/widgets/recording_transcriber_widget.py:523 msgid "An error occurred while starting a new recording:" msgstr "S'ha produït un error en iniciar un enregistrament nou:" -#: buzz/widgets/recording_transcriber_widget.py:418 +#: buzz/widgets/recording_transcriber_widget.py:527 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -410,14 +418,14 @@ msgstr "Finalitza" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:39 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 msgid "Text" msgstr "Text" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:62 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 #, fuzzy msgid "Translation" msgstr "Transcripció nova" @@ -459,11 +467,11 @@ msgstr "" msgid "Enter target characters per subtitle:" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:76 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 msgid "Save File" msgstr "Desa el fitxer" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 msgid "Text files" msgstr "Fitxers de text" @@ -575,6 +583,18 @@ msgstr "Transcripció nova" msgid "View Transcript Timestamps" msgstr "Transcripció nova" +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "" + #~ msgid "ID" #~ msgstr "ID" diff --git a/buzz/locale/es_ES/LC_MESSAGES/buzz.po b/buzz/locale/es_ES/LC_MESSAGES/buzz.po index c7968222..919d9dfc 100644 --- a/buzz/locale/es_ES/LC_MESSAGES/buzz.po +++ b/buzz/locale/es_ES/LC_MESSAGES/buzz.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-27 11:58+0300\n" +"POT-Creation-Date: 2024-10-06 13:55+0300\n" "PO-Revision-Date: 2023-11-09 04:35-0600\n" "Last-Translator: Adolfo Jayme Barrientos \n" "Language-Team: \n" @@ -27,6 +27,7 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:295 #: buzz/widgets/main_window.py:234 @@ -35,7 +36,9 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 +#: buzz/widgets/model_download_progress_dialog.py:29 #: buzz/widgets/main_window.py:235 #, fuzzy msgid "Cancel" @@ -57,56 +60,62 @@ msgstr "" msgid "Reset to Defaults" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:49 msgid "Font Size" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:56 msgid "Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:62 msgid "OpenAI API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:75 msgid "OpenAI base url" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 msgid "Default export file name" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Enable live recording transcription export" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:115 msgid "Export folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 +# automatic translation +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +#, fuzzy +msgid "Live recording mode" +msgstr "Grabación en vivo" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:151 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "OpenAI API Key Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:152 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:179 msgid "Select Export Folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:216 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:231 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -158,53 +167,53 @@ msgstr "Atajos" msgid "Folder Watch" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:68 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 msgid "Group" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:80 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 msgid "Huggingface ID of a Faster whisper model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:91 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:93 msgid "Download" msgstr "Descargar" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:98 msgid "Show file location" msgstr "Mostrar ubicación de archivo" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:106 msgid "Delete" msgstr "Eliminar" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:137 msgid "Downloaded" msgstr "Descargado" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:140 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:142 msgid "Available for Download" msgstr "Disponible para descarga" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:161 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:163 msgid "Download link to Whisper.cpp ggml model file" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:237 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 msgid "Delete Model" msgstr "Eliminar modelo" # automatic translation -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 msgid "Are you sure you want to delete the selected model?" msgstr "¿Confirma que quiere eliminar el modelo seleccionado?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:258 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:267 #, fuzzy msgid "Download failed" msgstr "Descargado" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:259 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 #: buzz/widgets/main_window.py:291 buzz/model_loader.py:473 msgid "Error" msgstr "Error" @@ -221,7 +230,7 @@ msgid "Stop" msgstr "Detener" # automatic translation -#: buzz/widgets/transcriber/languages_combo_box.py:25 +#: buzz/widgets/transcriber/languages_combo_box.py:35 #: buzz/transcriber/transcriber.py:159 msgid "Detect Language" msgstr "Detectar idioma" @@ -309,7 +318,7 @@ msgstr "Tiempos a nivel de palabra" msgid "Export:" msgstr "" -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:36 +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 msgid "Huggingface ID of a model" msgstr "" @@ -338,83 +347,83 @@ msgstr "Cancelar transcripción" msgid "Clear History" msgstr "Vaciar historial" -#: buzz/widgets/transcription_tasks_table_widget.py:62 +#: buzz/widgets/transcription_tasks_table_widget.py:64 msgid "In Progress" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:65 +#: buzz/widgets/transcription_tasks_table_widget.py:67 msgid "Completed" msgstr "Completado" -#: buzz/widgets/transcription_tasks_table_widget.py:72 +#: buzz/widgets/transcription_tasks_table_widget.py:74 msgid "Failed" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:75 +#: buzz/widgets/transcription_tasks_table_widget.py:77 msgid "Canceled" msgstr "Cancelado" -#: buzz/widgets/transcription_tasks_table_widget.py:77 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Queued" msgstr "En cola" # automatic translation -#: buzz/widgets/transcription_tasks_table_widget.py:84 +#: buzz/widgets/transcription_tasks_table_widget.py:86 #, fuzzy msgid "File Name / URL" msgstr "Nombre de archivo" # automatic translation -#: buzz/widgets/transcription_tasks_table_widget.py:96 +#: buzz/widgets/transcription_tasks_table_widget.py:98 #, fuzzy msgid "Model" msgstr "Modelo:" # automatic translation -#: buzz/widgets/transcription_tasks_table_widget.py:105 +#: buzz/widgets/transcription_tasks_table_widget.py:107 #, fuzzy msgid "Task" msgstr "Tarea:" -#: buzz/widgets/transcription_tasks_table_widget.py:114 +#: buzz/widgets/transcription_tasks_table_widget.py:116 msgid "Status" msgstr "Estado" -#: buzz/widgets/transcription_tasks_table_widget.py:122 +#: buzz/widgets/transcription_tasks_table_widget.py:124 msgid "Date Added" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:133 +#: buzz/widgets/transcription_tasks_table_widget.py:135 #, fuzzy msgid "Date Completed" msgstr "Completado" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:73 +#: buzz/widgets/recording_transcriber_widget.py:79 msgid "Live Recording" msgstr "Grabación en vivo" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:135 +#: buzz/widgets/recording_transcriber_widget.py:144 msgid "Click Record to begin..." msgstr "Pulse en Grabar para comenzar..." -#: buzz/widgets/recording_transcriber_widget.py:138 +#: buzz/widgets/recording_transcriber_widget.py:147 msgid "Waiting for AI translation..." msgstr "" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:150 +#: buzz/widgets/recording_transcriber_widget.py:159 msgid "Microphone:" msgstr "Micrófono:" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:414 +#: buzz/widgets/recording_transcriber_widget.py:523 msgid "An error occurred while starting a new recording:" msgstr "Se produjo un error al iniciar una grabación nueva:" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:418 +#: buzz/widgets/recording_transcriber_widget.py:527 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -442,15 +451,15 @@ msgstr "Fin" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:39 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 msgid "Text" msgstr "Texto" # automatic translation #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:62 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 #, fuzzy msgid "Translation" msgstr "Transcripción nueva" @@ -493,11 +502,11 @@ msgid "Enter target characters per subtitle:" msgstr "" # automatic translation -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:76 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 msgid "Save File" msgstr "Guardar archivo" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 msgid "Text files" msgstr "Archivos de texto" @@ -622,6 +631,18 @@ msgstr "Transcripción nueva" msgid "View Transcript Timestamps" msgstr "Transcripción nueva" +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "" + #~ msgid "ID" #~ msgstr "Id." diff --git a/buzz/locale/it_IT/LC_MESSAGES/buzz.po b/buzz/locale/it_IT/LC_MESSAGES/buzz.po index 5de2ae64..9eacdf7c 100644 --- a/buzz/locale/it_IT/LC_MESSAGES/buzz.po +++ b/buzz/locale/it_IT/LC_MESSAGES/buzz.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: buzz\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-27 11:58+0300\n" +"POT-Creation-Date: 2024-10-06 13:55+0300\n" "PO-Revision-Date: 2024-03-15 19:22+0100\n" "Language-Team: (Italiano) Albano Battistella \n" "Language: it_IT\n" @@ -26,6 +26,7 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:295 #: buzz/widgets/main_window.py:234 @@ -34,7 +35,9 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 +#: buzz/widgets/model_download_progress_dialog.py:29 #: buzz/widgets/main_window.py:235 msgid "Cancel" msgstr "Annulla" @@ -55,57 +58,62 @@ msgstr "L'URL inserito non è valido." msgid "Reset to Defaults" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:49 msgid "Font Size" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:56 msgid "Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:62 msgid "OpenAI API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:75 msgid "OpenAI base url" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 msgid "Default export file name" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Enable live recording transcription export" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:115 #, fuzzy msgid "Export folder" msgstr "Esporta" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +#, fuzzy +msgid "Live recording mode" +msgstr "Registrazione in diretta" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:151 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "OpenAI API Key Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:152 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:179 msgid "Select Export Folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:216 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:231 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -155,52 +163,52 @@ msgstr "Scorciatoie" msgid "Folder Watch" msgstr "Guarda cartella" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:68 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 msgid "Group" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:80 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 msgid "Huggingface ID of a Faster whisper model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:91 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:93 msgid "Download" msgstr "Download" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:98 msgid "Show file location" msgstr "Mostra la posizione del file" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:106 msgid "Delete" msgstr "Elimina" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:137 msgid "Downloaded" msgstr "Scaricato" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:140 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:142 msgid "Available for Download" msgstr "Disponibile per il download" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:161 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:163 msgid "Download link to Whisper.cpp ggml model file" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:237 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 msgid "Delete Model" msgstr "Elimina modello" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 msgid "Are you sure you want to delete the selected model?" msgstr "Sei sicuro di voler eliminare il modello selezionato?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:258 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:267 #, fuzzy msgid "Download failed" msgstr "Scaricato" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:259 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 #: buzz/widgets/main_window.py:291 buzz/model_loader.py:473 msgid "Error" msgstr "Errore" @@ -214,7 +222,7 @@ msgstr "Registra" msgid "Stop" msgstr "Arresta" -#: buzz/widgets/transcriber/languages_combo_box.py:25 +#: buzz/widgets/transcriber/languages_combo_box.py:35 #: buzz/transcriber/transcriber.py:159 msgid "Detect Language" msgstr "Rileva la lingua" @@ -293,7 +301,7 @@ msgstr "Tempistiche a livello di parola" msgid "Export:" msgstr "Esporta" -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:36 +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 msgid "Huggingface ID of a model" msgstr "" @@ -318,75 +326,75 @@ msgstr "Annulla trascrizione" msgid "Clear History" msgstr "Elimina la cronologia" -#: buzz/widgets/transcription_tasks_table_widget.py:62 +#: buzz/widgets/transcription_tasks_table_widget.py:64 msgid "In Progress" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:65 +#: buzz/widgets/transcription_tasks_table_widget.py:67 msgid "Completed" msgstr "Completato" -#: buzz/widgets/transcription_tasks_table_widget.py:72 +#: buzz/widgets/transcription_tasks_table_widget.py:74 msgid "Failed" msgstr "Non riuscito" -#: buzz/widgets/transcription_tasks_table_widget.py:75 +#: buzz/widgets/transcription_tasks_table_widget.py:77 msgid "Canceled" msgstr "Annullato" -#: buzz/widgets/transcription_tasks_table_widget.py:77 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Queued" msgstr "In coda" -#: buzz/widgets/transcription_tasks_table_widget.py:84 +#: buzz/widgets/transcription_tasks_table_widget.py:86 #, fuzzy msgid "File Name / URL" msgstr "Nome file" -#: buzz/widgets/transcription_tasks_table_widget.py:96 +#: buzz/widgets/transcription_tasks_table_widget.py:98 #, fuzzy msgid "Model" msgstr "Modello:" -#: buzz/widgets/transcription_tasks_table_widget.py:105 +#: buzz/widgets/transcription_tasks_table_widget.py:107 #, fuzzy msgid "Task" msgstr "Compito:" -#: buzz/widgets/transcription_tasks_table_widget.py:114 +#: buzz/widgets/transcription_tasks_table_widget.py:116 msgid "Status" msgstr "Stato" -#: buzz/widgets/transcription_tasks_table_widget.py:122 +#: buzz/widgets/transcription_tasks_table_widget.py:124 msgid "Date Added" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:133 +#: buzz/widgets/transcription_tasks_table_widget.py:135 #, fuzzy msgid "Date Completed" msgstr "Completato" -#: buzz/widgets/recording_transcriber_widget.py:73 +#: buzz/widgets/recording_transcriber_widget.py:79 msgid "Live Recording" msgstr "Registrazione in diretta" -#: buzz/widgets/recording_transcriber_widget.py:135 +#: buzz/widgets/recording_transcriber_widget.py:144 msgid "Click Record to begin..." msgstr "Fai clic su Registra per iniziare..." -#: buzz/widgets/recording_transcriber_widget.py:138 +#: buzz/widgets/recording_transcriber_widget.py:147 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:150 +#: buzz/widgets/recording_transcriber_widget.py:159 msgid "Microphone:" msgstr "Microfono:" -#: buzz/widgets/recording_transcriber_widget.py:414 +#: buzz/widgets/recording_transcriber_widget.py:523 msgid "An error occurred while starting a new recording:" msgstr "Si è verificato un errore durante l'avvio della nuova registrazione:" -#: buzz/widgets/recording_transcriber_widget.py:418 +#: buzz/widgets/recording_transcriber_widget.py:527 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -412,14 +420,14 @@ msgstr "Fine" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:39 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 msgid "Text" msgstr "Testo" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:62 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 #, fuzzy msgid "Translation" msgstr "Nuova trascrizione" @@ -461,11 +469,11 @@ msgstr "" msgid "Enter target characters per subtitle:" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:76 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 msgid "Save File" msgstr "Salva file" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 msgid "Text files" msgstr "File di testo" @@ -575,6 +583,18 @@ msgstr "Nuova trascrizione" msgid "View Transcript Timestamps" msgstr "Nuova trascrizione" +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "" + #~ msgid "ID" #~ msgstr "ID" diff --git a/buzz/locale/ja_JP/LC_MESSAGES/buzz.po b/buzz/locale/ja_JP/LC_MESSAGES/buzz.po index 3c11252d..74d90747 100644 --- a/buzz/locale/ja_JP/LC_MESSAGES/buzz.po +++ b/buzz/locale/ja_JP/LC_MESSAGES/buzz.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-27 11:58+0300\n" +"POT-Creation-Date: 2024-10-06 13:55+0300\n" "PO-Revision-Date: \n" "Last-Translator: nunawa <71294849+nunawa@users.noreply.github.com>\n" "Language-Team: \n" @@ -22,6 +22,7 @@ msgstr "https://example.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:295 #: buzz/widgets/main_window.py:234 @@ -30,7 +31,9 @@ msgstr "Ok" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 +#: buzz/widgets/model_download_progress_dialog.py:29 #: buzz/widgets/main_window.py:235 msgid "Cancel" msgstr "キャンセル" @@ -51,46 +54,51 @@ msgstr "入力されたURLは無効です。" msgid "Reset to Defaults" msgstr "デフォルトに戻す" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:49 msgid "Font Size" msgstr "フォントサイズ" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:56 msgid "Test" msgstr "テスト" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:62 msgid "OpenAI API key" msgstr "OpenAI APIキー" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:75 msgid "OpenAI base url" msgstr "OpenAI ベースURL" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 msgid "Default export file name" msgstr "デフォルトの出力ファイル名" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Enable live recording transcription export" msgstr "ライブ録音書き起こしの出力を有効にする" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "参照" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:115 msgid "Export folder" msgstr "出力フォルダ" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +#, fuzzy +msgid "Live recording mode" +msgstr "ライブ録音" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:151 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "OpenAI API Key Test" msgstr "OpenAI APIキー テスト" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:152 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -98,11 +106,11 @@ msgstr "" "あなたのAPIキーは有効です。Buzzはこのキーを使ってWhisper APIの書き起こしとAI" "翻訳を行います。" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:179 msgid "Select Export Folder" msgstr "出力フォルダを選択" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:216 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:231 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -152,51 +160,51 @@ msgstr "ショートカット" msgid "Folder Watch" msgstr "フォルダ監視" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:68 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 msgid "Group" msgstr "グループ" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:80 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 msgid "Huggingface ID of a Faster whisper model" msgstr "Faster whisperモデルのHuggingface ID" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:91 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:93 msgid "Download" msgstr "ダウンロード" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:98 msgid "Show file location" msgstr "ファイルの場所を表示" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:106 msgid "Delete" msgstr "削除" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:137 msgid "Downloaded" msgstr "ダウンロード済み" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:140 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:142 msgid "Available for Download" msgstr "ダウンロード可能" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:161 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:163 msgid "Download link to Whisper.cpp ggml model file" msgstr "Whisper.cpp ggmlモデルファイルのダウンロードリンク" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:237 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 msgid "Delete Model" msgstr "モデルを削除" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 msgid "Are you sure you want to delete the selected model?" msgstr "選択したモデルを本当に削除しますか?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:258 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:267 msgid "Download failed" msgstr "ダウンロード失敗" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:259 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 #: buzz/widgets/main_window.py:291 buzz/model_loader.py:473 msgid "Error" msgstr "エラー" @@ -210,7 +218,7 @@ msgstr "録音する" msgid "Stop" msgstr "停止する" -#: buzz/widgets/transcriber/languages_combo_box.py:25 +#: buzz/widgets/transcriber/languages_combo_box.py:35 #: buzz/transcriber/transcriber.py:159 msgid "Detect Language" msgstr "自動検出" @@ -287,7 +295,7 @@ msgstr "単語レベルでのタイミング" msgid "Export:" msgstr "出力形式:" -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:36 +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 msgid "Huggingface ID of a model" msgstr "モデルのHuggingface ID" @@ -312,71 +320,71 @@ msgstr "文字起こしをキャンセルする" msgid "Clear History" msgstr "履歴を削除する" -#: buzz/widgets/transcription_tasks_table_widget.py:62 +#: buzz/widgets/transcription_tasks_table_widget.py:64 msgid "In Progress" msgstr "進行中" -#: buzz/widgets/transcription_tasks_table_widget.py:65 +#: buzz/widgets/transcription_tasks_table_widget.py:67 msgid "Completed" msgstr "完了" -#: buzz/widgets/transcription_tasks_table_widget.py:72 +#: buzz/widgets/transcription_tasks_table_widget.py:74 msgid "Failed" msgstr "失敗" -#: buzz/widgets/transcription_tasks_table_widget.py:75 +#: buzz/widgets/transcription_tasks_table_widget.py:77 msgid "Canceled" msgstr "キャンセル済み" -#: buzz/widgets/transcription_tasks_table_widget.py:77 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Queued" msgstr "キュー済み" -#: buzz/widgets/transcription_tasks_table_widget.py:84 +#: buzz/widgets/transcription_tasks_table_widget.py:86 msgid "File Name / URL" msgstr "ファイル名 / URL" -#: buzz/widgets/transcription_tasks_table_widget.py:96 +#: buzz/widgets/transcription_tasks_table_widget.py:98 msgid "Model" msgstr "モデル" -#: buzz/widgets/transcription_tasks_table_widget.py:105 +#: buzz/widgets/transcription_tasks_table_widget.py:107 msgid "Task" msgstr "タスク" -#: buzz/widgets/transcription_tasks_table_widget.py:114 +#: buzz/widgets/transcription_tasks_table_widget.py:116 msgid "Status" msgstr "ステータス" -#: buzz/widgets/transcription_tasks_table_widget.py:122 +#: buzz/widgets/transcription_tasks_table_widget.py:124 msgid "Date Added" msgstr "追加日" -#: buzz/widgets/transcription_tasks_table_widget.py:133 +#: buzz/widgets/transcription_tasks_table_widget.py:135 msgid "Date Completed" msgstr "完了日" -#: buzz/widgets/recording_transcriber_widget.py:73 +#: buzz/widgets/recording_transcriber_widget.py:79 msgid "Live Recording" msgstr "ライブ録音" -#: buzz/widgets/recording_transcriber_widget.py:135 +#: buzz/widgets/recording_transcriber_widget.py:144 msgid "Click Record to begin..." msgstr "クリックで録音を開始..." -#: buzz/widgets/recording_transcriber_widget.py:138 +#: buzz/widgets/recording_transcriber_widget.py:147 msgid "Waiting for AI translation..." msgstr "AI翻訳を待っています..." -#: buzz/widgets/recording_transcriber_widget.py:150 +#: buzz/widgets/recording_transcriber_widget.py:159 msgid "Microphone:" msgstr "マイク:" -#: buzz/widgets/recording_transcriber_widget.py:414 +#: buzz/widgets/recording_transcriber_widget.py:523 msgid "An error occurred while starting a new recording:" msgstr "新規録音開始時にエラーが発生しました:" -#: buzz/widgets/recording_transcriber_widget.py:418 +#: buzz/widgets/recording_transcriber_widget.py:527 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -402,14 +410,14 @@ msgstr "終了" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:39 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 msgid "Text" msgstr "テキスト" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:62 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 msgid "Translation" msgstr "翻訳" @@ -450,11 +458,11 @@ msgstr "希望する字幕の長さ" msgid "Enter target characters per subtitle:" msgstr "字幕の目標文字数を入力してください:" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:76 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 msgid "Save File" msgstr "ファイルを保存" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 msgid "Text files" msgstr "テキストファイル" @@ -558,3 +566,15 @@ msgstr "文字起こしの翻訳を表示する" #: buzz/settings/shortcut.py:24 msgid "View Transcript Timestamps" msgstr "文字起こしのタイムスタンプを表示する" + +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "" diff --git a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po index 5a3b9548..c22ecaf4 100644 --- a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po +++ b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-27 11:58+0300\n" -"PO-Revision-Date: 2024-08-17 11:02+0300\n" +"POT-Creation-Date: 2024-10-06 13:55+0300\n" +"PO-Revision-Date: 2024-10-06 14:00+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: lv_LV\n" @@ -28,6 +28,7 @@ msgstr "https://example.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:295 #: buzz/widgets/main_window.py:234 @@ -36,7 +37,9 @@ msgstr "Labi" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 +#: buzz/widgets/model_download_progress_dialog.py:29 #: buzz/widgets/main_window.py:235 msgid "Cancel" msgstr "Atcelt" @@ -57,46 +60,52 @@ msgstr "Jūsu ievadītā URL adrese nav derīga." msgid "Reset to Defaults" msgstr "Atjaunot noklusētos" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:49 msgid "Font Size" msgstr "Fonta izmērs" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:56 msgid "Test" msgstr "Pārbaudīt" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:62 msgid "OpenAI API key" msgstr "OpenAI API atslēga" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:75 msgid "OpenAI base url" msgstr "OpenAI adrese" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 msgid "Default export file name" msgstr "Eksporta fails" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Enable live recording transcription export" msgstr "Eksportēt dzīvā ieraksta transkriptus" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Izvēlēties" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:115 msgid "Export folder" msgstr "Eksportēt mapē" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +msgid "Live recording mode" +msgstr "" +"Dzīvā ieraksta\n" +"režīms" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:151 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "OpenAI API Key Test" msgstr "OpenAI API atslēgas pārbaude" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:152 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -104,11 +113,11 @@ msgstr "" "Jūsu API atslēga ir derīga. Buzz izmantos to runas atpazīšanai ar Whisper " "API un tulkošanai." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:179 msgid "Select Export Folder" msgstr "Izvēlieties mapi kurā eksportēt" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:216 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:231 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -158,51 +167,51 @@ msgstr "Īsinājumi" msgid "Folder Watch" msgstr "Mapes vērošana" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:68 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 msgid "Group" msgstr "Veids" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:80 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 msgid "Huggingface ID of a Faster whisper model" msgstr "Faster Whisper modeļa Huggingface ID" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:91 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:93 msgid "Download" msgstr "Lejupielādēt" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:98 msgid "Show file location" msgstr "Pādīt faila atrašanās vietu" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:106 msgid "Delete" msgstr "Dzēst" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:137 msgid "Downloaded" msgstr "Lejupielādēts" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:140 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:142 msgid "Available for Download" msgstr "Pieejams lejupielādei" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:161 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:163 msgid "Download link to Whisper.cpp ggml model file" msgstr "Whisper.cpp ggml modeļa datnes lejupielādes saite" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:237 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 msgid "Delete Model" msgstr "Dzēst modeli" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 msgid "Are you sure you want to delete the selected model?" msgstr "Vai tiešām dzēst izvēlēto modeli?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:258 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:267 msgid "Download failed" msgstr "Lejupielāde neizdevās" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:259 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 #: buzz/widgets/main_window.py:291 buzz/model_loader.py:473 msgid "Error" msgstr "Kļūda" @@ -216,7 +225,7 @@ msgstr "Ierakstīt" msgid "Stop" msgstr "Apturēt" -#: buzz/widgets/transcriber/languages_combo_box.py:25 +#: buzz/widgets/transcriber/languages_combo_box.py:35 #: buzz/transcriber/transcriber.py:159 msgid "Detect Language" msgstr "Noteikt valodu" @@ -295,7 +304,7 @@ msgstr "Dalīt pa vārdiem" msgid "Export:" msgstr "Eksportēt:" -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:36 +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 msgid "Huggingface ID of a model" msgstr "Modeļa Huggingface ID" @@ -320,71 +329,71 @@ msgstr "Atcelt atpazīšanu" msgid "Clear History" msgstr "Notīrīt vēsturi" -#: buzz/widgets/transcription_tasks_table_widget.py:62 +#: buzz/widgets/transcription_tasks_table_widget.py:64 msgid "In Progress" msgstr "Apstrādā" -#: buzz/widgets/transcription_tasks_table_widget.py:65 +#: buzz/widgets/transcription_tasks_table_widget.py:67 msgid "Completed" msgstr "Pabeigts" -#: buzz/widgets/transcription_tasks_table_widget.py:72 +#: buzz/widgets/transcription_tasks_table_widget.py:74 msgid "Failed" msgstr "Neizdevās" -#: buzz/widgets/transcription_tasks_table_widget.py:75 +#: buzz/widgets/transcription_tasks_table_widget.py:77 msgid "Canceled" msgstr "Atcelts" -#: buzz/widgets/transcription_tasks_table_widget.py:77 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Queued" msgstr "Ierindots" -#: buzz/widgets/transcription_tasks_table_widget.py:84 +#: buzz/widgets/transcription_tasks_table_widget.py:86 msgid "File Name / URL" msgstr "Fails / URL" -#: buzz/widgets/transcription_tasks_table_widget.py:96 +#: buzz/widgets/transcription_tasks_table_widget.py:98 msgid "Model" msgstr "Modelis" -#: buzz/widgets/transcription_tasks_table_widget.py:105 +#: buzz/widgets/transcription_tasks_table_widget.py:107 msgid "Task" msgstr "Uzdevums" -#: buzz/widgets/transcription_tasks_table_widget.py:114 +#: buzz/widgets/transcription_tasks_table_widget.py:116 msgid "Status" msgstr "Statuss" -#: buzz/widgets/transcription_tasks_table_widget.py:122 +#: buzz/widgets/transcription_tasks_table_widget.py:124 msgid "Date Added" msgstr "Pievienots" -#: buzz/widgets/transcription_tasks_table_widget.py:133 +#: buzz/widgets/transcription_tasks_table_widget.py:135 msgid "Date Completed" msgstr "Pabeigts" -#: buzz/widgets/recording_transcriber_widget.py:73 +#: buzz/widgets/recording_transcriber_widget.py:79 msgid "Live Recording" msgstr "Dzīvā ierakstīšana" -#: buzz/widgets/recording_transcriber_widget.py:135 +#: buzz/widgets/recording_transcriber_widget.py:144 msgid "Click Record to begin..." msgstr "Klikšķiniet Ierakstīt, lai sāktu..." -#: buzz/widgets/recording_transcriber_widget.py:138 +#: buzz/widgets/recording_transcriber_widget.py:147 msgid "Waiting for AI translation..." msgstr "Gaida MI tulkojumu..." -#: buzz/widgets/recording_transcriber_widget.py:150 +#: buzz/widgets/recording_transcriber_widget.py:159 msgid "Microphone:" msgstr "Mikrofons:" -#: buzz/widgets/recording_transcriber_widget.py:414 +#: buzz/widgets/recording_transcriber_widget.py:523 msgid "An error occurred while starting a new recording:" msgstr "Sākot jaunu ierakstu notikusi kļūda:" -#: buzz/widgets/recording_transcriber_widget.py:418 +#: buzz/widgets/recording_transcriber_widget.py:527 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -410,14 +419,14 @@ msgstr "Beigas" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:39 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 msgid "Text" msgstr "Teksts" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:62 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 msgid "Translation" msgstr "Tulkojums" @@ -458,11 +467,11 @@ msgstr "Vēlamais teksta garums" msgid "Enter target characters per subtitle:" msgstr "Ievadiet vēlamo simbolu skaitu tekstā:" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:76 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 msgid "Save File" msgstr "Saglabāt failu" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 msgid "Text files" msgstr "Teksta faili" @@ -566,3 +575,15 @@ msgstr "Aplūkot tulkojumu" #: buzz/settings/shortcut.py:24 msgid "View Transcript Timestamps" msgstr "Aplūkot atpazīšanas laikus" + +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "Jaunie teikumi apakšā" + +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "Jaunie teikumi augšā" + +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "Papildināt un labot esošo" diff --git a/buzz/locale/pl_PL/LC_MESSAGES/buzz.po b/buzz/locale/pl_PL/LC_MESSAGES/buzz.po index f63509f6..95f89fdc 100644 --- a/buzz/locale/pl_PL/LC_MESSAGES/buzz.po +++ b/buzz/locale/pl_PL/LC_MESSAGES/buzz.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-27 11:58+0300\n" +"POT-Creation-Date: 2024-10-06 13:55+0300\n" "PO-Revision-Date: 2024-03-17 20:50+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -27,6 +27,7 @@ msgstr "https://przyklad.pl/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:295 #: buzz/widgets/main_window.py:234 @@ -35,7 +36,9 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 +#: buzz/widgets/model_download_progress_dialog.py:29 #: buzz/widgets/main_window.py:235 msgid "Cancel" msgstr "Anuluj" @@ -56,56 +59,61 @@ msgstr "Wprowadzony URL nie jest prawidłowy" msgid "Reset to Defaults" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:49 msgid "Font Size" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:56 msgid "Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:62 msgid "OpenAI API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:75 msgid "OpenAI base url" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 msgid "Default export file name" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Enable live recording transcription export" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:115 msgid "Export folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +#, fuzzy +msgid "Live recording mode" +msgstr "Nagrywanie na żywo" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:151 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "OpenAI API Key Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:152 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:179 msgid "Select Export Folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:216 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:231 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -156,55 +164,55 @@ msgstr "Skróty" msgid "Folder Watch" msgstr "Przeglądanie folderu" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:68 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 msgid "Group" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:80 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 msgid "Huggingface ID of a Faster whisper model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:91 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:93 #, fuzzy msgid "Download" msgstr "Pobierz" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:98 msgid "Show file location" msgstr "Pokaż lokalizacje pliku" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:106 msgid "Delete" msgstr "Usuń" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:137 #, fuzzy msgid "Downloaded" msgstr "Pobrany" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:140 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:142 msgid "Available for Download" msgstr "Dostępne do pobrania" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:161 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:163 msgid "Download link to Whisper.cpp ggml model file" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:237 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 msgid "Delete Model" msgstr "Usuń model" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 #, fuzzy msgid "Are you sure you want to delete the selected model?" msgstr "Czy na pewno chcesz usunąć zaznaczoną transkrypcję?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:258 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:267 #, fuzzy msgid "Download failed" msgstr "Pobrany" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:259 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 #: buzz/widgets/main_window.py:291 buzz/model_loader.py:473 msgid "Error" msgstr "Błąd" @@ -218,7 +226,7 @@ msgstr "Nagraj" msgid "Stop" msgstr "Zatrzymaj" -#: buzz/widgets/transcriber/languages_combo_box.py:25 +#: buzz/widgets/transcriber/languages_combo_box.py:35 #: buzz/transcriber/transcriber.py:159 msgid "Detect Language" msgstr "Wykryj język" @@ -296,7 +304,7 @@ msgstr "Znaczniki dla słów" msgid "Export:" msgstr "" -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:36 +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 msgid "Huggingface ID of a model" msgstr "" @@ -321,75 +329,75 @@ msgstr "Anuluj transkrypcję" msgid "Clear History" msgstr "Wyczyść historię" -#: buzz/widgets/transcription_tasks_table_widget.py:62 +#: buzz/widgets/transcription_tasks_table_widget.py:64 msgid "In Progress" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:65 +#: buzz/widgets/transcription_tasks_table_widget.py:67 msgid "Completed" msgstr "Ukończono" -#: buzz/widgets/transcription_tasks_table_widget.py:72 +#: buzz/widgets/transcription_tasks_table_widget.py:74 msgid "Failed" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:75 +#: buzz/widgets/transcription_tasks_table_widget.py:77 msgid "Canceled" msgstr "Anulowano" -#: buzz/widgets/transcription_tasks_table_widget.py:77 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Queued" msgstr "Kolejka" -#: buzz/widgets/transcription_tasks_table_widget.py:84 +#: buzz/widgets/transcription_tasks_table_widget.py:86 #, fuzzy msgid "File Name / URL" msgstr "Nazwa pliku" -#: buzz/widgets/transcription_tasks_table_widget.py:96 +#: buzz/widgets/transcription_tasks_table_widget.py:98 #, fuzzy msgid "Model" msgstr "Model:" -#: buzz/widgets/transcription_tasks_table_widget.py:105 +#: buzz/widgets/transcription_tasks_table_widget.py:107 #, fuzzy msgid "Task" msgstr "Zadanie:" -#: buzz/widgets/transcription_tasks_table_widget.py:114 +#: buzz/widgets/transcription_tasks_table_widget.py:116 msgid "Status" msgstr "Status" -#: buzz/widgets/transcription_tasks_table_widget.py:122 +#: buzz/widgets/transcription_tasks_table_widget.py:124 msgid "Date Added" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:133 +#: buzz/widgets/transcription_tasks_table_widget.py:135 #, fuzzy msgid "Date Completed" msgstr "Ukończono" -#: buzz/widgets/recording_transcriber_widget.py:73 +#: buzz/widgets/recording_transcriber_widget.py:79 msgid "Live Recording" msgstr "Nagrywanie na żywo" -#: buzz/widgets/recording_transcriber_widget.py:135 +#: buzz/widgets/recording_transcriber_widget.py:144 msgid "Click Record to begin..." msgstr "Naciśnij Nagraj, aby zacząć..." -#: buzz/widgets/recording_transcriber_widget.py:138 +#: buzz/widgets/recording_transcriber_widget.py:147 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:150 +#: buzz/widgets/recording_transcriber_widget.py:159 msgid "Microphone:" msgstr "Mikrofon:" -#: buzz/widgets/recording_transcriber_widget.py:414 +#: buzz/widgets/recording_transcriber_widget.py:523 msgid "An error occurred while starting a new recording:" msgstr "Wystąpił błąd podczas rozpoczęcia nowego nagrania:" -#: buzz/widgets/recording_transcriber_widget.py:418 +#: buzz/widgets/recording_transcriber_widget.py:527 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -415,14 +423,14 @@ msgstr "Zakończ" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:39 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 msgid "Text" msgstr "Tekst" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:62 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 #, fuzzy msgid "Translation" msgstr "Nowa transkrypcja" @@ -464,12 +472,12 @@ msgstr "" msgid "Enter target characters per subtitle:" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:76 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 #, fuzzy msgid "Save File" msgstr "Zapisz plik" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 msgid "Text files" msgstr "Pliki tekstowe" @@ -581,6 +589,18 @@ msgstr "Nowa transkrypcja" msgid "View Transcript Timestamps" msgstr "Nowa transkrypcja" +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "" + #~ msgid "ID" #~ msgstr "ID" diff --git a/buzz/locale/uk_UA/LC_MESSAGES/buzz.po b/buzz/locale/uk_UA/LC_MESSAGES/buzz.po index f0f6de80..5e377d97 100644 --- a/buzz/locale/uk_UA/LC_MESSAGES/buzz.po +++ b/buzz/locale/uk_UA/LC_MESSAGES/buzz.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-27 11:58+0300\n" +"POT-Creation-Date: 2024-10-06 13:55+0300\n" "PO-Revision-Date: \n" "Last-Translator: Yevhen Popok \n" "Language-Team: \n" @@ -24,6 +24,7 @@ msgstr "https://example.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:295 #: buzz/widgets/main_window.py:234 @@ -32,7 +33,9 @@ msgstr "Гаразд" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 +#: buzz/widgets/model_download_progress_dialog.py:29 #: buzz/widgets/main_window.py:235 msgid "Cancel" msgstr "Скасувати" @@ -53,46 +56,51 @@ msgstr "Адреса, яку ви ввели, є недійсною" msgid "Reset to Defaults" msgstr "Типові значення" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:49 msgid "Font Size" msgstr "Розмір шрифту" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:56 msgid "Test" msgstr "Тест" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:62 msgid "OpenAI API key" msgstr "API-ключ OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:75 msgid "OpenAI base url" msgstr "Базова адреса OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 msgid "Default export file name" msgstr "Типова назва файлу експорту" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Enable live recording transcription export" msgstr "Увімкнути експорт транскрипції з живого запису" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Огляд" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:115 msgid "Export folder" msgstr "Тека для експорту" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +#, fuzzy +msgid "Live recording mode" +msgstr "Живий запис" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:151 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "OpenAI API Key Test" msgstr "Тест API-ключа OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:152 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -100,11 +108,11 @@ msgstr "" "Ваш API-ключ дійсний. Buzz використає цей ключ для транскрипції з Whisper " "API та перекладу ШІ." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:179 msgid "Select Export Folder" msgstr "Виберіть теку для експорту" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:216 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:231 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -154,51 +162,51 @@ msgstr "Клавіатурні скорочення" msgid "Folder Watch" msgstr "Нагляд за текою" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:68 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 msgid "Group" msgstr "Група" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:80 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 msgid "Huggingface ID of a Faster whisper model" msgstr "Huggingface ID для моделі Faster Whisper" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:91 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:93 msgid "Download" msgstr "Завантажити" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:98 msgid "Show file location" msgstr "Показати розташування файлу" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:106 msgid "Delete" msgstr "Видалити" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:137 msgid "Downloaded" msgstr "Завантажене" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:140 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:142 msgid "Available for Download" msgstr "Доступно для завантаження" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:161 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:163 msgid "Download link to Whisper.cpp ggml model file" msgstr "Посилання на завантаження файлу ggml моделі Whisper.cpp" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:237 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 msgid "Delete Model" msgstr "Видалити модель" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 msgid "Are you sure you want to delete the selected model?" msgstr "Ви впевнені, що хочете видалити вибрану модель?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:258 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:267 msgid "Download failed" msgstr "Невдале завантаження" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:259 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 #: buzz/widgets/main_window.py:291 buzz/model_loader.py:473 msgid "Error" msgstr "Помилка" @@ -212,7 +220,7 @@ msgstr "Записати" msgid "Stop" msgstr "Зупинити" -#: buzz/widgets/transcriber/languages_combo_box.py:25 +#: buzz/widgets/transcriber/languages_combo_box.py:35 #: buzz/transcriber/transcriber.py:159 msgid "Detect Language" msgstr "Визначити мову" @@ -289,7 +297,7 @@ msgstr "Хронометраж на рівні слів" msgid "Export:" msgstr "Експорт:" -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:36 +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 msgid "Huggingface ID of a model" msgstr "ID чи модель Huggingface" @@ -314,71 +322,71 @@ msgstr "Скасувати транскрипцію" msgid "Clear History" msgstr "Очистити історію" -#: buzz/widgets/transcription_tasks_table_widget.py:62 +#: buzz/widgets/transcription_tasks_table_widget.py:64 msgid "In Progress" msgstr "В процесі" -#: buzz/widgets/transcription_tasks_table_widget.py:65 +#: buzz/widgets/transcription_tasks_table_widget.py:67 msgid "Completed" msgstr "Завершено" -#: buzz/widgets/transcription_tasks_table_widget.py:72 +#: buzz/widgets/transcription_tasks_table_widget.py:74 msgid "Failed" msgstr "Невдача" -#: buzz/widgets/transcription_tasks_table_widget.py:75 +#: buzz/widgets/transcription_tasks_table_widget.py:77 msgid "Canceled" msgstr "Скасовано" -#: buzz/widgets/transcription_tasks_table_widget.py:77 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Queued" msgstr "У черзі" -#: buzz/widgets/transcription_tasks_table_widget.py:84 +#: buzz/widgets/transcription_tasks_table_widget.py:86 msgid "File Name / URL" msgstr "Назва файлу / посилання" -#: buzz/widgets/transcription_tasks_table_widget.py:96 +#: buzz/widgets/transcription_tasks_table_widget.py:98 msgid "Model" msgstr "Модель" -#: buzz/widgets/transcription_tasks_table_widget.py:105 +#: buzz/widgets/transcription_tasks_table_widget.py:107 msgid "Task" msgstr "Завдання" -#: buzz/widgets/transcription_tasks_table_widget.py:114 +#: buzz/widgets/transcription_tasks_table_widget.py:116 msgid "Status" msgstr "Стан" -#: buzz/widgets/transcription_tasks_table_widget.py:122 +#: buzz/widgets/transcription_tasks_table_widget.py:124 msgid "Date Added" msgstr "Дата додавання" -#: buzz/widgets/transcription_tasks_table_widget.py:133 +#: buzz/widgets/transcription_tasks_table_widget.py:135 msgid "Date Completed" msgstr "Дата завершення" -#: buzz/widgets/recording_transcriber_widget.py:73 +#: buzz/widgets/recording_transcriber_widget.py:79 msgid "Live Recording" msgstr "Живий запис" -#: buzz/widgets/recording_transcriber_widget.py:135 +#: buzz/widgets/recording_transcriber_widget.py:144 msgid "Click Record to begin..." msgstr "Натисніть на Запис, щоб розпочати..." -#: buzz/widgets/recording_transcriber_widget.py:138 +#: buzz/widgets/recording_transcriber_widget.py:147 msgid "Waiting for AI translation..." msgstr "Очікування перекладу від ШІ..." -#: buzz/widgets/recording_transcriber_widget.py:150 +#: buzz/widgets/recording_transcriber_widget.py:159 msgid "Microphone:" msgstr "Мікрофон:" -#: buzz/widgets/recording_transcriber_widget.py:414 +#: buzz/widgets/recording_transcriber_widget.py:523 msgid "An error occurred while starting a new recording:" msgstr "При старті нового запису виникла помилка:" -#: buzz/widgets/recording_transcriber_widget.py:418 +#: buzz/widgets/recording_transcriber_widget.py:527 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -404,14 +412,14 @@ msgstr "Кінець" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:39 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 msgid "Text" msgstr "Текст" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:62 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 msgid "Translation" msgstr "Переклад" @@ -452,11 +460,11 @@ msgstr "" msgid "Enter target characters per subtitle:" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:76 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 msgid "Save File" msgstr "Зберегти файл" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 msgid "Text files" msgstr "Текстові файли" @@ -560,3 +568,15 @@ msgstr "Переглянути переклад транскрипції" #: buzz/settings/shortcut.py:24 msgid "View Transcript Timestamps" msgstr "Переглянути позначки часу в транскрипції" + +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "" diff --git a/buzz/locale/zh_CN/LC_MESSAGES/buzz.po b/buzz/locale/zh_CN/LC_MESSAGES/buzz.po index b080145a..ecf3bc19 100644 --- a/buzz/locale/zh_CN/LC_MESSAGES/buzz.po +++ b/buzz/locale/zh_CN/LC_MESSAGES/buzz.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-27 11:58+0300\n" +"POT-Creation-Date: 2024-10-06 13:55+0300\n" "PO-Revision-Date: 2023-05-01 15:45+0800\n" "Last-Translator: \n" "Language-Team: lamb \n" @@ -27,6 +27,7 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:295 #: buzz/widgets/main_window.py:234 @@ -35,7 +36,9 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 +#: buzz/widgets/model_download_progress_dialog.py:29 #: buzz/widgets/main_window.py:235 msgid "Cancel" msgstr "取消" @@ -56,56 +59,61 @@ msgstr "" msgid "Reset to Defaults" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:49 msgid "Font Size" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:56 msgid "Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:62 msgid "OpenAI API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:75 msgid "OpenAI base url" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 msgid "Default export file name" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Enable live recording transcription export" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:115 msgid "Export folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +#, fuzzy +msgid "Live recording mode" +msgstr "现场录制" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:151 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "OpenAI API Key Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:152 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:179 msgid "Select Export Folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:216 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:231 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -155,55 +163,55 @@ msgstr "" msgid "Folder Watch" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:68 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 msgid "Group" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:80 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 msgid "Huggingface ID of a Faster whisper model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:91 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:93 #, fuzzy msgid "Download" msgstr "下载模型" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:98 msgid "Show file location" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:106 msgid "Delete" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:137 #, fuzzy msgid "Downloaded" msgstr "下载模型" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:140 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:142 msgid "Available for Download" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:161 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:163 msgid "Download link to Whisper.cpp ggml model file" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:237 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 msgid "Delete Model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 #, fuzzy msgid "Are you sure you want to delete the selected model?" msgstr "您确定要删除所选录制吗?此操作无法撤消。" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:258 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:267 #, fuzzy msgid "Download failed" msgstr "下载模型" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:259 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 #: buzz/widgets/main_window.py:291 buzz/model_loader.py:473 msgid "Error" msgstr "" @@ -217,7 +225,7 @@ msgstr "录制" msgid "Stop" msgstr "停止" -#: buzz/widgets/transcriber/languages_combo_box.py:25 +#: buzz/widgets/transcriber/languages_combo_box.py:35 #: buzz/transcriber/transcriber.py:159 msgid "Detect Language" msgstr "检测语言" @@ -295,7 +303,7 @@ msgstr "单字级别的时间表达" msgid "Export:" msgstr "" -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:36 +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 msgid "Huggingface ID of a model" msgstr "" @@ -320,75 +328,75 @@ msgstr "取消录制" msgid "Clear History" msgstr "清除历史纪录" -#: buzz/widgets/transcription_tasks_table_widget.py:62 +#: buzz/widgets/transcription_tasks_table_widget.py:64 msgid "In Progress" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:65 +#: buzz/widgets/transcription_tasks_table_widget.py:67 msgid "Completed" msgstr "完成" -#: buzz/widgets/transcription_tasks_table_widget.py:72 +#: buzz/widgets/transcription_tasks_table_widget.py:74 msgid "Failed" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:75 +#: buzz/widgets/transcription_tasks_table_widget.py:77 msgid "Canceled" msgstr "取消" -#: buzz/widgets/transcription_tasks_table_widget.py:77 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Queued" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:84 +#: buzz/widgets/transcription_tasks_table_widget.py:86 #, fuzzy msgid "File Name / URL" msgstr "文件名称" -#: buzz/widgets/transcription_tasks_table_widget.py:96 +#: buzz/widgets/transcription_tasks_table_widget.py:98 #, fuzzy msgid "Model" msgstr "模型:" -#: buzz/widgets/transcription_tasks_table_widget.py:105 +#: buzz/widgets/transcription_tasks_table_widget.py:107 #, fuzzy msgid "Task" msgstr "任务:" -#: buzz/widgets/transcription_tasks_table_widget.py:114 +#: buzz/widgets/transcription_tasks_table_widget.py:116 msgid "Status" msgstr "状态" -#: buzz/widgets/transcription_tasks_table_widget.py:122 +#: buzz/widgets/transcription_tasks_table_widget.py:124 msgid "Date Added" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:133 +#: buzz/widgets/transcription_tasks_table_widget.py:135 #, fuzzy msgid "Date Completed" msgstr "完成" -#: buzz/widgets/recording_transcriber_widget.py:73 +#: buzz/widgets/recording_transcriber_widget.py:79 msgid "Live Recording" msgstr "现场录制" -#: buzz/widgets/recording_transcriber_widget.py:135 +#: buzz/widgets/recording_transcriber_widget.py:144 msgid "Click Record to begin..." msgstr "点击开始录制" -#: buzz/widgets/recording_transcriber_widget.py:138 +#: buzz/widgets/recording_transcriber_widget.py:147 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:150 +#: buzz/widgets/recording_transcriber_widget.py:159 msgid "Microphone:" msgstr "麦克风:" -#: buzz/widgets/recording_transcriber_widget.py:414 +#: buzz/widgets/recording_transcriber_widget.py:523 msgid "An error occurred while starting a new recording:" msgstr "开始新录制出错" -#: buzz/widgets/recording_transcriber_widget.py:418 +#: buzz/widgets/recording_transcriber_widget.py:527 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -412,14 +420,14 @@ msgstr "" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:39 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 msgid "Text" msgstr "" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:62 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 #, fuzzy msgid "Translation" msgstr "新录制" @@ -461,12 +469,12 @@ msgstr "" msgid "Enter target characters per subtitle:" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:76 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 #, fuzzy msgid "Save File" msgstr "文件" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 msgid "Text files" msgstr "" @@ -576,6 +584,18 @@ msgstr "新录制" msgid "View Transcript Timestamps" msgstr "新录制" +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "" + #~ msgid "ID" #~ msgstr "ID" diff --git a/buzz/locale/zh_TW/LC_MESSAGES/buzz.po b/buzz/locale/zh_TW/LC_MESSAGES/buzz.po index 12655624..210fbdc7 100644 --- a/buzz/locale/zh_TW/LC_MESSAGES/buzz.po +++ b/buzz/locale/zh_TW/LC_MESSAGES/buzz.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-27 11:58+0300\n" +"POT-Creation-Date: 2024-10-06 13:55+0300\n" "PO-Revision-Date: 2023-05-01 15:45+0800\n" "Last-Translator: \n" "Language-Team: Lamb\n" @@ -27,6 +27,7 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:295 #: buzz/widgets/main_window.py:234 @@ -35,7 +36,9 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 +#: buzz/widgets/model_download_progress_dialog.py:29 #: buzz/widgets/main_window.py:235 msgid "Cancel" msgstr "取消" @@ -56,56 +59,61 @@ msgstr "" msgid "Reset to Defaults" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:49 msgid "Font Size" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:56 msgid "Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:62 msgid "OpenAI API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:75 msgid "OpenAI base url" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 msgid "Default export file name" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Enable live recording transcription export" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:115 msgid "Export folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +#, fuzzy +msgid "Live recording mode" +msgstr "現場錄製" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:151 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 msgid "OpenAI API Key Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:152 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:179 msgid "Select Export Folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:216 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:231 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -155,55 +163,55 @@ msgstr "" msgid "Folder Watch" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:68 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 msgid "Group" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:80 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 msgid "Huggingface ID of a Faster whisper model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:91 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:93 #, fuzzy msgid "Download" msgstr "下載模型" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:98 msgid "Show file location" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:106 msgid "Delete" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:137 #, fuzzy msgid "Downloaded" msgstr "下載模型" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:140 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:142 msgid "Available for Download" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:161 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:163 msgid "Download link to Whisper.cpp ggml model file" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:237 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 msgid "Delete Model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:238 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 #, fuzzy msgid "Are you sure you want to delete the selected model?" msgstr "您確定要刪除所選錄製嗎?此操作無法撤消。" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:258 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:267 #, fuzzy msgid "Download failed" msgstr "下載模型" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:259 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 #: buzz/widgets/main_window.py:291 buzz/model_loader.py:473 msgid "Error" msgstr "" @@ -217,7 +225,7 @@ msgstr "錄製" msgid "Stop" msgstr "停止" -#: buzz/widgets/transcriber/languages_combo_box.py:25 +#: buzz/widgets/transcriber/languages_combo_box.py:35 #: buzz/transcriber/transcriber.py:159 msgid "Detect Language" msgstr "檢測語言" @@ -295,7 +303,7 @@ msgstr "單字級別的時間表達" msgid "Export:" msgstr "" -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:36 +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 msgid "Huggingface ID of a model" msgstr "" @@ -320,75 +328,75 @@ msgstr "取消錄製" msgid "Clear History" msgstr "清除歷史紀錄" -#: buzz/widgets/transcription_tasks_table_widget.py:62 +#: buzz/widgets/transcription_tasks_table_widget.py:64 msgid "In Progress" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:65 +#: buzz/widgets/transcription_tasks_table_widget.py:67 msgid "Completed" msgstr "完成" -#: buzz/widgets/transcription_tasks_table_widget.py:72 +#: buzz/widgets/transcription_tasks_table_widget.py:74 msgid "Failed" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:75 +#: buzz/widgets/transcription_tasks_table_widget.py:77 msgid "Canceled" msgstr "取消" -#: buzz/widgets/transcription_tasks_table_widget.py:77 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Queued" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:84 +#: buzz/widgets/transcription_tasks_table_widget.py:86 #, fuzzy msgid "File Name / URL" msgstr "檔案名稱" -#: buzz/widgets/transcription_tasks_table_widget.py:96 +#: buzz/widgets/transcription_tasks_table_widget.py:98 #, fuzzy msgid "Model" msgstr "模型:" -#: buzz/widgets/transcription_tasks_table_widget.py:105 +#: buzz/widgets/transcription_tasks_table_widget.py:107 #, fuzzy msgid "Task" msgstr "任務:" -#: buzz/widgets/transcription_tasks_table_widget.py:114 +#: buzz/widgets/transcription_tasks_table_widget.py:116 msgid "Status" msgstr "狀態" -#: buzz/widgets/transcription_tasks_table_widget.py:122 +#: buzz/widgets/transcription_tasks_table_widget.py:124 msgid "Date Added" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:133 +#: buzz/widgets/transcription_tasks_table_widget.py:135 #, fuzzy msgid "Date Completed" msgstr "完成" -#: buzz/widgets/recording_transcriber_widget.py:73 +#: buzz/widgets/recording_transcriber_widget.py:79 msgid "Live Recording" msgstr "現場錄製" -#: buzz/widgets/recording_transcriber_widget.py:135 +#: buzz/widgets/recording_transcriber_widget.py:144 msgid "Click Record to begin..." msgstr "點擊開始錄製" -#: buzz/widgets/recording_transcriber_widget.py:138 +#: buzz/widgets/recording_transcriber_widget.py:147 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:150 +#: buzz/widgets/recording_transcriber_widget.py:159 msgid "Microphone:" msgstr "麥克風:" -#: buzz/widgets/recording_transcriber_widget.py:414 +#: buzz/widgets/recording_transcriber_widget.py:523 msgid "An error occurred while starting a new recording:" msgstr "開始新錄製出錯" -#: buzz/widgets/recording_transcriber_widget.py:418 +#: buzz/widgets/recording_transcriber_widget.py:527 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -412,14 +420,14 @@ msgstr "" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:39 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 msgid "Text" msgstr "" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 #: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:62 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 #, fuzzy msgid "Translation" msgstr "新錄製" @@ -461,12 +469,12 @@ msgstr "" msgid "Enter target characters per subtitle:" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:76 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 #, fuzzy msgid "Save File" msgstr "檔案" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 msgid "Text files" msgstr "" @@ -576,6 +584,18 @@ msgstr "新錄製" msgid "View Transcript Timestamps" msgstr "新錄製" +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "" + +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "" + #~ msgid "ID" #~ msgstr "ID" diff --git a/buzz/settings/recording_transcriber_mode.py b/buzz/settings/recording_transcriber_mode.py new file mode 100644 index 00000000..4c6e8286 --- /dev/null +++ b/buzz/settings/recording_transcriber_mode.py @@ -0,0 +1,7 @@ +from enum import Enum +from buzz.locale import _ + +class RecordingTranscriberMode(Enum): + APPEND_BELOW = _("Append below") + APPEND_ABOVE = _("Append above") + APPEND_AND_CORRECT = _("Append and correct") \ No newline at end of file diff --git a/buzz/settings/settings.py b/buzz/settings/settings.py index 873bf4ca..66bbb2ac 100644 --- a/buzz/settings/settings.py +++ b/buzz/settings/settings.py @@ -24,6 +24,7 @@ class Settings: RECORDING_TRANSCRIBER_LLM_PROMPT = "recording-transcriber/llm-prompt" RECORDING_TRANSCRIBER_EXPORT_ENABLED = "recording-transcriber/export-enabled" RECORDING_TRANSCRIBER_EXPORT_FOLDER = "recording-transcriber/export-folder" + RECORDING_TRANSCRIBER_MODE = "recording-transcriber/mode" FILE_TRANSCRIBER_TASK = "file-transcriber/task" FILE_TRANSCRIBER_MODEL = "file-transcriber/model" diff --git a/buzz/transcriber/recording_transcriber.py b/buzz/transcriber/recording_transcriber.py index da58d7ee..25481fd9 100644 --- a/buzz/transcriber/recording_transcriber.py +++ b/buzz/transcriber/recording_transcriber.py @@ -21,6 +21,7 @@ from buzz.settings.settings import Settings from buzz.transcriber.transcriber import TranscriptionOptions, Task from buzz.transcriber.whisper_cpp import WhisperCpp, whisper_cpp_params from buzz.transformers_whisper import TransformersWhisper +from buzz.settings.recording_transcriber_mode import RecordingTranscriberMode import whisper import faster_whisper @@ -32,7 +33,6 @@ class RecordingTranscriber(QObject): error = pyqtSignal(str) is_running = False SAMPLE_RATE = whisper_audio.SAMPLE_RATE - MAX_QUEUE_SIZE = 10 def __init__( self, @@ -44,14 +44,21 @@ class RecordingTranscriber(QObject): parent: Optional[QObject] = None, ) -> None: super().__init__(parent) + self.settings = Settings() + self.transcriber_mode = list(RecordingTranscriberMode)[ + self.settings.value(key=Settings.Key.RECORDING_TRANSCRIBER_MODE, default_value=0)] self.transcription_options = transcription_options self.current_stream = None self.input_device_index = input_device_index self.sample_rate = sample_rate if sample_rate is not None else whisper_audio.SAMPLE_RATE self.model_path = model_path self.n_batch_samples = 5 * self.sample_rate # every 5 seconds - # pause queueing if more than 3 batches behind - self.max_queue_size = 3 * self.n_batch_samples + self.keep_sample_seconds = 0.15 + if self.transcriber_mode == RecordingTranscriberMode.APPEND_AND_CORRECT: + self.n_batch_samples = 3 * self.sample_rate # every 3 seconds + self.keep_sample_seconds = 1.5 + # pause queueing if more than 5 batches behind + self.max_queue_size = 5 * self.n_batch_samples self.queue = np.ndarray([], dtype=np.float32) self.mutex = threading.Lock() self.sounddevice = sounddevice @@ -60,7 +67,7 @@ class RecordingTranscriber(QObject): def start(self): model_path = self.model_path - keep_samples = int(0.15 * self.sample_rate) + keep_samples = int(self.keep_sample_seconds * self.sample_rate) if torch.cuda.is_available(): logging.debug(f"CUDA version detected: {torch.version.cuda}") @@ -96,8 +103,7 @@ class RecordingTranscriber(QObject): model.feature_extractor.sampling_rate, model.feature_extractor.n_fft, n_mels=128 ) elif self.transcription_options.model.model_type == ModelType.OPEN_AI_WHISPER_API: - settings = Settings() - custom_openai_base_url = settings.value( + custom_openai_base_url = self.settings.value( key=Settings.Key.CUSTOM_OPENAI_BASE_URL, default_value="" ) self.whisper_api_model = get_custom_api_whisper_model(custom_openai_base_url) @@ -144,6 +150,8 @@ class RecordingTranscriber(QObject): ) time_started = datetime.datetime.now() + # TODO Filter out silent audio + if ( self.transcription_options.model.model_type == ModelType.WHISPER diff --git a/buzz/widgets/model_download_progress_dialog.py b/buzz/widgets/model_download_progress_dialog.py index e2a41dce..ff05f62d 100644 --- a/buzz/widgets/model_download_progress_dialog.py +++ b/buzz/widgets/model_download_progress_dialog.py @@ -26,11 +26,11 @@ class ModelDownloadProgressDialog(QProgressDialog): self.setMinimumDuration(0) self.setWindowModality(modality) self.update_label_text(0) + cancel_button = QPushButton(_("Cancel"), self) + self.setCancelButton(cancel_button) if not self.cancelable: - cancel_button = QPushButton("Cancel", self) cancel_button.setEnabled(False) - self.setCancelButton(cancel_button) def update_label_text(self, fraction_completed: float): downloading_text = _("Downloading model") diff --git a/buzz/widgets/preferences_dialog/general_preferences_widget.py b/buzz/widgets/preferences_dialog/general_preferences_widget.py index 72b87686..3811d59d 100644 --- a/buzz/widgets/preferences_dialog/general_preferences_widget.py +++ b/buzz/widgets/preferences_dialog/general_preferences_widget.py @@ -13,6 +13,7 @@ from PyQt6.QtWidgets import ( QHBoxLayout, QFileDialog, QSpinBox, + QComboBox, ) from openai import AuthenticationError, OpenAI @@ -21,6 +22,7 @@ from buzz.store.keyring_store import get_password, Key from buzz.widgets.line_edit import LineEdit from buzz.widgets.openai_api_key_line_edit import OpenAIAPIKeyLineEdit from buzz.locale import _ +from buzz.settings.recording_transcriber_mode import RecordingTranscriberMode class GeneralPreferencesWidget(QWidget): @@ -112,6 +114,17 @@ class GeneralPreferencesWidget(QWidget): layout.addRow(_("Export folder"), recording_export_folder_row) + self.recording_transcriber_mode = QComboBox(self) + for mode in RecordingTranscriberMode: + self.recording_transcriber_mode.addItem(mode.value) + + self.recording_transcriber_mode.setCurrentIndex( + self.settings.value(Settings.Key.RECORDING_TRANSCRIBER_MODE, 0) + ) + self.recording_transcriber_mode.currentIndexChanged.connect(self.on_recording_transcriber_mode_changed) + + layout.addRow(_("Live recording mode"), self.recording_transcriber_mode) + self.setLayout(layout) def on_default_export_file_name_changed(self, text: str): @@ -182,6 +195,8 @@ class GeneralPreferencesWidget(QWidget): self.settings.set_value(Settings.Key.FONT_SIZE, value) + def on_recording_transcriber_mode_changed(self, value): + self.settings.set_value(Settings.Key.RECORDING_TRANSCRIBER_MODE, value) class TestOpenAIApiKeyJob(QRunnable): class Signals(QObject): diff --git a/buzz/widgets/preferences_dialog/preferences_dialog.py b/buzz/widgets/preferences_dialog/preferences_dialog.py index 8e98f16c..211e345d 100644 --- a/buzz/widgets/preferences_dialog/preferences_dialog.py +++ b/buzz/widgets/preferences_dialog/preferences_dialog.py @@ -77,4 +77,4 @@ class PreferencesDialog(QDialog): self.setLayout(layout) self.setMinimumHeight(500) - self.setMinimumWidth(550) + self.setMinimumWidth(650) diff --git a/buzz/widgets/recording_transcriber_widget.py b/buzz/widgets/recording_transcriber_widget.py index 59dbd1f4..5ef6863d 100644 --- a/buzz/widgets/recording_transcriber_widget.py +++ b/buzz/widgets/recording_transcriber_widget.py @@ -21,6 +21,7 @@ from buzz.model_loader import ( from buzz.store.keyring_store import get_password, Key from buzz.recording import RecordingAmplitudeListener from buzz.settings.settings import Settings +from buzz.settings.recording_transcriber_mode import RecordingTranscriberMode from buzz.transcriber.recording_transcriber import RecordingTranscriber from buzz.transcriber.transcriber import ( TranscriptionOptions, @@ -37,6 +38,9 @@ from buzz.widgets.transcriber.transcription_options_group_box import ( TranscriptionOptionsGroupBox, ) +REAL_CHARS_REGEX = re.compile(r'\w') +NO_SPACE_BETWEEN_SENTENCES = re.compile(r'([.!?])([A-Z])') + class RecordingTranscriberWidget(QWidget): current_status: "RecordingStatus" @@ -69,10 +73,15 @@ class RecordingTranscriberWidget(QWidget): self.translation_thread = None self.translator = None + self.transcripts = [] + self.translations = [] self.current_status = self.RecordingStatus.STOPPED self.setWindowTitle(_("Live Recording")) self.settings = Settings() + self.transcriber_mode = list(RecordingTranscriberMode)[ + self.settings.value(key=Settings.Key.RECORDING_TRANSCRIBER_MODE, default_value=0)] + default_language = self.settings.value( key=Settings.Key.RECORDING_TRANSCRIBER_LANGUAGE, default_value="" ) @@ -251,6 +260,8 @@ class RecordingTranscriberWidget(QWidget): def start_recording(self): self.record_button.setDisabled(True) + self.transcripts = [] + self.translations = [] if self.export_enabled: self.setup_for_export() @@ -357,19 +368,78 @@ class RecordingTranscriberWidget(QWidget): def filter_text(text: str): text = text.strip() - # no real characters - if not re.search(r'\w', text): + if not REAL_CHARS_REGEX.search(text): return "" return text + # Copilot magic implementation of a sliding window approach to find the longest common substring between two texts, + # ignoring the initial differences. + @staticmethod + def find_common_part(text1: str, text2: str) -> str: + len1, len2 = len(text1), len(text2) + max_len = 0 + end_index = 0 + + lcsuff = [[0] * (len2 + 1) for _ in range(len1 + 1)] + + for i in range(1, len1 + 1): + for j in range(1, len2 + 1): + if text1[i - 1] == text2[j - 1]: + lcsuff[i][j] = lcsuff[i - 1][j - 1] + 1 + if lcsuff[i][j] > max_len: + max_len = lcsuff[i][j] + end_index = i + else: + lcsuff[i][j] = 0 + + common_part = text1[end_index - max_len:end_index] + + return common_part if len(common_part) >= 5 else "" + + @staticmethod + def merge_text_no_overlap(text1: str, text2: str) -> str: + overlap_start = 0 + for i in range(1, min(len(text1), len(text2)) + 1): + if text1[-i:] == text2[:i]: + overlap_start = i + + return text1 + text2[overlap_start:] + + def process_transcription_merge(self, text: str, texts, text_box, export_file): + texts.append(text) + + # Remove possibly errorous parts from overlapping audio chunks + for i in range(len(texts) - 1): + common_part = self.find_common_part(texts[i], texts[i + 1]) + if common_part: + common_length = len(common_part) + texts[i] = texts[i][:texts[i].rfind(common_part) + common_length] + texts[i + 1] = texts[i + 1][texts[i + 1].find(common_part):] + + merged_texts = "" + for text in texts: + merged_texts = self.merge_text_no_overlap(merged_texts, text) + + merged_texts = NO_SPACE_BETWEEN_SENTENCES.sub(r'\1 \2', merged_texts) + + text_box.setPlainText(merged_texts) + text_box.moveCursor(QTextCursor.MoveOperation.End) + + if self.export_enabled: + with open(export_file, "w") as f: + f.write(merged_texts) + def on_next_transcription(self, text: str): text = self.filter_text(text) - if len(text) > 0: - if self.translator is not None: - self.translator.enqueue(text) + if len(text) == 0: + return + if self.translator is not None: + self.translator.enqueue(text) + + if self.transcriber_mode == RecordingTranscriberMode.APPEND_BELOW: self.transcription_text_box.moveCursor(QTextCursor.MoveOperation.End) if len(self.transcription_text_box.toPlainText()) > 0: self.transcription_text_box.insertPlainText("\n\n") @@ -380,8 +450,29 @@ class RecordingTranscriberWidget(QWidget): with open(self.transcript_export_file, "a") as f: f.write(text + "\n\n") + elif self.transcriber_mode == RecordingTranscriberMode.APPEND_ABOVE: + self.transcription_text_box.moveCursor(QTextCursor.MoveOperation.Start) + self.transcription_text_box.insertPlainText(text) + self.transcription_text_box.insertPlainText("\n\n") + self.transcription_text_box.moveCursor(QTextCursor.MoveOperation.Start) + + if self.export_enabled: + with open(self.transcript_export_file, "r") as f: + existing_content = f.read() + + new_content = text + "\n\n" + existing_content + + with open(self.transcript_export_file, "w") as f: + f.write(new_content) + + elif self.transcriber_mode == RecordingTranscriberMode.APPEND_AND_CORRECT: + self.process_transcription_merge(text, self.transcripts, self.transcription_text_box, self.transcript_export_file) + def on_next_translation(self, text: str, _: Optional[int] = None): - if len(text) > 0: + if len(text) == 0: + return + + if self.transcriber_mode == RecordingTranscriberMode.APPEND_BELOW: self.translation_text_box.moveCursor(QTextCursor.MoveOperation.End) if len(self.translation_text_box.toPlainText()) > 0: self.translation_text_box.insertPlainText("\n\n") @@ -392,6 +483,24 @@ class RecordingTranscriberWidget(QWidget): with open(self.translation_export_file, "a") as f: f.write(text + "\n\n") + elif self.transcriber_mode == RecordingTranscriberMode.APPEND_ABOVE: + self.translation_text_box.moveCursor(QTextCursor.MoveOperation.Start) + self.translation_text_box.insertPlainText(self.strip_newlines(text)) + self.translation_text_box.insertPlainText("\n\n") + self.translation_text_box.moveCursor(QTextCursor.MoveOperation.Start) + + if self.export_enabled: + with open(self.translation_export_file, "r") as f: + existing_content = f.read() + + new_content = text + "\n\n" + existing_content + + with open(self.translation_export_file, "w") as f: + f.write(new_content) + + elif self.transcriber_mode == RecordingTranscriberMode.APPEND_AND_CORRECT: + self.process_transcription_merge(text, self.translations, self.translation_text_box, self.translation_export_file) + def stop_recording(self): if self.transcriber is not None: self.transcriber.stop_recording() diff --git a/docs/docs/preferences.md b/docs/docs/preferences.md index 055bbb49..05386dc6 100644 --- a/docs/docs/preferences.md +++ b/docs/docs/preferences.md @@ -32,9 +32,25 @@ Available variables: ### Live transcript exports -Live transcription export can be used to integrate Buzz with other applications like OBS Studio. When enabled, live text transcripts will be exported to a text file as they get generated and translated. +Live transcription export can be used to integrate Buzz with other applications like OBS Studio. +When enabled, live text transcripts will be exported to a text file as they get generated and translated. -If AI translation is enabled for live recordings, the translated text will also be exported to the text file. Filename for the translated text will end with `.translated.txt`. +If AI translation is enabled for live recordings, the translated text will also be exported to the text file. +Filename for the translated text will end with `.translated.txt`. + +### Live transcription mode + +Three transcription modes are available: + +**Append below** - New sentences will be added below existing with an empty space between them. +Last sentence will be at the bottom. + +**Append above** - New sentences will be added above existing with an empty space between them. +Last sentence will be at the top. + +**Append and correct** - New sentences will be added at the end of existing transcript without extra spaces between. +This mode will also try to correct errors at the end of previously transcribed sentences. This mode requires more +processing power and more powerful hardware to work. ## Advanced Preferences diff --git a/pyproject.toml b/pyproject.toml index 7638ee99..9c8db17f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "buzz-captions" -version = "1.1.1" +version = "1.2.0" description = "" authors = ["Chidi Williams "] license = "MIT" diff --git a/tests/widgets/recording_transcriber_widget_test.py b/tests/widgets/recording_transcriber_widget_test.py index 34e94bba..98c1a5e5 100644 --- a/tests/widgets/recording_transcriber_widget_test.py +++ b/tests/widgets/recording_transcriber_widget_test.py @@ -109,3 +109,32 @@ class TestRecordingTranscriberWidget: assert len(contents) > 0 widget.close() + + def test_find_common_part_exact_match(self): + assert RecordingTranscriberWidget.find_common_part("hello world", "hello world") == "hello world" + + def test_find_common_part_partial_match(self): + assert (RecordingTranscriberWidget.find_common_part( + "hello great and beautiful world", + "hello great and beautiful butterfly") + == "hello great and beautiful ") + assert (RecordingTranscriberWidget.find_common_part( + "Alice said hello world", + "salad said hello world") + == " said hello world") + assert (RecordingTranscriberWidget.find_common_part( + "To kauls nav paņemts no mājām. Ja varēsim rīt iet, es ļoti priecāšos. Mani uztrauc laikapstākļi.", + "Kauls nav paņemts no mājām. Ja varēsim rīt iet, es ļoti priecāšos. Mani uztrauc laikapstākļi, tāpēc...") + == "auls nav paņemts no mājām. Ja varēsim rīt iet, es ļoti priecāšos. Mani uztrauc laikapstākļi") + + def test_find_common_part_no_match(self): + assert RecordingTranscriberWidget.find_common_part("hello world", "goodbye evil") == "" + + def test_find_common_part_different_start(self): + assert RecordingTranscriberWidget.find_common_part("abc hello world", "xyz hello world") == " hello world" + + def test_find_common_part_empty_strings(self): + assert RecordingTranscriberWidget.find_common_part("", "hello world") == "" + assert RecordingTranscriberWidget.find_common_part("hello world", "") == "" + assert RecordingTranscriberWidget.find_common_part("", "") == "" +