From 8fa065eb95ca83b9dee73126dd83305484285a78 Mon Sep 17 00:00:00 2001 From: Raivis Dejus Date: Sun, 6 Jul 2025 21:00:07 +0300 Subject: [PATCH] Crash fixes and library updates (#1188) --- .github/workflows/ci.yml | 19 +- .github/workflows/snapcraft.yml | 1 + CONTRIBUTING.md | 6 +- Makefile | 1 + README.md | 4 +- buzz/locale/ca_ES/LC_MESSAGES/buzz.po | 202 +-- buzz/locale/da_DK/LC_MESSAGES/buzz.po | 201 +-- buzz/locale/de_DE/LC_MESSAGES/buzz.po | 202 +-- buzz/locale/en_US/LC_MESSAGES/buzz.po | 196 +-- buzz/locale/es_ES/LC_MESSAGES/buzz.po | 202 +-- buzz/locale/it_IT/LC_MESSAGES/buzz.po | 202 +-- buzz/locale/ja_JP/LC_MESSAGES/buzz.po | 201 +-- buzz/locale/lv_LV/LC_MESSAGES/buzz.po | 203 +-- buzz/locale/nl/LC_MESSAGES/buzz.po | 1317 +++++++++-------- buzz/locale/pl_PL/LC_MESSAGES/buzz.po | 196 +-- buzz/locale/pt_BR/LC_MESSAGES/buzz.po | 210 +-- buzz/locale/uk_UA/LC_MESSAGES/buzz.po | 201 +-- buzz/locale/zh_CN/LC_MESSAGES/buzz.po | 201 +-- buzz/locale/zh_TW/LC_MESSAGES/buzz.po | 196 +-- buzz/model_loader.py | 4 + buzz/transformers_whisper.py | 27 +- buzz/translator.py | 23 +- buzz/widgets/audio_meter_widget.py | 2 +- .../general_preferences_widget.py | 1 + buzz/widgets/recording_transcriber_widget.py | 24 + .../transcriber/advanced_settings_dialog.py | 4 +- installer.iss | 1 + poetry.lock | 368 +++-- pyproject.toml | 11 +- snap/snapcraft.yaml | 22 +- tests/transformers_whisper_test.py | 2 +- 31 files changed, 2375 insertions(+), 2075 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 904a3073..cc1b582b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -137,12 +137,14 @@ jobs: - name: Install CUDA torch for Windows run: | if [ "$RUNNER_OS" == "Windows" ]; then - poetry source add --priority=supplemental torch https://download.pytorch.org/whl/cu126 + poetry source add --priority=supplemental torch https://download.pytorch.org/whl/cu128 poetry source add --priority=supplemental nvidia https://pypi.ngc.nvidia.com poetry add msvc-runtime - poetry add torch==2.7.0+cu126 torchaudio==2.7.0+cu126 - poetry add nvidia-cublas-cu12==12.6.4.1 nvidia-cuda-cupti-cu12==12.6.80 nvidia-cuda-nvrtc-cu12==12.6.77 nvidia-cuda-runtime-cu12==12.6.77 nvidia-cudnn-cu12==9.5.1.17 nvidia-cufft-cu12==11.3.0.4 nvidia-curand-cu12==10.3.7.77 nvidia-cusolver-cu12==11.7.1.2 nvidia-cusparse-cu12==12.5.4.2 nvidia-cusparselt-cu12==0.6.3 nvidia-nvjitlink-cu12==12.6.85 nvidia-nvtx-cu12==12.6.77 + poetry add torch==2.7.1+cu128 torchaudio==2.7.1+cu128 + poetry add nvidia-cublas-cu12==12.8.3.14 nvidia-cuda-cupti-cu12==12.8.57 nvidia-cuda-nvrtc-cu12==12.8.61 nvidia-cuda-runtime-cu12==12.8.57 nvidia-cudnn-cu12==9.7.1.26 nvidia-cufft-cu12==11.3.3.41 nvidia-curand-cu12==10.3.9.55 nvidia-cusolver-cu12==11.7.2.55 nvidia-cusparse-cu12==12.5.7.53 nvidia-cusparselt-cu12==0.6.3 nvidia-nvjitlink-cu12==12.8.61 nvidia-nvtx-cu12==12.8.55 + + echo yes | poetry cache clear --all . fi shell: bash @@ -173,6 +175,16 @@ jobs: run: gem install fpm if: "startsWith(matrix.os, 'ubuntu-')" + - name: Clear space on Windows + if: runner.os == 'Windows' + run: | + rm 'C:\Android\android-sdk\' -r -force + rm 'C:\Program Files (x86)\Google\' -r -force + rm 'C:\tools\kotlinc\' -r -force + rm 'C:\tools\php\' -r -force + rm 'C:\selenium\' -r -force + shell: pwsh + - name: Bundle run: | if [ "$RUNNER_OS" == "macOS" ]; then @@ -226,6 +238,7 @@ jobs: name: Buzz-${{ runner.os }}-${{ runner.arch }} path: | dist/Buzz*-windows.exe + dist/Buzz*-windows-*.bin dist/Buzz*-mac.dmg build_wheels: diff --git a/.github/workflows/snapcraft.yml b/.github/workflows/snapcraft.yml index 5e2d189e..ec9f32a5 100644 --- a/.github/workflows/snapcraft.yml +++ b/.github/workflows/snapcraft.yml @@ -27,6 +27,7 @@ jobs: remove-android: 'true' remove-haskell: 'true' remove-codeql: 'true' + remove-docker-images: 'true' - uses: actions/checkout@v4 with: submodules: recursive diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f7850fba..4dbde82d 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -119,11 +119,11 @@ GPU support on Windows with Nvidia GPUs is included out of the box in the `.exe` To add GPU support for source or `pip` installed version switch torch library to GPU version. For more info see https://pytorch.org/get-started/locally/ . ``` -poetry source add --priority=supplemental torch https://download.pytorch.org/whl/cu124 +poetry source add --priority=supplemental torch https://download.pytorch.org/whl/cu128 poetry source add --priority=supplemental nvidia https://pypi.ngc.nvidia.com -poetry add torch==2.6.0+cu124 torchaudio==2.6.0+cu124 -poetry add nvidia-cublas-cu12==12.4.5.8 nvidia-cuda-cupti-cu12==12.4.127 nvidia-cuda-nvrtc-cu12==12.4.127 nvidia-cuda-runtime-cu12==12.4.127 nvidia-cufft-cu12==11.2.1.3 nvidia-curand-cu12==10.3.5.147 nvidia-cusolver-cu12==11.6.1.9 nvidia-cusparse-cu12==12.3.1.170 nvidia-nvtx-cu12==12.4.127 +poetry add torch==2.7.1+cu128 torchaudio==2.7.1+cu128 +poetry add nvidia-cublas-cu12==12.8.3.14 nvidia-cuda-cupti-cu12==12.8.57 nvidia-cuda-nvrtc-cu12==12.8.61 nvidia-cuda-runtime-cu12==12.8.57 nvidia-cudnn-cu12==9.7.1.26 nvidia-cufft-cu12==11.3.3.41 nvidia-curand-cu12==10.3.9.55 nvidia-cusolver-cu12==11.7.2.55 nvidia-cusparse-cu12==12.5.4.2 nvidia-cusparselt-cu12==0.6.3 nvidia-nvjitlink-cu12==12.8.61 nvidia-nvtx-cu12==12.8.55 ``` To use Faster Whisper on GPU, install the following libraries: diff --git a/Makefile b/Makefile index eeae5a3f..60728604 100644 --- a/Makefile +++ b/Makefile @@ -214,6 +214,7 @@ translation_po_all: $(MAKE) translation_po locale=da_DK $(MAKE) translation_po locale=de_DE $(MAKE) translation_po locale=nl + $(MAKE) translation_po locale=pt_BR TMP_POT_FILE_PATH := $(shell mktemp) PO_FILE_PATH := buzz/locale/${locale}/LC_MESSAGES/buzz.po diff --git a/README.md b/README.md index 1bfad6f7..9b04af7f 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,8 @@ winget install ChidiWilliams.Buzz To have GPU support for Nvidia GPUS on Windows, for PyPI installed version ensure, CUDA support for [torch](https://pytorch.org/get-started/locally/) ``` -pip3 uninstall torch torchaudio -pip3 install torch==2.2.2+cu121 torchaudio==2.2.2+cu121 nvidia-cublas-cu12==12.1.3.1 nvidia-cuda-cupti-cu12==12.1.105 nvidia-cuda-nvrtc-cu12==12.1.105 nvidia-cuda-runtime-cu12==12.1.105 nvidia-cufft-cu12==11.0.2.54 nvidia-curand-cu12==10.3.2.106 nvidia-cusolver-cu12==11.4.5.107 nvidia-cusparse-cu12==12.1.0.106 nvidia-nccl-cu12==2.19.3 nvidia-nvtx-cu12==12.1.105 --extra-index-url https://download.pytorch.org/whl/cu121 --extra-index-url https://pypi.ngc.nvidia.com +pip3 install -U torch==2.7.1+cu128 torchaudio==2.7.1+cu128 --index-url https://download.pytorch.org/whl/cu128 +pip3 install nvidia-cublas-cu12==12.8.3.14 nvidia-cuda-cupti-cu12==12.8.57 nvidia-cuda-nvrtc-cu12==12.8.61 nvidia-cuda-runtime-cu12==12.8.57 nvidia-cudnn-cu12==9.7.1.26 nvidia-cufft-cu12==11.3.3.41 nvidia-curand-cu12==10.3.9.55 nvidia-cusolver-cu12==11.7.2.55 nvidia-cusparse-cu12==12.5.4.2 nvidia-cusparselt-cu12==0.6.3 nvidia-nvjitlink-cu12==12.8.61 nvidia-nvtx-cu12==12.8.55 --extra-index-url https://pypi.ngc.nvidia.com ``` ### Linux diff --git a/buzz/locale/ca_ES/LC_MESSAGES/buzz.po b/buzz/locale/ca_ES/LC_MESSAGES/buzz.po index c0fb7c28..2e6342d9 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: 2025-05-17 18:25+0200\n" "Last-Translator: Éric Duarte \n" "Language-Team: Catalan \n" @@ -27,17 +27,17 @@ msgstr "https://exemple.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "D’acord" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "Cancel·lar" @@ -73,100 +73,110 @@ msgid "Danish" msgstr "Danès" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "Holandès" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "Alemany" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "Castellà" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "Italià" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "Japonès" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "Letó" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "Polonès" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#, fuzzy +msgid "Portuguese (Brazil)" +msgstr "Portuguès" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 msgid "Ukrainian" msgstr "Ucraïnès" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "Xinès (simplificat)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "Xinès (Tradicional)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "Cal reiniciar!" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Ui Language" msgstr "Idioma UI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "Mida de la lletra" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "Prova" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "Clau de l'API d'OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "URL base d'OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "Nom del fitxer d'exportació per defecte" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "Activa l'exportació de transcripcions en directe" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Navega" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "Exporta la carpeta" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 msgid "Live recording mode" msgstr "Mode d'enregistrament en directe" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "Prova de clau OpenAI API" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -174,11 +184,11 @@ msgstr "" "La vostra clau API és vàlida. Buzz utilitzarà aquesta clau per realitzar " "transcripcions de l'API de Whisper i traduccions de la IA." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 msgid "Invalid API key" msgstr "Clau API no vàlida" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." @@ -186,11 +196,11 @@ msgstr "" "L'API només admet caràcters base64 (A-Za-z0-9+/).-). Altres caràcters de la " "clau API poden causar errors." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "Selecciona la carpeta d'exportació" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -272,20 +282,21 @@ msgstr "Disponible per descarregar" msgid "Download link to Whisper.cpp ggml model file" msgstr "Enllaç de descàrrega a Whisper.cpp fitxer de model ggml" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "Suprimeix el model" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "Esteu segur que voleu suprimir el model seleccionat?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "Descàrrega fallida" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "Error" @@ -303,28 +314,28 @@ msgstr "Atura" msgid "Detect Language" msgstr "Detecta l'idioma" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "Executa" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "Model:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "" "L'ús per primera vegada d'un model pot trigar diversos minuts a carregar-se." -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "Clau API:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "Tasca:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "Idioma:" @@ -365,8 +376,10 @@ msgid "AI model:" msgstr "Model d'IA:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "Introduïu les instruccions per a la IA sobre com traduir..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -408,76 +421,76 @@ msgstr "Obre una transcripció" msgid "Cancel Transcription" msgstr "Cancel·la la transcripció" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "Neteja l'historial" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "En progrés" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "Completat" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "Ha fallat" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "Cancel·lat" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "A la cua" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "Nom del fitxer / URL" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "Model" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "Tasca" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "Estat" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "Data d'addició" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "Data de finalització" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "Enregistrament en directe" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "Feu clic a Enregistra per a començar..." -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "Esperant la traducció de la IA..." -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "Micròfon:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 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:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -502,81 +515,81 @@ msgid "End" msgstr "Finalitza" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "Text" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "Traducció" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "Veure" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "Marqua de temps" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "Exporta" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "Traduir" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "Redimensionar" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "Clau API necessària" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 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:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "Opcions de redimensionament" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "Longitud desitjada dels subtítols" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "Opcions de fusió" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "Fusiona per buit" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "Divideix per puntuació" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "Divideix per la longitud màxima" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "Fusiona" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "Desa el fitxer" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "Fitxers de text" @@ -603,11 +616,11 @@ msgstr "" msgid "Close" msgstr "Tanca" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "Descarregant el model" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "restant" @@ -635,7 +648,7 @@ msgstr "Ajuda" msgid "File" msgstr "Fitxer" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." @@ -643,11 +656,11 @@ msgstr "" "Esteu segur que voleu suprimir les transcripcions seleccionades? Aquesta " "acció no es pot desfer." -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "Selecciona un fitxer d'àudio" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "No s'ha pogut desar la clau OpenAI API a l'anell de claus" @@ -679,10 +692,6 @@ msgstr "Portuguès" msgid "Turkish" msgstr "Turc" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "Holandès" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "Àrab" @@ -1015,7 +1024,7 @@ msgstr "Sundanès" msgid "Cantonese" msgstr "Cantonès" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "S'ha produït un error de connexió" @@ -1055,6 +1064,9 @@ msgstr "Afegeix a sobre" msgid "Append and correct" msgstr "Afegeix i corregeix" +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "Introduïu les instruccions per a la IA sobre com traduir..." + #~ msgid "ID" #~ msgstr "ID" diff --git a/buzz/locale/da_DK/LC_MESSAGES/buzz.po b/buzz/locale/da_DK/LC_MESSAGES/buzz.po index d4e6110d..716b31d2 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: \n" "Last-Translator: Ole Guldberg2 \n" "Language-Team: \n" @@ -24,17 +24,17 @@ msgstr "https://example.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "OK" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "Afbryd" @@ -70,103 +70,112 @@ msgid "Danish" msgstr "" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +msgid "Portuguese (Brazil)" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 #, fuzzy msgid "Ukrainian" msgstr "tilbageværende" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 #, fuzzy msgid "Ui Language" msgstr "Sprog:" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "Skriftypestørrelse" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "Test" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "OpenAI API-nøgle" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "OpenAI base-URL" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "Standard eksport filnavn" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "Slå transkription af live optagelse eksport til" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Gennemse" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "Eksportmappe" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 #, fuzzy msgid "Live recording mode" msgstr "Live optagelsesmode" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "OpenAI API Nøgle test" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -174,12 +183,12 @@ msgstr "" "Din API nøgle er gyldig. Buzz vil benytte nøglen til at anvende Whisper API " "transkription og AI oversættelser." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 #, fuzzy msgid "Invalid API key" msgstr "Ugyldig API-nøgle" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." @@ -187,11 +196,11 @@ msgstr "" "API supporterer kun base64 tegn (A-Za-z0-9+/=_-). Andre tegn i API-nøglen " "kan guve fejl. " -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "Vælg eksport-mappe" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -273,20 +282,21 @@ msgstr "Tilgængelige til download" msgid "Download link to Whisper.cpp ggml model file" msgstr "Download link til Whisper.cpp ggml model-fil" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "Slet model" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "Er du sikker på at du vil slette den valgte model?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "Download mislykkedes" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "Fejl" @@ -304,27 +314,27 @@ msgstr "Stop" msgid "Detect Language" msgstr "Detekter sprog" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "Kør" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "Model:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "Først gang kan brug af en model tage flere minutter at indlæse." -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "API-nøgle:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "Opgave:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "Sprog:" @@ -365,8 +375,10 @@ msgid "AI model:" msgstr "AI model:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "Indtast instruktioner til AI om hvordan den skal oversætte..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -410,76 +422,76 @@ msgstr "Åben transkription" msgid "Cancel Transcription" msgstr "Afbryd transkription" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "Ryd historik" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "Arbejder" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "Færdig" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "Mislykkedes" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "Afbrudt" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "Sat i kø" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "Filnavn / URL" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "Model" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "Opgave" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "Status" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "Dato for tilføjelse" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "Dato for færdiggørelse" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "Live optagelse" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "Klik Optage for at begynde..." -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "Venter på AI oversættelse..." -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "Mikrofon:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 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:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -504,81 +516,81 @@ msgid "End" msgstr "Slut" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "Tekst" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "Oversættelse" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "Vis" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "Tidsstempler" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "Eksporter" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "Oversæt" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "Behandel størrelse" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "API-nøgle påkrævet" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 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:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "Størrelsesindstillinger" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "Ønskede undertekst længde" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "Sammenfletningsindstillinger" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "Sammenflet ved hul" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "Split ved punktum" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "Split ved max længde" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "Sammenflet" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "Gem fil" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "Tekst filer" @@ -605,11 +617,11 @@ msgstr "" msgid "Close" msgstr "Luk" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "Downloader model" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "tilbageværende" @@ -637,7 +649,7 @@ msgstr "Hjælp" msgid "File" msgstr "Fil" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." @@ -645,11 +657,11 @@ msgstr "" "Er du sikker på at du vil slette den valgte transkription? Denne handling " "kan ikke fortrydes." -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "Vælg audio-fil" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "Kan ikke gemme OpenAI API-nøgle i nøgleringen" @@ -681,10 +693,6 @@ msgstr "" msgid "Turkish" msgstr "" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "" @@ -1017,7 +1025,7 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "Der er opstået en forbindelsesfejl" @@ -1056,3 +1064,6 @@ msgstr "Tilføj herover" #: buzz/settings/recording_transcriber_mode.py:7 msgid "Append and correct" msgstr "Tilføj og ret" + +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "Indtast instruktioner til AI om hvordan den skal oversætte..." diff --git a/buzz/locale/de_DE/LC_MESSAGES/buzz.po b/buzz/locale/de_DE/LC_MESSAGES/buzz.po index 06e42f03..2d92ad9d 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-03-06 19:13+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: 2025-03-05 14:41+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -26,17 +26,17 @@ msgstr "https://example.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "OK" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "Abbrechen" @@ -72,100 +72,110 @@ msgid "Danish" msgstr "Dänisch" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "Niederländisch" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "Deutsch" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "Spanisch" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "Italienisch" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "Japanisch" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "Lettisch" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "Polnisch" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#, fuzzy +msgid "Portuguese (Brazil)" +msgstr "Portugiesisch" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 msgid "Ukrainian" msgstr "Ukrainisch" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "Chinesisch (vereinfacht)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "Chinesisch (traditionell)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "Neustart erforderlich!" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Ui Language" msgstr "Sprache der Benutzeroberfläche" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "Schriftgröße" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "Test" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "OpenAI-API-Schlüssel" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "OpenAI-Basis-URL" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "Standardname der Exportdatei" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "Export von Live-Aufnahmetranskriptionen aktivieren" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Durchsuchen" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "Exportordner" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 msgid "Live recording mode" msgstr "Live-Aufnahmemodus" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "OpenAI-API-Schlüssel Test" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -173,11 +183,11 @@ msgstr "" "Ihr API-Schlüssel ist gültig. Buzz verwendet diesen Schlüssel, um Whisper-" "API-Transkriptionen und KI-Übersetzungen durchzuführen." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 msgid "Invalid API key" msgstr "Ungültiger API-Schlüssel" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." @@ -185,11 +195,11 @@ msgstr "" "Die API unterstützt nur Base64-Zeichen (A-Za-z0-9+/=_-). Andere Zeichen im " "API-Schlüssel können Fehler verursachen." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "Exportordner auswählen" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -272,20 +282,21 @@ msgstr "Zum Herunterladen verfügbar" msgid "Download link to Whisper.cpp ggml model file" msgstr "Laden Sie den Link zur ggml-Modelldatei Whisper.cpp herunter" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "Modell löschen" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "Sind Sie sicher, dass Sie das ausgewählte Modell löschen möchten?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "Der Download ist fehlgeschlagen" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "Fehler" @@ -303,29 +314,29 @@ msgstr "Stoppen" msgid "Detect Language" msgstr "Sprache erkennen" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "Ausführen" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "Modell:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "" "Bei der ersten Verwendung eines Modells kann das Laden mehrere Minuten " "dauern." -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "API-Schlüssel:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "Aufgabe:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "Sprache:" @@ -366,8 +377,10 @@ msgid "AI model:" msgstr "KI-Modell:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "Geben Sie Anweisungen für die KI zum Übersetzen ein..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -409,76 +422,76 @@ msgstr "Transkript öffnen" msgid "Cancel Transcription" msgstr "Transkription abbrechen" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "Verlauf löschen" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "Im Gange" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "Fertiggestellt" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "Fehlgeschlagen" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "Abgebrochen" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "In der Warteschlange" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "Dateiname/URL" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "Modell" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "Aufgabe" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "Status" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "Datum hinzugefügt" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "Datum abgeschlossen" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "Live-Aufnahme" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "Auf „Aufnehmen“ klicken um zu beginnen …" -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "Warten auf KI-Übersetzung..." -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "Mikrofon:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 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:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -503,81 +516,81 @@ msgid "End" msgstr "Ende" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "Text" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "Übersetzung" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "Anzeigen" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "Zeitstempel" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "Export" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "Übersetzen" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "Größe ändern" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "API-Schlüssel erforderlich" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 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:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "Größenänderungsoptionen" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "Gewünschte Untertitellänge" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "Zusammenführungsoptionen" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "Nach Abstand zusammenführen" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "Durch Satzzeichen getrennt" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "Aufgeteilt nach maximaler Länge" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "Vereinigen" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "Datei speichern" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "Textdateien" @@ -604,11 +617,11 @@ msgstr "" msgid "Close" msgstr "Schließen" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "Modell wird heruntergeladen" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "verbleibend" @@ -636,7 +649,7 @@ msgstr "Hilfe" msgid "File" msgstr "Datei" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." @@ -644,11 +657,11 @@ msgstr "" "Sind Sie sicher, dass Sie die ausgewählte(n) Transkription(en) löschen " "möchten? Diese Aktion kann nicht rückgängig gemacht werden." -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "Audiodatei auswählen" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "" "Der OpenAI-API-Schlüssel kann nicht im Schlüsselbund gespeichert werden" @@ -681,10 +694,6 @@ msgstr "Portugiesisch" msgid "Turkish" msgstr "Türkisch" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "Niederländisch" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "Arabisch" @@ -1017,7 +1026,7 @@ msgstr "Sundanesisch" msgid "Cantonese" msgstr "Kantonesisch" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "Ein Verbindungsfehler ist aufgetreten" @@ -1056,3 +1065,6 @@ msgstr "Oben anhängen" #: buzz/settings/recording_transcriber_mode.py:7 msgid "Append and correct" msgstr "Anhängen und korrigieren" + +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "Geben Sie Anweisungen für die KI zum Übersetzen ein..." diff --git a/buzz/locale/en_US/LC_MESSAGES/buzz.po b/buzz/locale/en_US/LC_MESSAGES/buzz.po index 835f4567..8d676e77 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,17 +27,17 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "" @@ -73,120 +73,129 @@ msgid "Danish" msgstr "" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +msgid "Portuguese (Brazil)" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 msgid "Ukrainian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Ui Language" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 msgid "Live recording mode" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 msgid "Invalid API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -265,20 +274,21 @@ msgstr "" msgid "Download link to Whisper.cpp ggml model file" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "" @@ -296,27 +306,27 @@ msgstr "" msgid "Detect Language" msgstr "" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "" @@ -357,7 +367,9 @@ msgid "AI model:" msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 @@ -400,76 +412,76 @@ msgstr "" msgid "Cancel Transcription" msgstr "" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 msgid "An error occurred while starting a new recording:" msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -492,81 +504,81 @@ msgid "End" msgstr "" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 msgid "Please enter OpenAI API Key in preferences" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "" @@ -589,11 +601,11 @@ msgstr "" msgid "Close" msgstr "" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "" @@ -621,17 +633,17 @@ msgstr "" msgid "File" msgstr "" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." msgstr "" -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "" @@ -663,10 +675,6 @@ msgstr "" msgid "Turkish" msgstr "" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "" @@ -999,7 +1007,7 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "" diff --git a/buzz/locale/es_ES/LC_MESSAGES/buzz.po b/buzz/locale/es_ES/LC_MESSAGES/buzz.po index 5b39e6e2..d04f9816 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: 2025-05-17 18:27+0200\n" "Last-Translator: Éric Duarte \n" "Language-Team: \n" @@ -27,17 +27,17 @@ msgstr "https://ejemplo.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "Ok" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "Cancelar" @@ -73,102 +73,112 @@ msgid "Danish" msgstr "Danés" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "Holandés" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "Alemán" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "Español" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "Italiano" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "Japonés" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "Letón" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "Polaco" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#, fuzzy +msgid "Portuguese (Brazil)" +msgstr "Portugués" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 msgid "Ukrainian" msgstr "Ucraniano" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "Chino (simplificado)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "Chino (tradicional)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "¡Es necesario reiniciar!" # automatic translation -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Ui Language" msgstr "Lenguaje de interfaz de usuario" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "Tamaño de fuente" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "Prueba" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "Clave API de OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "URL base de OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "Nombre de archivo de exportación predeterminado" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "Habilitar la exportación de transcripción de grabación en vivo" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Navegar" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "Carpeta de exportación" # automatic translation -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 msgid "Live recording mode" msgstr "Modo de grabación en directo" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "Prueba de la clave API de OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -176,11 +186,11 @@ msgstr "" "Tu clave API es válida. Buzz usará esta clave para realizar transcripciones " "de la API de Whisper y traducciones de IA." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 msgid "Invalid API key" msgstr "Clave API no válida" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." @@ -188,11 +198,11 @@ msgstr "" "La API solo admite caracteres base64 (A-Za-z0-9+/=_-). Otros caracteres de " "la clave de API pueden causar errores." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "Seleccione Exportar carpeta" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -277,21 +287,22 @@ msgstr "Disponible para descarga" msgid "Download link to Whisper.cpp ggml model file" msgstr "Enlace de descarga a Whisper.cpp archivo de modelo ggml" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "Eliminar modelo" # automatic translation -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "¿Confirma que quiere eliminar el modelo seleccionado?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "Descarga fallida" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "Error" @@ -313,31 +324,31 @@ msgid "Detect Language" msgstr "Detectar idioma" # automatic translation -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "Ejecutar" # automatic translation -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "Modelo:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "" "El uso por primera vez de un modelo puede tardar varios minutos en cargarse." -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "Clave API:" # automatic translation -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "Tarea:" # automatic translation -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "Idioma:" @@ -383,8 +394,10 @@ msgid "AI model:" msgstr "Modelo de IA:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "Introduzca instrucciones para la IA sobre cómo traducir..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -432,84 +445,84 @@ msgid "Cancel Transcription" msgstr "Cancelar transcripción" # automatic translation -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "Vaciar historial" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "En Progreso" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "Completado" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "Fallido" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "Cancelado" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "En cola" # automatic translation -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "Nombre de archivo / URL" # automatic translation -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "Modelo" # automatic translation -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "Tarea" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "Estado" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "Fecha de adición" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "Fecha de finalización" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "Grabación en vivo" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "Pulse en Grabar para comenzar..." -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "A la espera de la traducción de la IA..." # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "Micrófono:" # automatic translation -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 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:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -536,83 +549,83 @@ msgid "End" msgstr "Fin" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "Texto" # automatic translation #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "Traducción" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "Ver" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "Marcas de tiempo" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "Exportar" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "Traducir" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "Cambiar el tamaño" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "Clave de API requerida" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 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:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "Opciones de cambio de tamaño" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "Longitud deseada de los subtítulos" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "Opciones de fusión" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "Fusión por hueco" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "Dividido por puntuación" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "Dividido por la longitud máxima" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "Fusión" # automatic translation -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "Guardar archivo" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "Archivos de texto" @@ -639,11 +652,11 @@ msgstr "" msgid "Close" msgstr "Cerrar" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "Descargando modelo" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "restantes" @@ -677,7 +690,7 @@ msgid "File" msgstr "Archivo" # automatic translation -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." @@ -686,11 +699,11 @@ msgstr "" "no se puede deshacer." # automatic translation -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "Seleccionar archivo de audio" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "No se puede guardar la clave de la API de OpenAI en el llavero" @@ -723,10 +736,6 @@ msgstr "Portugués" msgid "Turkish" msgstr "Turco" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "Holandés" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "Árabe" @@ -1059,7 +1068,7 @@ msgstr "Sundanés" msgid "Cantonese" msgstr "Cantonés" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "Se ha producido un error de conexión" @@ -1104,6 +1113,9 @@ msgstr "Añadir arriba" msgid "Append and correct" msgstr "Añadir y corregir" +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "Introduzca instrucciones para la IA sobre cómo traducir..." + #~ msgid "ID" #~ msgstr "Id." diff --git a/buzz/locale/it_IT/LC_MESSAGES/buzz.po b/buzz/locale/it_IT/LC_MESSAGES/buzz.po index b8139d43..cf293f1d 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: 2025-05-30 15:22+0100\n" "Language-Team: (Italiano) Albano Battistella \n" "Language: it_IT\n" @@ -26,17 +26,17 @@ msgstr "https://esempio.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "Ok" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "Annulla" @@ -72,100 +72,110 @@ msgid "Danish" msgstr "Danese" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "Olandese" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "Tedesco" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "Spagnolo" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "Italiano" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "Giapponese" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "Lettone" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "Polacco" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#, fuzzy +msgid "Portuguese (Brazil)" +msgstr "Portoghese" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 msgid "Ukrainian" msgstr "Ucraino" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "Cinese (semplificato)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "Cinese (tradizionale)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "Riavvio richiesto!" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Ui Language" msgstr "Lingua UI:" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "Dimensione del carattere" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "Test" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "Chiave API OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "URL di base di OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "Nome file di esportazione predefinito" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "Abilita l'esportazione della trascrizione della registrazione live" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Sfoglia" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "Esporta cartella" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 msgid "Live recording mode" msgstr "Modalità di registrazione in diretta" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "Test della chiave API OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -173,11 +183,11 @@ msgstr "" "La tua chiave API è valida. Buzz utilizzerà questa chiave per eseguire le " "trascrizioni API Whisper e le traduzioni AI." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 msgid "Invalid API key" msgstr "Chiave API non valida" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." @@ -185,11 +195,11 @@ msgstr "" "L'API supporta solo caratteri base64 (A-Za-z0-9+/=). Altri caratteri nella " "chiave API potrebbero causare errori." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "Seleziona la cartella di esportazione" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -271,20 +281,21 @@ msgstr "Disponibile per il download" msgid "Download link to Whisper.cpp ggml model file" msgstr "Link per scaricare il file modello ggml Whisper.cpp" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "Elimina modello" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "Sei sicuro di voler eliminare il modello selezionato?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "Download non riuscito" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "Errore" @@ -302,29 +313,29 @@ msgstr "Arresta" msgid "Detect Language" msgstr "Rileva la lingua" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "Avvia" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "Modello:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "" "Il caricamento di un modello al primo utilizzo potrebbe richiedere diversi " "minuti." -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "Chiave API:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "Compito:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "Lingua:" @@ -365,8 +376,10 @@ msgid "AI model:" msgstr "Modello AI:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "Inserisci le istruzioni per l'IA su come tradurre..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -408,76 +421,76 @@ msgstr "Apri trascrizione" msgid "Cancel Transcription" msgstr "Annulla trascrizione" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "Elimina la cronologia" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "In corso" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "Completato" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "Non riuscito" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "Annullato" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "In coda" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "Nome file / URL" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "Modello" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "Compito" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "Stato" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "Data aggiunta" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "Data completata" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "Registrazione in diretta" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "Fai clic su Registra per iniziare..." -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "In attesa della traduzione AI..." -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "Microfono:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 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:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -502,81 +515,81 @@ msgid "End" msgstr "Fine" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "Testo" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "Traduzione" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "Visualizza" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "Timestamp" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "Esporta" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "Tradurre" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "Ridimensionare" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "Chiave API richiesta" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 msgid "Please enter OpenAI API Key in preferences" msgstr "Inserisci la chiave API OpenAI nelle preferenze" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "Opzioni di ridimensionamento" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "Lunghezza desiderata dei sottotitoli" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "Opzioni di unione" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "Unito per spazio" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "Diviso per punteggiatura" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "Diviso per lunghezza massima" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "Unione" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "Salva file" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "File di testo" @@ -603,11 +616,11 @@ msgstr "" msgid "Close" msgstr "Chiudi" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "Download del modello" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "rimanente" @@ -635,7 +648,7 @@ msgstr "Aiuto" msgid "File" msgstr "File" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." @@ -643,11 +656,11 @@ msgstr "" "Sei certo di voler eliminare le trascrizioni selezionate? Questa azione non " "può essere annullata." -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "Seleziona file audio" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "Impossibile salvare la chiave API OpenAI nel portachiavi" @@ -679,10 +692,6 @@ msgstr "Portoghese" msgid "Turkish" msgstr "Turco" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "Olandese" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "Arabo" @@ -1015,7 +1024,7 @@ msgstr "Sundanese" msgid "Cantonese" msgstr "Cantonese" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "Si è verificato un errore di connessione" @@ -1055,6 +1064,9 @@ msgstr "Aggiungere sopra" msgid "Append and correct" msgstr "Aggiungere e correggere" +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "Inserisci le istruzioni per l'IA su come tradurre..." + #~ msgid "Enter target characters per subtitle:" #~ msgstr "Inserisci i caratteri di destinazione per sottotitolo:" diff --git a/buzz/locale/ja_JP/LC_MESSAGES/buzz.po b/buzz/locale/ja_JP/LC_MESSAGES/buzz.po index 40d941d4..b43fd937 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: \n" "Last-Translator: nunawa <71294849+nunawa@users.noreply.github.com>\n" "Language-Team: \n" @@ -22,17 +22,17 @@ msgstr "https://example.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "Ok" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "キャンセル" @@ -68,103 +68,112 @@ msgid "Danish" msgstr "" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +msgid "Portuguese (Brazil)" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 #, fuzzy msgid "Ukrainian" msgstr "残り" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 #, fuzzy msgid "Ui Language" msgstr "言語:" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "フォントサイズ" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "テスト" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "OpenAI APIキー" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "OpenAI ベースURL" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "デフォルトの出力ファイル名" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "ライブ録音書き起こしの出力を有効にする" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "参照" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "出力フォルダ" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 #, fuzzy msgid "Live recording mode" msgstr "ライブ録音" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "OpenAI APIキー テスト" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -172,22 +181,22 @@ msgstr "" "あなたのAPIキーは有効です。Buzzはこのキーを使ってWhisper APIの書き起こしとAI" "翻訳を行います。" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 #, fuzzy msgid "Invalid API key" msgstr "OpenAI APIキー" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "出力フォルダを選択" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -269,20 +278,21 @@ msgstr "ダウンロード可能" msgid "Download link to Whisper.cpp ggml model file" msgstr "Whisper.cpp ggmlモデルファイルのダウンロードリンク" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "モデルを削除" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "選択したモデルを本当に削除しますか?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "ダウンロード失敗" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "エラー" @@ -300,27 +310,27 @@ msgstr "停止する" msgid "Detect Language" msgstr "自動検出" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "実行" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "モデル:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "APIキー:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "タスク:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "言語:" @@ -361,8 +371,10 @@ msgid "AI model:" msgstr "AIのモデル:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "AIのための翻訳方法の指示を入力..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -406,76 +418,76 @@ msgstr "文字起こしを開く" msgid "Cancel Transcription" msgstr "文字起こしをキャンセルする" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "履歴を削除する" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "進行中" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "完了" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "失敗" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "キャンセル済み" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "キュー済み" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "ファイル名 / URL" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "モデル" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "タスク" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "ステータス" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "追加日" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "完了日" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "ライブ録音" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "クリックで録音を開始..." -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "AI翻訳を待っています..." -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "マイク:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 msgid "An error occurred while starting a new recording:" msgstr "新規録音開始時にエラーが発生しました:" -#: buzz/widgets/recording_transcriber_widget.py:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -500,82 +512,82 @@ msgid "End" msgstr "終了" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "テキスト" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "翻訳" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "表示" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "タイムスタンプ" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "出力" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "翻訳" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "リサイズ" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "APIキーが必要" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 msgid "Please enter OpenAI API Key in preferences" msgstr "設定画面でOpenAI APIキーを入力してください" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 #, fuzzy msgid "Resize Options" msgstr "リサイズ" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "希望する字幕の長さ" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "ファイルを保存" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "テキストファイル" @@ -602,11 +614,11 @@ msgstr "" msgid "Close" msgstr "閉じる" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "モデルをダウンロード中" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "残り" @@ -634,17 +646,17 @@ msgstr "ヘルプ" msgid "File" msgstr "ファイル" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." msgstr "本当に選択された文字起こしを削除しますか? この操作は元に戻せません。" -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "音声ファイルを選択" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "OpenAI API キーをkeyringに保存できません" @@ -676,10 +688,6 @@ msgstr "" msgid "Turkish" msgstr "" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "" @@ -1012,7 +1020,7 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "接続エラーが発生しました" @@ -1052,5 +1060,8 @@ msgstr "" msgid "Append and correct" msgstr "" +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "AIのための翻訳方法の指示を入力..." + #~ msgid "Enter target characters per subtitle:" #~ msgstr "字幕の目標文字数を入力してください:" diff --git a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po index 6ec1e8be..b20bd5de 100644 --- a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po +++ b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-06 19:12+0200\n" -"PO-Revision-Date: 2025-02-22 23:44+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" +"PO-Revision-Date: 2025-07-06 20:11+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: lv_LV\n" @@ -28,17 +28,17 @@ msgstr "https://example.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "Labi" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "Atcelt" @@ -74,102 +74,111 @@ msgid "Danish" msgstr "Dāņu" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "Holandiešu" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "Vācu" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "Spāņu" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "Itāļu" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "Japāņu" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "Latviešu" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "Poļu" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +msgid "Portuguese (Brazil)" +msgstr "Portugāļu (Brazīlijas)" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 msgid "Ukrainian" msgstr "Ukraiņu" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "Ķīniešu (vienkāršotā)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "Ķīniešu (tradicionālā)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "Jāpārstartē!" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Ui Language" msgstr "Programmas valoda" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "Fonta izmērs" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "Pārbaudīt" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "OpenAI API atslēga" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "OpenAI adrese" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "Eksporta fails" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "Eksportēt dzīvā ieraksta transkriptus" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Izvēlēties" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "Eksportēt mapē" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 msgid "Live recording mode" msgstr "" "Dzīvā ieraksta\n" "režīms" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "OpenAI API atslēgas pārbaude" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -177,11 +186,11 @@ msgstr "" "Jūsu API atslēga ir derīga. Buzz izmantos to runas atpazīšanai ar Whisper " "API un tulkošanai." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 msgid "Invalid API key" msgstr "Nederīga API atslēga" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." @@ -189,11 +198,11 @@ msgstr "" "API atbalsta tikai base64 simbolus (A-Za-z0-9+/=_-). Citi simboli API " "atslēgā var radīt kļūdas." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "Izvēlieties mapi kurā eksportēt" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -275,20 +284,21 @@ msgstr "Pieejams lejupielādei" msgid "Download link to Whisper.cpp ggml model file" msgstr "Whisper.cpp ggml modeļa datnes lejupielādes saite" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "Dzēst modeli" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "Vai tiešām dzēst izvēlēto modeli?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "Lejupielāde neizdevās" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "Kļūda" @@ -306,27 +316,27 @@ msgstr "Apturēt" msgid "Detect Language" msgstr "Noteikt valodu" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "Apstrādāt" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "Modelis:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "Pirmā modeļa ielādes reize var aizņemt pat vairākas minūtes." -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "API atslēga:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "Uzdevums:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "Valoda:" @@ -369,8 +379,10 @@ msgid "AI model:" msgstr "AI modelis:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "Ievadiet tulkošanas norādes mākslīgajam intelektam..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -412,76 +424,76 @@ msgstr "Atvērt transkriptu" msgid "Cancel Transcription" msgstr "Atcelt atpazīšanu" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "Notīrīt vēsturi" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "Apstrādā" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "Pabeigts" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "Neizdevās" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "Atcelts" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "Ierindots" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "Fails / URL" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "Modelis" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "Uzdevums" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "Statuss" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "Pievienots" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "Pabeigts" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "Dzīvā ierakstīšana" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "Klikšķiniet Ierakstīt, lai sāktu..." -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "Gaida MI tulkojumu..." -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "Mikrofons:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 msgid "An error occurred while starting a new recording:" msgstr "Sākot jaunu ierakstu notikusi kļūda:" -#: buzz/widgets/recording_transcriber_widget.py:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -506,81 +518,81 @@ msgid "End" msgstr "Beigas" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "Teksts" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "Tulkojums" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "Skats" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "Laiks" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "Eksportēt" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "Tulkot" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "Mainīt garumu" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "API atslēgas kļūda" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 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:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "Garuma maiņas iestatījumi" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "Vēlamais teksta garums" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "Apvienošanas iestatījumi" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "Apvienot pēc attāluma" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "Dalīt pie pieturzīmēm" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "Dalīt pie maksimālā garuma" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "Apvienot" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "Saglabāt failu" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "Teksta faili" @@ -605,11 +617,11 @@ msgstr "Lai piešķirtu nepieciešamās atļaujas izpildiet šīs komandas" msgid "Close" msgstr "Aizvērt" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "Lejupielādē modeli" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "..." @@ -637,7 +649,7 @@ msgstr "Palīdzība" msgid "File" msgstr "Fails" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." @@ -645,11 +657,11 @@ msgstr "" "Vai tiešām vēlaties dzēst izvēlētos transkriptus? Šī ir neatgriezeniska " "darbība." -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "Izvēlieties audio failu" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "Neizdevās saglabāt OpenAI API atslēgu atslēgu saišķī" @@ -681,10 +693,6 @@ msgstr "Portugāļu" msgid "Turkish" msgstr "Turku" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "Holandiešu" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "Arābu" @@ -1017,7 +1025,7 @@ msgstr "Sundāņu" msgid "Cantonese" msgstr "Kantonas" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "Notika savienojuma kļūda" @@ -1057,5 +1065,8 @@ msgstr "Jaunie teikumi augšā" msgid "Append and correct" msgstr "Papildināt un labot esošo" +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "Ievadiet tulkošanas norādes mākslīgajam intelektam..." + #~ msgid "Enter target characters per subtitle:" #~ msgstr "Ievadiet vēlamo simbolu skaitu tekstā:" diff --git a/buzz/locale/nl/LC_MESSAGES/buzz.po b/buzz/locale/nl/LC_MESSAGES/buzz.po index 64d981e0..0c9c2158 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-03-16 17:47+0100\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: 2025-03-20 18:30+0100\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: none\n" @@ -19,92 +19,659 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.5\n" -#: buzz/model_loader.py:499 buzz/widgets/main_window.py:297 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -msgid "Error" -msgstr "Foutmelding" - -#: buzz/model_loader.py:528 -msgid "A connection error occurred" -msgstr "Er is een verbindingsfout opgetreden" - -#: buzz/settings/recording_transcriber_mode.py:5 -msgid "Append below" -msgstr "Onderaan toevoegen" - -#: buzz/settings/recording_transcriber_mode.py:6 -msgid "Append above" -msgstr "Bovenaan toevoegen" - -#: buzz/settings/recording_transcriber_mode.py:7 -msgid "Append and correct" -msgstr "Toevoegen en corrigeren" - -#: buzz/settings/shortcut.py:17 -msgid "Open Record Window" -msgstr "Opnamevenster openen" - -#: buzz/settings/shortcut.py:18 -msgid "Import File" -msgstr "Bestand importeren" - -#: buzz/settings/shortcut.py:19 buzz/widgets/import_url_dialog.py:19 +#: buzz/widgets/import_url_dialog.py:19 buzz/settings/shortcut.py:19 msgid "Import URL" msgstr "Url importeren" -#: buzz/settings/shortcut.py:20 -msgid "Open Preferences Window" -msgstr "Instellingenvenster openen" +#: buzz/widgets/import_url_dialog.py:22 +msgid "https://example.com/audio.mp3" +msgstr "https://voorbeeld.nl/audio.mp3" -#: buzz/settings/shortcut.py:22 -msgid "View Transcript Text" -msgstr "Transcriptie bekijken" +#: buzz/widgets/import_url_dialog.py:28 +#: buzz/widgets/preferences_dialog/preferences_dialog.py:69 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 +#: buzz/widgets/transcriber/advanced_settings_dialog.py:97 +#: buzz/widgets/main_window.py:238 +msgid "Ok" +msgstr "Oké" -#: buzz/settings/shortcut.py:23 -msgid "View Transcript Translation" -msgstr "Getranscribeerde vertaling bekijken" +#: buzz/widgets/import_url_dialog.py:29 +#: buzz/widgets/preferences_dialog/preferences_dialog.py:70 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 +msgid "Cancel" +msgstr "Annuleren" -#: buzz/settings/shortcut.py:24 -msgid "View Transcript Timestamps" -msgstr "Getranscribeerde tijdstippen bekijken" +#: buzz/widgets/import_url_dialog.py:34 +msgid "URL:" +msgstr "Url:" -#: buzz/settings/shortcut.py:26 buzz/widgets/main_window.py:229 -#: buzz/widgets/main_window_toolbar.py:71 -msgid "Clear History" -msgstr "Geschiedenis wissen" +#: buzz/widgets/import_url_dialog.py:44 +msgid "Invalid URL" +msgstr "Ongeldige url" -#: buzz/settings/shortcut.py:27 buzz/widgets/main_window_toolbar.py:63 +#: buzz/widgets/import_url_dialog.py:44 +msgid "The URL you entered is invalid." +msgstr "De ingevoerde url is ongeldig." + +#: buzz/widgets/preferences_dialog/shortcuts_editor_preferences_widget.py:29 +msgid "Reset to Defaults" +msgstr "Standaardwaarden" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:35 +#: buzz/transcriber/transcriber.py:38 +msgid "English" +msgstr "Engels" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:36 +#: buzz/transcriber/transcriber.py:49 +msgid "Catalan" +msgstr "Catalaans" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:37 +#: buzz/transcriber/transcriber.py:64 +msgid "Danish" +msgstr "Deens" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "Nederlands" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/transcriber/transcriber.py:40 +msgid "German" +msgstr "Duits" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/transcriber/transcriber.py:41 +msgid "Spanish" +msgstr "Spaans" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/transcriber/transcriber.py:53 +msgid "Italian" +msgstr "Italiaans" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/transcriber/transcriber.py:45 +msgid "Japanese" +msgstr "Japans" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/transcriber/transcriber.py:80 +msgid "Latvian" +msgstr "Lets" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/transcriber/transcriber.py:48 +msgid "Polish" +msgstr "Pools" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#, fuzzy +msgid "Portuguese (Brazil)" +msgstr "Portugees" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/transcriber/transcriber.py:59 +msgid "Ukrainian" +msgstr "Oekraïens" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +msgid "Chinese (Simplified)" +msgstr "Chinees (Vereenvoudigd)" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 +msgid "Chinese (Traditional)" +msgstr "Chinees (Traditioneel)" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 +msgid "Restart required!" +msgstr "Herstart vereist!" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 +msgid "Ui Language" +msgstr "Programmataal" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 +msgid "Font Size" +msgstr "Tekstgrootte" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 +msgid "Test" +msgstr "Uitproberen" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 +msgid "OpenAI API key" +msgstr "OpenAI-api-sleutel" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 +msgid "OpenAI base url" +msgstr "OpenAI-hoofd-url" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 +msgid "Default export file name" +msgstr "Standaardnaam van export" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 +msgid "Enable live recording transcription export" +msgstr "Transcripties van opnames onmiddelijk exporteren" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 +#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 +#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 +msgid "Browse" +msgstr "Bladeren" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 +msgid "Export folder" +msgstr "Exportmap" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 +msgid "Live recording mode" +msgstr "Live-opnamemodus" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 +msgid "OpenAI API Key Test" +msgstr "OpenAI-api-sleuteltest" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 +msgid "" +"Your API key is valid. Buzz will use this key to perform Whisper API " +"transcriptions and AI translations." +msgstr "" +"De api-sleutel is geldig. Buzz zal deze sleutel gebruiken om transcripties " +"en AI-vertalingen op te vragen bij Whisper." + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 +msgid "Invalid API key" +msgstr "Ongeldige api-sleutel" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 +msgid "" +"API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " +"API key may cause errors." +msgstr "" +"De api ondersteunt alleen base64-tekens (A–Za–z0–9+/=_-). Andere tekens " +"kunnen problemen veroorzaken." + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 +msgid "Select Export Folder" +msgstr "Kies een exportmap" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 +msgid "" +"OpenAI API returned invalid response. Please check the API url or your key. " +"Transcription and translation may still work if the API does not support key " +"validation." +msgstr "" +"De api gaf een ongeldig antwoord terug. Controleer de url of sleutel. " +"Transcriptie en vertaling werkt mogelijk nog steeds als de api niet om " +"sleutelverificatie vraagt." + +#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:42 +msgid "Enable folder watch" +msgstr "Map bijhouden" + +#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:94 +msgid "Input folder" +msgstr "Invoermap" + +#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:95 +msgid "Output folder" +msgstr "Uitvoermap" + +#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:105 +msgid "Select Input Folder" +msgstr "Kies een invoermap" + +#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:114 +msgid "Select Output Folder" +msgstr "Kies een uitvoermap" + +#: buzz/widgets/preferences_dialog/preferences_dialog.py:43 +msgid "Preferences" +msgstr "Instellingen" + +#: buzz/widgets/preferences_dialog/preferences_dialog.py:50 +msgid "General" +msgstr "Algemeen" + +#: buzz/widgets/preferences_dialog/preferences_dialog.py:53 +msgid "Models" +msgstr "Modellen" + +#: buzz/widgets/preferences_dialog/preferences_dialog.py:57 +msgid "Shortcuts" +msgstr "Sneltoetsen" + +#: buzz/widgets/preferences_dialog/preferences_dialog.py:63 +msgid "Folder Watch" +msgstr "Map bijhouden" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 +msgid "Group" +msgstr "Groep" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 +msgid "Huggingface ID of a Faster whisper model" +msgstr "Huggingface-id of een sneller Whisper-model" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:94 +msgid "Download" +msgstr "Downloaden" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:99 +msgid "Show file location" +msgstr "Bestandslocatie tonen" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:107 +msgid "Delete" +msgstr "Verwijderen" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:138 +msgid "Downloaded" +msgstr "Gedownload" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:143 +msgid "Available for Download" +msgstr "Beschikbaar" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:164 +msgid "Download link to Whisper.cpp ggml model file" +msgstr "Downloadlink van Whisper.cpp ggml-modelbestand" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 +msgid "Delete Model" +msgstr "Model verwijderen" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 +msgid "Are you sure you want to delete the selected model?" +msgstr "Weet u zeker dat u het gekozen model wilt verwijderen?" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 +msgid "Download failed" +msgstr "Het downloaden is mislukt" + +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 +msgid "Error" +msgstr "Foutmelding" + +#: buzz/widgets/record_button.py:10 buzz/widgets/record_button.py:17 +#: buzz/widgets/main_window_toolbar.py:37 +msgid "Record" +msgstr "Opnemen" + +#: buzz/widgets/record_button.py:21 +msgid "Stop" +msgstr "Stoppen" + +#: buzz/widgets/transcriber/languages_combo_box.py:35 +#: buzz/transcriber/transcriber.py:160 +msgid "Detect Language" +msgstr "Taal herkennen" + +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 +msgid "Run" +msgstr "Uitvoeren" + +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 +msgid "Model:" +msgstr "Model:" + +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 +msgid "First time use of a model may take up to several minutest to load." +msgstr "" +"Let op: de eerste keer kan het enkele minuten duren voordat het model " +"geladen is." + +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +msgid "Api Key:" +msgstr "Api-sleutel:" + +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +msgid "Task:" +msgstr "Taak:" + +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 +msgid "Language:" +msgstr "Taal:" + +#: buzz/widgets/transcriber/initial_prompt_text_edit.py:10 +msgid "Enter prompt..." +msgstr "Voer een tekst in…" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:33 +msgid "Advanced Settings" +msgstr "Geavanceerde instellingen" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:37 +msgid "Speech recognition settings" +msgstr "Spraakherkenningsinstellingen" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:46 +msgid "Comma-separated, e.g. \"0.0, 0.2, 0.4, 0.6, 0.8, 1.0\"" +msgstr "Kommagescheiden, bijv. ‘0.0, 0.2, 0.4, 0.6, 0.8, 1.0’" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:55 +msgid "Temperature:" +msgstr "Temperatuur:" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:66 +msgid "Initial Prompt:" +msgstr "Hoofdinvoer:" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:68 +msgid "Translation settings" +msgstr "Vertaalinstellingen" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:72 +msgid "Enable AI translation" +msgstr "AI-vertaling inschakelen" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:84 +msgid "AI model:" +msgstr "AI-model:" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:88 +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" + +#: buzz/widgets/transcriber/advanced_settings_dialog.py:92 +msgid "Instructions for AI:" +msgstr "AI-instructies:" + +#: buzz/widgets/transcriber/file_transcription_form_widget.py:43 +msgid "Word-level timings" +msgstr "Woordherkenningstimings" + +#: buzz/widgets/transcriber/file_transcription_form_widget.py:54 +msgid "Extract speech" +msgstr "Spraak extraheren" + +#: buzz/widgets/transcriber/file_transcription_form_widget.py:77 +msgid "Export:" +msgstr "Exporteren:" + +#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 +msgid "Huggingface ID of a model" +msgstr "Huggingface-id van een model" + +#: buzz/widgets/transcriber/advanced_settings_button.py:9 +msgid "Advanced..." +msgstr "Geavanceerd…" + +#: buzz/widgets/main_window_toolbar.py:43 +msgid "New File Transcription" +msgstr "Nieuwe bestandstranscriptie" + +#: buzz/widgets/main_window_toolbar.py:50 +msgid "New URL Transcription" +msgstr "Nieuwe url-transcriptie" + +#: buzz/widgets/main_window_toolbar.py:57 +msgid "Open Transcript" +msgstr "Transcriptie openen" + +#: buzz/widgets/main_window_toolbar.py:63 buzz/settings/shortcut.py:27 msgid "Cancel Transcription" msgstr "Transcriptie wissen" +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 +#: buzz/settings/shortcut.py:26 +msgid "Clear History" +msgstr "Geschiedenis wissen" + +#: buzz/widgets/transcription_tasks_table_widget.py:69 +msgid "In Progress" +msgstr "In behandeling" + +#: buzz/widgets/transcription_tasks_table_widget.py:72 +msgid "Completed" +msgstr "Afgerond" + +#: buzz/widgets/transcription_tasks_table_widget.py:79 +msgid "Failed" +msgstr "Mislukt" + +#: buzz/widgets/transcription_tasks_table_widget.py:82 +msgid "Canceled" +msgstr "Afgebroken" + +#: buzz/widgets/transcription_tasks_table_widget.py:84 +msgid "Queued" +msgstr "In wachtrij" + +#: buzz/widgets/transcription_tasks_table_widget.py:91 +msgid "File Name / URL" +msgstr "Bestandsnaam/Url" + +#: buzz/widgets/transcription_tasks_table_widget.py:103 +msgid "Model" +msgstr "Model" + +#: buzz/widgets/transcription_tasks_table_widget.py:112 +msgid "Task" +msgstr "Taak" + +#: buzz/widgets/transcription_tasks_table_widget.py:121 +msgid "Status" +msgstr "Status" + +#: buzz/widgets/transcription_tasks_table_widget.py:129 +msgid "Date Added" +msgstr "Toegevoegd op" + +#: buzz/widgets/transcription_tasks_table_widget.py:140 +msgid "Date Completed" +msgstr "Afgerond op" + +#: buzz/widgets/recording_transcriber_widget.py:83 +msgid "Live Recording" +msgstr "Live-opname" + +#: buzz/widgets/recording_transcriber_widget.py:149 +msgid "Click Record to begin..." +msgstr "Klik op de opnameknop om te beginnen…" + +#: buzz/widgets/recording_transcriber_widget.py:152 +msgid "Waiting for AI translation..." +msgstr "Bezig met wachten op AI-vertaling…" + +#: buzz/widgets/recording_transcriber_widget.py:164 +msgid "Microphone:" +msgstr "Microfoon:" + +#: buzz/widgets/recording_transcriber_widget.py:577 +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:581 +msgid "" +"Please check your audio devices or check the application logs for more " +"information." +msgstr "Controleer uw geluidsapparatuur of het programmalogboek." + +#: buzz/widgets/about_dialog.py:80 +msgid "Check for updates" +msgstr "Controleren op updates" + +#: buzz/widgets/about_dialog.py:109 +msgid "You're up to date!" +msgstr "De software is actueel!" + +#: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:93 +msgid "Start" +msgstr "Begin" + +#: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:94 +msgid "End" +msgstr "Einde" + +#: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 +msgid "Text" +msgstr "Tekst" + +#: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 +msgid "Translation" +msgstr "Vertaling" + +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 +msgid "View" +msgstr "Bekijken" + +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 +msgid "Timestamps" +msgstr "Tijdstippen" + +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 +msgid "Export" +msgstr "Exporteren" + +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 msgid "Translate" msgstr "Vertalen" +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 +msgid "Resize" +msgstr "Grootte" + +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 +msgid "API Key Required" +msgstr "Api-sleutel vereist" + +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 +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:156 +msgid "Resize Options" +msgstr "Grootteopties" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 +msgid "Desired subtitle length" +msgstr "Voorkeurslengte van ondertiteling" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 +msgid "Merge Options" +msgstr "Samenvoegopties" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 +msgid "Merge by gap" +msgstr "Samenvoegen op basis van tussenruimte" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 +msgid "Split by punctuation" +msgstr "Splitsen op basis van leestekens" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 +msgid "Split by max length" +msgstr "Splitsen op basis van max. lengte" + +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 +msgid "Merge" +msgstr "Samenvoegen" + +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 +msgid "Save File" +msgstr "Bestand opslaan" + +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 +msgid "Text files" +msgstr "Tekstbestanden" + +#: buzz/widgets/snap_notice.py:9 +msgid "Snap permission notice" +msgstr "Snap-rechten" + +#: buzz/widgets/snap_notice.py:13 +msgid "" +"Detected missing permissions, please check that snap permissions have been " +"granted" +msgstr "" +"Er ontbreken toegangsrechten - controleer of ze daadwerkelijk allemaal zijn " +"toegekend" + +#: buzz/widgets/snap_notice.py:16 +msgid "" +"To enable necessary permissions run the following commands in the terminal" +msgstr "" +"De rechten kunnen met behulp van deze terminalopdrachten worden verleend" + +#: buzz/widgets/snap_notice.py:27 +msgid "Close" +msgstr "Sluiten" + +#: buzz/widgets/model_download_progress_dialog.py:37 +msgid "Downloading model" +msgstr "Bezig met ophalen van model…" + +#: buzz/widgets/model_download_progress_dialog.py:38 +msgid "remaining" +msgstr "resterend" + +#: buzz/widgets/menu_bar.py:38 +msgid "Import File..." +msgstr "Bestand importeren…" + +#: buzz/widgets/menu_bar.py:41 +msgid "Import URL..." +msgstr "Url importeren…" + +#: buzz/widgets/menu_bar.py:44 +msgid "About" +msgstr "Over" + +#: buzz/widgets/menu_bar.py:48 +msgid "Preferences..." +msgstr "Instellingen…" + +#: buzz/widgets/menu_bar.py:51 buzz/widgets/menu_bar.py:61 +msgid "Help" +msgstr "Hulp" + +#: buzz/widgets/menu_bar.py:57 +msgid "File" +msgstr "Bestand" + +#: buzz/widgets/main_window.py:231 +msgid "" +"Are you sure you want to delete the selected transcription(s)? This action " +"cannot be undone." +msgstr "" +"Weet u zeker dat u de gekozen transcriptie(s) wilt verwijderen? Deze actie " +"is onomkeerbaar." + +#: buzz/widgets/main_window.py:259 +msgid "Select audio file" +msgstr "Kies een audiobestand" + +#: buzz/widgets/main_window.py:295 +msgid "Unable to save OpenAI API key to keyring" +msgstr "De OpenAI-api-sleutel kan niet worden bewaard in de sleutelbos" + #: buzz/transcriber/transcriber.py:25 msgid "Transcribe" msgstr "Transcriberen" -#: buzz/transcriber/transcriber.py:38 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:35 -msgid "English" -msgstr "Engels" - #: buzz/transcriber/transcriber.py:39 msgid "Chinese" msgstr "Chinees" -#: buzz/transcriber/transcriber.py:40 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 -msgid "German" -msgstr "Duits" - -#: buzz/transcriber/transcriber.py:41 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 -msgid "Spanish" -msgstr "Spaans" - #: buzz/transcriber/transcriber.py:42 msgid "Russian" msgstr "Russisch" @@ -117,11 +684,6 @@ msgstr "Koreaans" msgid "French" msgstr "Frans" -#: buzz/transcriber/transcriber.py:45 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 -msgid "Japanese" -msgstr "Japans" - #: buzz/transcriber/transcriber.py:46 msgid "Portuguese" msgstr "Portugees" @@ -130,20 +692,6 @@ msgstr "Portugees" msgid "Turkish" msgstr "Turks" -#: buzz/transcriber/transcriber.py:48 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 -msgid "Polish" -msgstr "Pools" - -#: buzz/transcriber/transcriber.py:49 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:36 -msgid "Catalan" -msgstr "Catalaans" - -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "Nederlands" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "Arabisch" @@ -152,11 +700,6 @@ msgstr "Arabisch" msgid "Swedish" msgstr "Zweeds" -#: buzz/transcriber/transcriber.py:53 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 -msgid "Italian" -msgstr "Italiaans" - #: buzz/transcriber/transcriber.py:54 msgid "Indonesian" msgstr "Indonesisch" @@ -177,11 +720,6 @@ msgstr "Vietnamees" msgid "Hebrew" msgstr "Hebreeuws" -#: buzz/transcriber/transcriber.py:59 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 -msgid "Ukrainian" -msgstr "Oekraïens" - #: buzz/transcriber/transcriber.py:60 msgid "Greek" msgstr "Grieks" @@ -198,11 +736,6 @@ msgstr "Tsjechisch" msgid "Romanian" msgstr "Roemeens" -#: buzz/transcriber/transcriber.py:64 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:37 -msgid "Danish" -msgstr "Deens" - #: buzz/transcriber/transcriber.py:65 msgid "Hungarian" msgstr "Hongaars" @@ -263,11 +796,6 @@ msgstr "Telugu" msgid "Persian" msgstr "Perzisch" -#: buzz/transcriber/transcriber.py:80 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 -msgid "Latvian" -msgstr "Lets" - #: buzz/transcriber/transcriber.py:81 msgid "Bengali" msgstr "Bengaals" @@ -496,563 +1024,48 @@ msgstr "Soedanees" msgid "Cantonese" msgstr "Kantonees" -#: buzz/transcriber/transcriber.py:160 -#: buzz/widgets/transcriber/languages_combo_box.py:35 -msgid "Detect Language" -msgstr "Taal herkennen" +#: buzz/model_loader.py:548 +msgid "A connection error occurred" +msgstr "Er is een verbindingsfout opgetreden" -#: buzz/widgets/about_dialog.py:38 buzz/widgets/menu_bar.py:44 -msgid "About" -msgstr "Over" +#: buzz/settings/shortcut.py:17 +msgid "Open Record Window" +msgstr "Opnamevenster openen" -#: buzz/widgets/about_dialog.py:73 -msgid "Version" -msgstr "Versie" +#: buzz/settings/shortcut.py:18 +msgid "Import File" +msgstr "Bestand importeren" -#: buzz/widgets/about_dialog.py:80 -msgid "Check for updates" -msgstr "Controleren op updates" +#: buzz/settings/shortcut.py:20 +msgid "Open Preferences Window" +msgstr "Instellingenvenster openen" -#: buzz/widgets/about_dialog.py:109 -msgid "You're up to date!" -msgstr "De software is actueel!" +#: buzz/settings/shortcut.py:22 +msgid "View Transcript Text" +msgstr "Transcriptie bekijken" -#: buzz/widgets/import_url_dialog.py:22 -msgid "https://example.com/audio.mp3" -msgstr "https://voorbeeld.nl/audio.mp3" +#: buzz/settings/shortcut.py:23 +msgid "View Transcript Translation" +msgstr "Getranscribeerde vertaling bekijken" -#: buzz/widgets/import_url_dialog.py:28 buzz/widgets/main_window.py:240 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 -#: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -msgid "Ok" -msgstr "Oké" +#: buzz/settings/shortcut.py:24 +msgid "View Transcript Timestamps" +msgstr "Getranscribeerde tijdstippen bekijken" -#: buzz/widgets/import_url_dialog.py:29 buzz/widgets/main_window.py:241 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -msgid "Cancel" -msgstr "Annuleren" +#: buzz/settings/recording_transcriber_mode.py:5 +msgid "Append below" +msgstr "Onderaan toevoegen" -#: buzz/widgets/import_url_dialog.py:34 -msgid "URL:" -msgstr "Url:" +#: buzz/settings/recording_transcriber_mode.py:6 +msgid "Append above" +msgstr "Bovenaan toevoegen" -#: buzz/widgets/import_url_dialog.py:44 -msgid "Invalid URL" -msgstr "Ongeldige url" +#: buzz/settings/recording_transcriber_mode.py:7 +msgid "Append and correct" +msgstr "Toevoegen en corrigeren" -#: buzz/widgets/import_url_dialog.py:44 -msgid "The URL you entered is invalid." -msgstr "De ingevoerde url is ongeldig." +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "Voer vertaalinstructies in…" -#: buzz/widgets/main_window.py:233 -msgid "" -"Are you sure you want to delete the selected transcription(s)? This action " -"cannot be undone." -msgstr "" -"Weet u zeker dat u de gekozen transcriptie(s) wilt verwijderen? Deze actie " -"is onomkeerbaar." - -#: buzz/widgets/main_window.py:261 -msgid "Select audio file" -msgstr "Kies een audiobestand" - -#: buzz/widgets/main_window.py:297 -msgid "Unable to save OpenAI API key to keyring" -msgstr "De OpenAI-api-sleutel kan niet worden bewaard in de sleutelbos" - -#: buzz/widgets/main_window_toolbar.py:37 buzz/widgets/record_button.py:10 -#: buzz/widgets/record_button.py:17 -msgid "Record" -msgstr "Opnemen" - -#: buzz/widgets/main_window_toolbar.py:43 -msgid "New File Transcription" -msgstr "Nieuwe bestandstranscriptie" - -#: buzz/widgets/main_window_toolbar.py:50 -msgid "New URL Transcription" -msgstr "Nieuwe url-transcriptie" - -#: buzz/widgets/main_window_toolbar.py:57 -msgid "Open Transcript" -msgstr "Transcriptie openen" - -#: buzz/widgets/menu_bar.py:38 -msgid "Import File..." -msgstr "Bestand importeren…" - -#: buzz/widgets/menu_bar.py:41 -msgid "Import URL..." -msgstr "Url importeren…" - -#: buzz/widgets/menu_bar.py:48 -msgid "Preferences..." -msgstr "Instellingen…" - -#: buzz/widgets/menu_bar.py:51 buzz/widgets/menu_bar.py:61 -msgid "Help" -msgstr "Hulp" - -#: buzz/widgets/menu_bar.py:57 -msgid "File" -msgstr "Bestand" - -#: buzz/widgets/model_download_progress_dialog.py:36 -msgid "Downloading model" -msgstr "Bezig met ophalen van model…" - -#: buzz/widgets/model_download_progress_dialog.py:37 -msgid "remaining" -msgstr "resterend" - -#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:42 -msgid "Enable folder watch" -msgstr "Map bijhouden" - -#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 -#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 -msgid "Browse" -msgstr "Bladeren" - -#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:94 -msgid "Input folder" -msgstr "Invoermap" - -#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:95 -msgid "Output folder" -msgstr "Uitvoermap" - -#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:105 -msgid "Select Input Folder" -msgstr "Kies een invoermap" - -#: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:114 -msgid "Select Output Folder" -msgstr "Kies een uitvoermap" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 -msgid "Chinese (Simplified)" -msgstr "Chinees (Vereenvoudigd)" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 -msgid "Chinese (Traditional)" -msgstr "Chinees (Traditioneel)" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 -msgid "Restart required!" -msgstr "Herstart vereist!" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 -msgid "Ui Language" -msgstr "Programmataal" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 -msgid "Font Size" -msgstr "Tekstgrootte" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 -msgid "Test" -msgstr "Uitproberen" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 -msgid "OpenAI API key" -msgstr "OpenAI-api-sleutel" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 -msgid "OpenAI base url" -msgstr "OpenAI-hoofd-url" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 -msgid "Default export file name" -msgstr "Standaardnaam van export" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 -msgid "Enable live recording transcription export" -msgstr "Transcripties van opnames onmiddelijk exporteren" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 -msgid "Export folder" -msgstr "Exportmap" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 -msgid "Live recording mode" -msgstr "Live-opnamemodus" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 -msgid "OpenAI API Key Test" -msgstr "OpenAI-api-sleuteltest" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 -msgid "" -"Your API key is valid. Buzz will use this key to perform Whisper API " -"transcriptions and AI translations." -msgstr "" -"De api-sleutel is geldig. Buzz zal deze sleutel gebruiken om transcripties " -"en AI-vertalingen op te vragen bij Whisper." - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 -msgid "Invalid API key" -msgstr "Ongeldige api-sleutel" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 -msgid "" -"API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " -"API key may cause errors." -msgstr "" -"De api ondersteunt alleen base64-tekens (A–Za–z0–9+/=_-). Andere tekens " -"kunnen problemen veroorzaken." - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 -msgid "Select Export Folder" -msgstr "Kies een exportmap" - -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 -msgid "" -"OpenAI API returned invalid response. Please check the API url or your key. " -"Transcription and translation may still work if the API does not support key " -"validation." -msgstr "" -"De api gaf een ongeldig antwoord terug. Controleer de url of sleutel. " -"Transcriptie en vertaling werkt mogelijk nog steeds als de api niet om " -"sleutelverificatie vraagt." - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:70 -msgid "Group" -msgstr "Groep" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:82 -msgid "Huggingface ID of a Faster whisper model" -msgstr "Huggingface-id of een sneller Whisper-model" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:94 -msgid "Download" -msgstr "Downloaden" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:99 -msgid "Show file location" -msgstr "Bestandslocatie tonen" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:107 -msgid "Delete" -msgstr "Verwijderen" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:138 -msgid "Downloaded" -msgstr "Gedownload" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:143 -msgid "Available for Download" -msgstr "Beschikbaar" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:164 -msgid "Download link to Whisper.cpp ggml model file" -msgstr "Downloadlink van Whisper.cpp ggml-modelbestand" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 -msgid "Delete Model" -msgstr "Model verwijderen" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 -msgid "Are you sure you want to delete the selected model?" -msgstr "Weet u zeker dat u het gekozen model wilt verwijderen?" - -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 -msgid "Download failed" -msgstr "Het downloaden is mislukt" - -#: buzz/widgets/preferences_dialog/preferences_dialog.py:43 -msgid "Preferences" -msgstr "Instellingen" - -#: buzz/widgets/preferences_dialog/preferences_dialog.py:50 -msgid "General" -msgstr "Algemeen" - -#: buzz/widgets/preferences_dialog/preferences_dialog.py:53 -msgid "Models" -msgstr "Modellen" - -#: buzz/widgets/preferences_dialog/preferences_dialog.py:57 -msgid "Shortcuts" -msgstr "Sneltoetsen" - -#: buzz/widgets/preferences_dialog/preferences_dialog.py:63 -msgid "Folder Watch" -msgstr "Map bijhouden" - -#: buzz/widgets/preferences_dialog/shortcuts_editor_preferences_widget.py:29 -msgid "Reset to Defaults" -msgstr "Standaardwaarden" - -#: buzz/widgets/record_button.py:21 -msgid "Stop" -msgstr "Stoppen" - -#: buzz/widgets/recording_transcriber_widget.py:79 -msgid "Live Recording" -msgstr "Live-opname" - -#: buzz/widgets/recording_transcriber_widget.py:144 -msgid "Click Record to begin..." -msgstr "Klik op de opnameknop om te beginnen…" - -#: buzz/widgets/recording_transcriber_widget.py:147 -msgid "Waiting for AI translation..." -msgstr "Bezig met wachten op AI-vertaling…" - -#: buzz/widgets/recording_transcriber_widget.py:159 -msgid "Microphone:" -msgstr "Microfoon:" - -#: buzz/widgets/recording_transcriber_widget.py:526 -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:530 -msgid "" -"Please check your audio devices or check the application logs for more " -"information." -msgstr "Controleer uw geluidsapparatuur of het programmalogboek." - -#: buzz/widgets/snap_notice.py:9 -msgid "Snap permission notice" -msgstr "Snap-rechten" - -#: buzz/widgets/snap_notice.py:13 -msgid "" -"Detected missing permissions, please check that snap permissions have been " -"granted" -msgstr "" -"Er ontbreken toegangsrechten - controleer of ze daadwerkelijk allemaal zijn " -"toegekend" - -#: buzz/widgets/snap_notice.py:16 -msgid "" -"To enable necessary permissions run the following commands in the terminal" -msgstr "" -"De rechten kunnen met behulp van deze terminalopdrachten worden verleend" - -#: buzz/widgets/snap_notice.py:27 -msgid "Close" -msgstr "Sluiten" - -#: buzz/widgets/transcriber/advanced_settings_button.py:9 -msgid "Advanced..." -msgstr "Geavanceerd…" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:33 -msgid "Advanced Settings" -msgstr "Geavanceerde instellingen" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:37 -msgid "Speech recognition settings" -msgstr "Spraakherkenningsinstellingen" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:46 -msgid "Comma-separated, e.g. \"0.0, 0.2, 0.4, 0.6, 0.8, 1.0\"" -msgstr "Kommagescheiden, bijv. ‘0.0, 0.2, 0.4, 0.6, 0.8, 1.0’" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:55 -msgid "Temperature:" -msgstr "Temperatuur:" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:66 -msgid "Initial Prompt:" -msgstr "Hoofdinvoer:" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:68 -msgid "Translation settings" -msgstr "Vertaalinstellingen" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:72 -msgid "Enable AI translation" -msgstr "AI-vertaling inschakelen" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:84 -msgid "AI model:" -msgstr "AI-model:" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "Voer vertaalinstructies in…" - -#: buzz/widgets/transcriber/advanced_settings_dialog.py:92 -msgid "Instructions for AI:" -msgstr "AI-instructies:" - -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 -msgid "Run" -msgstr "Uitvoeren" - -#: buzz/widgets/transcriber/file_transcription_form_widget.py:43 -msgid "Word-level timings" -msgstr "Woordherkenningstimings" - -#: buzz/widgets/transcriber/file_transcription_form_widget.py:54 -msgid "Extract speech" -msgstr "Spraak extraheren" - -#: buzz/widgets/transcriber/file_transcription_form_widget.py:77 -msgid "Export:" -msgstr "Exporteren:" - -#: buzz/widgets/transcriber/hugging_face_search_line_edit.py:37 -msgid "Huggingface ID of a model" -msgstr "Huggingface-id van een model" - -#: buzz/widgets/transcriber/initial_prompt_text_edit.py:10 -msgid "Enter prompt..." -msgstr "Voer een tekst in…" - -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 -msgid "Model:" -msgstr "Model:" - -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 -msgid "First time use of a model may take up to several minutest to load." -msgstr "" -"Let op: de eerste keer kan het enkele minuten duren voordat het model " -"geladen is." - -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 -msgid "Api Key:" -msgstr "Api-sleutel:" - -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 -msgid "Task:" -msgstr "Taak:" - -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 -msgid "Language:" -msgstr "Taal:" - -#: buzz/widgets/transcription_tasks_table_widget.py:66 -msgid "In Progress" -msgstr "In behandeling" - -#: buzz/widgets/transcription_tasks_table_widget.py:69 -msgid "Completed" -msgstr "Afgerond" - -#: buzz/widgets/transcription_tasks_table_widget.py:76 -msgid "Failed" -msgstr "Mislukt" - -#: buzz/widgets/transcription_tasks_table_widget.py:79 -msgid "Canceled" -msgstr "Afgebroken" - -#: buzz/widgets/transcription_tasks_table_widget.py:81 -msgid "Queued" -msgstr "In wachtrij" - -#: buzz/widgets/transcription_tasks_table_widget.py:88 -msgid "File Name / URL" -msgstr "Bestandsnaam/Url" - -#: buzz/widgets/transcription_tasks_table_widget.py:100 -msgid "Model" -msgstr "Model" - -#: buzz/widgets/transcription_tasks_table_widget.py:109 -msgid "Task" -msgstr "Taak" - -#: buzz/widgets/transcription_tasks_table_widget.py:118 -msgid "Status" -msgstr "Status" - -#: buzz/widgets/transcription_tasks_table_widget.py:126 -msgid "Date Added" -msgstr "Toegevoegd op" - -#: buzz/widgets/transcription_tasks_table_widget.py:137 -msgid "Date Completed" -msgstr "Afgerond op" - -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 -#: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -msgid "Text" -msgstr "Tekst" - -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 -#: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -msgid "Translation" -msgstr "Vertaling" - -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 -msgid "Save File" -msgstr "Bestand opslaan" - -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 -msgid "Text files" -msgstr "Tekstbestanden" - -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:150 -msgid "Resize Options" -msgstr "Grootteopties" - -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 -msgid "Desired subtitle length" -msgstr "Voorkeurslengte van ondertiteling" - -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -msgid "Resize" -msgstr "Grootte" - -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 -msgid "Merge Options" -msgstr "Samenvoegopties" - -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 -msgid "Merge by gap" -msgstr "Samenvoegen op basis van tussenruimte" - -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 -msgid "Split by punctuation" -msgstr "Splitsen op basis van leestekens" - -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 -msgid "Split by max length" -msgstr "Splitsen op basis van max. lengte" - -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 -msgid "Merge" -msgstr "Samenvoegen" - -#: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:93 -msgid "Start" -msgstr "Begin" - -#: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:94 -msgid "End" -msgstr "Einde" - -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 -msgid "View" -msgstr "Bekijken" - -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 -msgid "Timestamps" -msgstr "Tijdstippen" - -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 -msgid "Export" -msgstr "Exporteren" - -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 -msgid "API Key Required" -msgstr "Api-sleutel vereist" - -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 -msgid "Please enter OpenAI API Key in preferences" -msgstr "Voer de OpenAI-api-sleutel in in de instellingen" +#~ msgid "Version" +#~ msgstr "Versie" diff --git a/buzz/locale/pl_PL/LC_MESSAGES/buzz.po b/buzz/locale/pl_PL/LC_MESSAGES/buzz.po index 6ccbc9e4..7325da03 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: 2024-03-17 20:50+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -27,17 +27,17 @@ msgstr "https://przyklad.pl/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "Anuluj" @@ -73,123 +73,132 @@ msgid "Danish" msgstr "" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +msgid "Portuguese (Brazil)" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 msgid "Ukrainian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 #, fuzzy msgid "Ui Language" msgstr "Język:" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 #, fuzzy msgid "Live recording mode" msgstr "Nagrywanie na żywo" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 #, fuzzy msgid "Invalid API key" msgstr "Nieprawidłowy URL" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -274,22 +283,23 @@ msgstr "Dostępne do pobrania" msgid "Download link to Whisper.cpp ggml model file" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "Usuń model" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #, fuzzy msgid "Are you sure you want to delete the selected model?" msgstr "Czy na pewno chcesz usunąć zaznaczoną transkrypcję?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 #, fuzzy msgid "Download failed" msgstr "Pobrany" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "Błąd" @@ -307,27 +317,27 @@ msgstr "Zatrzymaj" msgid "Detect Language" msgstr "Wykryj język" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "Rozpocznij" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "Model:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "Zadanie:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "Język:" @@ -369,7 +379,9 @@ msgid "AI model:" msgstr "Model:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 @@ -414,80 +426,80 @@ msgstr "Otwórz transkrypt" msgid "Cancel Transcription" msgstr "Anuluj transkrypcję" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "Wyczyść historię" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "Ukończono" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "Anulowano" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "Kolejka" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 #, fuzzy msgid "File Name / URL" msgstr "Nazwa pliku" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 #, fuzzy msgid "Model" msgstr "Model:" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 #, fuzzy msgid "Task" msgstr "Zadanie:" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "Status" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 #, fuzzy msgid "Date Completed" msgstr "Ukończono" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "Nagrywanie na żywo" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "Naciśnij Nagraj, aby zacząć..." -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "Mikrofon:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 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:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -512,83 +524,83 @@ msgid "End" msgstr "Zakończ" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "Tekst" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 #, fuzzy msgid "Translation" msgstr "Nowa transkrypcja" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 msgid "Please enter OpenAI API Key in preferences" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 #, fuzzy msgid "Save File" msgstr "Zapisz plik" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "Pliki tekstowe" @@ -611,12 +623,12 @@ msgstr "" msgid "Close" msgstr "" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 #, fuzzy msgid "Downloading model" msgstr "Pobrany" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "" @@ -646,7 +658,7 @@ msgstr "Pomoc" msgid "File" msgstr "Plik" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." @@ -654,11 +666,11 @@ msgstr "" "Czy na pewno chcesz usunąć zaznaczone transkrypcje? Tej operacji nie można " "cofnąć." -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "Wybierz plik audio" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "" @@ -691,10 +703,6 @@ msgstr "" msgid "Turkish" msgstr "" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "" @@ -1027,7 +1035,7 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "" diff --git a/buzz/locale/pt_BR/LC_MESSAGES/buzz.po b/buzz/locale/pt_BR/LC_MESSAGES/buzz.po index b15bc958..678dc6a9 100644 --- a/buzz/locale/pt_BR/LC_MESSAGES/buzz.po +++ b/buzz/locale/pt_BR/LC_MESSAGES/buzz.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Buzz\n" -"Report-Msgid-Bugs-To: Paulo Schopf \n" -"POT-Creation-Date: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: 2025-06-29 22:23-0300\n" "Last-Translator: Paulo Schopf \n" "Language-Team: none\n" @@ -27,17 +27,17 @@ msgstr "https://exemplo.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "Ok" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "Cancelar" @@ -73,100 +73,110 @@ msgid "Danish" msgstr "Dinamarquês" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "Holandês" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "Alemão" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "Espanhol" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 -#: buzz/transcriber/transcriber.py:53 buzz/transcriber/transcriber.py:54 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "Italiano" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "Japonês" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "Letão" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "Polonês" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#, fuzzy +msgid "Portuguese (Brazil)" +msgstr "Português" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 msgid "Ukrainian" msgstr "Ucraniano" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "Chinês (Simplificado)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "Chinês (Tradicional)" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "Reinicialização necessária!" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 msgid "Ui Language" msgstr "Idioma da Interface" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "Tamanho da Fonte" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "Testar" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "Chave API da OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "URL base da OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "Nome padrão do arquivo de exportação" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "Habilitar exportação da transcrição ao vivo" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Procurar" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "Pasta de exportação" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 msgid "Live recording mode" msgstr "Modo de gravação ao vivo" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "Teste da Chave API OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -174,11 +184,11 @@ msgstr "" "Sua chave API é válida. O Buzz usará esta chave para realizar transcrições " "API Whisper e traduções de IA." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 msgid "Invalid API key" msgstr "Chave API inválida" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." @@ -186,11 +196,11 @@ msgstr "" "A API suporta apenas caracteres base64 (A-Za-z0-9+/=_-). Outros caracteres " "na chave API podem causar erros." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "Selecionar Pasta de Exportação" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -272,20 +282,21 @@ msgstr "Disponível para Download" msgid "Download link to Whisper.cpp ggml model file" msgstr "Link para o arquivo de modelo Whisper.cpp ggml" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "Excluir Modelo" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "Tem certeza que deseja excluir o modelo selecionado?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "Falha ao baixar" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "Erro" @@ -303,27 +314,27 @@ msgstr "Parar" msgid "Detect Language" msgstr "Detectar Idioma" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "Executar" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "Modelo:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "O primeiro uso de um modelo pode levar vários minutos para carregar." -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "Chave API:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "Tarefa:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "Idioma:" @@ -364,8 +375,10 @@ msgid "AI model:" msgstr "Modelo de IA:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "Digite as instruções para a IA sobre como traduzir..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -407,76 +420,76 @@ msgstr "Abrir Transcrição" msgid "Cancel Transcription" msgstr "Cancelar Transcrição" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "Limpar Histórico" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "Em Progresso" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "Concluído" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "Falhou" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "Cancelado" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "Na fila" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "Nome do Arquivo / URL" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "Modelo" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "Tarefa" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "Status" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "Data de Adição" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "Data de Conclusão" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "Gravação ao Vivo" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "Clique em Gravar para começar..." -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "Aguardando tradução da IA..." -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "Microfone:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 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:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -501,81 +514,81 @@ msgid "End" msgstr "Fim" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "Texto" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "Tradução" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "Visualizar" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "Marcações de tempo" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "Exportar" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "Traduzir" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "Redimensionar" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "Chave API Necessária" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 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:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "Opções de Redimensionamento" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "Duração desejada da legenda" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "Opções de Mesclagem" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "Mesclar por intervalo" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "Dividir por pontuação" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "Dividir por tamanho máximo" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "Mesclar" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "Salvar Arquivo" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "Arquivos de texto" @@ -602,11 +615,11 @@ msgstr "" msgid "Close" msgstr "Fechar" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "Baixando modelo" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "restante" @@ -634,7 +647,7 @@ msgstr "Ajuda" msgid "File" msgstr "Arquivo" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." @@ -642,11 +655,11 @@ msgstr "" "Tem certeza que deseja excluir a(s) transcrição(ões) selecionada(s)? Esta " "ação não pode ser desfeita." -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "Selecionar arquivo de áudio" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 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" @@ -678,10 +691,6 @@ msgstr "Português" msgid "Turkish" msgstr "Turco" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "Holandês" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "Árabe" @@ -690,6 +699,10 @@ msgstr "Árabe" msgid "Swedish" msgstr "Sueco" +#: buzz/transcriber/transcriber.py:54 +msgid "Indonesian" +msgstr "" + #: buzz/transcriber/transcriber.py:55 msgid "Hindi" msgstr "Híndi" @@ -1010,7 +1023,7 @@ msgstr "Sundanês" msgid "Cantonese" msgstr "Cantonês" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "Ocorreu um erro de conexão" @@ -1049,3 +1062,6 @@ msgstr "Acrescentar acima" #: buzz/settings/recording_transcriber_mode.py:7 msgid "Append and correct" msgstr "Acrescentar e corrigir" + +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "Digite as instruções para a IA sobre como traduzir..." diff --git a/buzz/locale/uk_UA/LC_MESSAGES/buzz.po b/buzz/locale/uk_UA/LC_MESSAGES/buzz.po index abdc79a4..50641966 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: \n" "Last-Translator: Yevhen Popok \n" "Language-Team: \n" @@ -24,17 +24,17 @@ msgstr "https://example.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "Гаразд" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "Скасувати" @@ -70,103 +70,112 @@ msgid "Danish" msgstr "" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +msgid "Portuguese (Brazil)" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 #, fuzzy msgid "Ukrainian" msgstr "залишилось" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 #, fuzzy msgid "Ui Language" msgstr "Мова:" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "Розмір шрифту" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "Тест" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "API-ключ OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "Базова адреса OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "Типова назва файлу експорту" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "Увімкнути експорт транскрипції з живого запису" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Огляд" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "Тека для експорту" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 #, fuzzy msgid "Live recording mode" msgstr "Живий запис" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "Тест API-ключа OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." @@ -174,22 +183,22 @@ msgstr "" "Ваш API-ключ дійсний. Buzz використає цей ключ для транскрипції з Whisper " "API та перекладу ШІ." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 #, fuzzy msgid "Invalid API key" msgstr "API-ключ OpenAI" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "Виберіть теку для експорту" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -271,20 +280,21 @@ msgstr "Доступно для завантаження" msgid "Download link to Whisper.cpp ggml model file" msgstr "Посилання на завантаження файлу ggml моделі Whisper.cpp" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "Видалити модель" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 msgid "Are you sure you want to delete the selected model?" msgstr "Ви впевнені, що хочете видалити вибрану модель?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 msgid "Download failed" msgstr "Невдале завантаження" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "Помилка" @@ -302,27 +312,27 @@ msgstr "Зупинити" msgid "Detect Language" msgstr "Визначити мову" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "Запуск" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "Модель:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "API-ключ:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "Завдання:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "Мова:" @@ -363,8 +373,10 @@ msgid "AI model:" msgstr "Модель ШІ" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "Введіть інструкції для перекладу ШІ..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -408,76 +420,76 @@ msgstr "Відкрити транскрипцію" msgid "Cancel Transcription" msgstr "Скасувати транскрипцію" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "Очистити історію" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "В процесі" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "Завершено" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "Невдача" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "Скасовано" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "У черзі" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 msgid "File Name / URL" msgstr "Назва файлу / посилання" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 msgid "Model" msgstr "Модель" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 msgid "Task" msgstr "Завдання" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "Стан" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "Дата додавання" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 msgid "Date Completed" msgstr "Дата завершення" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "Живий запис" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "Натисніть на Запис, щоб розпочати..." -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "Очікування перекладу від ШІ..." -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "Мікрофон:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 msgid "An error occurred while starting a new recording:" msgstr "При старті нового запису виникла помилка:" -#: buzz/widgets/recording_transcriber_widget.py:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -502,81 +514,81 @@ msgid "End" msgstr "Кінець" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "Текст" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 msgid "Translation" msgstr "Переклад" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "Вигляд" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "Позначки часу" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "Експорт" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "Перекласти" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "Потрібен API-ключ" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 msgid "Please enter OpenAI API Key in preferences" msgstr "Будь ласка, введіть API-ключ OpenAI в налаштуваннях" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 msgid "Save File" msgstr "Зберегти файл" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "Текстові файли" @@ -602,11 +614,11 @@ msgstr "" msgid "Close" msgstr "Закрити" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 msgid "Downloading model" msgstr "Завантаження моделі" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "залишилось" @@ -634,18 +646,18 @@ msgstr "Допомога" msgid "File" msgstr "Файл" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." msgstr "" "Ви впевнені, що хочете видалити вибрані транскрипції? Це незворотна дія." -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "Вибрати аудіофайл" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "Не вдається додати до звʼязки ключів API-ключ OpenAI" @@ -677,10 +689,6 @@ msgstr "" msgid "Turkish" msgstr "" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "" @@ -1013,7 +1021,7 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "Виникла помилка зʼєднання" @@ -1052,3 +1060,6 @@ msgstr "" #: buzz/settings/recording_transcriber_mode.py:7 msgid "Append and correct" msgstr "" + +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "Введіть інструкції для перекладу ШІ..." diff --git a/buzz/locale/zh_CN/LC_MESSAGES/buzz.po b/buzz/locale/zh_CN/LC_MESSAGES/buzz.po index 943087a7..8e5ec19d 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: 2023-05-01 15:45+0800\n" "Last-Translator: \n" "Language-Team: lamb \n" @@ -27,17 +27,17 @@ msgstr "https://example.com/audio.mp3" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "Ok" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "取消" @@ -73,113 +73,122 @@ msgid "Danish" msgstr "" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +msgid "Portuguese (Brazil)" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 #, fuzzy msgid "Ukrainian" msgstr "剩余" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 #, fuzzy msgid "Ui Language" msgstr "语言:" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "字体大小" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "测试" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "OpenAI API key" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "OpenAI 基于 url" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "默认输出文件名" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "启用实时录制转录导出" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "浏览" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "导出文件夹" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 #, fuzzy msgid "Live recording mode" msgstr "现场录制模式" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "测试OpenAI API Key" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "您的API密钥有效。Buzz将使用此密钥执行 Whisper API 识别和 AI 翻译。" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 msgid "Invalid API key" msgstr "无效的API key" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 #, fuzzy msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " @@ -187,11 +196,11 @@ msgid "" msgstr "" "API只支持 base64字符(A-Za-z0-9+/=)。其他字符在API密钥中可能导致错误。" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "选择输出文件夹" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -277,22 +286,23 @@ msgstr "可用的下载" msgid "Download link to Whisper.cpp ggml model file" msgstr "Whisper.cpp ggml 模型文件的下载链接" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "删除模型" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #, fuzzy msgid "Are you sure you want to delete the selected model?" msgstr "您确定要删除所选录制吗?" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 #, fuzzy msgid "Download failed" msgstr "下载模型失败" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "错误" @@ -310,27 +320,27 @@ msgstr "停止" msgid "Detect Language" msgstr "检测语言" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "开始执行" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "模型:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "首次使用模型可能需要几分钟的时间才能加载" -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "Api Key:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "任务:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "语言:" @@ -372,8 +382,10 @@ msgid "AI model:" msgstr "AI 模型:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." -msgstr "输入AI如何翻译的说明..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" +msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 msgid "Instructions for AI:" @@ -417,80 +429,80 @@ msgstr "打开识别结果" msgid "Cancel Transcription" msgstr "取消识别" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "清除历史纪录" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "运行中" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "完成" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "失败" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "取消" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "队列中" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 #, fuzzy msgid "File Name / URL" msgstr "文件名称/URL" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 #, fuzzy msgid "Model" msgstr "模型" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 #, fuzzy msgid "Task" msgstr "任务" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "状态" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "添加日期" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 #, fuzzy msgid "Date Completed" msgstr "完成时间" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "实时录制" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "点击开始录制" -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "等待AI翻译..." -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "麦克风:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 msgid "An error occurred while starting a new recording:" msgstr "开始新录制时出错" -#: buzz/widgets/recording_transcriber_widget.py:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -513,84 +525,84 @@ msgid "End" msgstr "结束" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "文本" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 #, fuzzy msgid "Translation" msgstr "翻译" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "查看" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "时间戳" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "导出" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "翻译" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "调整大小" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "需要API Key" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 msgid "Please enter OpenAI API Key in preferences" msgstr "请在偏好设置中输入OpenAI API Key" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 #, fuzzy msgid "Resize Options" msgstr "调整大小" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "所需字幕长度" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "合并选项" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "按间隔合并" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "按标点符号拆分" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "按最大长度拆分" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "合并" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 #, fuzzy msgid "Save File" msgstr "保存文件" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "文本文件" @@ -613,12 +625,12 @@ msgstr "要启用必要的权限,请在终端中运行以下命令" msgid "Close" msgstr "关闭" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 #, fuzzy msgid "Downloading model" msgstr "模型下载中" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "剩余" @@ -648,17 +660,17 @@ msgstr "帮助" msgid "File" msgstr "文件" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." msgstr "您确定要删除所选录制吗?此操作无法撤消。" -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "选择音频文件" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "无法将OpenAI API密钥保存到密钥串" @@ -691,10 +703,6 @@ msgstr "" msgid "Turkish" msgstr "" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "" @@ -1027,7 +1035,7 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "连接发生错误" @@ -1072,6 +1080,9 @@ msgstr "增加上方" msgid "Append and correct" msgstr "增加并纠正" +#~ msgid "Enter instructions for AI on how to translate..." +#~ msgstr "输入AI如何翻译的说明..." + #~ msgid "Enter target characters per subtitle:" #~ msgstr "为每个字幕输入目标字符:" diff --git a/buzz/locale/zh_TW/LC_MESSAGES/buzz.po b/buzz/locale/zh_TW/LC_MESSAGES/buzz.po index 66458e11..0d035a68 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-03-06 19:12+0200\n" +"POT-Creation-Date: 2025-07-06 20:16+0300\n" "PO-Revision-Date: 2023-05-01 15:45+0800\n" "Last-Translator: \n" "Language-Team: Lamb\n" @@ -27,17 +27,17 @@ msgstr "" #: buzz/widgets/import_url_dialog.py:28 #: buzz/widgets/preferences_dialog/preferences_dialog.py:69 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:245 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:249 #: buzz/widgets/transcriber/advanced_settings_dialog.py:97 -#: buzz/widgets/main_window.py:240 +#: buzz/widgets/main_window.py:238 msgid "Ok" msgstr "" #: buzz/widgets/import_url_dialog.py:29 #: buzz/widgets/preferences_dialog/preferences_dialog.py:70 -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:246 -#: buzz/widgets/model_download_progress_dialog.py:29 -#: buzz/widgets/main_window.py:241 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:250 +#: buzz/widgets/model_download_progress_dialog.py:30 +#: buzz/widgets/main_window.py:239 msgid "Cancel" msgstr "取消" @@ -73,122 +73,131 @@ msgid "Danish" msgstr "" #: buzz/widgets/preferences_dialog/general_preferences_widget.py:38 +#: buzz/transcriber/transcriber.py:50 +msgid "Dutch" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 #: buzz/transcriber/transcriber.py:40 msgid "German" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:39 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 #: buzz/transcriber/transcriber.py:41 msgid "Spanish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:40 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 #: buzz/transcriber/transcriber.py:53 msgid "Italian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:41 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 #: buzz/transcriber/transcriber.py:45 msgid "Japanese" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:42 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 #: buzz/transcriber/transcriber.py:80 msgid "Latvian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:43 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 #: buzz/transcriber/transcriber.py:48 msgid "Polish" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:44 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +msgid "Portuguese (Brazil)" +msgstr "" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 #: buzz/transcriber/transcriber.py:59 msgid "Ukrainian" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 msgid "Chinese (Simplified)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:46 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:48 msgid "Chinese (Traditional)" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:84 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:86 msgid "Restart required!" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:90 #, fuzzy msgid "Ui Language" msgstr "語言:" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:96 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:98 msgid "Font Size" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:105 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:107 msgid "Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:111 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "OpenAI API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:124 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:126 msgid "OpenAI base url" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:133 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 msgid "Default export file name" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:141 msgid "Enable live recording transcription export" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:145 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:147 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:164 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Export folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:175 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:177 #, fuzzy msgid "Live recording mode" msgstr "現場錄製" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:200 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:206 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:202 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:208 msgid "OpenAI API Key Test" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:201 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:203 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:217 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:219 msgid "Invalid API key" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:218 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:220 msgid "" "API supports only base64 characters (A-Za-z0-9+/=_-). Other characters in " "API key may cause errors." msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:236 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:238 msgid "Select Export Folder" msgstr "" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:296 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:298 msgid "" "OpenAI API returned invalid response. Please check the API url or your key. " "Transcription and translation may still work if the API does not support key " @@ -272,22 +281,23 @@ msgstr "" msgid "Download link to Whisper.cpp ggml model file" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:239 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:243 msgid "Delete Model" msgstr "" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:240 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:244 #, fuzzy msgid "Are you sure you want to delete the selected model?" msgstr "您確定要刪除所選錄製嗎?此操作無法撤消。" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:268 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:272 #, fuzzy msgid "Download failed" msgstr "下載模型" -#: buzz/widgets/preferences_dialog/models_preferences_widget.py:269 -#: buzz/widgets/main_window.py:297 buzz/model_loader.py:499 +#: buzz/widgets/preferences_dialog/models_preferences_widget.py:273 +#: buzz/widgets/main_window.py:295 buzz/model_loader.py:515 +#: buzz/model_loader.py:529 msgid "Error" msgstr "" @@ -305,27 +315,27 @@ msgstr "停止" msgid "Detect Language" msgstr "檢測語言" -#: buzz/widgets/transcriber/file_transcriber_widget.py:79 +#: buzz/widgets/transcriber/file_transcriber_widget.py:84 msgid "Run" msgstr "開始執行" -#: buzz/widgets/transcriber/transcription_options_group_box.py:92 +#: buzz/widgets/transcriber/transcription_options_group_box.py:93 msgid "Model:" msgstr "模型:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:104 +#: buzz/widgets/transcriber/transcription_options_group_box.py:105 msgid "First time use of a model may take up to several minutest to load." msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:114 +#: buzz/widgets/transcriber/transcription_options_group_box.py:115 msgid "Api Key:" msgstr "" -#: buzz/widgets/transcriber/transcription_options_group_box.py:115 +#: buzz/widgets/transcriber/transcription_options_group_box.py:116 msgid "Task:" msgstr "任務:" -#: buzz/widgets/transcriber/transcription_options_group_box.py:116 +#: buzz/widgets/transcriber/transcription_options_group_box.py:117 msgid "Language:" msgstr "語言:" @@ -367,7 +377,9 @@ msgid "AI model:" msgstr "模型:" #: buzz/widgets/transcriber/advanced_settings_dialog.py:88 -msgid "Enter instructions for AI on how to translate..." +msgid "" +"Enter instructions for AI on how to translate, for example 'Please translate " +"each text sent to you from English to Spanish.'" msgstr "" #: buzz/widgets/transcriber/advanced_settings_dialog.py:92 @@ -412,80 +424,80 @@ msgstr "打開轉換結果" msgid "Cancel Transcription" msgstr "取消錄製" -#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:229 +#: buzz/widgets/main_window_toolbar.py:71 buzz/widgets/main_window.py:227 #: buzz/settings/shortcut.py:26 msgid "Clear History" msgstr "清除歷史紀錄" -#: buzz/widgets/transcription_tasks_table_widget.py:66 +#: buzz/widgets/transcription_tasks_table_widget.py:69 msgid "In Progress" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:69 +#: buzz/widgets/transcription_tasks_table_widget.py:72 msgid "Completed" msgstr "完成" -#: buzz/widgets/transcription_tasks_table_widget.py:76 +#: buzz/widgets/transcription_tasks_table_widget.py:79 msgid "Failed" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:79 +#: buzz/widgets/transcription_tasks_table_widget.py:82 msgid "Canceled" msgstr "取消" -#: buzz/widgets/transcription_tasks_table_widget.py:81 +#: buzz/widgets/transcription_tasks_table_widget.py:84 msgid "Queued" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:88 +#: buzz/widgets/transcription_tasks_table_widget.py:91 #, fuzzy msgid "File Name / URL" msgstr "檔案名稱" -#: buzz/widgets/transcription_tasks_table_widget.py:100 +#: buzz/widgets/transcription_tasks_table_widget.py:103 #, fuzzy msgid "Model" msgstr "模型:" -#: buzz/widgets/transcription_tasks_table_widget.py:109 +#: buzz/widgets/transcription_tasks_table_widget.py:112 #, fuzzy msgid "Task" msgstr "任務:" -#: buzz/widgets/transcription_tasks_table_widget.py:118 +#: buzz/widgets/transcription_tasks_table_widget.py:121 msgid "Status" msgstr "狀態" -#: buzz/widgets/transcription_tasks_table_widget.py:126 +#: buzz/widgets/transcription_tasks_table_widget.py:129 msgid "Date Added" msgstr "" -#: buzz/widgets/transcription_tasks_table_widget.py:137 +#: buzz/widgets/transcription_tasks_table_widget.py:140 #, fuzzy msgid "Date Completed" msgstr "完成" -#: buzz/widgets/recording_transcriber_widget.py:79 +#: buzz/widgets/recording_transcriber_widget.py:83 msgid "Live Recording" msgstr "現場錄製" -#: buzz/widgets/recording_transcriber_widget.py:144 +#: buzz/widgets/recording_transcriber_widget.py:149 msgid "Click Record to begin..." msgstr "點擊開始錄製" -#: buzz/widgets/recording_transcriber_widget.py:147 +#: buzz/widgets/recording_transcriber_widget.py:152 msgid "Waiting for AI translation..." msgstr "" -#: buzz/widgets/recording_transcriber_widget.py:159 +#: buzz/widgets/recording_transcriber_widget.py:164 msgid "Microphone:" msgstr "麥克風:" -#: buzz/widgets/recording_transcriber_widget.py:526 +#: buzz/widgets/recording_transcriber_widget.py:577 msgid "An error occurred while starting a new recording:" msgstr "開始新錄製出錯" -#: buzz/widgets/recording_transcriber_widget.py:530 +#: buzz/widgets/recording_transcriber_widget.py:581 msgid "" "Please check your audio devices or check the application logs for more " "information." @@ -508,83 +520,83 @@ msgid "End" msgstr "" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:95 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:34 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:30 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:43 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:32 msgid "Text" msgstr "" #: buzz/widgets/transcription_viewer/transcription_segments_editor_widget.py:96 -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:40 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:31 -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:64 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:49 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:33 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:53 #, fuzzy msgid "Translation" msgstr "新錄製" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:26 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:33 msgid "View" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:46 +#: buzz/widgets/transcription_viewer/transcription_view_mode_tool_button.py:56 msgid "Timestamps" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:146 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:156 msgid "Export" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:160 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:174 #: buzz/transcriber/transcriber.py:24 msgid "Translate" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:170 -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:168 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:184 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:174 msgid "Resize" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:269 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:285 msgid "API Key Required" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:270 +#: buzz/widgets/transcription_viewer/transcription_viewer_widget.py:286 msgid "Please enter OpenAI API Key in preferences" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:150 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:156 msgid "Resize Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:161 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:167 msgid "Desired subtitle length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:186 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:192 msgid "Merge Options" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:197 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:203 msgid "Merge by gap" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:205 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:211 msgid "Split by punctuation" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:213 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:219 msgid "Split by max length" msgstr "" -#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:225 +#: buzz/widgets/transcription_viewer/transcription_resizer_widget.py:231 msgid "Merge" msgstr "" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:78 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:82 #, fuzzy msgid "Save File" msgstr "檔案" -#: buzz/widgets/transcription_viewer/export_transcription_menu.py:80 +#: buzz/widgets/transcription_viewer/export_transcription_menu.py:84 msgid "Text files" msgstr "" @@ -607,12 +619,12 @@ msgstr "" msgid "Close" msgstr "" -#: buzz/widgets/model_download_progress_dialog.py:36 +#: buzz/widgets/model_download_progress_dialog.py:37 #, fuzzy msgid "Downloading model" msgstr "下載模型" -#: buzz/widgets/model_download_progress_dialog.py:37 +#: buzz/widgets/model_download_progress_dialog.py:38 msgid "remaining" msgstr "" @@ -642,17 +654,17 @@ msgstr "幫助" msgid "File" msgstr "檔案" -#: buzz/widgets/main_window.py:233 +#: buzz/widgets/main_window.py:231 msgid "" "Are you sure you want to delete the selected transcription(s)? This action " "cannot be undone." msgstr "您確定要刪除所選錄製嗎?此操作無法撤消。" -#: buzz/widgets/main_window.py:261 +#: buzz/widgets/main_window.py:259 msgid "Select audio file" msgstr "選擇聲音檔案" -#: buzz/widgets/main_window.py:297 +#: buzz/widgets/main_window.py:295 msgid "Unable to save OpenAI API key to keyring" msgstr "" @@ -685,10 +697,6 @@ msgstr "" msgid "Turkish" msgstr "" -#: buzz/transcriber/transcriber.py:50 -msgid "Dutch" -msgstr "" - #: buzz/transcriber/transcriber.py:51 msgid "Arabic" msgstr "" @@ -1021,7 +1029,7 @@ msgstr "" msgid "Cantonese" msgstr "" -#: buzz/model_loader.py:528 +#: buzz/model_loader.py:548 msgid "A connection error occurred" msgstr "" diff --git a/buzz/model_loader.py b/buzz/model_loader.py index b7588a2e..4e89c046 100644 --- a/buzz/model_loader.py +++ b/buzz/model_loader.py @@ -524,6 +524,10 @@ class ModelDownloader(QRunnable): progress=self.signals.progress, num_large_files=4 ) + + if model_path == "": + self.signals.error.emit(_("Error")) + self.signals.finished.emit(model_path) return diff --git a/buzz/transformers_whisper.py b/buzz/transformers_whisper.py index 30a4093f..039dafa8 100644 --- a/buzz/transformers_whisper.py +++ b/buzz/transformers_whisper.py @@ -188,23 +188,34 @@ class TransformersWhisper: model=model, tokenizer=processor.tokenizer, feature_extractor=processor.feature_extractor, - chunk_length_s=30, + # pipeline has built in chunking, works faster, but we loose progress output + # needed for word level timestamps, otherwise there is huge RAM usage on longer audios + chunk_length_s=30 if word_timestamps else None, torch_dtype=torch_dtype, device=device, ) - transcript = pipe(audio, return_timestamps="word" if word_timestamps else True) + transcript = pipe( + audio, + return_timestamps="word" if word_timestamps else True, + ) segments = [] for chunk in transcript['chunks']: start, end = chunk['timestamp'] text = chunk['text'] - segments.append({ - "start": 0 if start is None else start, - "end": 0 if end is None else end, - "text": text, - "translation": "" - }) + + # Last segment may not have an end timestamp + if end is None: + end = start + 0.1 + + if end > start and text.strip() != "": + segments.append({ + "start": 0 if start is None else start, + "end": 0 if end is None else end, + "text": text.strip(), + "translation": "" + }) return { "text": transcript['text'], diff --git a/buzz/translator.py b/buzz/translator.py index 9fa020f7..0243aacf 100644 --- a/buzz/translator.py +++ b/buzz/translator.py @@ -62,17 +62,20 @@ class Translator(QObject): except queue.Empty: continue - completion = self.openai_client.chat.completions.create( - model=self.transcription_options.llm_model, - messages=[ - {"role": "system", "content": self.transcription_options.llm_prompt}, - {"role": "user", "content": transcript} - ] - ) + try: + completion = self.openai_client.chat.completions.create( + model=self.transcription_options.llm_model, + messages=[ + {"role": "system", "content": self.transcription_options.llm_prompt}, + {"role": "user", "content": transcript} + ] + ) + except Exception as e: + completion = None + logging.error(f"Translation error! Server response: {e}") - logging.debug(f"Received translation response: {completion}") - - if completion.choices and completion.choices[0].message: + if completion and completion.choices and completion.choices[0].message: + logging.debug(f"Received translation response: {completion}") next_translation = completion.choices[0].message.content else: logging.error(f"Translation error! Server response: {completion}") diff --git a/buzz/widgets/audio_meter_widget.py b/buzz/widgets/audio_meter_widget.py index 29b46900..11afa5f6 100644 --- a/buzz/widgets/audio_meter_widget.py +++ b/buzz/widgets/audio_meter_widget.py @@ -28,7 +28,7 @@ class AudioMeterWidget(QWidget): self.current_amplitude = 0.0 self.MINIMUM_AMPLITUDE = 0.00005 # minimum amplitude to show the first bar - self.AMPLITUDE_SCALE_FACTOR = 15 # scale the amplitudes such that 1/AMPLITUDE_SCALE_FACTOR will show all bars + self.AMPLITUDE_SCALE_FACTOR = 10 # scale the amplitudes such that 1/AMPLITUDE_SCALE_FACTOR will show all bars if self.palette().window().color().black() > 127: self.BAR_INACTIVE_COLOR = QColor("#555") diff --git a/buzz/widgets/preferences_dialog/general_preferences_widget.py b/buzz/widgets/preferences_dialog/general_preferences_widget.py index 92d2957e..d723bcf3 100644 --- a/buzz/widgets/preferences_dialog/general_preferences_widget.py +++ b/buzz/widgets/preferences_dialog/general_preferences_widget.py @@ -42,6 +42,7 @@ ui_locales = { "ja_JP": _("Japanese"), "lv_LV": _("Latvian"), "pl_PL": _("Polish"), + "pt_BR": _("Portuguese (Brazil)"), "uk_UA": _("Ukrainian"), "zh_CN": _("Chinese (Simplified)"), "zh_TW": _("Chinese (Traditional)") diff --git a/buzz/widgets/recording_transcriber_widget.py b/buzz/widgets/recording_transcriber_widget.py index 0eace97f..9753fb8d 100644 --- a/buzz/widgets/recording_transcriber_widget.py +++ b/buzz/widgets/recording_transcriber_widget.py @@ -18,6 +18,7 @@ from buzz.model_loader import ( ModelDownloader, TranscriptionModel, ModelType, + WhisperModelSize ) from buzz.store.keyring_store import get_password, Key from buzz.recording import RecordingAmplitudeListener @@ -142,6 +143,7 @@ class RecordingTranscriberWidget(QWidget): self.record_button = RecordButton(self) self.record_button.clicked.connect(self.on_record_button_clicked) + self.reset_transcriber_controls() self.transcription_text_box = TextDisplayBox(self) self.transcription_text_box.setPlaceholderText(_("Click Record to begin...")) @@ -224,6 +226,21 @@ class RecordingTranscriberWidget(QWidget): else: self.translation_text_box.hide() + self.reset_transcriber_controls() + + def reset_transcriber_controls(self): + button_enabled = True + if (self.transcription_options.model.model_type == ModelType.FASTER_WHISPER + and self.transcription_options.model.whisper_model_size == WhisperModelSize.CUSTOM + and self.transcription_options.model.hugging_face_model_id == ""): + button_enabled = False + + if (self.transcription_options.model.model_type == ModelType.HUGGING_FACE + and self.transcription_options.model.hugging_face_model_id == ""): + button_enabled = False + + self.record_button.setEnabled(button_enabled) + def on_device_changed(self, device_id: int): self.selected_device_id = device_id self.reset_recording_amplitude_listener() @@ -257,6 +274,8 @@ class RecordingTranscriberWidget(QWidget): self.start_recording() self.current_status = self.RecordingStatus.RECORDING self.record_button.set_recording() + self.transcription_options_group_box.setEnabled(False) + self.audio_devices_combo_box.setEnabled(False) else: # RecordingStatus.RECORDING self.stop_recording() self.set_recording_status_stopped() @@ -287,6 +306,9 @@ class RecordingTranscriberWidget(QWidget): self.reset_recording_controls() self.model_loader = None + if model_path == "": + return + self.transcription_thread = QThread() # TODO: make runnable @@ -358,6 +380,8 @@ class RecordingTranscriberWidget(QWidget): def set_recording_status_stopped(self): self.record_button.set_stopped() self.current_status = self.RecordingStatus.STOPPED + self.transcription_options_group_box.setEnabled(True) + self.audio_devices_combo_box.setEnabled(True) def on_download_model_error(self, error: str): self.reset_model_download() diff --git a/buzz/widgets/transcriber/advanced_settings_dialog.py b/buzz/widgets/transcriber/advanced_settings_dialog.py index 765df682..2c6d134e 100644 --- a/buzz/widgets/transcriber/advanced_settings_dialog.py +++ b/buzz/widgets/transcriber/advanced_settings_dialog.py @@ -80,12 +80,12 @@ class AdvancedSettingsDialog(QDialog): ) self.llm_model_line_edit.setMinimumWidth(170) self.llm_model_line_edit.setEnabled(self.transcription_options.enable_llm_translation) - self.llm_model_line_edit.setPlaceholderText("gpt-3.5-turbo") + self.llm_model_line_edit.setPlaceholderText("gpt-4.1-mini") layout.addRow(_("AI model:"), self.llm_model_line_edit) self.llm_prompt_text_edit = QPlainTextEdit(self.transcription_options.llm_prompt) self.llm_prompt_text_edit.setEnabled(self.transcription_options.enable_llm_translation) - self.llm_prompt_text_edit.setPlaceholderText(_("Enter instructions for AI on how to translate...")) + self.llm_prompt_text_edit.setPlaceholderText(_("Enter instructions for AI on how to translate, for example 'Please translate each text sent to you from English to Spanish.'")) self.llm_prompt_text_edit.setMinimumWidth(170) self.llm_prompt_text_edit.setFixedHeight(115) self.llm_prompt_text_edit.textChanged.connect(self.on_llm_prompt_changed) diff --git a/installer.iss b/installer.iss index 2e45008d..a1cf8db9 100644 --- a/installer.iss +++ b/installer.iss @@ -23,6 +23,7 @@ PrivilegesRequiredOverridesAllowed=dialog OutputDir={#OutputDir} OutputBaseFilename={#AppName}-{#AppVersion}-windows SetupIconFile={#AppIconPath} +DiskSpanning=yes Compression=lzma SolidCompression=yes WizardStyle=modern diff --git a/poetry.lock b/poetry.lock index bcf7d161..3e8c4c99 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,19 +1,19 @@ -# This file is automatically @generated by Poetry 2.1.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. [[package]] name = "accelerate" -version = "1.4.0" +version = "1.8.1" description = "Accelerate" optional = false python-versions = ">=3.9.0" groups = ["main"] files = [ - {file = "accelerate-1.4.0-py3-none-any.whl", hash = "sha256:f6e1e7dfaf9d799a20a1dc45efbf4b1546163eac133faa5acd0d89177c896e55"}, - {file = "accelerate-1.4.0.tar.gz", hash = "sha256:37d413e1b64cb8681ccd2908ae211cf73e13e6e636a2f598a96eccaa538773a5"}, + {file = "accelerate-1.8.1-py3-none-any.whl", hash = "sha256:c47b8994498875a2b1286e945bd4d20e476956056c7941d512334f4eb44ff991"}, + {file = "accelerate-1.8.1.tar.gz", hash = "sha256:f60df931671bc4e75077b852990469d4991ce8bd3a58e72375c3c95132034db9"}, ] [package.dependencies] -huggingface-hub = ">=0.21.0" +huggingface_hub = ">=0.21.0" numpy = ">=1.17,<3.0.0" packaging = ">=20.0" psutil = "*" @@ -23,14 +23,15 @@ torch = ">=2.0.0" [package.extras] deepspeed = ["deepspeed"] -dev = ["bitsandbytes", "black (>=23.1,<24.0)", "datasets", "diffusers", "evaluate", "hf-doc-builder (>=0.3.0)", "parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-subtests", "pytest-xdist", "rich", "ruff (>=0.6.4,<0.7.0)", "scikit-learn", "scipy", "timm", "torchdata (>=0.8.0)", "torchpippy (>=0.2.0)", "tqdm", "transformers"] -quality = ["black (>=23.1,<24.0)", "hf-doc-builder (>=0.3.0)", "ruff (>=0.6.4,<0.7.0)"] +dev = ["bitsandbytes", "black (>=23.1,<24.0)", "datasets", "diffusers", "evaluate", "hf-doc-builder (>=0.3.0)", "parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-order", "pytest-subtests", "pytest-xdist", "rich", "ruff (>=0.11.2,<0.12.0)", "scikit-learn", "scipy", "timm", "torchdata (>=0.8.0)", "torchpippy (>=0.2.0)", "tqdm", "transformers"] +quality = ["black (>=23.1,<24.0)", "hf-doc-builder (>=0.3.0)", "ruff (>=0.11.2,<0.12.0)"] rich = ["rich"] sagemaker = ["sagemaker"] test-dev = ["bitsandbytes", "datasets", "diffusers", "evaluate", "scikit-learn", "scipy", "timm", "torchdata (>=0.8.0)", "torchpippy (>=0.2.0)", "tqdm", "transformers"] -test-prod = ["parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-subtests", "pytest-xdist"] -test-trackers = ["comet-ml", "dvclive", "tensorboard", "wandb"] -testing = ["bitsandbytes", "datasets", "diffusers", "evaluate", "parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-subtests", "pytest-xdist", "scikit-learn", "scipy", "timm", "torchdata (>=0.8.0)", "torchpippy (>=0.2.0)", "tqdm", "transformers"] +test-fp8 = ["torchao"] +test-prod = ["parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-order", "pytest-subtests", "pytest-xdist"] +test-trackers = ["comet-ml", "dvclive", "matplotlib", "mlflow", "swanlab", "tensorboard", "wandb"] +testing = ["bitsandbytes", "datasets", "diffusers", "evaluate", "parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-order", "pytest-subtests", "pytest-xdist", "scikit-learn", "scipy", "timm", "torchdata (>=0.8.0)", "torchpippy (>=0.2.0)", "tqdm", "transformers"] [[package]] name = "altgraph" @@ -1173,6 +1174,28 @@ files = [ {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, ] +[[package]] +name = "hf-xet" +version = "1.1.5" +description = "Fast transfer of large files with the Hugging Face Hub." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"arm64\" or platform_machine == \"aarch64\"" +files = [ + {file = "hf_xet-1.1.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:f52c2fa3635b8c37c7764d8796dfa72706cc4eded19d638331161e82b0792e23"}, + {file = "hf_xet-1.1.5-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:9fa6e3ee5d61912c4a113e0708eaaef987047616465ac7aa30f7121a48fc1af8"}, + {file = "hf_xet-1.1.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc874b5c843e642f45fd85cda1ce599e123308ad2901ead23d3510a47ff506d1"}, + {file = "hf_xet-1.1.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dbba1660e5d810bd0ea77c511a99e9242d920790d0e63c0e4673ed36c4022d18"}, + {file = "hf_xet-1.1.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ab34c4c3104133c495785d5d8bba3b1efc99de52c02e759cf711a91fd39d3a14"}, + {file = "hf_xet-1.1.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:83088ecea236d5113de478acb2339f92c95b4fb0462acaa30621fac02f5a534a"}, + {file = "hf_xet-1.1.5-cp37-abi3-win_amd64.whl", hash = "sha256:73e167d9807d166596b4b2f0b585c6d5bd84a26dea32843665a8b58f6edba245"}, + {file = "hf_xet-1.1.5.tar.gz", hash = "sha256:69ebbcfd9ec44fdc2af73441619eeb06b94ee34511bbcf57cd423820090f5694"}, +] + +[package.extras] +tests = ["pytest"] + [[package]] name = "httpcore" version = "1.0.7" @@ -1222,19 +1245,20 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "huggingface-hub" -version = "0.29.3" +version = "0.33.1" description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" optional = false python-versions = ">=3.8.0" groups = ["main"] files = [ - {file = "huggingface_hub-0.29.3-py3-none-any.whl", hash = "sha256:0b25710932ac649c08cdbefa6c6ccb8e88eef82927cacdb048efb726429453aa"}, - {file = "huggingface_hub-0.29.3.tar.gz", hash = "sha256:64519a25716e0ba382ba2d3fb3ca082e7c7eb4a2fc634d200e8380006e0760e5"}, + {file = "huggingface_hub-0.33.1-py3-none-any.whl", hash = "sha256:ec8d7444628210c0ba27e968e3c4c973032d44dcea59ca0d78ef3f612196f095"}, + {file = "huggingface_hub-0.33.1.tar.gz", hash = "sha256:589b634f979da3ea4b8bdb3d79f97f547840dc83715918daf0b64209c0844c7b"}, ] [package.dependencies] filelock = "*" fsspec = ">=2023.5.0" +hf-xet = {version = ">=1.1.2,<2.0.0", markers = "platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"arm64\" or platform_machine == \"aarch64\""} packaging = ">=20.9" pyyaml = ">=5.1" requests = "*" @@ -1242,16 +1266,19 @@ tqdm = ">=4.42.1" typing-extensions = ">=3.7.4.3" [package.extras] -all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio (>=4.0.0)", "jedi", "libcst (==1.4.0)", "mypy (==1.5.1)", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.9.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] +all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "authlib (>=1.3.2)", "fastapi", "gradio (>=4.0.0)", "httpx", "itsdangerous", "jedi", "libcst (==1.4.0)", "mypy (==1.15.0) ; python_version >= \"3.9\"", "mypy (>=1.14.1,<1.15.0) ; python_version == \"3.8\"", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.9.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] cli = ["InquirerPy (==0.3.4)"] -dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio (>=4.0.0)", "jedi", "libcst (==1.4.0)", "mypy (==1.5.1)", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.9.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] +dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "authlib (>=1.3.2)", "fastapi", "gradio (>=4.0.0)", "httpx", "itsdangerous", "jedi", "libcst (==1.4.0)", "mypy (==1.15.0) ; python_version >= \"3.9\"", "mypy (>=1.14.1,<1.15.0) ; python_version == \"3.8\"", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.9.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] fastai = ["fastai (>=2.4)", "fastcore (>=1.3.27)", "toml"] hf-transfer = ["hf-transfer (>=0.1.4)"] +hf-xet = ["hf-xet (>=1.1.2,<2.0.0)"] inference = ["aiohttp"] -quality = ["libcst (==1.4.0)", "mypy (==1.5.1)", "ruff (>=0.9.0)"] +mcp = ["aiohttp", "mcp (>=1.8.0)", "typer"] +oauth = ["authlib (>=1.3.2)", "fastapi", "httpx", "itsdangerous"] +quality = ["libcst (==1.4.0)", "mypy (==1.15.0) ; python_version >= \"3.9\"", "mypy (>=1.14.1,<1.15.0) ; python_version == \"3.8\"", "ruff (>=0.9.0)"] tensorflow = ["graphviz", "pydot", "tensorflow"] tensorflow-testing = ["keras (<3.0)", "tensorflow"] -testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio (>=4.0.0)", "jedi", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"] +testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "authlib (>=1.3.2)", "fastapi", "gradio (>=4.0.0)", "httpx", "itsdangerous", "jedi", "numpy", "pytest (>=8.1.1,<8.2.2)", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-mock", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"] torch = ["safetensors[torch]", "torch"] typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)"] @@ -1272,14 +1299,14 @@ pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_ve [[package]] name = "humanize" -version = "4.12.1" +version = "4.12.3" description = "Python humanize utilities" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "humanize-4.12.1-py3-none-any.whl", hash = "sha256:86014ca5c52675dffa1d404491952f1f5bf03b07c175a51891a343daebf01fea"}, - {file = "humanize-4.12.1.tar.gz", hash = "sha256:1338ba97415c96556758a6e2f65977ed406dddf4620d4c6db9bbdfd07f0f1232"}, + {file = "humanize-4.12.3-py3-none-any.whl", hash = "sha256:2cbf6370af06568fa6d2da77c86edb7886f3160ecd19ee1ffef07979efc597f6"}, + {file = "humanize-4.12.3.tar.gz", hash = "sha256:8430be3a615106fdfceb0b2c1b41c4c98c6b0fc5cc59663a5539b111dd325fb0"}, ] [package.extras] @@ -2535,37 +2562,71 @@ PyYAML = ">=5.1.0" [[package]] name = "onnxruntime" -version = "1.18.0" +version = "1.20.1" description = "ONNX Runtime is a runtime accelerator for Machine Learning models" optional = false python-versions = "*" groups = ["main"] +markers = "python_version < \"3.11\"" files = [ - {file = "onnxruntime-1.18.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:5a3b7993a5ecf4a90f35542a4757e29b2d653da3efe06cdd3164b91167bbe10d"}, - {file = "onnxruntime-1.18.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:15b944623b2cdfe7f7945690bfb71c10a4531b51997c8320b84e7b0bb59af902"}, - {file = "onnxruntime-1.18.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e61ce5005118064b1a0ed73ebe936bc773a102f067db34108ea6c64dd62a179"}, - {file = "onnxruntime-1.18.0-cp310-cp310-win32.whl", hash = "sha256:a4fc8a2a526eb442317d280610936a9f73deece06c7d5a91e51570860802b93f"}, - {file = "onnxruntime-1.18.0-cp310-cp310-win_amd64.whl", hash = "sha256:71ed219b768cab004e5cd83e702590734f968679bf93aa488c1a7ffbe6e220c3"}, - {file = "onnxruntime-1.18.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:3d24bd623872a72a7fe2f51c103e20fcca2acfa35d48f2accd6be1ec8633d960"}, - {file = "onnxruntime-1.18.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f15e41ca9b307a12550bfd2ec93f88905d9fba12bab7e578f05138ad0ae10d7b"}, - {file = "onnxruntime-1.18.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f45ca2887f62a7b847d526965686b2923efa72538c89b7703c7b3fe970afd59"}, - {file = "onnxruntime-1.18.0-cp311-cp311-win32.whl", hash = "sha256:9e24d9ecc8781323d9e2eeda019b4b24babc4d624e7d53f61b1fe1a929b0511a"}, - {file = "onnxruntime-1.18.0-cp311-cp311-win_amd64.whl", hash = "sha256:f8608398976ed18aef450d83777ff6f77d0b64eced1ed07a985e1a7db8ea3771"}, - {file = "onnxruntime-1.18.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:f1d79941f15fc40b1ee67738b2ca26b23e0181bf0070b5fb2984f0988734698f"}, - {file = "onnxruntime-1.18.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:99e8caf3a8565c853a22d323a3eebc2a81e3de7591981f085a4f74f7a60aab2d"}, - {file = "onnxruntime-1.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:498d2b8380635f5e6ebc50ec1b45f181588927280f32390fb910301d234f97b8"}, - {file = "onnxruntime-1.18.0-cp312-cp312-win32.whl", hash = "sha256:ba7cc0ce2798a386c082aaa6289ff7e9bedc3dee622eef10e74830cff200a72e"}, - {file = "onnxruntime-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:1fa175bd43f610465d5787ae06050c81f7ce09da2bf3e914eb282cb8eab363ef"}, - {file = "onnxruntime-1.18.0-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:0284c579c20ec8b1b472dd190290a040cc68b6caec790edb960f065d15cf164a"}, - {file = "onnxruntime-1.18.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d47353d036d8c380558a5643ea5f7964d9d259d31c86865bad9162c3e916d1f6"}, - {file = "onnxruntime-1.18.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:885509d2b9ba4b01f08f7fa28d31ee54b6477953451c7ccf124a84625f07c803"}, - {file = "onnxruntime-1.18.0-cp38-cp38-win32.whl", hash = "sha256:8614733de3695656411d71fc2f39333170df5da6c7efd6072a59962c0bc7055c"}, - {file = "onnxruntime-1.18.0-cp38-cp38-win_amd64.whl", hash = "sha256:47af3f803752fce23ea790fd8d130a47b2b940629f03193f780818622e856e7a"}, - {file = "onnxruntime-1.18.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:9153eb2b4d5bbab764d0aea17adadffcfc18d89b957ad191b1c3650b9930c59f"}, - {file = "onnxruntime-1.18.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c7fd86eca727c989bb8d9c5104f3c45f7ee45f445cc75579ebe55d6b99dfd7c"}, - {file = "onnxruntime-1.18.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac67a4de9c1326c4d87bcbfb652c923039b8a2446bb28516219236bec3b494f5"}, - {file = "onnxruntime-1.18.0-cp39-cp39-win32.whl", hash = "sha256:6ffb445816d06497df7a6dd424b20e0b2c39639e01e7fe210e247b82d15a23b9"}, - {file = "onnxruntime-1.18.0-cp39-cp39-win_amd64.whl", hash = "sha256:46de6031cb6745f33f7eca9e51ab73e8c66037fb7a3b6b4560887c5b55ab5d5d"}, + {file = "onnxruntime-1.20.1-cp310-cp310-macosx_13_0_universal2.whl", hash = "sha256:e50ba5ff7fed4f7d9253a6baf801ca2883cc08491f9d32d78a80da57256a5439"}, + {file = "onnxruntime-1.20.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7b2908b50101a19e99c4d4e97ebb9905561daf61829403061c1adc1b588bc0de"}, + {file = "onnxruntime-1.20.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d82daaec24045a2e87598b8ac2b417b1cce623244e80e663882e9fe1aae86410"}, + {file = "onnxruntime-1.20.1-cp310-cp310-win32.whl", hash = "sha256:4c4b251a725a3b8cf2aab284f7d940c26094ecd9d442f07dd81ab5470e99b83f"}, + {file = "onnxruntime-1.20.1-cp310-cp310-win_amd64.whl", hash = "sha256:d3b616bb53a77a9463707bb313637223380fc327f5064c9a782e8ec69c22e6a2"}, + {file = "onnxruntime-1.20.1-cp311-cp311-macosx_13_0_universal2.whl", hash = "sha256:06bfbf02ca9ab5f28946e0f912a562a5f005301d0c419283dc57b3ed7969bb7b"}, + {file = "onnxruntime-1.20.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f6243e34d74423bdd1edf0ae9596dd61023b260f546ee17d701723915f06a9f7"}, + {file = "onnxruntime-1.20.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5eec64c0269dcdb8d9a9a53dc4d64f87b9e0c19801d9321246a53b7eb5a7d1bc"}, + {file = "onnxruntime-1.20.1-cp311-cp311-win32.whl", hash = "sha256:a19bc6e8c70e2485a1725b3d517a2319603acc14c1f1a017dda0afe6d4665b41"}, + {file = "onnxruntime-1.20.1-cp311-cp311-win_amd64.whl", hash = "sha256:8508887eb1c5f9537a4071768723ec7c30c28eb2518a00d0adcd32c89dea3221"}, + {file = "onnxruntime-1.20.1-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:22b0655e2bf4f2161d52706e31f517a0e54939dc393e92577df51808a7edc8c9"}, + {file = "onnxruntime-1.20.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f56e898815963d6dc4ee1c35fc6c36506466eff6d16f3cb9848cea4e8c8172"}, + {file = "onnxruntime-1.20.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bb71a814f66517a65628c9e4a2bb530a6edd2cd5d87ffa0af0f6f773a027d99e"}, + {file = "onnxruntime-1.20.1-cp312-cp312-win32.whl", hash = "sha256:bd386cc9ee5f686ee8a75ba74037750aca55183085bf1941da8efcfe12d5b120"}, + {file = "onnxruntime-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:19c2d843eb074f385e8bbb753a40df780511061a63f9def1b216bf53860223fb"}, + {file = "onnxruntime-1.20.1-cp313-cp313-macosx_13_0_universal2.whl", hash = "sha256:cc01437a32d0042b606f462245c8bbae269e5442797f6213e36ce61d5abdd8cc"}, + {file = "onnxruntime-1.20.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fb44b08e017a648924dbe91b82d89b0c105b1adcfe31e90d1dc06b8677ad37be"}, + {file = "onnxruntime-1.20.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bda6aebdf7917c1d811f21d41633df00c58aff2bef2f598f69289c1f1dabc4b3"}, + {file = "onnxruntime-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:d30367df7e70f1d9fc5a6a68106f5961686d39b54d3221f760085524e8d38e16"}, + {file = "onnxruntime-1.20.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9158465745423b2b5d97ed25aa7740c7d38d2993ee2e5c3bfacb0c4145c49d8"}, + {file = "onnxruntime-1.20.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0df6f2df83d61f46e842dbcde610ede27218947c33e994545a22333491e72a3b"}, +] + +[package.dependencies] +coloredlogs = "*" +flatbuffers = "*" +numpy = ">=1.21.6" +packaging = "*" +protobuf = "*" +sympy = "*" + +[[package]] +name = "onnxruntime" +version = "1.22.0" +description = "ONNX Runtime is a runtime accelerator for Machine Learning models" +optional = false +python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.11\"" +files = [ + {file = "onnxruntime-1.22.0-cp310-cp310-macosx_13_0_universal2.whl", hash = "sha256:85d8826cc8054e4d6bf07f779dc742a363c39094015bdad6a08b3c18cfe0ba8c"}, + {file = "onnxruntime-1.22.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:468c9502a12f6f49ec335c2febd22fdceecc1e4cc96dfc27e419ba237dff5aff"}, + {file = "onnxruntime-1.22.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:681fe356d853630a898ee05f01ddb95728c9a168c9460e8361d0a240c9b7cb97"}, + {file = "onnxruntime-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:20bca6495d06925631e201f2b257cc37086752e8fe7b6c83a67c6509f4759bc9"}, + {file = "onnxruntime-1.22.0-cp311-cp311-macosx_13_0_universal2.whl", hash = "sha256:8d6725c5b9a681d8fe72f2960c191a96c256367887d076b08466f52b4e0991df"}, + {file = "onnxruntime-1.22.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fef17d665a917866d1f68f09edc98223b9a27e6cb167dec69da4c66484ad12fd"}, + {file = "onnxruntime-1.22.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b978aa63a9a22095479c38371a9b359d4c15173cbb164eaad5f2cd27d666aa65"}, + {file = "onnxruntime-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:03d3ef7fb11adf154149d6e767e21057e0e577b947dd3f66190b212528e1db31"}, + {file = "onnxruntime-1.22.0-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:f3c0380f53c1e72a41b3f4d6af2ccc01df2c17844072233442c3a7e74851ab97"}, + {file = "onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8601128eaef79b636152aea76ae6981b7c9fc81a618f584c15d78d42b310f1c"}, + {file = "onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6964a975731afc19dc3418fad8d4e08c48920144ff590149429a5ebe0d15fb3c"}, + {file = "onnxruntime-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0d534a43d1264d1273c2d4f00a5a588fa98d21117a3345b7104fa0bbcaadb9a"}, + {file = "onnxruntime-1.22.0-cp313-cp313-macosx_13_0_universal2.whl", hash = "sha256:fe7c051236aae16d8e2e9ffbfc1e115a0cc2450e873a9c4cb75c0cc96c1dae07"}, + {file = "onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a6bbed10bc5e770c04d422893d3045b81acbbadc9fb759a2cd1ca00993da919"}, + {file = "onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fe45ee3e756300fccfd8d61b91129a121d3d80e9d38e01f03ff1295badc32b8"}, + {file = "onnxruntime-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:5a31d84ef82b4b05d794a4ce8ba37b0d9deb768fd580e36e17b39e0b4840253b"}, + {file = "onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2ac5bd9205d831541db4e508e586e764a74f14efdd3f89af7fd20e1bf4a1ed"}, + {file = "onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64845709f9e8a2809e8e009bc4c8f73b788cee9c6619b7d9930344eae4c9cd36"}, ] [package.dependencies] @@ -2578,14 +2639,14 @@ sympy = "*" [[package]] name = "openai" -version = "1.66.0" +version = "1.92.2" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "openai-1.66.0-py3-none-any.whl", hash = "sha256:43e4a3c0c066cc5809be4e6aac456a3ebc4ec1848226ef9d1340859ac130d45a"}, - {file = "openai-1.66.0.tar.gz", hash = "sha256:8a9e672bc6eadec60a962f0b40d7d1c09050010179c919ed65322e433e2d1025"}, + {file = "openai-1.92.2-py3-none-any.whl", hash = "sha256:abb64bee7f2571709edf9a856f598ffe871730129a7d807a8a4d8d2958f5c842"}, + {file = "openai-1.92.2.tar.gz", hash = "sha256:b571a79fc7e165e7d00e6963a8a95eb5f42b60ac89fd316f1dc0a2dac5c6fae1"}, ] [package.dependencies] @@ -2599,8 +2660,10 @@ tqdm = ">4" typing-extensions = ">=4.11,<5" [package.extras] +aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.6)"] datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] -realtime = ["websockets (>=13,<15)"] +realtime = ["websockets (>=13,<16)"] +voice-helpers = ["numpy (>=2.0.2)", "sounddevice (>=0.5.1)"] [[package]] name = "openai-whisper" @@ -2763,20 +2826,20 @@ files = [ [[package]] name = "platformdirs" -version = "4.3.6" +version = "4.3.8" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main", "dev"] files = [ - {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, + {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, + {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, ] [package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.14.1)"] [[package]] name = "pluggy" @@ -3618,19 +3681,19 @@ files = [ [[package]] name = "requests" -version = "2.32.3" +version = "2.32.4" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, + {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, + {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, ] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" +charset_normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3" @@ -4193,13 +4256,13 @@ srt = ">=3.5.3,<4.0.0" [[package]] name = "stable-ts" -version = "2.18.3" +version = "2.19.0" description = "Modifies OpenAI's Whisper to produce more reliable timestamps." optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "stable_ts-2.18.3.tar.gz", hash = "sha256:ca45606b04bfb2e15ccfeceb5a3f2586e682a117deb084465fb61cda8d4411a8"}, + {file = "stable_ts-2.19.0.tar.gz", hash = "sha256:de4cde5f7405283981a672b2220c4fee41d3ee90044ab0903e32a52247db8aec"}, ] [package.dependencies] @@ -4419,36 +4482,36 @@ files = [ [[package]] name = "torch" -version = "2.7.0" +version = "2.7.1" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" optional = false python-versions = ">=3.9.0" groups = ["main"] files = [ - {file = "torch-2.7.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c9afea41b11e1a1ab1b258a5c31afbd646d6319042bfe4f231b408034b51128b"}, - {file = "torch-2.7.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0b9960183b6e5b71239a3e6c883d8852c304e691c0b2955f7045e8a6d05b9183"}, - {file = "torch-2.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:2ad79d0d8c2a20a37c5df6052ec67c2078a2c4e9a96dd3a8b55daaff6d28ea29"}, - {file = "torch-2.7.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:34e0168ed6de99121612d72224e59b2a58a83dae64999990eada7260c5dd582d"}, - {file = "torch-2.7.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2b7813e904757b125faf1a9a3154e1d50381d539ced34da1992f52440567c156"}, - {file = "torch-2.7.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:fd5cfbb4c3bbadd57ad1b27d56a28008f8d8753733411a140fcfb84d7f933a25"}, - {file = "torch-2.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:58df8d5c2eeb81305760282b5069ea4442791a6bbf0c74d9069b7b3304ff8a37"}, - {file = "torch-2.7.0-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:0a8d43caa342b9986101ec5feb5bbf1d86570b5caa01e9cb426378311258fdde"}, - {file = "torch-2.7.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:36a6368c7ace41ad1c0f69f18056020b6a5ca47bedaca9a2f3b578f5a104c26c"}, - {file = "torch-2.7.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:15aab3e31c16feb12ae0a88dba3434a458874636f360c567caa6a91f6bfba481"}, - {file = "torch-2.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:f56d4b2510934e072bab3ab8987e00e60e1262fb238176168f5e0c43a1320c6d"}, - {file = "torch-2.7.0-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:30b7688a87239a7de83f269333651d8e582afffce6f591fff08c046f7787296e"}, - {file = "torch-2.7.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:868ccdc11798535b5727509480cd1d86d74220cfdc42842c4617338c1109a205"}, - {file = "torch-2.7.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:9b52347118116cf3dff2ab5a3c3dd97c719eb924ac658ca2a7335652076df708"}, - {file = "torch-2.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:434cf3b378340efc87c758f250e884f34460624c0523fe5c9b518d205c91dd1b"}, - {file = "torch-2.7.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:edad98dddd82220465b106506bb91ee5ce32bd075cddbcf2b443dfaa2cbd83bf"}, - {file = "torch-2.7.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:2a885fc25afefb6e6eb18a7d1e8bfa01cc153e92271d980a49243b250d5ab6d9"}, - {file = "torch-2.7.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:176300ff5bc11a5f5b0784e40bde9e10a35c4ae9609beed96b4aeb46a27f5fae"}, - {file = "torch-2.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d0ca446a93f474985d81dc866fcc8dccefb9460a29a456f79d99c29a78a66993"}, - {file = "torch-2.7.0-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:27f5007bdf45f7bb7af7f11d1828d5c2487e030690afb3d89a651fd7036a390e"}, - {file = "torch-2.7.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:e362efaa5b3078e5f75c33efc05005b9b46de0d2e899519d5b4cad0e050ed0f7"}, - {file = "torch-2.7.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:fc1ed9258cbfce69970ff508ea60881818d414d098a800b7695ba36f570d34b0"}, - {file = "torch-2.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:87b0802cab44659fcb6bcf5678d58fa4a8b48561cde8fb2d317edf0b6990e1bb"}, - {file = "torch-2.7.0-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:ccd7509141713997861b7a947ef0a717143cd7e9240addd168f38ba8fd23fd56"}, + {file = "torch-2.7.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:a103b5d782af5bd119b81dbcc7ffc6fa09904c423ff8db397a1e6ea8fd71508f"}, + {file = "torch-2.7.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:fe955951bdf32d182ee8ead6c3186ad54781492bf03d547d31771a01b3d6fb7d"}, + {file = "torch-2.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:885453d6fba67d9991132143bf7fa06b79b24352f4506fd4d10b309f53454162"}, + {file = "torch-2.7.1-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:d72acfdb86cee2a32c0ce0101606f3758f0d8bb5f8f31e7920dc2809e963aa7c"}, + {file = "torch-2.7.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:236f501f2e383f1cb861337bdf057712182f910f10aeaf509065d54d339e49b2"}, + {file = "torch-2.7.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:06eea61f859436622e78dd0cdd51dbc8f8c6d76917a9cf0555a333f9eac31ec1"}, + {file = "torch-2.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:8273145a2e0a3c6f9fd2ac36762d6ee89c26d430e612b95a99885df083b04e52"}, + {file = "torch-2.7.1-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:aea4fc1bf433d12843eb2c6b2204861f43d8364597697074c8d38ae2507f8730"}, + {file = "torch-2.7.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:27ea1e518df4c9de73af7e8a720770f3628e7f667280bce2be7a16292697e3fa"}, + {file = "torch-2.7.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c33360cfc2edd976c2633b3b66c769bdcbbf0e0b6550606d188431c81e7dd1fc"}, + {file = "torch-2.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:d8bf6e1856ddd1807e79dc57e54d3335f2b62e6f316ed13ed3ecfe1fc1df3d8b"}, + {file = "torch-2.7.1-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:787687087412c4bd68d315e39bc1223f08aae1d16a9e9771d95eabbb04ae98fb"}, + {file = "torch-2.7.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:03563603d931e70722dce0e11999d53aa80a375a3d78e6b39b9f6805ea0a8d28"}, + {file = "torch-2.7.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:d632f5417b6980f61404a125b999ca6ebd0b8b4bbdbb5fbbba44374ab619a412"}, + {file = "torch-2.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:23660443e13995ee93e3d844786701ea4ca69f337027b05182f5ba053ce43b38"}, + {file = "torch-2.7.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:0da4f4dba9f65d0d203794e619fe7ca3247a55ffdcbd17ae8fb83c8b2dc9b585"}, + {file = "torch-2.7.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:e08d7e6f21a617fe38eeb46dd2213ded43f27c072e9165dc27300c9ef9570934"}, + {file = "torch-2.7.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:30207f672328a42df4f2174b8f426f354b2baa0b7cca3a0adb3d6ab5daf00dc8"}, + {file = "torch-2.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:79042feca1c634aaf6603fe6feea8c6b30dfa140a6bbc0b973e2260c7e79a22e"}, + {file = "torch-2.7.1-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:988b0cbc4333618a1056d2ebad9eb10089637b659eb645434d0809d8d937b946"}, + {file = "torch-2.7.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:e0d81e9a12764b6f3879a866607c8ae93113cbcad57ce01ebde63eb48a576369"}, + {file = "torch-2.7.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:8394833c44484547ed4a47162318337b88c97acdb3273d85ea06e03ffff44998"}, + {file = "torch-2.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:df41989d9300e6e3c19ec9f56f856187a6ef060c3662fe54f4b6baf1fc90bd19"}, + {file = "torch-2.7.1-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:a737b5edd1c44a5c1ece2e9f3d00df9d1b3fb9541138bee56d83d38293fb6c9d"}, ] [package.dependencies] @@ -4472,7 +4535,7 @@ nvidia-nvjitlink-cu12 = {version = "12.6.85", markers = "platform_system == \"Li nvidia-nvtx-cu12 = {version = "12.6.77", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} setuptools = {version = "*", markers = "python_version >= \"3.12\""} sympy = ">=1.13.3" -triton = {version = "3.3.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +triton = {version = "3.3.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} typing-extensions = ">=4.10.0" [package.extras] @@ -4481,40 +4544,40 @@ optree = ["optree (>=0.13.0)"] [[package]] name = "torchaudio" -version = "2.7.0" +version = "2.7.1" description = "An audio package for PyTorch" optional = false python-versions = "*" groups = ["main"] files = [ - {file = "torchaudio-2.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1c4a646c9e9347836c09e965eebc58dd028ec6ef34c46d3e7891bffd8dc645ea"}, - {file = "torchaudio-2.7.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:9e4073992f4f8e7113e4b505d95095361ceb2f21dd7b9310776160a24266f8f6"}, - {file = "torchaudio-2.7.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:f7c99f7c062d6a56a3e281e3c2b779099e64cad1ce78891df61c4d19ce40742e"}, - {file = "torchaudio-2.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5443422640cbe532aaacd83ad2ee6911b0451f7f50e6b3755015e92df579d37"}, - {file = "torchaudio-2.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:862d9c5cfe15688a7846962b5d3c9f959beffe82b1e5441935c7a37504c5c5e7"}, - {file = "torchaudio-2.7.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:677bd32031310ee73a47d6eebc2e74e74c1cf467932945ee88082a3935b5c950"}, - {file = "torchaudio-2.7.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:c37b77dd528ad18a036466e856f53d8bd5912b757a775309354b4a977a069379"}, - {file = "torchaudio-2.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:36b94819f5406b2599ac31542e2e7a7aaf4a5b5f466ce034f296b1ee1134c945"}, - {file = "torchaudio-2.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:65b4fc9b7f28367f918b02ae4db4290457bc4fdd160f22b7d684e93ab8dcb956"}, - {file = "torchaudio-2.7.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:33004ed47f18f00044c97ee8cd9e3f5e1c2e26ef23d4f72b5f1ae33e6182587b"}, - {file = "torchaudio-2.7.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:a6f03494075bcdd62e7fade7baf50a0ef107aa809d02b5e1786391adced451a3"}, - {file = "torchaudio-2.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:275931c8a38ff84b5692df990506b41f18d0a0706574d96bc8456ad9e5fa85c8"}, - {file = "torchaudio-2.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:150fbde41da60296effed772b7a170f563cd44967555abb0603fc573f39ce245"}, - {file = "torchaudio-2.7.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9d921eeb036512a87efde007977b27bd326320cd7cd5f43195824173fe82e888"}, - {file = "torchaudio-2.7.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:30675a5f99551e036974a7476729eb5d31f453cf792ae6e0a0d449960f84f464"}, - {file = "torchaudio-2.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:ce8cfc07a4e59c835404583e7d3e171208b332b61bb92643f8723f6f192da8bf"}, - {file = "torchaudio-2.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9e08138cac75cde2064c8b5bbd12f27bdeb3d36f4b8c2285fc9c42eaa97c0676"}, - {file = "torchaudio-2.7.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:1d928aeff495a0807b4da3b0dd46e15eae8070da5e7ed6d35c1dcfd9fdfe2b74"}, - {file = "torchaudio-2.7.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ee4add33f24e9cb959bd9de89f36de5ebf844eda040d1d0b38f08617d67dedc3"}, - {file = "torchaudio-2.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:725dbbcc9e744ca62de8856262c6f472ca26b1cd5db062b062a2d6b66a336cc0"}, - {file = "torchaudio-2.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0d421aa225b93564c98d3ba16f1960dee2edc8b4e375f62519fb51e2c489c123"}, - {file = "torchaudio-2.7.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:0e8a4b05f159ffba8107989cdef28aab2696307f3c7f78bb9d2e0af73eec980a"}, - {file = "torchaudio-2.7.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:bd360b8dcd69bbce340a6415307d085263436331bbb4d08450f49fa9e8ecd080"}, - {file = "torchaudio-2.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:e86821cc0a111a5c95a513965a26424e0785710e37342de86d3b5804a54984ed"}, + {file = "torchaudio-2.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4739af57d0eb94347d1c6a1b5668be78a7383afe826dde18a04883b9f9f263b1"}, + {file = "torchaudio-2.7.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c089dbfc14c5f47091b7bf3f6bf2bbac93b86619299d04d9c102f4ad53758990"}, + {file = "torchaudio-2.7.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6bb1e6db22fa2aad6b89b2a455ec5c6dc31df2635dbfafa213394f8b07b09516"}, + {file = "torchaudio-2.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:2ba4df6e3ad35cb1e5bd162cf86b492526138f6476f5a06b10725b8880c618eb"}, + {file = "torchaudio-2.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5a62f88c629035913f506df03f710c48fc8bb9637191933f27c67088d5ca136"}, + {file = "torchaudio-2.7.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:53bc4ba12e7468be34a7ca2ee837ee5c8bd5755b25c12f665af9339cae37e265"}, + {file = "torchaudio-2.7.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f8bd69354a397753b9dea9699d9e1251f8496fbbdf3028c7086a57a615bf33c3"}, + {file = "torchaudio-2.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:0ae0678ad27355eebea5a9fdd9ae9bfec444f8405f9b6c60026905ba3665c43a"}, + {file = "torchaudio-2.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9306dcfc4586cebd7647a93fe9a448e791c4f83934da616b9433b75597a1f978"}, + {file = "torchaudio-2.7.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d66bd76b226fdd4135c97650e1b7eb63fb7659b4ed0e3a778898e41dbba21b61"}, + {file = "torchaudio-2.7.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9cbcdaab77ad9a73711acffee58f4eebc8a0685289a938a3fa6f660af9489aee"}, + {file = "torchaudio-2.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:9cfb8f6ace8e01e2b89de74eb893ba5ce936b88b415383605b0a4d974009dec7"}, + {file = "torchaudio-2.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e5f0599a507f4683546878ed9667e1b32d7ca3c8a957e4c15c6b302378ef4dee"}, + {file = "torchaudio-2.7.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:271f717844e5c7f9e05c8328de817bf90f46d83281c791e94f54d4edea2f5817"}, + {file = "torchaudio-2.7.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1862b063d8d4e55cb4862bcbd63568545f549825a3c5605bd312224c3ebb1919"}, + {file = "torchaudio-2.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:edb4deaa6f95acd5522912ed643303d0b86d79a6f15914362f5a5d49baaf5d13"}, + {file = "torchaudio-2.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:18560955b8beb2a8d39a6bfae20a442337afcefb3dfd4ee007ce82233a796799"}, + {file = "torchaudio-2.7.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:1850475ef9101ea0b3593fe93ff6ee4e7a20598f6da6510761220b9fe56eb7fa"}, + {file = "torchaudio-2.7.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:98257fc14dd493ba5a3258fb6d61d27cd64a48ee79537c3964c4da26b9bf295f"}, + {file = "torchaudio-2.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:c802e0dcbf38669007327bb52f065573cc5cac106eaca987f6e1a32e6282263a"}, + {file = "torchaudio-2.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a07100fe2cf7af4fa69d8cb046a2b74046612621a1a548afa5af1c69e02eaf81"}, + {file = "torchaudio-2.7.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:e8b2da11a7f7782b00b823c99e812eb00ee8b3455ad474f8fd42a0da0bc4f46a"}, + {file = "torchaudio-2.7.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:9ce8aed225d5ce65705d30f6ef8e457d329fe6ea0b8729ad953ba99e87da264e"}, + {file = "torchaudio-2.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:30e21f043f5cc50f703c2cf0de75633e2c720227f9bf848ffc9b8b987871b3fc"}, ] [package.dependencies] -torch = "2.7.0" +torch = "2.7.1" [[package]] name = "tqdm" @@ -4540,71 +4603,74 @@ telegram = ["requests"] [[package]] name = "transformers" -version = "4.49.0" +version = "4.53.0" description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" optional = false python-versions = ">=3.9.0" groups = ["main"] files = [ - {file = "transformers-4.49.0-py3-none-any.whl", hash = "sha256:6b4fded1c5fee04d384b1014495b4235a2b53c87503d7d592423c06128cbbe03"}, - {file = "transformers-4.49.0.tar.gz", hash = "sha256:7e40e640b5b8dc3f48743f5f5adbdce3660c82baafbd3afdfc04143cdbd2089e"}, + {file = "transformers-4.53.0-py3-none-any.whl", hash = "sha256:7d8039ff032c01a2d7f8a8fe0066620367003275f023815a966e62203f9f5dd7"}, + {file = "transformers-4.53.0.tar.gz", hash = "sha256:f89520011b4a73066fdc7aabfa158317c3934a22e3cd652d7ffbc512c4063841"}, ] [package.dependencies] filelock = "*" -huggingface-hub = ">=0.26.0,<1.0" +huggingface-hub = ">=0.30.0,<1.0" numpy = ">=1.17" packaging = ">=20.0" pyyaml = ">=5.1" regex = "!=2019.12.17" requests = "*" -safetensors = ">=0.4.1" +safetensors = ">=0.4.3" tokenizers = ">=0.21,<0.22" tqdm = ">=4.27" [package.extras] accelerate = ["accelerate (>=0.26.0)"] -agents = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "datasets (!=2.5.0)", "diffusers", "opencv-python", "sentencepiece (>=0.1.91,!=0.1.92)", "torch (>=2.0)"] -all = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "av", "codecarbon (>=2.8.1)", "flax (>=0.4.1,<=0.7.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "librosa", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "phonemizer", "protobuf", "pyctcdecode (>=0.4.0)", "ray[tune] (>=2.7.0)", "scipy (<1.13.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timm (<=1.0.11)", "tokenizers (>=0.21,<0.22)", "torch (>=2.0)", "torchaudio", "torchvision"] +all = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "av", "codecarbon (>=2.8.1)", "flax (>=0.4.1,<=0.7.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "kernels (>=0.6.1,<0.7)", "librosa", "num2words", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "phonemizer", "protobuf", "pyctcdecode (>=0.4.0)", "ray[tune] (>=2.7.0)", "scipy (<1.13.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timm (<=1.0.11)", "tokenizers (>=0.21,<0.22)", "torch (>=2.1)", "torchaudio", "torchvision"] audio = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)"] benchmark = ["optimum-benchmark (>=0.3.0)"] codecarbon = ["codecarbon (>=2.8.1)"] deepspeed = ["accelerate (>=0.26.0)", "deepspeed (>=0.9.3)"] -deepspeed-testing = ["GitPython (<3.1.19)", "accelerate (>=0.26.0)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "deepspeed (>=0.9.3)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "nltk (<=3.8.1)", "optuna", "parameterized", "protobuf", "psutil", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-asyncio", "pytest-rich", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "timeout-decorator"] -dev = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "av", "beautifulsoup4", "codecarbon (>=2.8.1)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "flax (>=0.4.1,<=0.7.0)", "fugashi (>=1.0)", "ipadic (>=1.0.0,<2.0)", "isort (>=5.5.4)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "libcst", "librosa", "nltk (<=3.8.1)", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-asyncio", "pytest-rich", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "scipy (<1.13.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "timm (<=1.0.11)", "tokenizers (>=0.21,<0.22)", "torch (>=2.0)", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] -dev-tensorflow = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "isort (>=5.5.4)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "libcst", "librosa", "nltk (<=3.8.1)", "onnxconverter-common", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-asyncio", "pytest-rich", "pytest-timeout", "pytest-xdist", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "tokenizers (>=0.21,<0.22)", "urllib3 (<2.0.0)"] -dev-torch = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "beautifulsoup4", "codecarbon (>=2.8.1)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "fugashi (>=1.0)", "ipadic (>=1.0.0,<2.0)", "isort (>=5.5.4)", "kenlm", "libcst", "librosa", "nltk (<=3.8.1)", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "optuna", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-asyncio", "pytest-rich", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "timeout-decorator", "timm (<=1.0.11)", "tokenizers (>=0.21,<0.22)", "torch (>=2.0)", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] +deepspeed-testing = ["GitPython (<3.1.19)", "accelerate (>=0.26.0)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "deepspeed (>=0.9.3)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "nltk (<=3.8.1)", "optuna", "parameterized", "protobuf", "psutil", "pydantic", "pytest (>=7.2.0)", "pytest-asyncio", "pytest-order", "pytest-rerunfailures", "pytest-rich", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.11.2)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "timeout-decorator"] +dev = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "av", "beautifulsoup4", "codecarbon (>=2.8.1)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "flax (>=0.4.1,<=0.7.0)", "fugashi (>=1.0)", "ipadic (>=1.0.0,<2.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "kernels (>=0.6.1,<0.7)", "libcst", "librosa", "nltk (<=3.8.1)", "num2words", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "pandas (<2.3.0)", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0)", "pytest-asyncio", "pytest-order", "pytest-rerunfailures", "pytest-rich", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.11.2)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "scipy (<1.13.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "timm (<=1.0.11)", "tokenizers (>=0.21,<0.22)", "torch (>=2.1)", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] +dev-tensorflow = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "kenlm", "keras-nlp (>=0.3.1,<0.14.0)", "libcst", "librosa", "nltk (<=3.8.1)", "onnxconverter-common", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "pandas (<2.3.0)", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0)", "pytest-asyncio", "pytest-order", "pytest-rerunfailures", "pytest-rich", "pytest-timeout", "pytest-xdist", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.11.2)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "tokenizers (>=0.21,<0.22)", "urllib3 (<2.0.0)"] +dev-torch = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.26.0)", "beautifulsoup4", "codecarbon (>=2.8.1)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "fugashi (>=1.0)", "ipadic (>=1.0.0,<2.0)", "kenlm", "kernels (>=0.6.1,<0.7)", "libcst", "librosa", "nltk (<=3.8.1)", "num2words", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "optuna", "pandas (<2.3.0)", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0)", "pytest-asyncio", "pytest-order", "pytest-rerunfailures", "pytest-rich", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rich", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.11.2)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "timeout-decorator", "timm (<=1.0.11)", "tokenizers (>=0.21,<0.22)", "torch (>=2.1)", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] flax = ["flax (>=0.4.1,<=0.7.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "optax (>=0.0.8,<=0.1.4)", "scipy (<1.13.0)"] flax-speech = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)"] ftfy = ["ftfy"] -integrations = ["optuna", "ray[tune] (>=2.7.0)", "sigopt"] +hf-xet = ["hf-xet"] +hub-kernels = ["kernels (>=0.6.1,<0.7)"] +integrations = ["kernels (>=0.6.1,<0.7)", "optuna", "ray[tune] (>=2.7.0)", "sigopt"] ja = ["fugashi (>=1.0)", "ipadic (>=1.0.0,<2.0)", "rhoknp (>=1.1.0,<1.3.1)", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)"] modelcreation = ["cookiecutter (==1.7.3)"] natten = ["natten (>=0.14.6,<0.15.0)"] +num2words = ["num2words"] onnx = ["onnxconverter-common", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "tf2onnx"] onnxruntime = ["onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)"] +open-telemetry = ["opentelemetry-api", "opentelemetry-exporter-otlp", "opentelemetry-sdk"] optuna = ["optuna"] -quality = ["GitPython (<3.1.19)", "datasets (!=2.5.0)", "isort (>=5.5.4)", "libcst", "rich", "ruff (==0.5.1)", "urllib3 (<2.0.0)"] +quality = ["GitPython (<3.1.19)", "datasets (!=2.5.0)", "libcst", "pandas (<2.3.0)", "rich", "ruff (==0.11.2)", "urllib3 (<2.0.0)"] ray = ["ray[tune] (>=2.7.0)"] retrieval = ["datasets (!=2.5.0)", "faiss-cpu"] -ruff = ["ruff (==0.5.1)"] +ruff = ["ruff (==0.11.2)"] sagemaker = ["sagemaker (>=2.31.0)"] sentencepiece = ["protobuf", "sentencepiece (>=0.1.91,!=0.1.92)"] serving = ["fastapi", "pydantic", "starlette", "uvicorn"] sigopt = ["sigopt"] sklearn = ["scikit-learn"] speech = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)", "torchaudio"] -testing = ["GitPython (<3.1.19)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "nltk (<=3.8.1)", "parameterized", "psutil", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-asyncio", "pytest-rich", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.5.1)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "timeout-decorator"] +testing = ["GitPython (<3.1.19)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "nltk (<=3.8.1)", "parameterized", "psutil", "pydantic", "pytest (>=7.2.0)", "pytest-asyncio", "pytest-order", "pytest-rerunfailures", "pytest-rich", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.11.2)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "timeout-decorator"] tf = ["keras-nlp (>=0.3.1,<0.14.0)", "onnxconverter-common", "tensorflow (>2.9,<2.16)", "tensorflow-text (<2.16)", "tf2onnx"] tf-cpu = ["keras (>2.9,<2.16)", "keras-nlp (>=0.3.1,<0.14.0)", "onnxconverter-common", "tensorflow-cpu (>2.9,<2.16)", "tensorflow-probability (<0.24)", "tensorflow-text (<2.16)", "tf2onnx"] tf-speech = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)"] tiktoken = ["blobfile", "tiktoken"] timm = ["timm (<=1.0.11)"] tokenizers = ["tokenizers (>=0.21,<0.22)"] -torch = ["accelerate (>=0.26.0)", "torch (>=2.0)"] +torch = ["accelerate (>=0.26.0)", "torch (>=2.1)"] torch-speech = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)", "torchaudio"] torch-vision = ["Pillow (>=10.0.1,<=15.0)", "torchvision"] -torchhub = ["filelock", "huggingface-hub (>=0.26.0,<1.0)", "importlib-metadata", "numpy (>=1.17)", "packaging (>=20.0)", "protobuf", "regex (!=2019.12.17)", "requests", "sentencepiece (>=0.1.91,!=0.1.92)", "tokenizers (>=0.21,<0.22)", "torch (>=2.0)", "tqdm (>=4.27)"] +torchhub = ["filelock", "huggingface-hub (>=0.30.0,<1.0)", "importlib-metadata", "numpy (>=1.17)", "packaging (>=20.0)", "protobuf", "regex (!=2019.12.17)", "requests", "sentencepiece (>=0.1.91,!=0.1.92)", "tokenizers (>=0.21,<0.22)", "torch (>=2.1)", "tqdm (>=4.27)"] video = ["av"] vision = ["Pillow (>=10.0.1,<=15.0)"] @@ -4621,19 +4687,19 @@ files = [ [[package]] name = "triton" -version = "3.3.0" +version = "3.3.1" description = "A language and compiler for custom Deep Learning operations" optional = false python-versions = "*" groups = ["main"] markers = "(platform_machine == \"x86_64\" or sys_platform == \"linux2\") and (platform_system == \"Linux\" or sys_platform == \"linux\" or sys_platform == \"linux2\")" files = [ - {file = "triton-3.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fad99beafc860501d7fcc1fb7045d9496cbe2c882b1674640304949165a916e7"}, - {file = "triton-3.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3161a2bf073d6b22c4e2f33f951f3e5e3001462b2570e6df9cd57565bdec2984"}, - {file = "triton-3.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b68c778f6c4218403a6bd01be7484f6dc9e20fe2083d22dd8aef33e3b87a10a3"}, - {file = "triton-3.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47bc87ad66fa4ef17968299acacecaab71ce40a238890acc6ad197c3abe2b8f1"}, - {file = "triton-3.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce4700fc14032af1e049005ae94ba908e71cd6c2df682239aed08e49bc71b742"}, - {file = "triton-3.3.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f41403bfa0cbb3e24fd958ca7fee04e9681e55e539296db9aca30c42acae693"}, + {file = "triton-3.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b74db445b1c562844d3cfad6e9679c72e93fdfb1a90a24052b03bb5c49d1242e"}, + {file = "triton-3.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b31e3aa26f8cb3cc5bf4e187bf737cbacf17311e1112b781d4a059353dfd731b"}, + {file = "triton-3.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9999e83aba21e1a78c1f36f21bce621b77bcaa530277a50484a7cb4a822f6e43"}, + {file = "triton-3.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b89d846b5a4198317fec27a5d3a609ea96b6d557ff44b56c23176546023c4240"}, + {file = "triton-3.3.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3198adb9d78b77818a5388bff89fa72ff36f9da0bc689db2f0a651a67ce6a42"}, + {file = "triton-3.3.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f6139aeb04a146b0b8e0fbbd89ad1e65861c57cfed881f21d62d3cb94a36bab7"}, ] [package.dependencies] @@ -4687,14 +4753,14 @@ files = [ [[package]] name = "urllib3" -version = "2.3.0" +version = "2.5.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, + {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, + {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, ] [package.extras] @@ -4815,24 +4881,24 @@ files = [ [[package]] name = "yt-dlp" -version = "2025.2.19" +version = "2025.6.25" description = "A feature-rich command-line audio/video downloader" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "yt_dlp-2025.2.19-py3-none-any.whl", hash = "sha256:3ed218eaeece55e9d715afd41abc450dc406ee63bf79355169dfde312d38fdb8"}, - {file = "yt_dlp-2025.2.19.tar.gz", hash = "sha256:f33ca76df2e4db31880f2fe408d44f5058d9f135015b13e50610dfbe78245bea"}, + {file = "yt_dlp-2025.6.25-py3-none-any.whl", hash = "sha256:1eb31c9a47d56c7433be23a6ae084c640bd4e14961ad43076927ef05280871ea"}, + {file = "yt_dlp-2025.6.25.tar.gz", hash = "sha256:242b648e1a18ab04bdd4cc175a317fe8ec3ad7d0175eee9f981912624b3d6c8b"}, ] [package.extras] -build = ["build", "hatchling", "pip", "setuptools (>=71.0.2)", "wheel"] -curl-cffi = ["curl-cffi (==0.5.10) ; os_name == \"nt\" and implementation_name == \"cpython\"", "curl-cffi (>=0.5.10,!=0.6.*,<0.7.2) ; os_name != \"nt\" and implementation_name == \"cpython\""] +build = ["build", "hatchling", "pip", "setuptools (>=71.0.2,<81)", "wheel"] +curl-cffi = ["curl-cffi (>=0.5.10,<0.6.dev0 || ==0.10.*) ; implementation_name == \"cpython\""] default = ["brotli ; implementation_name == \"cpython\"", "brotlicffi ; implementation_name != \"cpython\"", "certifi", "mutagen", "pycryptodomex", "requests (>=2.32.2,<3)", "urllib3 (>=1.26.17,<3)", "websockets (>=13.0)"] -dev = ["autopep8 (>=2.0,<3.0)", "pre-commit", "pytest (>=8.1,<9.0)", "pytest-rerunfailures (>=14.0,<15.0)", "ruff (>=0.9.0,<0.10.0)"] -pyinstaller = ["pyinstaller (>=6.11.1)"] +dev = ["autopep8 (>=2.0,<3.0)", "pre-commit", "pytest (>=8.1,<9.0)", "pytest-rerunfailures (>=14.0,<15.0)", "ruff (>=0.11.0,<0.12.0)"] +pyinstaller = ["pyinstaller (>=6.13.0)"] secretstorage = ["cffi", "secretstorage"] -static-analysis = ["autopep8 (>=2.0,<3.0)", "ruff (>=0.9.0,<0.10.0)"] +static-analysis = ["autopep8 (>=2.0,<3.0)", "ruff (>=0.11.0,<0.12.0)"] test = ["pytest (>=8.1,<9.0)", "pytest-rerunfailures (>=14.0,<15.0)"] [[package]] @@ -4859,4 +4925,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = ">=3.9,<3.13" -content-hash = "62b51cc6bba2ad174c89c4d7a5d6a119e4aa94ae5000fe54be6a63cd4043afb9" +content-hash = "6fd00715df18f91cd02b7524a34897f408f686eab80fd77b2d8eefd4f2ce99ca" diff --git a/pyproject.toml b/pyproject.toml index 1637e16e..43d411d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,16 +49,15 @@ yt-dlp = "^2025.2.19" stable-ts = "^2.18.3" faster-whisper = "^1.1.1" openai-whisper = "^20240930" -# transformers 4.50.0 has some bug -transformers = "4.49.0" +transformers = "^4.49.0" accelerate = "^1.0.1" polib = "^1.2.0" srt-equalizer = "^0.1.10" # torch 2.2.2 is last with intel macOS support, during build torch will be downgraded -torch = "2.7.0" -torchaudio = "2.7.0" +torch = "^2.7.1" +torchaudio = "^2.7.1" # ctranslate2 4.3.1 is last with intel macOS support, during build ctranslate2 will be downgraded -ctranslate2 = "4.6.0" +ctranslate2 = "^4.6.0" darkdetect = "^0.8.0" # requirements for demucs - TODO maybe remove dora-search = "^0.1.12" @@ -80,7 +79,7 @@ soundfile = "^0.13.1" urllib3 = "^2.3.0" demucs = {url = "https://github.com/raivisdejus/demucs/releases/download/4.1.0a3/demucs-4.1.0a3-py3-none-any.whl"} posthog = "^3.23.0" -onnxruntime = "1.18.0" +onnxruntime = "^1.18.0" [tool.poetry.group.dev.dependencies] autopep8 = "^1.7.0" diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index dcffe1f7..e66fff30 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,5 +1,5 @@ # Development notes: -# - To build the snap run `snapcraft clean` and `snapcraft` +# - To build the snap run `snapcraft clean` and `snapcraft --debug --verbosity verbose` # - To install local snap `snap install ./buzz_*.snap --dangerous` name: buzz base: core22 @@ -115,12 +115,29 @@ parts: # GPU - libglu1-mesa override-build: | + # Clear cache to save space on CI + apt clean + craftctl default pip install poetry make translation_mo pip install . pip uninstall -y ctranslate2 + pip uninstall -y torch torchaudio nvidia-cublas-cu12 nvidia-cuda-cupti-cu12 nvidia-cuda-nvrtc-cu12 nvidia-cuda-runtime-cu12 nvidia-cudnn-cu12 nvidia-cufft-cu12 nvidia-cufile-cu12 nvidia-curand-cu12 nvidia-cusolver-cu12 nvidia-cusparse-cu12 nvidia-cusparselt-cu12 nvidia-nccl-cu12 nvidia-nvjitlink-cu12 nvidia-nvtx-cu12 + pip cache purge + pip install https://github.com/raivisdejus/CTranslate2-no-execstack/releases/download/v4.2.1/ctranslate2-4.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + pip install -U torch==2.7.1+cu128 torchaudio==2.7.1+cu128 --index-url https://download.pytorch.org/whl/cu128 + pip cache purge + pip install nvidia-cublas-cu12==12.8.3.14 nvidia-cuda-cupti-cu12==12.8.57 nvidia-cuda-nvrtc-cu12==12.8.61 --extra-index-url https://pypi.ngc.nvidia.com + pip cache purge + pip install nvidia-cuda-runtime-cu12==12.8.57 nvidia-cudnn-cu12==9.7.1.26 nvidia-cufft-cu12==11.3.3.41 --extra-index-url https://pypi.ngc.nvidia.com + pip cache purge + pip install nvidia-curand-cu12==10.3.9.55 nvidia-cusolver-cu12==11.7.2.55 nvidia-cusparse-cu12==12.5.4.2 --extra-index-url https://pypi.ngc.nvidia.com + pip cache purge + pip install nvidia-cusparselt-cu12==0.6.3 nvidia-nvjitlink-cu12==12.8.61 nvidia-nvtx-cu12==12.8.55 --extra-index-url https://pypi.ngc.nvidia.com + pip cache purge + python3 build.py mkdir $CRAFT_PART_INSTALL/buzz cp $CRAFT_PART_BUILD/buzz/whisper_cpp.py $CRAFT_PART_INSTALL/buzz/ @@ -132,6 +149,9 @@ parts: source: . organize: buzz.desktop: usr/share/applications/buzz.desktop + # To prevent error of the same file having different permissions + stage: + - -buzz/whisper_cpp.py apps: buzz: diff --git a/tests/transformers_whisper_test.py b/tests/transformers_whisper_test.py index a1a6c1d8..235984d3 100644 --- a/tests/transformers_whisper_test.py +++ b/tests/transformers_whisper_test.py @@ -16,4 +16,4 @@ class TestTransformersWhisper: audio=test_audio_path, language="fr", task="transcribe" ) - assert "Bienvenue dans Passe" in result["text"] + assert "Bienvenue dans Passrel" in result["text"]