diff --git a/buzz/locale/ca_ES/LC_MESSAGES/buzz.po b/buzz/locale/ca_ES/LC_MESSAGES/buzz.po index 27186e5c..d669c47f 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: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: 2025-10-17 07:59+0200\n" "Last-Translator: Éric Duarte \n" "Language-Team: Catalan \n" @@ -335,8 +335,8 @@ msgstr "Descàrrega fallida" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Error" @@ -583,75 +583,75 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Enregistrament en directe" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Feu clic a Enregistra per a començar..." -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "Esperant la traducció de la IA..." -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Micròfon:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "Fitxers de text" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "Fitxers de text" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "Selecciona la carpeta d'exportació" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "Selecciona un fitxer d'àudio" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 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:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -709,7 +709,7 @@ msgid "Translate" msgstr "Traduir" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "Redimensionar" @@ -812,110 +812,130 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "Introduïu la clau API d'OpenAI a les preferències" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 msgid "Resize Options" msgstr "Opcions de redimensionament" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "Longitud desitjada dels subtítols" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "Opcions de fusió" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "Fusiona per buit" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "Divideix per puntuació" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "Divideix per la longitud màxima" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "Fusiona" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "Cancel·la la transcripció" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "Desa el fitxer" @@ -977,14 +997,14 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "No s'ha pogut desar la clau OpenAI API a l'anell de claus" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" "El servidor Whisper no s'ha pogut iniciar. Consulteu els registres per " "obtenir més informació." #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1358,15 +1378,15 @@ msgstr "Sundanès" msgid "Cantonese" msgstr "Cantonès" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "S'ha produït un error de connexió" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "Començant Whisper.cpp..." -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "Cancel·la la transcripció" diff --git a/buzz/locale/da_DK/LC_MESSAGES/buzz.po b/buzz/locale/da_DK/LC_MESSAGES/buzz.po index b04893ac..98f3e484 100644 --- a/buzz/locale/da_DK/LC_MESSAGES/buzz.po +++ b/buzz/locale/da_DK/LC_MESSAGES/buzz.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: \n" "Last-Translator: Ole Guldberg2 \n" "Language-Team: \n" @@ -334,8 +334,8 @@ msgstr "Download mislykkedes" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Fejl" @@ -580,75 +580,75 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Live optagelse" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Klik Optage for at begynde..." -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "Venter på AI oversættelse..." -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Mikrofon:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "Tekst filer" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "Tekst filer" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "Vælg eksport-mappe" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "Vælg audio-fil" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "Der skete en fejl ved opstart af en ny optagelse:" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -706,7 +706,7 @@ msgid "Translate" msgstr "Oversæt" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "Behandel størrelse" @@ -806,110 +806,130 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "Indtast venligst OpenAI API-nøgle i indstillinger" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 msgid "Resize Options" msgstr "Størrelsesindstillinger" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "Ønskede undertekst længde" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "Sammenfletningsindstillinger" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "Sammenflet ved hul" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "Split ved punktum" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "Split ved max længde" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "Sammenflet" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "Afbryd transkription" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "Gem fil" @@ -971,12 +991,12 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "Kan ikke gemme OpenAI API-nøgle i nøgleringen" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1348,15 +1368,15 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "Der er opstået en forbindelsesfejl" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "" -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "Afbryd transkription" diff --git a/buzz/locale/de_DE/LC_MESSAGES/buzz.po b/buzz/locale/de_DE/LC_MESSAGES/buzz.po index 339f7279..ce47c410 100644 --- a/buzz/locale/de_DE/LC_MESSAGES/buzz.po +++ b/buzz/locale/de_DE/LC_MESSAGES/buzz.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: 2025-03-05 14:41+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -334,8 +334,8 @@ msgstr "Der Download ist fehlgeschlagen" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Fehler" @@ -581,75 +581,75 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Live-Aufnahme" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Auf „Aufnehmen“ klicken um zu beginnen …" -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "Warten auf KI-Übersetzung..." -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Mikrofon:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "Textdateien" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "Textdateien" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "Exportordner auswählen" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "Audiodatei auswählen" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "Beim Starten einer neuen Aufnahme ist ein Fehler aufgetreten:" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -707,7 +707,7 @@ msgid "Translate" msgstr "Übersetzen" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "Größe ändern" @@ -807,110 +807,130 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "Bitte geben Sie den OpenAI-API-Schlüssel in den Einstellungen ein" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 msgid "Resize Options" msgstr "Größenänderungsoptionen" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "Gewünschte Untertitellänge" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "Zusammenführungsoptionen" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "Nach Abstand zusammenführen" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "Durch Satzzeichen getrennt" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "Aufgeteilt nach maximaler Länge" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "Vereinigen" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "Transkription abbrechen" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "Datei speichern" @@ -973,12 +993,12 @@ msgstr "" "Der OpenAI-API-Schlüssel kann nicht im Schlüsselbund gespeichert werden" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1350,15 +1370,15 @@ msgstr "Sundanesisch" msgid "Cantonese" msgstr "Kantonesisch" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "Ein Verbindungsfehler ist aufgetreten" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "" -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "Transkription abbrechen" diff --git a/buzz/locale/en_US/LC_MESSAGES/buzz.po b/buzz/locale/en_US/LC_MESSAGES/buzz.po index 803dbab9..01a94a62 100644 --- a/buzz/locale/en_US/LC_MESSAGES/buzz.po +++ b/buzz/locale/en_US/LC_MESSAGES/buzz.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -324,8 +324,8 @@ msgstr "" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "" @@ -565,71 +565,71 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 msgid "Text Size:" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 msgid "Text Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 msgid "Select Text Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 msgid "Select Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -685,7 +685,7 @@ msgid "Translate" msgstr "" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "" @@ -785,109 +785,129 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 -msgid "Resize Options" +msgid "Extend end time" msgstr "" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 +msgid "Resize Options" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 msgid "5/8 Preparing transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 msgid "Save" msgstr "" @@ -946,12 +966,12 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1322,15 +1342,15 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "" -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 msgid "Starting transcription..." msgstr "" diff --git a/buzz/locale/es_ES/LC_MESSAGES/buzz.po b/buzz/locale/es_ES/LC_MESSAGES/buzz.po index e272d88c..fa930688 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: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: 2025-09-08 12:43+0200\n" "Last-Translator: Éric Duarte \n" "Language-Team: \n" @@ -342,8 +342,8 @@ msgstr "Descarga fallida" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Error" @@ -615,80 +615,80 @@ msgid "Could not restart transcription: transcriber worker not found." msgstr "" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Grabación en vivo" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Pulse en Grabar para comenzar..." -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "A la espera de la traducción de la IA..." # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Micrófono:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "Archivos de texto" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "Archivos de texto" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "Seleccione Exportar carpeta" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "Seleccionar archivo de audio" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 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:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -749,7 +749,7 @@ msgid "Translate" msgstr "Traducir" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "Cambiar el tamaño" @@ -855,112 +855,132 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "Ingrese la clave API de OpenAI en las preferencias" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 msgid "Resize Options" msgstr "Opciones de cambio de tamaño" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "Longitud deseada de los subtítulos" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "Opciones de fusión" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "Fusión por hueco" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "Dividido por puntuación" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "Dividido por la longitud máxima" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "Fusión" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" # automatic translation -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "Cancelar transcripción" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" # automatic translation -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "Guardar archivo" @@ -1030,14 +1050,14 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "No se puede guardar la clave de la API de OpenAI en el llavero" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" "El servidor Whisper no se pudo iniciar. Consulta los registros para obtener " "más detalles." #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1412,16 +1432,16 @@ msgstr "Sundanés" msgid "Cantonese" msgstr "Cantonés" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "Se ha producido un error de conexión" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "Iniciando Whisper.cpp..." # automatic translation -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "Cancelar transcripción" diff --git a/buzz/locale/it_IT/LC_MESSAGES/buzz.po b/buzz/locale/it_IT/LC_MESSAGES/buzz.po index aa1d03f6..47b4438f 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: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: 2026-01-03 10:42+0200\n" "Language-Team: (Italiano) Albano Battistella \n" "Language: it_IT\n" @@ -179,15 +179,16 @@ msgstr "Modalità di registrazione in diretta" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:195 msgid "Use 8-bit quantization to reduce memory usage" -msgstr "Utilizzare la quantizzazione a 8 bit per ridurre l'utilizzo della memoria" +msgstr "" +"Utilizzare la quantizzazione a 8 bit per ridurre l'utilizzo della memoria" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:199 msgid "" "Applies to Huggingface and Faster Whisper models. Reduces GPU memory usage " "but may slightly decrease transcription quality." msgstr "" -"Si applica ai modelli Huggingface e Faster Whisper. Riduce l'utilizzo della memoria GPU " -"ma potrebbe ridurre leggermente la qualità della trascrizione." +"Si applica ai modelli Huggingface e Faster Whisper. Riduce l'utilizzo della " +"memoria GPU ma potrebbe ridurre leggermente la qualità della trascrizione." #: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "Reduce GPU RAM" @@ -334,8 +335,8 @@ msgstr "Download non riuscito" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Errore" @@ -577,78 +578,78 @@ msgid "" "Could not restart transcription: model not available and could not be " "downloaded." msgstr "" -"Impossibile riavviare la trascrizione: il modello non è disponibile e non può essere " -"scaricato." +"Impossibile riavviare la trascrizione: il modello non è disponibile e non " +"può essere scaricato." #: buzz/widgets/transcription_tasks_table_widget.py:806 msgid "Could not restart transcription: transcriber worker not found." msgstr "Impossibile riavviare la trascrizione: trascrittore non trovato." -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Registrazione in diretta" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Fai clic su Registra per iniziare..." -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "In attesa della traduzione AI..." -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Microfono:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "Mostra in una nuova finestra" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 msgid "Text Size:" msgstr "Dimensione testo:" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "Tema" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "Chiaro" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "Scuro" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "Personalizzato" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 msgid "Text Color" msgstr "Colore del testo" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "Colore dello sfondo" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "Schermo intero" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 msgid "Select Text Color" msgstr "Seleziona il colore del testo" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 msgid "Select Background Color" msgstr "Seleziona il colore di sfondo" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 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:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -706,7 +707,7 @@ msgid "Translate" msgstr "Tradurre" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "Ridimensionare" @@ -810,111 +811,132 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "Inserisci la chiave API OpenAI nelle preferenze" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 msgid "Resize Options" msgstr "Opzioni di ridimensionamento" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "Lunghezza desiderata dei sottotitoli" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "Opzioni di unione" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "Unito per spazio" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "Diviso per punteggiatura" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "Diviso per lunghezza massima" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "Unione" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "1/8 Raccolta delle trascrizioni" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "2/8 Caricamento audio" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "3/8 Modello di allineamento del carico" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" -msgstr "3/8 Caricamento del modello di allineamento (nuovo tentativo con la cache...)" +msgstr "" +"3/8 Caricamento del modello di allineamento (nuovo tentativo con la cache...)" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -"Impossibile caricare il modello di allineamento. Controlla la tua connessione Internet e " -"riprova." +"Impossibile caricare il modello di allineamento. Controlla la tua " +"connessione Internet e riprova." -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "4/8 Elaborazione audio" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 msgid "5/8 Preparing transcripts" msgstr "5/8 Preparazione delle trascrizioni" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "6/8 Identificazione dei parlanti" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "7/8 Mappatura dei parlanti sulle trascrizioni" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "8/8 Identificazione effettuata" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "0/0 Errore nell'identificazione dei parlanti" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "Fase 1: identificare i parlanti" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "Identificare" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "Pronto a identificare i parlanti" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "File audio non trovato" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "Fase 2: nomi dei parlanti" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "Ascolta il campione" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "Unisci le frasi del parlante" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 msgid "Save" msgstr "Salva" @@ -975,13 +997,13 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "Impossibile salvare la chiave API OpenAI nel portachiavi" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" "Impossibile avviare il server Whisper. Controllare i log per i dettagli." #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1355,15 +1377,15 @@ msgstr "Sundanese" msgid "Cantonese" msgstr "Cantonese" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "Si è verificato un errore di connessione" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "Avvio di Whisper.cpp..." -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 msgid "Starting transcription..." msgstr "Inizio trascrizione..." diff --git a/buzz/locale/ja_JP/LC_MESSAGES/buzz.po b/buzz/locale/ja_JP/LC_MESSAGES/buzz.po index 6116f6e1..0ecc8bd8 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: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: \n" "Last-Translator: nunawa <71294849+nunawa@users.noreply.github.com>\n" "Language-Team: \n" @@ -330,8 +330,8 @@ msgstr "ダウンロード失敗" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "エラー" @@ -576,75 +576,75 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "ライブ録音" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "クリックで録音を開始..." -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "AI翻訳を待っています..." -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "マイク:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "テキストファイル" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "テキストファイル" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "出力フォルダを選択" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "音声ファイルを選択" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "新規録音開始時にエラーが発生しました:" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -702,7 +702,7 @@ msgid "Translate" msgstr "翻訳" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "リサイズ" @@ -802,111 +802,131 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "設定画面でOpenAI APIキーを入力してください" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 #, fuzzy msgid "Resize Options" msgstr "リサイズ" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "希望する字幕の長さ" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "文字起こしをキャンセルする" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "ファイルを保存" @@ -966,12 +986,12 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "OpenAI API キーをkeyringに保存できません" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1343,15 +1363,15 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "接続エラーが発生しました" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "" -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "文字起こしをキャンセルする" diff --git a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po index 83df9b2a..390346ce 100644 --- a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po +++ b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-23 19:21+0200\n" -"PO-Revision-Date: 2025-12-23 19:24+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" +"PO-Revision-Date: 2026-01-16 11:30+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: lv_LV\n" @@ -337,8 +337,8 @@ msgstr "Lejupielāde neizdevās" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Kļūda" @@ -586,71 +586,71 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "Neizdevās sākt atpazīšanu: Kļūda lietotnē, pārstartējiet." -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Dzīvā ierakstīšana" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Klikšķiniet Ierakstīt, lai sāktu..." -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "Gaida MI tulkojumu..." -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Mikrofons:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "Rādīt jaunā logā" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 msgid "Text Size:" msgstr "Teksta izmērs:" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "Stils" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "Gaišais" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "Tumšais" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "Pielāgots" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 msgid "Text Color" msgstr "Teksta krāsa" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "Fona krāsa" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "Pilnekrāns" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 msgid "Select Text Color" msgstr "Izvēlieties teksta krāsu" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 msgid "Select Background Color" msgstr "Izvēlieties fona krāsu" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "Sākot jaunu ierakstu notikusi kļūda:" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -708,7 +708,7 @@ msgid "Translate" msgstr "Tulkot" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "Mainīt garumu" @@ -810,50 +810,70 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "Lūdzu ievadiet OpenAI API atslēgu iestatījumos" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "Pagarināt beigu laiku" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "Palielināt beigu laiku par (sekundes)" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "Palielināt" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 msgid "Resize Options" msgstr "Garuma maiņas iestatījumi" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "Vēlamais teksta garums" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "Pieejami tikai, ierakstiem, kas atpazīti bez dalīšanas pa vārdiem" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "Apvienošanas iestatījumi" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "Apvienot pēc attāluma" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "Dalīt pie pieturzīmēm" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "Dalīt pie maksimālā garuma" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "Apvienot" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "Pieejami tikai, ierakstiem, kas atpazīti ar dalīšanu pa vārdiem" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "1/8 Apkopo transkripcijas" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "2/8 Ielādē audio" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "3/8 Ielādē identifikācijas modeli" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "3/8 Ielādē identifikācijas modeli (atkārto...)" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." @@ -861,60 +881,60 @@ msgstr "" "Neizdevās ielādēt modeli. Lūdzu pārbaidiet savu interneta savienojumu un " "mēģiniet vēlreiz." -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "4/8 Apstrādā audio" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 msgid "5/8 Preparing transcripts" msgstr "5/8 Sagatavo transkripcijas" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "6/8 Nosaka runātājus" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "7/8 Marķē runātāju teikumus" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "8/8 Runātāju noteikšana pabeigta" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "0/0 Kļūda nosakot runātājus" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "1. solis: Runātāju noteikšana" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "Noteikt" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "Gatavs noteikt runātājus" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "Audio datne nav atrasta" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "2. solis: Runātāju identifikācija" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "Atskaņot paraugu" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "Apvienot secīgus runātāja teikumus" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 msgid "Save" msgstr "Saglabāt" @@ -975,14 +995,14 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "Neizdevās saglabāt OpenAI API atslēgu atslēgu saišķī" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" "Whisper serverim neizdevās ieslēgties. Lūdzu pārbaudiet lietotnes žurnāla " "ierakstus." #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1356,15 +1376,15 @@ msgstr "Sundāņu" msgid "Cantonese" msgstr "Kantonas" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "Notika savienojuma kļūda" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "Palaiž Whisper.cpp..." -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 msgid "Starting transcription..." msgstr "Sāk atpazīšanu..." diff --git a/buzz/locale/nl/LC_MESSAGES/buzz.po b/buzz/locale/nl/LC_MESSAGES/buzz.po index 32ceab84..66d641e5 100644 --- a/buzz/locale/nl/LC_MESSAGES/buzz.po +++ b/buzz/locale/nl/LC_MESSAGES/buzz.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: 2025-03-20 18:30+0100\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: none\n" @@ -336,8 +336,8 @@ msgstr "Het downloaden is mislukt" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Foutmelding" @@ -583,75 +583,75 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Live-opname" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Klik op de opnameknop om te beginnen…" -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "Bezig met wachten op AI-vertaling…" -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Microfoon:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "Tekstbestanden" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "Tekstbestanden" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "Kies een exportmap" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "Kies een audiobestand" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "Er is een fout opgetreden tijdens het starten van de opname:" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -707,7 +707,7 @@ msgid "Translate" msgstr "Vertalen" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "Grootte" @@ -807,110 +807,130 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "Voer de OpenAI-api-sleutel in in de instellingen" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 msgid "Resize Options" msgstr "Grootteopties" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "Voorkeurslengte van ondertiteling" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "Samenvoegopties" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "Samenvoegen op basis van tussenruimte" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "Splitsen op basis van leestekens" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "Splitsen op basis van max. lengte" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "Samenvoegen" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "Transcriptie wissen" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "Bestand opslaan" @@ -972,12 +992,12 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "De OpenAI-api-sleutel kan niet worden bewaard in de sleutelbos" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1349,15 +1369,15 @@ msgstr "Soedanees" msgid "Cantonese" msgstr "Kantonees" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "Er is een verbindingsfout opgetreden" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "" -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "Transcriptie wissen" diff --git a/buzz/locale/pl_PL/LC_MESSAGES/buzz.po b/buzz/locale/pl_PL/LC_MESSAGES/buzz.po index f4e08020..d1299e84 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: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: 2024-03-17 20:50+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -337,8 +337,8 @@ msgstr "Pobrany" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Błąd" @@ -588,75 +588,75 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Nagrywanie na żywo" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Naciśnij Nagraj, aby zacząć..." -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Mikrofon:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "Pliki tekstowe" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "Pliki tekstowe" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "Wybierz plik audio" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "Wybierz plik audio" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 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:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -715,7 +715,7 @@ msgid "Translate" msgstr "" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "" @@ -815,110 +815,130 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 -msgid "Resize Options" +msgid "Extend end time" msgstr "" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 +msgid "Resize Options" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "Anuluj transkrypcję" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "Zapisz plik" @@ -984,12 +1004,12 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1362,15 +1382,15 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "" -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "Anuluj transkrypcję" diff --git a/buzz/locale/pt_BR/LC_MESSAGES/buzz.po b/buzz/locale/pt_BR/LC_MESSAGES/buzz.po index e22b0210..67def215 100644 --- a/buzz/locale/pt_BR/LC_MESSAGES/buzz.po +++ b/buzz/locale/pt_BR/LC_MESSAGES/buzz.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Buzz\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: 2025-11-01 17:43-0300\n" "Last-Translator: Paulo Schopf \n" "Language-Team: none\n" @@ -334,8 +334,8 @@ msgstr "Falha ao baixar" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Erro" @@ -581,75 +581,75 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Gravação ao Vivo" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Clique em Gravar para começar..." -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "Aguardando tradução da IA..." -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Microfone:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "Arquivos de texto" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "Arquivos de texto" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "Selecionar Pasta de Exportação" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "Selecionar arquivo de áudio" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "Ocorreu um erro ao iniciar uma nova gravação:" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -707,7 +707,7 @@ msgid "Translate" msgstr "Traduzir" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "Redimensionar" @@ -810,110 +810,130 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "Insira a chave API OpenAI nas preferências" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 msgid "Resize Options" msgstr "Opções de Redimensionamento" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "Duração desejada da legenda" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "Opções de Mesclagem" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "Mesclar por intervalo" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "Dividir por pontuação" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "Dividir por tamanho máximo" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "Mesclar" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "Iniciando transcrição..." -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "Salvar Arquivo" @@ -975,12 +995,12 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "Não foi possível salvar a chave da API OpenAI no cofre de chaves" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "Falha ao iniciar o servidor Whisper. Verifique os logs." #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1354,15 +1374,15 @@ msgstr "Sundanês" msgid "Cantonese" msgstr "Cantonês" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "Ocorreu um erro de conexão" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "Iniciando Whisper.cpp..." -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "Iniciando transcrição..." diff --git a/buzz/locale/uk_UA/LC_MESSAGES/buzz.po b/buzz/locale/uk_UA/LC_MESSAGES/buzz.po index 6a0b21ab..e5851b17 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: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: \n" "Last-Translator: Yevhen Popok \n" "Language-Team: \n" @@ -332,8 +332,8 @@ msgstr "Невдале завантаження" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "Помилка" @@ -578,75 +578,75 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "Живий запис" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "Натисніть на Запис, щоб розпочати..." -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "Очікування перекладу від ШІ..." -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "Мікрофон:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "Текстові файли" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "Текстові файли" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "Виберіть теку для експорту" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "Вибрати аудіофайл" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "При старті нового запису виникла помилка:" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -704,7 +704,7 @@ msgid "Translate" msgstr "Перекласти" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "" @@ -804,110 +804,130 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "Будь ласка, введіть API-ключ OpenAI в налаштуваннях" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 -msgid "Resize Options" +msgid "Extend end time" msgstr "" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 +msgid "Resize Options" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "Скасувати транскрипцію" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "Зберегти файл" @@ -968,12 +988,12 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "Не вдається додати до звʼязки ключів API-ключ OpenAI" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1345,15 +1365,15 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "Виникла помилка зʼєднання" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "" -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "Скасувати транскрипцію" diff --git a/buzz/locale/zh_CN/LC_MESSAGES/buzz.po b/buzz/locale/zh_CN/LC_MESSAGES/buzz.po index 352cec0b..5db229a2 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: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: 2023-05-01 15:45+0800\n" "Last-Translator: \n" "Language-Team: lamb \n" @@ -340,8 +340,8 @@ msgstr "下载模型失败" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "错误" @@ -591,75 +591,75 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "实时录制" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "点击开始录制" -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "等待AI翻译..." -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "麦克风:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 #, fuzzy msgid "Text Size:" msgstr "文本文件" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 #, fuzzy msgid "Text Color" msgstr "文本文件" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "选择输出文件夹" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "选择音频文件" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "开始新录制时出错" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -716,7 +716,7 @@ msgid "Translate" msgstr "翻译" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "调整大小" @@ -816,111 +816,131 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "请在偏好设置中输入OpenAI API Key" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 +msgid "Extend end time" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 #, fuzzy msgid "Resize Options" msgstr "调整大小" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "所需字幕长度" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "合并选项" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "按间隔合并" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "按标点符号拆分" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "按最大长度拆分" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "合并" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "取消识别" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "保存文件" @@ -984,12 +1004,12 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "无法将OpenAI API密钥保存到密钥串" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1362,15 +1382,15 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "连接发生错误" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "" -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "取消识别" diff --git a/buzz/locale/zh_TW/LC_MESSAGES/buzz.po b/buzz/locale/zh_TW/LC_MESSAGES/buzz.po index f8db1a27..2561e52f 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: 2025-12-23 19:21+0200\n" +"POT-Creation-Date: 2026-01-16 11:27+0200\n" "PO-Revision-Date: 2023-05-01 15:45+0800\n" "Last-Translator: \n" "Language-Team: Lamb\n" @@ -335,8 +335,8 @@ msgstr "下載模型" #: buzz/widgets/transcription_tasks_table_widget.py:704 #: buzz/widgets/transcription_tasks_table_widget.py:774 #: buzz/widgets/transcription_tasks_table_widget.py:805 -#: buzz/widgets/main_window.py:283 buzz/model_loader.py:727 -#: buzz/model_loader.py:741 +#: buzz/widgets/main_window.py:283 buzz/model_loader.py:741 +#: buzz/model_loader.py:755 msgid "Error" msgstr "" @@ -586,73 +586,73 @@ msgstr "" msgid "Could not restart transcription: transcriber worker not found." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:97 +#: buzz/widgets/recording_transcriber_widget.py:96 msgid "Live Recording" msgstr "現場錄製" -#: buzz/widgets/recording_transcriber_widget.py:163 +#: buzz/widgets/recording_transcriber_widget.py:162 msgid "Click Record to begin..." msgstr "點擊開始錄製" -#: buzz/widgets/recording_transcriber_widget.py:166 +#: buzz/widgets/recording_transcriber_widget.py:165 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:178 +#: buzz/widgets/recording_transcriber_widget.py:177 msgid "Microphone:" msgstr "麥克風:" -#: buzz/widgets/recording_transcriber_widget.py:225 +#: buzz/widgets/recording_transcriber_widget.py:223 msgid "Show in new window" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:231 +#: buzz/widgets/recording_transcriber_widget.py:229 msgid "Text Size:" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:247 +#: buzz/widgets/recording_transcriber_widget.py:245 msgid "Theme" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Light" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Dark" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:251 +#: buzz/widgets/recording_transcriber_widget.py:249 msgid "Custom" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:265 +#: buzz/widgets/recording_transcriber_widget.py:263 msgid "Text Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:275 +#: buzz/widgets/recording_transcriber_widget.py:273 msgid "Background Color" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:284 +#: buzz/widgets/recording_transcriber_widget.py:282 msgid "Fullscreen" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:355 +#: buzz/widgets/recording_transcriber_widget.py:351 #, fuzzy msgid "Select Text Color" msgstr "選擇聲音檔案" -#: buzz/widgets/recording_transcriber_widget.py:373 +#: buzz/widgets/recording_transcriber_widget.py:368 #, fuzzy msgid "Select Background Color" msgstr "選擇聲音檔案" -#: buzz/widgets/recording_transcriber_widget.py:788 +#: buzz/widgets/recording_transcriber_widget.py:779 msgid "An error occurred while starting a new recording:" msgstr "開始新錄製出錯" -#: buzz/widgets/recording_transcriber_widget.py:792 +#: buzz/widgets/recording_transcriber_widget.py:783 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -709,7 +709,7 @@ msgid "Translate" msgstr "" #: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:296 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:175 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:207 msgid "Resize" msgstr "" @@ -809,110 +809,130 @@ msgid "Please enter OpenAI API Key in preferences" msgstr "" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:157 -msgid "Resize Options" +msgid "Extend end time" msgstr "" #: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +msgid "Extend endings by up to (seconds)" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:173 +msgid "Extend endings" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:189 +msgid "Resize Options" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:200 msgid "Desired subtitle length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:193 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:218 +msgid "Available only if word level timings were disabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:227 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:204 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:238 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:212 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:246 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:220 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:254 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:232 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:266 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:104 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:275 +msgid "Available only if word level timings were enabled during transcription" +msgstr "" + +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:175 msgid "1/8 Collecting transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:126 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 msgid "2/8 Loading audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:141 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:213 msgid "3/8 Loading alignment model" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:167 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:239 msgid "3/8 Loading alignment model (retrying with cache...)" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:172 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:244 msgid "" "Failed to load alignment model. Please check your internet connection and " "try again." msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:180 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:252 msgid "4/8 Processing audio" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:198 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:270 #, fuzzy msgid "5/8 Preparing transcripts" msgstr "取消錄製" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:220 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 msgid "6/8 Identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:247 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:319 msgid "7/8 Mapping speakers to transcripts" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:287 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:366 msgid "8/8 Identification done" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:292 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:371 msgid "0/0 Error identifying speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:352 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:431 msgid "Step 1: Identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:364 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:443 msgid "Identify" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:373 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:452 msgid "Ready to identify speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:375 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:454 msgid "Audio file not found" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:399 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:478 msgid "Step 2: Name speakers" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:414 -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:529 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:493 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:608 msgid "Play sample" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:429 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:508 msgid "Merge speaker sentences" msgstr "" -#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:434 +#: buzz/widgets/transcription_viewer/speaker_identification_widget.py:513 #, fuzzy msgid "Save" msgstr "檔案" @@ -976,12 +996,12 @@ msgid "Unable to save OpenAI API key to keyring" msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:57 -#: buzz/transcriber/recording_transcriber.py:427 +#: buzz/transcriber/recording_transcriber.py:430 msgid "Whisper server failed to start. Check logs for details." msgstr "" #: buzz/transcriber/local_whisper_cpp_server_transcriber.py:60 -#: buzz/transcriber/recording_transcriber.py:431 +#: buzz/transcriber/recording_transcriber.py:434 msgid "" "Whisper server failed to start due to insufficient memory. Please try again " "with a smaller model. To force CPU mode use BUZZ_FORCE_CPU=TRUE environment " @@ -1354,15 +1374,15 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/transcriber/recording_transcriber.py:244 buzz/model_loader.py:760 +#: buzz/transcriber/recording_transcriber.py:247 buzz/model_loader.py:774 msgid "A connection error occurred" msgstr "" -#: buzz/transcriber/recording_transcriber.py:358 +#: buzz/transcriber/recording_transcriber.py:361 msgid "Starting Whisper.cpp..." msgstr "" -#: buzz/transcriber/recording_transcriber.py:418 +#: buzz/transcriber/recording_transcriber.py:421 #, fuzzy msgid "Starting transcription..." msgstr "取消錄製" diff --git a/buzz/widgets/transcription_viewer/transcription_resizer_widget.py b/buzz/widgets/transcription_viewer/transcription_resizer_widget.py index cb8dfcfc..8760cdf8 100644 --- a/buzz/widgets/transcription_viewer/transcription_resizer_widget.py +++ b/buzz/widgets/transcription_viewer/transcription_resizer_widget.py @@ -153,6 +153,38 @@ class TranscriptionResizerWidget(QWidget): layout = QFormLayout(self) + # Extend segment endings + extend_label = QLabel(_("Extend end time"), self) + font = extend_label.font() + font.setWeight(QFont.Weight.Bold) + extend_label.setFont(font) + layout.addRow(extend_label) + + extend_group_box = QGroupBox(self) + extend_layout = QVBoxLayout(extend_group_box) + + self.extend_row = QHBoxLayout() + + self.extend_amount_label = QLabel(_("Extend endings by up to (seconds)"), self) + + self.extend_amount_input = LineEdit("0.2", self) + self.extend_amount_input.setMaximumWidth(60) + + self.extend_button = QPushButton(_("Extend endings")) + self.extend_button.clicked.connect(self.on_extend_button_clicked) + + self.extend_row.addWidget(self.extend_amount_label) + self.extend_row.addWidget(self.extend_amount_input) + self.extend_row.addWidget(self.extend_button) + + extend_layout.addLayout(self.extend_row) + + layout.addRow(extend_group_box) + + # Spacer + spacer1 = QSpacerItem(0, 10, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed) + layout.addItem(spacer1) + # Resize longer subtitles resize_label = QLabel(_("Resize Options"), self) font = resize_label.font() @@ -182,12 +214,14 @@ class TranscriptionResizerWidget(QWidget): resize_layout.addLayout(self.resize_row) resize_group_box.setEnabled(self.transcription.word_level_timings != 1) + if self.transcription.word_level_timings == 1: + resize_group_box.setToolTip(_("Available only if word level timings were disabled during transcription")) layout.addRow(resize_group_box) # Spacer - spacer = QSpacerItem(0, 10, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed) - layout.addItem(spacer) + spacer2 = QSpacerItem(0, 10, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed) + layout.addItem(spacer2) # Merge words into subtitles merge_options_label = QLabel(_("Merge Options"), self) @@ -237,6 +271,8 @@ class TranscriptionResizerWidget(QWidget): merge_options_layout.addLayout(self.merge_options_row) merge_options_group_box.setEnabled(self.transcription.word_level_timings == 1) + if self.transcription.word_level_timings != 1: + merge_options_group_box.setToolTip(_("Available only if word level timings were enabled during transcription")) layout.addRow(merge_options_group_box) @@ -292,6 +328,44 @@ class TranscriptionResizerWidget(QWidget): if self.transcriptions_updated_signal: self.transcriptions_updated_signal.emit(new_transcript_id) + def on_extend_button_clicked(self): + try: + extend_amount_seconds = float(self.extend_amount_input.text()) + except ValueError: + extend_amount_seconds = 0.2 + + # Convert seconds to milliseconds (internal time unit) + extend_amount = int(extend_amount_seconds * 1000) + + segments = self.transcription_service.get_transcription_segments( + transcription_id=self.transcription.id_as_uuid + ) + + extended_segments = [] + for i, segment in enumerate(segments): + new_end = segment.end_time + extend_amount + + # Ensure segment end doesn't exceed start of next segment + if i < len(segments) - 1: + next_start = segments[i + 1].start_time + new_end = min(new_end, next_start) + + extended_segments.append( + Segment( + start=segment.start_time, + end=new_end, + text=segment.text + ) + ) + + new_transcript_id = self.transcription_service.copy_transcription( + self.transcription.id_as_uuid + ) + self.transcription_service.update_transcription_as_completed(new_transcript_id, extended_segments) + + if self.transcriptions_updated_signal: + self.transcriptions_updated_signal.emit(new_transcript_id) + def on_merge_button_clicked(self): self.new_transcript_id = self.transcription_service.copy_transcription( self.transcription.id_as_uuid diff --git a/tests/widgets/transcription_viewer_test.py b/tests/widgets/transcription_viewer_test.py index c948dede..fdf989f2 100644 --- a/tests/widgets/transcription_viewer_test.py +++ b/tests/widgets/transcription_viewer_test.py @@ -98,6 +98,71 @@ class TestTranscriptionViewerWidget: widget.close() + def test_should_extend_segment_endings(self, qtbot, transcription, transcription_service): + transcription_service.update_transcription_as_completed = MagicMock() + transcription_service.copy_transcription = MagicMock(return_value=uuid.uuid4()) + + mock_signal = MagicMock() + + widget = TranscriptionResizerWidget( + transcription=transcription, + transcription_service=transcription_service, + transcriptions_updated_signal=mock_signal + ) + widget.extend_amount_input.setText("0.2") + + qtbot.add_widget(widget) + + widget.on_extend_button_clicked() + + # Verify a new transcription is created + transcription_service.copy_transcription.assert_called_once_with(transcription.id_as_uuid) + + # Verify segments are updated + transcription_service.update_transcription_as_completed.assert_called_once() + + # Verify signal is emitted + mock_signal.emit.assert_called_once() + + # Verify segments are extended correctly + call_args = transcription_service.update_transcription_as_completed.call_args + new_transcript_id, segments = call_args[0] + + # Original segments: (40, 299, "Bien"), (299, 329, "venue dans") + # With 0.2s (200ms) extension: + # First segment: end should be min(299 + 200, 299) = 299 (capped by next segment start) + # Second segment: end should be 329 + 200 = 529 + assert len(segments) == 2 + assert segments[0].start == 40 + assert segments[0].end == 299 # Capped by next segment start + assert segments[1].start == 299 + assert segments[1].end == 529 # Extended by 200ms + + widget.close() + + def test_extend_with_invalid_input_uses_default(self, qtbot, transcription, transcription_service): + transcription_service.update_transcription_as_completed = MagicMock() + transcription_service.copy_transcription = MagicMock(return_value=uuid.uuid4()) + + widget = TranscriptionResizerWidget( + transcription=transcription, + transcription_service=transcription_service, + ) + widget.extend_amount_input.setText("invalid") + + qtbot.add_widget(widget) + + widget.on_extend_button_clicked() + + # Should use default 0.2 seconds (200ms) + call_args = transcription_service.update_transcription_as_completed.call_args + new_transcript_id, segments = call_args[0] + + # Second segment should be extended by default 200ms + assert segments[1].end == 529 # 329 + 200 + + widget.close() + def test_on_merge_button_clicked(self, qtbot: QtBot, transcription, transcription_service): # Prerequisite: Merge button is only enabled if word_level_timings is True transcription.word_level_timings = True